diff options
Diffstat (limited to 'src/qml/jsruntime/qv4functionobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4functionobject.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index f09772115c..10118ea403 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -372,9 +372,9 @@ ReturnedValue ScriptFunction::construct(const Managed *that, CallData *callData) ScopedContext c(scope, f->scope()); ScopedValue result(scope); if (v4Function->canUseSimpleCall) - result = c->simpleCall(scope, callData, v4Function); + result = c->simpleCall(scope.engine, callData, v4Function); else - result = c->call(scope, callData, v4Function, f); + result = c->call(scope.engine, callData, v4Function, f); if (Q_UNLIKELY(v4->hasException)) return Encode::undefined(); @@ -394,12 +394,12 @@ ReturnedValue ScriptFunction::call(const Managed *that, CallData *callData) QV4::Function *v4Function = f->function(); Q_ASSERT(v4Function); - Scope scope(v4); - ScopedContext c(scope, f->scope()); + Value s = Value::fromHeapObject(f->scope()); + ExecutionContext *outer = static_cast<ExecutionContext *>(&s); if (v4Function->canUseSimpleCall) - return c->simpleCall(scope, callData, v4Function); + return outer->simpleCall(v4, callData, v4Function); else - return c->call(scope, callData, v4Function, f); + return outer->call(v4, callData, v4Function, f); } void Heap::ScriptFunction::init(QV4::ExecutionContext *scope, Function *function) |