diff options
Diffstat (limited to 'src/qml/jsruntime/qv4objectiterator_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4objectiterator_p.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4objectiterator_p.h b/src/qml/jsruntime/qv4objectiterator_p.h index dfd9b0fb34..4398ea9b5a 100644 --- a/src/qml/jsruntime/qv4objectiterator_p.h +++ b/src/qml/jsruntime/qv4objectiterator_p.h @@ -67,17 +67,17 @@ private: ObjectIterator(Value *scratch1, Value *scratch2, uint flags); // Constructor that requires calling init() }; +namespace Heap { +struct ForEachIteratorObject : Object { + ForEachIteratorObject(QV4::ExecutionEngine *engine, QV4::Object *o); + ObjectIterator it; + Value workArea[2]; +}; + +} + struct ForEachIteratorObject: Object { - struct Data : Heap::Object { - Data(ExecutionEngine *engine, QV4::Object *o) - : Heap::Object(engine) - , it(workArea, workArea + 1, o, ObjectIterator::EnumerableOnly|ObjectIterator::WithProtoChain) { - setVTable(staticVTable()); - } - ObjectIterator it; - Value workArea[2]; - }; - V4_OBJECT(Object) + V4_OBJECT2(ForEachIteratorObject, Object) Q_MANAGED_TYPE(ForeachIteratorObject) ReturnedValue nextPropertyName() { return d()->it.nextPropertyNameAsString(); } @@ -86,6 +86,14 @@ protected: static void markObjects(Heap::Base *that, ExecutionEngine *e); }; +inline +Heap::ForEachIteratorObject::ForEachIteratorObject(QV4::ExecutionEngine *engine, QV4::Object *o) + : Heap::Object(engine) + , it(workArea, workArea + 1, o, ObjectIterator::EnumerableOnly|ObjectIterator::WithProtoChain) +{ + setVTable(QV4::ForEachIteratorObject::staticVTable()); +} + } |