diff options
Diffstat (limited to 'src/qml/jsruntime/qv4vme_moth.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4vme_moth.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 5daead19d2..9fd57e0dcb 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -959,6 +959,12 @@ QV4::ReturnedValue VME::interpret(CppStackFrame &frame, const uchar *code) CHECK_EXCEPTION; MOTH_END_INSTR(GetIterator) + MOTH_BEGIN_INSTR(IteratorNext) + STORE_ACC(); + acc = Runtime::method_iteratorNext(engine, accumulator); + CHECK_EXCEPTION; + MOTH_END_INSTR(IteratorNext) + MOTH_BEGIN_INSTR(DeleteMember) if (!Runtime::method_deleteMember(engine, STACK_VALUE(base), member)) { if (function->isStrict()) { @@ -1086,6 +1092,11 @@ QV4::ReturnedValue VME::interpret(CppStackFrame &frame, const uchar *code) code += offset; MOTH_END_INSTR(JumpNotUndefined) + MOTH_BEGIN_INSTR(JumpEmpty) + if (Q_UNLIKELY(acc == QV4::Primitive::emptyValue().asReturnedValue())) + code += offset; + MOTH_END_INSTR(JumpEmpty) + MOTH_BEGIN_INSTR(CmpEqNull) acc = Encode(ACC.isNullOrUndefined()); MOTH_END_INSTR(CmpEqNull) |