diff options
-rw-r--r-- | src/qml/jsruntime/qv4arraydata_p.h | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine_p.h | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h index f127c75fb0..50b7b8a947 100644 --- a/src/qml/jsruntime/qv4arraydata_p.h +++ b/src/qml/jsruntime/qv4arraydata_p.h @@ -140,8 +140,8 @@ struct Q_QML_EXPORT SimpleArrayData : public ArrayData V4_ARRAYDATA SimpleArrayData(ExecutionEngine *engine) - : ArrayData(engine->emptyClass) - { setVTable(staticVTable()); } + : ArrayData(engine->simpleArrayDataClass) + {} uint len; uint offset; diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 1ffb3344bc..aa1f01636f 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -261,6 +261,8 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) ArrayPrototype *arrayPrototype = new (memoryManager) ArrayPrototype(arrayClass); arrayClass = arrayClass->changePrototype(arrayPrototype); + simpleArrayDataClass = InternalClass::create(this, SimpleArrayData::staticVTable(), 0); + InternalClass *argsClass = InternalClass::create(this, ArgumentsObject::staticVTable(), objectPrototype); argsClass = argsClass->addMember(id_length, Attr_NotEnumerable); argumentsObjectClass = argsClass->addMember(id_callee, Attr_Data|Attr_NotEnumerable); diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 6ad822d3b4..b2fd290265 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -204,6 +204,7 @@ public: InternalClass *objectClass; InternalClass *arrayClass; + InternalClass *simpleArrayDataClass; InternalClass *stringObjectClass; InternalClass *booleanClass; InternalClass *numberClass; |