diff options
author | Lars Knoll <[email protected]> | 2017-09-01 11:48:15 +0200 |
---|---|---|
committer | Lars Knoll <[email protected]> | 2017-09-02 07:12:17 +0000 |
commit | 74c8fe86755af485f8d0a47799d6d50f00070f05 (patch) | |
tree | 9e3d8c51d46d9f0fa2555cc77d184d6b3ee1be7d /src/qml/jsruntime/qv4lookup.cpp | |
parent | a91383545c6f487cff61f401d11f1e85939222e9 (diff) |
Always set the correct FunctionObject when calling JS functions
Renamed ScopedCallData to JSCall, enforced passing a JS
FunctionObject to it, and added call() and callAsConstructor()
methods to it.
Change-Id: I30db65c9765c2896b5909fe2105c0934c6dad861
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4lookup.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4lookup.cpp | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index 392ab565b0..c612e8450c 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -400,9 +400,9 @@ ReturnedValue Lookup::getterAccessor0(Lookup *l, ExecutionEngine *engine, const if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = object; - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + jsCall->thisObject = object; + return jsCall.call(); } } l->getter = getterFallback; @@ -422,9 +422,9 @@ ReturnedValue Lookup::getterAccessor1(Lookup *l, ExecutionEngine *engine, const if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = object; - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + jsCall->thisObject = object; + return jsCall.call(); } } l->getter = getterFallback; @@ -447,9 +447,9 @@ ReturnedValue Lookup::getterAccessor2(Lookup *l, ExecutionEngine *engine, const if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = object; - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + jsCall->thisObject = object; + return jsCall.call(); } } } @@ -502,9 +502,9 @@ ReturnedValue Lookup::primitiveGetterAccessor0(Lookup *l, ExecutionEngine *engin if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = object; - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + jsCall->thisObject = object; + return jsCall.call(); } } l->getter = getterGeneric; @@ -522,9 +522,9 @@ ReturnedValue Lookup::primitiveGetterAccessor1(Lookup *l, ExecutionEngine *engin if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = object; - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + jsCall->thisObject = object; + return jsCall.call(); } } l->getter = getterGeneric; @@ -641,9 +641,8 @@ ReturnedValue Lookup::globalGetterAccessor0(Lookup *l, ExecutionEngine *engine) if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = Primitive::undefinedValue(); - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + return jsCall.call(); } l->globalGetter = globalGetterGeneric; return globalGetterGeneric(l, engine); @@ -659,9 +658,8 @@ ReturnedValue Lookup::globalGetterAccessor1(Lookup *l, ExecutionEngine *engine) if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = Primitive::undefinedValue(); - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + return jsCall.call(); } l->globalGetter = globalGetterGeneric; return globalGetterGeneric(l, engine); @@ -680,9 +678,8 @@ ReturnedValue Lookup::globalGetterAccessor2(Lookup *l, ExecutionEngine *engine) if (!getter) return Encode::undefined(); - ScopedCallData callData(scope, 0); - callData->thisObject = Primitive::undefinedValue(); - return getter->call(callData); + JSCall jsCall(scope, getter, 0); + return jsCall.call(); } } } |