diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 1 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine_p.h | 1 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4functionobject.cpp | 2 |
3 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index aa1f01636f..5372ef8f07 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -216,6 +216,7 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) emptyClass = new (classPool.allocate(sizeof(InternalClass))) InternalClass(this); executionContextClass = InternalClass::create(this, ExecutionContext::staticVTable(), 0); + constructClass = InternalClass::create(this, Object::staticVTable(), 0); stringClass = InternalClass::create(this, String::staticVTable(), 0); regExpValueClass = InternalClass::create(this, RegExp::staticVTable(), 0); diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index b2fd290265..8620913ae8 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -200,6 +200,7 @@ public: QQmlJS::MemoryPool classPool; InternalClass *emptyClass; InternalClass *executionContextClass; + InternalClass *constructClass; InternalClass *stringClass; InternalClass *objectClass; diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index 6bd56d8fb2..e048bf1646 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -540,7 +540,7 @@ InternalClass *SimpleScriptFunction::internalClassForConstructor() Scope scope(internalClass->engine); ScopedObject p(scope, proto); if (p) - classForConstructor = InternalClass::create(scope.engine, Object::staticVTable(), p.getPointer()); + classForConstructor = internalClass->engine->constructClass->changePrototype(p.getPointer()); else classForConstructor = scope.engine->objectClass; |