diff options
| -rw-r--r-- | src/qml/compiler/qv4codegen.cpp | 34 | ||||
| -rw-r--r-- | src/qml/compiler/qv4instr_moth.cpp | 1 | ||||
| -rw-r--r-- | src/qml/compiler/qv4instr_moth_p.h | 2 | ||||
| -rw-r--r-- | src/qml/jit/qv4jit.cpp | 5 | ||||
| -rw-r--r-- | src/qml/jit/qv4jit_p.h | 2 | ||||
| -rw-r--r-- | src/qml/jsruntime/qv4runtime.cpp | 4 | ||||
| -rw-r--r-- | src/qml/jsruntime/qv4runtimeapi_p.h | 2 | ||||
| -rw-r--r-- | src/qml/jsruntime/qv4vme_moth.cpp | 2 | ||||
| -rw-r--r-- | tests/auto/qml/ecmascripttests/TestExpectations | 63 |
9 files changed, 36 insertions, 79 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index 97b71ddbcc..ffb318168c 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -476,27 +476,44 @@ void Codegen::destructureElementList(const Codegen::Reference &array, PatternEle { RegisterScope scope(this); - int index = 0; + Reference iterator = Reference::fromStackSlot(this); + + array.loadInAccumulator(); + Instruction::GetIterator iteratorObjInstr; + iteratorObjInstr.iterator = 1; // ForEachType::Of + bytecodeGenerator->addInstruction(iteratorObjInstr); + iterator.storeConsumeAccumulator(); + + BytecodeGenerator::Label end = bytecodeGenerator->newLabel(); + for (PatternElementList *p = bindingList; p; p = p->next) { - for (Elision *elision = p->elision; elision; elision = elision->next) - ++index; + for (Elision *elision = p->elision; elision; elision = elision->next) { + iterator.loadInAccumulator(); + Instruction::IteratorNext next; + next.returnUndefinedWhenDone = true; + bytecodeGenerator->addInstruction(next); + } RegisterScope scope(this); - Reference idx = Reference::fromConst(this, Encode(index)); - Reference property = Reference::fromSubscript(array, idx); + iterator.loadInAccumulator(); + Instruction::IteratorNext next; + next.returnUndefinedWhenDone = true; + bytecodeGenerator->addInstruction(next); PatternElement *e = p->element; if (!e) continue; if (e->type != PatternElement::RestElement) { - initializeAndDestructureBindingElement(e, property); - if (hasError) + initializeAndDestructureBindingElement(e, Reference::fromAccumulator(this)); + if (hasError) { + end.link(); return; + } } else { throwSyntaxError(bindingList->firstSourceLocation(), QString::fromLatin1("Support for rest elements in binding arrays not implemented!")); } - ++index; } + end.link(); } void Codegen::destructurePattern(Pattern *p, const Reference &rhs) @@ -2666,6 +2683,7 @@ bool Codegen::visit(ForEachStatement *ast) in.link(); iterator.loadInAccumulator(); Instruction::IteratorNext next; + next.returnUndefinedWhenDone = false; bytecodeGenerator->addInstruction(next); Instruction::JumpEmpty jump; BytecodeGenerator::Jump done = bytecodeGenerator->addJumpInstruction(jump); diff --git a/src/qml/compiler/qv4instr_moth.cpp b/src/qml/compiler/qv4instr_moth.cpp index 58aa7d7cfd..7446848fb5 100644 --- a/src/qml/compiler/qv4instr_moth.cpp +++ b/src/qml/compiler/qv4instr_moth.cpp @@ -434,6 +434,7 @@ void dumpBytecode(const char *code, int len, int nLocals, int nFormals, int /*st MOTH_END_INSTR(GetIterator) MOTH_BEGIN_INSTR(IteratorNext) + d << returnUndefinedWhenDone; MOTH_END_INSTR(IteratorNext) MOTH_BEGIN_INSTR(DeleteMember) diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h index 301a43a519..de01b808e9 100644 --- a/src/qml/compiler/qv4instr_moth_p.h +++ b/src/qml/compiler/qv4instr_moth_p.h @@ -122,7 +122,7 @@ QT_BEGIN_NAMESPACE #define INSTR_PopScriptContext(op) INSTRUCTION(op, PopScriptContext, 0) #define INSTR_PopContext(op) INSTRUCTION(op, PopContext, 1, reg) #define INSTR_GetIterator(op) INSTRUCTION(op, GetIterator, 1, iterator) -#define INSTR_IteratorNext(op) INSTRUCTION(op, IteratorNext, 0) +#define INSTR_IteratorNext(op) INSTRUCTION(op, IteratorNext, 1, returnUndefinedWhenDone) #define INSTR_DeleteMember(op) INSTRUCTION(op, DeleteMember, 2, member, base) #define INSTR_DeleteSubscript(op) INSTRUCTION(op, DeleteSubscript, 2, base, index) #define INSTR_DeleteName(op) INSTRUCTION(op, DeleteName, 1, name) diff --git a/src/qml/jit/qv4jit.cpp b/src/qml/jit/qv4jit.cpp index 77024176ae..e0a5a0590c 100644 --- a/src/qml/jit/qv4jit.cpp +++ b/src/qml/jit/qv4jit.cpp @@ -714,10 +714,11 @@ void BaselineJIT::generate_GetIterator(int iterator) as->checkException(); } -void BaselineJIT::generate_IteratorNext() +void BaselineJIT::generate_IteratorNext(int returnUndefinedWhenDone) { as->saveAccumulatorInFrame(); - as->prepareCallWithArgCount(2); + as->prepareCallWithArgCount(3); + as->passInt32AsArg(returnUndefinedWhenDone, 2); as->passAccumulatorAsArg(1); as->passEngineAsArg(0); JIT_GENERATE_RUNTIME_CALL(Runtime::method_iteratorNext, Assembler::ResultInAccumulator); diff --git a/src/qml/jit/qv4jit_p.h b/src/qml/jit/qv4jit_p.h index d395ea908c..942b96071f 100644 --- a/src/qml/jit/qv4jit_p.h +++ b/src/qml/jit/qv4jit_p.h @@ -186,7 +186,7 @@ public: void generate_PopScriptContext() override; void generate_PopContext(int reg) override; void generate_GetIterator(int iterator) override; - void generate_IteratorNext() override; + void generate_IteratorNext(int returnUndefinedWhenDone) override; void generate_DeleteMember(int member, int base) override; void generate_DeleteSubscript(int base, int index) override; void generate_DeleteName(int name) override; diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index eadbcb9557..312ab6f2d3 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -715,7 +715,7 @@ ReturnedValue Runtime::method_getIterator(ExecutionEngine *engine, const Value & return engine->newForInIteratorObject(o)->asReturnedValue(); } -ReturnedValue Runtime::method_iteratorNext(ExecutionEngine *engine, const Value &iterator) +ReturnedValue Runtime::method_iteratorNext(ExecutionEngine *engine, const Value &iterator, int returnUndefinedWhenDone) { Q_ASSERT(iterator.isObject()); @@ -729,7 +729,7 @@ ReturnedValue Runtime::method_iteratorNext(ExecutionEngine *engine, const Value return engine->throwTypeError(); ScopedValue v(scope, o->get(engine->id_done())); if (v->toBoolean() == true) - return Primitive::emptyValue().asReturnedValue(); + return returnUndefinedWhenDone ? Encode::undefined() : Primitive::emptyValue().asReturnedValue(); return o->get(engine->id_value()); } diff --git a/src/qml/jsruntime/qv4runtimeapi_p.h b/src/qml/jsruntime/qv4runtimeapi_p.h index 1e14c23d7e..0b46a1627d 100644 --- a/src/qml/jsruntime/qv4runtimeapi_p.h +++ b/src/qml/jsruntime/qv4runtimeapi_p.h @@ -146,7 +146,7 @@ struct ExceptionCheck<void (*)(QV4::NoThrowEngine *, A, B, C)> { \ /* for-in, for-of and array destructuring */ \ F(ReturnedValue, getIterator, (ExecutionEngine *engine, const Value &in, int iterator)) \ - F(ReturnedValue, iteratorNext, (ExecutionEngine *engine, const Value &iterator)) \ + F(ReturnedValue, iteratorNext, (ExecutionEngine *engine, const Value &iterator, int returnUndefinedWhenDone)) \ \ /* unary operators */ \ F(ReturnedValue, uMinus, (const Value &value)) \ diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 9fd57e0dcb..3565ec10ae 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -961,7 +961,7 @@ QV4::ReturnedValue VME::interpret(CppStackFrame &frame, const uchar *code) MOTH_BEGIN_INSTR(IteratorNext) STORE_ACC(); - acc = Runtime::method_iteratorNext(engine, accumulator); + acc = Runtime::method_iteratorNext(engine, accumulator, returnUndefinedWhenDone); CHECK_EXCEPTION; MOTH_END_INSTR(IteratorNext) diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations index c2607e60d7..6d32883cb1 100644 --- a/tests/auto/qml/ecmascripttests/TestExpectations +++ b/tests/auto/qml/ecmascripttests/TestExpectations @@ -3325,13 +3325,11 @@ language/expressions/assignment/dstr-array-elem-init-fn-name-class.js fails language/expressions/assignment/dstr-array-elem-init-let.js fails language/expressions/assignment/dstr-array-elem-iter-nrml-close-err.js fails language/expressions/assignment/dstr-array-elem-iter-nrml-close-null.js fails -language/expressions/assignment/dstr-array-elem-iter-nrml-close-skip.js fails language/expressions/assignment/dstr-array-elem-iter-nrml-close.js fails language/expressions/assignment/dstr-array-elem-iter-rtrn-close-err.js fails language/expressions/assignment/dstr-array-elem-iter-rtrn-close-null.js fails language/expressions/assignment/dstr-array-elem-iter-rtrn-close.js fails language/expressions/assignment/dstr-array-elem-iter-thrw-close-err.js fails -language/expressions/assignment/dstr-array-elem-iter-thrw-close-skip.js fails language/expressions/assignment/dstr-array-elem-iter-thrw-close.js fails language/expressions/assignment/dstr-array-elem-nested-array-yield-expr.js fails language/expressions/assignment/dstr-array-elem-nested-array-yield-ident-valid.js sloppyFails @@ -3351,13 +3349,11 @@ language/expressions/assignment/dstr-array-elem-trlg-iter-elision-iter-nrml-clos language/expressions/assignment/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-nrml-close-err.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-nrml-close-null.js fails -language/expressions/assignment/dstr-array-elem-trlg-iter-list-nrml-close-skip.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-nrml-close.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-rtrn-close-err.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-rtrn-close-null.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-rtrn-close.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close-err.js fails -language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close-skip.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js fails language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js fails @@ -3371,19 +3367,9 @@ language/expressions/assignment/dstr-array-elision-iter-nrml-close-err.js fails language/expressions/assignment/dstr-array-elision-iter-nrml-close-null.js fails language/expressions/assignment/dstr-array-elision-iter-nrml-close-skip.js fails language/expressions/assignment/dstr-array-elision-iter-nrml-close.js fails -language/expressions/assignment/dstr-array-elision-val-bool.js fails -language/expressions/assignment/dstr-array-elision-val-null.js fails -language/expressions/assignment/dstr-array-elision-val-num.js fails -language/expressions/assignment/dstr-array-elision-val-symbol.js fails -language/expressions/assignment/dstr-array-elision-val-undef.js fails language/expressions/assignment/dstr-array-empty-iter-close-err.js fails language/expressions/assignment/dstr-array-empty-iter-close-null.js fails language/expressions/assignment/dstr-array-empty-iter-close.js fails -language/expressions/assignment/dstr-array-empty-val-bool.js fails -language/expressions/assignment/dstr-array-empty-val-null.js fails -language/expressions/assignment/dstr-array-empty-val-num.js fails -language/expressions/assignment/dstr-array-empty-val-symbol.js fails -language/expressions/assignment/dstr-array-empty-val-undef.js fails language/expressions/assignment/dstr-array-iteration.js fails language/expressions/assignment/dstr-array-rest-after-element.js fails language/expressions/assignment/dstr-array-rest-after-elision.js fails @@ -4365,7 +4351,6 @@ language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/function/dstr-ary-ptrn-elision-step-err.js fails language/expressions/function/dstr-ary-ptrn-elision.js fails language/expressions/function/dstr-ary-ptrn-rest-ary-elem.js fails language/expressions/function/dstr-ary-ptrn-rest-ary-elision.js fails @@ -4388,7 +4373,6 @@ language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js f language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/function/dstr-dflt-ary-ptrn-elision-step-err.js fails language/expressions/function/dstr-dflt-ary-ptrn-elision.js fails language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-elem.js fails language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-elision.js fails @@ -4439,7 +4423,6 @@ language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js fail language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/generators/dstr-ary-ptrn-elision-step-err.js fails language/expressions/generators/dstr-ary-ptrn-elision.js fails language/expressions/generators/dstr-ary-ptrn-rest-ary-elem.js fails language/expressions/generators/dstr-ary-ptrn-rest-ary-elision.js fails @@ -4462,7 +4445,6 @@ language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/generators/dstr-dflt-ary-ptrn-elision-step-err.js fails language/expressions/generators/dstr-dflt-ary-ptrn-elision.js fails language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js fails language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elision.js fails @@ -4579,7 +4561,6 @@ language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/object/dstr-gen-meth-ary-ptrn-elision-step-err.js fails language/expressions/object/dstr-gen-meth-ary-ptrn-elision.js fails language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elem.js fails language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elision.js fails @@ -4602,7 +4583,6 @@ language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cla language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js fails language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision.js fails language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js fails language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js fails @@ -4635,7 +4615,6 @@ language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-class.js fai language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/object/dstr-meth-ary-ptrn-elision-step-err.js fails language/expressions/object/dstr-meth-ary-ptrn-elision.js fails language/expressions/object/dstr-meth-ary-ptrn-rest-ary-elem.js fails language/expressions/object/dstr-meth-ary-ptrn-rest-ary-elision.js fails @@ -4658,7 +4637,6 @@ language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.j language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-step-err.js fails language/expressions/object/dstr-meth-dflt-ary-ptrn-elision.js fails language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js fails language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js fails @@ -5936,7 +5914,6 @@ language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/const/dstr-ary-ptrn-elision-step-err.js fails language/statements/const/dstr-ary-ptrn-elision.js fails language/statements/const/dstr-ary-ptrn-rest-ary-elem.js fails language/statements/const/dstr-ary-ptrn-rest-ary-elision.js fails @@ -5981,16 +5958,13 @@ language/statements/for-of/body-dstr-assign-error.js fails language/statements/for-of/body-put-error.js fails language/statements/for-of/dstr-array-elem-init-fn-name-class.js fails language/statements/for-of/dstr-array-elem-init-let.js fails -language/statements/for-of/dstr-array-elem-iter-get-err.js fails language/statements/for-of/dstr-array-elem-iter-nrml-close-err.js fails language/statements/for-of/dstr-array-elem-iter-nrml-close-null.js fails -language/statements/for-of/dstr-array-elem-iter-nrml-close-skip.js fails language/statements/for-of/dstr-array-elem-iter-nrml-close.js fails language/statements/for-of/dstr-array-elem-iter-rtrn-close-err.js fails language/statements/for-of/dstr-array-elem-iter-rtrn-close-null.js fails language/statements/for-of/dstr-array-elem-iter-rtrn-close.js fails language/statements/for-of/dstr-array-elem-iter-thrw-close-err.js fails -language/statements/for-of/dstr-array-elem-iter-thrw-close-skip.js fails language/statements/for-of/dstr-array-elem-iter-thrw-close.js fails language/statements/for-of/dstr-array-elem-nested-array-yield-expr.js fails language/statements/for-of/dstr-array-elem-nested-array-yield-ident-valid.js sloppyFails @@ -6008,16 +5982,13 @@ language/statements/for-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-err language/statements/for-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-null.js fails language/statements/for-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js fails language/statements/for-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js fails -language/statements/for-of/dstr-array-elem-trlg-iter-get-err.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-nrml-close-err.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-nrml-close-null.js fails -language/statements/for-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-nrml-close.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-rtrn-close.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close-err.js fails -language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close-skip.js fails language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close.js fails language/statements/for-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js fails language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js fails @@ -6027,25 +5998,13 @@ language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close-err.js fail language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close-skip.js fails language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close.js fails language/statements/for-of/dstr-array-elision-iter-abpt.js fails -language/statements/for-of/dstr-array-elision-iter-get-err.js fails language/statements/for-of/dstr-array-elision-iter-nrml-close-err.js fails language/statements/for-of/dstr-array-elision-iter-nrml-close-null.js fails language/statements/for-of/dstr-array-elision-iter-nrml-close-skip.js fails language/statements/for-of/dstr-array-elision-iter-nrml-close.js fails -language/statements/for-of/dstr-array-elision-val-bool.js fails -language/statements/for-of/dstr-array-elision-val-null.js fails -language/statements/for-of/dstr-array-elision-val-num.js fails -language/statements/for-of/dstr-array-elision-val-symbol.js fails -language/statements/for-of/dstr-array-elision-val-undef.js fails language/statements/for-of/dstr-array-empty-iter-close-err.js fails language/statements/for-of/dstr-array-empty-iter-close-null.js fails language/statements/for-of/dstr-array-empty-iter-close.js fails -language/statements/for-of/dstr-array-empty-iter-get-err.js fails -language/statements/for-of/dstr-array-empty-val-bool.js fails -language/statements/for-of/dstr-array-empty-val-null.js fails -language/statements/for-of/dstr-array-empty-val-num.js fails -language/statements/for-of/dstr-array-empty-val-symbol.js fails -language/statements/for-of/dstr-array-empty-val-undef.js fails language/statements/for-of/dstr-array-iteration.js fails language/statements/for-of/dstr-array-rest-after-element.js fails language/statements/for-of/dstr-array-rest-after-elision.js fails @@ -6119,8 +6078,6 @@ language/statements/for-of/dstr-const-ary-ptrn-elem-obj-prop-id-init.js fails language/statements/for-of/dstr-const-ary-ptrn-elem-obj-prop-id.js fails language/statements/for-of/dstr-const-ary-ptrn-elem-obj-val-null.js fails language/statements/for-of/dstr-const-ary-ptrn-elem-obj-val-undef.js fails -language/statements/for-of/dstr-const-ary-ptrn-elision-iter-close.js fails -language/statements/for-of/dstr-const-ary-ptrn-elision-step-err.js fails language/statements/for-of/dstr-const-ary-ptrn-elision.js fails language/statements/for-of/dstr-const-ary-ptrn-rest-ary-elem.js fails language/statements/for-of/dstr-const-ary-ptrn-rest-ary-elision.js fails @@ -6171,8 +6128,6 @@ language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/for-of/dstr-let-ary-ptrn-elision-iter-close.js fails -language/statements/for-of/dstr-let-ary-ptrn-elision-step-err.js fails language/statements/for-of/dstr-let-ary-ptrn-elision.js fails language/statements/for-of/dstr-let-ary-ptrn-rest-ary-elem.js fails language/statements/for-of/dstr-let-ary-ptrn-rest-ary-elision.js fails @@ -6232,8 +6187,6 @@ language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/for-of/dstr-var-ary-ptrn-elision-iter-close.js fails -language/statements/for-of/dstr-var-ary-ptrn-elision-step-err.js fails language/statements/for-of/dstr-var-ary-ptrn-elision.js fails language/statements/for-of/dstr-var-ary-ptrn-rest-ary-elem.js fails language/statements/for-of/dstr-var-ary-ptrn-rest-ary-elision.js fails @@ -6298,8 +6251,6 @@ language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/for/dstr-const-ary-ptrn-elision-iter-close.js fails -language/statements/for/dstr-const-ary-ptrn-elision-step-err.js fails language/statements/for/dstr-const-ary-ptrn-elision.js fails language/statements/for/dstr-const-ary-ptrn-rest-ary-elem.js fails language/statements/for/dstr-const-ary-ptrn-rest-ary-elision.js fails @@ -6328,8 +6279,6 @@ language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/for/dstr-let-ary-ptrn-elision-iter-close.js fails -language/statements/for/dstr-let-ary-ptrn-elision-step-err.js fails language/statements/for/dstr-let-ary-ptrn-elision.js fails language/statements/for/dstr-let-ary-ptrn-rest-ary-elem.js fails language/statements/for/dstr-let-ary-ptrn-rest-ary-elision.js fails @@ -6350,7 +6299,6 @@ language/statements/for/dstr-let-obj-ptrn-id-init-fn-name-cover.js fails language/statements/for/dstr-let-obj-ptrn-id-init-fn-name-fn.js fails language/statements/for/dstr-let-obj-ptrn-id-init-fn-name-gen.js fails language/statements/for/dstr-var-ary-init-iter-close.js fails -language/statements/for/dstr-var-ary-init-iter-get-err.js fails language/statements/for/dstr-var-ary-ptrn-elem-ary-elision-init.js fails language/statements/for/dstr-var-ary-ptrn-elem-ary-rest-init.js fails language/statements/for/dstr-var-ary-ptrn-elem-ary-rest-iter.js fails @@ -6359,10 +6307,6 @@ language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/for/dstr-var-ary-ptrn-elem-id-iter-step-err.js fails -language/statements/for/dstr-var-ary-ptrn-elem-id-iter-val-err.js fails -language/statements/for/dstr-var-ary-ptrn-elision-iter-close.js fails -language/statements/for/dstr-var-ary-ptrn-elision-step-err.js fails language/statements/for/dstr-var-ary-ptrn-elision.js fails language/statements/for/dstr-var-ary-ptrn-rest-ary-elem.js fails language/statements/for/dstr-var-ary-ptrn-rest-ary-elision.js fails @@ -6406,7 +6350,6 @@ language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/function/dstr-ary-ptrn-elision-step-err.js fails language/statements/function/dstr-ary-ptrn-elision.js fails language/statements/function/dstr-ary-ptrn-rest-ary-elem.js fails language/statements/function/dstr-ary-ptrn-rest-ary-elision.js fails @@ -6429,7 +6372,6 @@ language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js fa language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/function/dstr-dflt-ary-ptrn-elision-step-err.js fails language/statements/function/dstr-dflt-ary-ptrn-elision.js fails language/statements/function/dstr-dflt-ary-ptrn-rest-ary-elem.js fails language/statements/function/dstr-dflt-ary-ptrn-rest-ary-elision.js fails @@ -6478,7 +6420,6 @@ language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/generators/dstr-ary-ptrn-elision-step-err.js fails language/statements/generators/dstr-ary-ptrn-elision.js fails language/statements/generators/dstr-ary-ptrn-rest-ary-elem.js fails language/statements/generators/dstr-ary-ptrn-rest-ary-elision.js fails @@ -6501,7 +6442,6 @@ language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/generators/dstr-dflt-ary-ptrn-elision-step-err.js fails language/statements/generators/dstr-dflt-ary-ptrn-elision.js fails language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js fails language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elision.js fails @@ -6561,7 +6501,6 @@ language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/let/dstr-ary-ptrn-elision-step-err.js fails language/statements/let/dstr-ary-ptrn-elision.js fails language/statements/let/dstr-ary-ptrn-rest-ary-elem.js fails language/statements/let/dstr-ary-ptrn-rest-ary-elision.js fails @@ -6616,7 +6555,6 @@ language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/try/dstr-ary-ptrn-elision-step-err.js fails language/statements/try/dstr-ary-ptrn-elision.js fails language/statements/try/dstr-ary-ptrn-rest-ary-elem.js fails language/statements/try/dstr-ary-ptrn-rest-ary-elision.js fails @@ -6650,7 +6588,6 @@ language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-class.js fails language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-cover.js fails language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-fn.js fails language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-gen.js fails -language/statements/variable/dstr-ary-ptrn-elision-step-err.js fails language/statements/variable/dstr-ary-ptrn-elision.js fails language/statements/variable/dstr-ary-ptrn-rest-ary-elem.js fails language/statements/variable/dstr-ary-ptrn-rest-ary-elision.js fails |
