diff options
Diffstat (limited to 'src/qml/jsruntime/qv4runtimeapi_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4runtimeapi_p.h | 99 |
1 files changed, 34 insertions, 65 deletions
diff --git a/src/qml/jsruntime/qv4runtimeapi_p.h b/src/qml/jsruntime/qv4runtimeapi_p.h index 302facba06..ea31dfd08b 100644 --- a/src/qml/jsruntime/qv4runtimeapi_p.h +++ b/src/qml/jsruntime/qv4runtimeapi_p.h @@ -58,7 +58,6 @@ namespace QV4 { typedef uint Bool; struct NoThrowEngine; - namespace { template <typename T> struct ExceptionCheck { @@ -93,84 +92,64 @@ struct ExceptionCheck<void (*)(QV4::NoThrowEngine *, A, B, C)> { #define FOR_EACH_RUNTIME_METHOD(F) \ /* call */ \ - F(ReturnedValue, callGlobalLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ - F(ReturnedValue, callActivationProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ - F(ReturnedValue, callQmlScopeObjectProperty, (ExecutionEngine *engine, int propertyIndex, CallData *callData)) \ - F(ReturnedValue, callQmlContextObjectProperty, (ExecutionEngine *engine, int propertyIndex, CallData *callData)) \ - F(ReturnedValue, callProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ - F(ReturnedValue, callPropertyLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ - F(ReturnedValue, callElement, (ExecutionEngine *engine, const Value &index, CallData *callData)) \ - F(ReturnedValue, callValue, (ExecutionEngine *engine, const Value &func, CallData *callData)) \ + F(ReturnedValue, callGlobalLookup, (ExecutionEngine *engine, uint index, Value *argv, int argc)) \ + F(ReturnedValue, callName, (ExecutionEngine *engine, int nameIndex, Value *argv, int argc)) \ + F(ReturnedValue, callProperty, (ExecutionEngine *engine, Value *base, int nameIndex, Value *argv, int argc)) \ + F(ReturnedValue, callPropertyLookup, (ExecutionEngine *engine, Value *base, uint index, Value *argv, int argc)) \ + F(ReturnedValue, callElement, (ExecutionEngine *engine, Value *base, const Value &index, Value *argv, int argc)) \ + F(ReturnedValue, callValue, (ExecutionEngine *engine, const Value &func, Value *argv, int argc)) \ + F(ReturnedValue, callPossiblyDirectEval, (ExecutionEngine *engine, Value *argv, int argc)) \ \ /* construct */ \ - F(ReturnedValue, constructGlobalLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ - F(ReturnedValue, constructActivationProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ - F(ReturnedValue, constructProperty, (ExecutionEngine *engine, int nameIndex, CallData *callData)) \ - F(ReturnedValue, constructPropertyLookup, (ExecutionEngine *engine, uint index, CallData *callData)) \ - F(ReturnedValue, constructValue, (ExecutionEngine *engine, const Value &func, CallData *callData)) \ + F(ReturnedValue, construct, (ExecutionEngine *engine, const Value &func, Value *argv, int argc)) \ \ - /* set & get */ \ - F(void, setActivationProperty, (ExecutionEngine *engine, int nameIndex, const Value &value)) \ - F(void, setProperty, (ExecutionEngine *engine, const Value &object, int nameIndex, const Value &value)) \ - F(void, setElement, (ExecutionEngine *engine, const Value &object, const Value &index, const Value &value)) \ - F(ReturnedValue, getProperty, (ExecutionEngine *engine, const Value &object, int nameIndex)) \ - F(ReturnedValue, getActivationProperty, (ExecutionEngine *engine, int nameIndex)) \ - F(ReturnedValue, getElement, (ExecutionEngine *engine, const Value &object, const Value &index)) \ + /* load & store */ \ + F(void, storeNameStrict, (ExecutionEngine *engine, int nameIndex, const Value &value)) \ + F(void, storeNameSloppy, (ExecutionEngine *engine, int nameIndex, const Value &value)) \ + F(bool, storeProperty, (ExecutionEngine *engine, const Value &object, int nameIndex, const Value &value)) \ + F(bool, storeElement, (ExecutionEngine *engine, const Value &object, const Value &index, const Value &value)) \ + F(ReturnedValue, loadProperty, (ExecutionEngine *engine, const Value &object, int nameIndex)) \ + F(ReturnedValue, loadName, (ExecutionEngine *engine, int nameIndex)) \ + F(ReturnedValue, loadElement, (ExecutionEngine *engine, const Value &object, const Value &index)) \ \ /* typeof */ \ F(ReturnedValue, typeofValue, (ExecutionEngine *engine, const Value &val)) \ F(ReturnedValue, typeofName, (ExecutionEngine *engine, int nameIndex)) \ - F(ReturnedValue, typeofScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex)) \ - F(ReturnedValue, typeofContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex)) \ - F(ReturnedValue, typeofMember, (ExecutionEngine *engine, const Value &base, int nameIndex)) \ - F(ReturnedValue, typeofElement, (ExecutionEngine *engine, const Value &base, const Value &index)) \ \ /* delete */ \ - F(ReturnedValue, deleteElement, (ExecutionEngine *engine, const Value &base, const Value &index)) \ - F(ReturnedValue, deleteMember, (ExecutionEngine *engine, const Value &base, int nameIndex)) \ - F(ReturnedValue, deleteMemberString, (ExecutionEngine *engine, const Value &base, String *name)) \ - F(ReturnedValue, deleteName, (ExecutionEngine *engine, int nameIndex)) \ + F(bool, deleteElement, (ExecutionEngine *engine, const Value &base, const Value &index)) \ + F(bool, deleteMember, (ExecutionEngine *engine, const Value &base, int nameIndex)) \ + F(bool, deleteMemberString, (ExecutionEngine *engine, const Value &base, String *name)) \ + F(bool, deleteName, (ExecutionEngine *engine, int nameIndex)) \ \ /* exceptions & scopes */ \ F(void, throwException, (ExecutionEngine *engine, const Value &value)) \ - F(ReturnedValue, unwindException, (ExecutionEngine *engine)) \ - F(void, pushWithScope, (const Value &o, NoThrowEngine *engine)) \ - F(void, pushCatchScope, (NoThrowEngine *engine, int exceptionVarNameIndex)) \ - F(void, popScope, (NoThrowEngine *engine)) \ + F(ReturnedValue, createWithContext, (ExecutionContext *parent, const Value &o)) \ + F(ReturnedValue, createCatchContext, (ExecutionContext *parent, int exceptionVarNameIndex)) \ \ /* closures */ \ F(ReturnedValue, closure, (ExecutionEngine *engine, int functionId)) \ \ /* function header */ \ F(void, declareVar, (ExecutionEngine *engine, bool deletable, int nameIndex)) \ - F(ReturnedValue, setupArgumentsObject, (ExecutionEngine *engine)) \ - F(void, convertThisToObject, (ExecutionEngine *engine)) \ + F(ReturnedValue, createMappedArgumentsObject, (ExecutionEngine *engine)) \ + F(ReturnedValue, createUnmappedArgumentsObject, (ExecutionEngine *engine)) \ \ /* literals */ \ F(ReturnedValue, arrayLiteral, (ExecutionEngine *engine, Value *values, uint length)) \ F(ReturnedValue, objectLiteral, (ExecutionEngine *engine, const Value *args, int classId, int arrayValueCount, int arrayGetterSetterCountAndFlags)) \ - F(ReturnedValue, regexpLiteral, (ExecutionEngine *engine, int id)) \ \ /* foreach */ \ F(ReturnedValue, foreachIterator, (ExecutionEngine *engine, const Value &in)) \ F(ReturnedValue, foreachNextPropertyName, (const Value &foreach_iterator)) \ \ /* unary operators */ \ - F(ReturnedValue, uPlus, (const Value &value)) \ F(ReturnedValue, uMinus, (const Value &value)) \ - F(ReturnedValue, uNot, (const Value &value)) \ - F(ReturnedValue, complement, (const Value &value)) \ - F(ReturnedValue, increment, (const Value &value)) \ - F(ReturnedValue, decrement, (const Value &value)) \ \ /* binary operators */ \ F(ReturnedValue, instanceof, (ExecutionEngine *engine, const Value &left, const Value &right)) \ F(ReturnedValue, in, (ExecutionEngine *engine, const Value &left, const Value &right)) \ F(ReturnedValue, add, (ExecutionEngine *engine, const Value &left, const Value &right)) \ - F(ReturnedValue, addString, (ExecutionEngine *engine, const Value &left, const Value &right)) \ - F(ReturnedValue, bitOr, (const Value &left, const Value &right)) \ - F(ReturnedValue, bitXor, (const Value &left, const Value &right)) \ - F(ReturnedValue, bitAnd, (const Value &left, const Value &right)) \ F(ReturnedValue, sub, (const Value &left, const Value &right)) \ F(ReturnedValue, mul, (const Value &left, const Value &right)) \ F(ReturnedValue, div, (const Value &left, const Value &right)) \ @@ -200,28 +179,18 @@ struct ExceptionCheck<void (*)(QV4::NoThrowEngine *, A, B, C)> { F(Bool, compareInstanceof, (ExecutionEngine *engine, const Value &left, const Value &right)) \ F(Bool, compareIn, (ExecutionEngine *engine, const Value &left, const Value &right)) \ \ - /* conversions */ \ - F(Bool, toBoolean, (const Value &value)) \ - F(ReturnedValue, toDouble, (const Value &value)) \ - F(int, toInt, (const Value &value)) \ - F(int, doubleToInt, (const double &d)) \ - F(unsigned, toUInt, (const Value &value)) \ - F(unsigned, doubleToUInt, (const double &d)) \ + F(ReturnedValue, regexpLiteral, (ExecutionEngine *engine, int id)) \ \ /* qml */ \ - F(ReturnedValue, getQmlContext, (NoThrowEngine *engine)) \ - F(ReturnedValue, getQmlImportedScripts, (NoThrowEngine *engine)) \ - F(ReturnedValue, getQmlSingleton, (NoThrowEngine *engine, int nameIndex)) \ - F(ReturnedValue, getQmlAttachedProperty, (ExecutionEngine *engine, int attachedPropertiesId, int propertyIndex)) \ - F(ReturnedValue, getQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)) \ - F(ReturnedValue, getQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)) \ - F(ReturnedValue, getQmlQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, bool captureRequired)) \ - F(ReturnedValue, getQmlSingletonQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, bool captureRequired)) \ - F(ReturnedValue, getQmlIdObject, (ExecutionEngine *engine, const Value &context, uint index)) \ - \ - F(void, setQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)) \ - F(void, setQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)) \ - F(void, setQmlQObjectProperty, (ExecutionEngine *engine, const Value &object, int propertyIndex, const Value &value)) + F(ReturnedValue, loadQmlContext, (NoThrowEngine *engine)) \ + F(ReturnedValue, loadQmlImportedScripts, (NoThrowEngine *engine)) \ + F(ReturnedValue, loadQmlSingleton, (NoThrowEngine *engine, int nameIndex)) \ + F(ReturnedValue, loadQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)) \ + F(ReturnedValue, loadQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, bool captureRequired)) \ + F(ReturnedValue, loadQmlIdObject, (ExecutionEngine *engine, const Value &context, uint index)) \ + \ + F(void, storeQmlScopeObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)) \ + F(void, storeQmlContextObjectProperty, (ExecutionEngine *engine, const Value &context, int propertyIndex, const Value &value)) \ struct Q_QML_PRIVATE_EXPORT Runtime { Runtime(); |