From bd0ae0dffc06a553ba13f7f91982145d52e4c2fd Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Sat, 6 May 2017 15:50:50 -0400 Subject: [PATCH] [[FIX]] Correct implementation of spread/rest Previously, the spread/rest operator was implemented as a "prefix" operator. This incorrectly enabled its use in generic expression contexts, as in: ...x; Re-implement as an "infix" operator and implement a helper function for parsing it in only those contexts where it is valid: - parameter lists - call expressions - array initializers - destructuring element patterns This change triggers failures in a number of Test262 tests that were previously interpreted as "valid." These tests concern the "object spread/rest" proposal, but support for this proposal has not yet been implemented in JSHint. Therefor, their previous "passing" status was circumstantial, and the newly-identified error should be marked as "expected." --- src/jshint.js | 128 ++--- tests/test262/expectations.txt | 839 +++++++++++---------------------- tests/unit/parser.js | 84 +++- 3 files changed, 402 insertions(+), 649 deletions(-) diff --git a/src/jshint.js b/src/jshint.js index cf3865355..04ae83d97 100644 --- a/src/jshint.js +++ b/src/jshint.js @@ -1493,6 +1493,34 @@ var JSHINT = (function() { return val; } + /** + * Consume the "..." token which designates "spread" and "rest" operations if + * it is present. If the operator is repeated, consume every repetition, and + * issue a single error describing the syntax error. + * + * @returns {boolean} a value describing whether or not any tokens were + * consumed in this way + */ + function spreadrest() { + if (!checkPunctuator(state.tokens.next, "...")) { + return false; + } + + if (!state.inES6(true)) { + warning("W119", state.tokens.next, "spread/rest operator", "6"); + } + advance(); + + if (checkPunctuator(state.tokens.next, "...")) { + warning("E024", state.tokens.next, "..."); + while (checkPunctuator(state.tokens.next, "...")) { + advance(); + } + } + + return true; + } + // prop means that this identifier is that of an object property function identifier(prop) { var i = optionalidentifier(prop, false); @@ -1500,36 +1528,14 @@ var JSHINT = (function() { return i; } - // parameter destructuring with rest operator - if (state.tokens.next.value === "...") { - if (!state.inES6(true)) { - warning("W119", state.tokens.next, "spread/rest operator", "6"); - } - advance(); - - if (checkPunctuator(state.tokens.next, "...")) { - warning("E024", state.tokens.next, "..."); - while (checkPunctuator(state.tokens.next, "...")) { - advance(); - } - } - - if (!state.tokens.next.identifier) { - warning("E024", state.tokens.curr, state.tokens.next.id); - return; - } - - return identifier(prop); - } else { - error("E030", state.tokens.next, state.tokens.next.value); + error("E030", state.tokens.next, state.tokens.next.value); - // The token should be consumed after a warning is issued so the parser - // can continue as though an identifier were found. The semicolon token - // should not be consumed in this way so that the parser interprets it as - // a statement delimeter; - if (state.tokens.next.id !== ";") { - advance(); - } + // The token should be consumed after a warning is issued so the parser + // can continue as though an identifier were found. The semicolon token + // should not be consumed in this way so that the parser interprets it as + // a statement delimeter; + if (state.tokens.next.id !== ";") { + advance(); } } @@ -2259,51 +2265,7 @@ var JSHINT = (function() { return this; }); - prefix("...", function() { - if (!state.inES6(true)) { - warning("W119", this, "spread/rest operator", "6"); - } - - // TODO: Allow all AssignmentExpression - // once parsing permits. - // - // How to handle eg. number, boolean when the built-in - // prototype of may have an @@iterator definition? - // - // Number.prototype[Symbol.iterator] = function * () { - // yield this.valueOf(); - // }; - // - // var a = [ ...1 ]; - // console.log(a); // [1]; - // - // for (let n of [...10]) { - // console.log(n); - // } - // // 10 - // - // - // Boolean.prototype[Symbol.iterator] = function * () { - // yield this.valueOf(); - // }; - // - // var a = [ ...true ]; - // console.log(a); // [true]; - // - // for (let n of [...false]) { - // console.log(n); - // } - // // false - // - if (!state.tokens.next.identifier && - state.tokens.next.type !== "(string)" && - !checkPunctuators(state.tokens.next, ["[", "("])) { - - error("E030", state.tokens.next, state.tokens.next.value); - } - this.right = expression(150); - return this; - }); + infix("..."); prefix("!", function() { this.arity = "unary"; @@ -2467,6 +2429,8 @@ var JSHINT = (function() { if (state.tokens.next.id !== ")") { for (;;) { + spreadrest(); + p[p.length] = expression(10); n += 1; if (state.tokens.next.id !== ",") { @@ -2789,6 +2753,8 @@ var JSHINT = (function() { break; } + spreadrest(); + this.first.push(expression(10)); if (state.tokens.next.id === ",") { parseComma({ allowTrailing: true }); @@ -2914,7 +2880,7 @@ var JSHINT = (function() { } } } else { - if (checkPunctuator(state.tokens.next, "...")) pastRest = true; + pastRest = spreadrest(); ident = identifier(); if (ident) { paramsIds.push(ident); @@ -3464,8 +3430,6 @@ var JSHINT = (function() { nextInnerDE(); advance(")"); } else { - var is_rest = checkPunctuator(state.tokens.next, "..."); - if (isAssignment) { var assignTarget = expression(20); if (assignTarget) { @@ -3482,9 +3446,7 @@ var JSHINT = (function() { if (ident) { identifiers.push({ id: ident, token: state.tokens.curr }); } - return is_rest; } - return false; }; var assignmentProperty = function() { var id; @@ -3525,12 +3487,16 @@ var JSHINT = (function() { } var element_after_rest = false; while (!checkPunctuator(state.tokens.next, "]")) { - if (nextInnerDE() && !element_after_rest && + var isRest = spreadrest(); + + nextInnerDE(); + + if (isRest && !element_after_rest && checkPunctuator(state.tokens.next, ",")) { warning("W130", state.tokens.next); element_after_rest = true; } - if (checkPunctuator(state.tokens.next, "=")) { + if (!isRest && checkPunctuator(state.tokens.next, "=")) { if (checkPunctuator(state.tokens.prev, "...")) { advance("]"); } else { diff --git a/tests/test262/expectations.txt b/tests/test262/expectations.txt index 3286ae958..e0862c358 100644 --- a/tests/test262/expectations.txt +++ b/tests/test262/expectations.txt @@ -537,57 +537,9 @@ test/language/expressions/template-literal/invalid-hexidecimal-character-escape- test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js(default) test/language/expressions/template-literal/tv-utf16-escape-sequence.js(default) test/language/expressions/template-literal/tv-utf16-escape-sequence.js(strict mode) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/function/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/function/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/function/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/function/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/function/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/function/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/expressions/function/param-dflt-yield-non-strict.js(default) test/language/expressions/function/scope-param-rest-elem-var-close.js(default) test/language/expressions/function/scope-param-rest-elem-var-open.js(default) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/generators/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/generators/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/generators/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/generators/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/generators/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/expressions/generators/param-dflt-yield.js(default) test/language/expressions/generators/param-dflt-yield.js(strict mode) test/language/expressions/generators/scope-param-rest-elem-var-close.js(default) @@ -598,102 +550,6 @@ test/language/expressions/generators/yield-as-logical-or-expression.js(default) test/language/expressions/generators/yield-as-logical-or-expression.js(strict mode) test/language/expressions/generators/yield-star-after-newline.js(default) test/language/expressions/generators/yield-star-after-newline.js(strict mode) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-meth-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-meth-static-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/expressions/class/gen-method-param-dflt-yield.js(default) test/language/expressions/class/gen-method-param-dflt-yield.js(strict mode) test/language/expressions/class/getter-param-dflt.js(default) @@ -754,32 +610,10 @@ test/language/expressions/assignment/dstr-array-rest-lref-err.js(default) test/language/expressions/assignment/dstr-array-rest-lref-err.js(strict mode) test/language/expressions/assignment/dstr-array-rest-nested-array-iter-thrw-close-skip.js(default) test/language/expressions/assignment/dstr-array-rest-nested-array-iter-thrw-close-skip.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-array-null.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-array-null.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-array-undefined-hole.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-array-undefined-hole.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-array-undefined-own.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-array-undefined-own.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-array-undefined.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-array-undefined.js(strict mode) test/language/expressions/assignment/dstr-array-rest-nested-array-yield-expr.js(default) test/language/expressions/assignment/dstr-array-rest-nested-array-yield-expr.js(strict mode) test/language/expressions/assignment/dstr-array-rest-nested-array-yield-ident-valid.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-array.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-array.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-obj-null.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-obj-null.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-obj-undefined-hole.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-obj-undefined-hole.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-obj-undefined-own.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-obj-undefined-own.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-obj-undefined.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-obj-undefined.js(strict mode) -test/language/expressions/assignment/dstr-array-rest-nested-obj-yield-expr.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-obj-yield-expr.js(strict mode) test/language/expressions/assignment/dstr-array-rest-nested-obj-yield-ident-valid.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-obj.js(default) -test/language/expressions/assignment/dstr-array-rest-nested-obj.js(strict mode) test/language/expressions/assignment/dstr-array-rest-yield-expr.js(default) test/language/expressions/assignment/dstr-array-rest-yield-expr.js(strict mode) test/language/expressions/assignment/dstr-array-rest-yield-ident-valid.js(default) @@ -793,54 +627,6 @@ test/language/expressions/assignment/dstr-obj-prop-elem-target-yield-expr.js(str test/language/expressions/assignment/dstr-obj-prop-elem-target-yield-ident-valid.js(default) test/language/expressions/assignment/dstr-obj-prop-nested-array-yield-ident-valid.js(default) test/language/expressions/assignment/dstr-obj-prop-nested-obj-yield-ident-valid.js(default) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/object/dstr-meth-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/expressions/object/let-non-strict-access.js(default) test/language/expressions/object/let-non-strict-syntax.js(default) test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js(default) @@ -874,30 +660,6 @@ test/language/expressions/object/method-definition/yield-as-logical-or-expressio test/language/expressions/object/method-definition/yield-as-logical-or-expression.js(strict mode) test/language/expressions/object/method-definition/yield-star-after-newline.js(default) test/language/expressions/object/method-definition/yield-star-after-newline.js(strict mode) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/arrow-function/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/expressions/arrow-function/scope-param-rest-elem-var-close.js(default) test/language/expressions/arrow-function/scope-param-rest-elem-var-open.js(default) test/language/expressions/arrow-function/syntax/arrowparameters-bindingidentifier-yield.js(default) @@ -1111,30 +873,6 @@ test/language/statements/for/dstr-const-obj-ptrn-prop-obj-value-undef.js(default test/language/statements/for/dstr-const-obj-ptrn-prop-obj-value-undef.js(strict mode) test/language/statements/for/dstr-const-obj-ptrn-prop-obj.js(default) test/language/statements/for/dstr-const-obj-ptrn-prop-obj.js(strict mode) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/for/dstr-let-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/for/dstr-let-ary-ptrn-rest-obj-id.js(default) -test/language/statements/for/dstr-let-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/for/dstr-let-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/for/dstr-let-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/for/dstr-var-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/for/dstr-var-ary-ptrn-rest-obj-id.js(default) -test/language/statements/for/dstr-var-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/for/dstr-var-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/for/dstr-var-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/for/head-const-fresh-binding-per-iteration.js(default) test/language/statements/for/head-const-fresh-binding-per-iteration.js(strict mode) test/language/statements/for/head-lhs-let.js(default) @@ -1164,30 +902,6 @@ test/language/statements/if/if-stmt-else-decl-strict.js(strict mode) test/language/statements/if/if-stmt-else-fun-strict.js(strict mode) test/language/statements/if/if-stmt-else-gen.js(default) test/language/statements/if/if-stmt-else-gen.js(strict mode) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/generators/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/generators/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/statements/generators/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/generators/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/generators/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/generators/param-dflt-yield.js(default) test/language/statements/generators/param-dflt-yield.js(strict mode) test/language/statements/generators/scope-param-rest-elem-var-close.js(default) @@ -1211,30 +925,6 @@ test/language/statements/labeled/decl-gen.js(strict mode) test/language/statements/labeled/decl-let.js(default) test/language/statements/labeled/decl-let.js(strict mode) test/language/statements/labeled/value-yield-non-strict.js(default) -test/language/statements/function/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/function/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/function/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/function/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/function/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/function/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/function/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/function/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/function/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/statements/function/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/function/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/function/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/function/dstr-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/function/param-dflt-yield-non-strict.js(default) test/language/statements/function/scope-param-rest-elem-var-close.js(default) test/language/statements/function/scope-param-rest-elem-var-open.js(default) @@ -1314,59 +1004,13 @@ test/language/statements/for-of/dstr-array-rest-lref-err.js(default) test/language/statements/for-of/dstr-array-rest-lref-err.js(strict mode) test/language/statements/for-of/dstr-array-rest-nested-array-iter-thrw-close-skip.js(default) test/language/statements/for-of/dstr-array-rest-nested-array-iter-thrw-close-skip.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-array-null.js(default) -test/language/statements/for-of/dstr-array-rest-nested-array-null.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-array-undefined-hole.js(default) -test/language/statements/for-of/dstr-array-rest-nested-array-undefined-hole.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-array-undefined-own.js(default) -test/language/statements/for-of/dstr-array-rest-nested-array-undefined-own.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-array-undefined.js(default) -test/language/statements/for-of/dstr-array-rest-nested-array-undefined.js(strict mode) test/language/statements/for-of/dstr-array-rest-nested-array-yield-expr.js(default) test/language/statements/for-of/dstr-array-rest-nested-array-yield-expr.js(strict mode) test/language/statements/for-of/dstr-array-rest-nested-array-yield-ident-valid.js(default) -test/language/statements/for-of/dstr-array-rest-nested-array.js(default) -test/language/statements/for-of/dstr-array-rest-nested-array.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-obj-null.js(default) -test/language/statements/for-of/dstr-array-rest-nested-obj-null.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-obj-undefined-hole.js(default) -test/language/statements/for-of/dstr-array-rest-nested-obj-undefined-hole.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-obj-undefined-own.js(default) -test/language/statements/for-of/dstr-array-rest-nested-obj-undefined-own.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-obj-undefined.js(default) -test/language/statements/for-of/dstr-array-rest-nested-obj-undefined.js(strict mode) -test/language/statements/for-of/dstr-array-rest-nested-obj-yield-expr.js(default) -test/language/statements/for-of/dstr-array-rest-nested-obj-yield-expr.js(strict mode) test/language/statements/for-of/dstr-array-rest-nested-obj-yield-ident-valid.js(default) -test/language/statements/for-of/dstr-array-rest-nested-obj.js(default) -test/language/statements/for-of/dstr-array-rest-nested-obj.js(strict mode) test/language/statements/for-of/dstr-array-rest-yield-expr.js(default) test/language/statements/for-of/dstr-array-rest-yield-expr.js(strict mode) test/language/statements/for-of/dstr-array-rest-yield-ident-valid.js(default) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-obj-id.js(default) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/for-of/dstr-const-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-obj-id.js(default) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/for-of/dstr-let-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/for-of/dstr-obj-id-identifier-yield-ident-valid.js(default) test/language/statements/for-of/dstr-obj-id-init-simple-no-strict.js(default) test/language/statements/for-of/dstr-obj-id-init-yield-ident-valid.js(default) @@ -1377,18 +1021,6 @@ test/language/statements/for-of/dstr-obj-prop-elem-target-yield-expr.js(strict m test/language/statements/for-of/dstr-obj-prop-elem-target-yield-ident-valid.js(default) test/language/statements/for-of/dstr-obj-prop-nested-array-yield-ident-valid.js(default) test/language/statements/for-of/dstr-obj-prop-nested-obj-yield-ident-valid.js(default) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-obj-id.js(default) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/for-of/dstr-var-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/for-of/head-const-bound-names-fordecl-tdz.js(default) test/language/statements/for-of/head-const-bound-names-fordecl-tdz.js(strict mode) test/language/statements/for-of/head-let-bound-names-fordecl-tdz.js(default) @@ -1398,30 +1030,6 @@ test/language/statements/switch/S12.11_A2_T1.js(default) test/language/statements/switch/S12.11_A2_T1.js(strict mode) test/language/statements/while/decl-cls.js(default) test/language/statements/while/decl-cls.js(strict mode) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/variable/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/variable/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/statements/variable/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/variable/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/variable/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/try/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/try/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/try/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/try/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/try/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/try/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/try/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/try/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/try/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/statements/try/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/try/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/try/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/try/early-catch-duplicates.js(default) test/language/statements/try/early-catch-duplicates.js(strict mode) test/language/statements/try/early-catch-lex.js(default) @@ -1433,18 +1041,6 @@ test/language/statements/const/block-local-use-before-initialization-in-declarat test/language/statements/const/block-local-use-before-initialization-in-declaration-statement.js(strict mode) test/language/statements/const/block-local-use-before-initialization-in-prior-statement.js(default) test/language/statements/const/block-local-use-before-initialization-in-prior-statement.js(strict mode) -test/language/statements/const/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/const/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/const/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/const/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/const/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/const/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/const/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/const/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/const/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/statements/const/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/const/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/const/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/const/function-local-use-before-initialization-in-declaration-statement.js(default) test/language/statements/const/function-local-use-before-initialization-in-declaration-statement.js(strict mode) test/language/statements/const/function-local-use-before-initialization-in-prior-statement.js(default) @@ -1463,18 +1059,6 @@ test/language/statements/let/block-local-use-before-initialization-in-declaratio test/language/statements/let/block-local-use-before-initialization-in-declaration-statement.js(strict mode) test/language/statements/let/block-local-use-before-initialization-in-prior-statement.js(default) test/language/statements/let/block-local-use-before-initialization-in-prior-statement.js(strict mode) -test/language/statements/let/dstr-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/let/dstr-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/let/dstr-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/let/dstr-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/let/dstr-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/let/dstr-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/let/dstr-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/let/dstr-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/let/dstr-ary-ptrn-rest-obj-id.js(default) -test/language/statements/let/dstr-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/let/dstr-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/let/dstr-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/let/function-local-use-before-initialization-in-declaration-statement.js(default) test/language/statements/let/function-local-use-before-initialization-in-declaration-statement.js(strict mode) test/language/statements/let/function-local-use-before-initialization-in-prior-statement.js(default) @@ -1488,102 +1072,6 @@ test/language/statements/let/syntax/with-initialisers-in-statement-positions-lab test/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js(strict mode) test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js(default) test/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js(strict mode) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-meth-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-meth-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-meth-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-meth-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-meth-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-meth-static-ary-ptrn-rest-obj-prop-id.js(strict mode) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elem.js(default) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elem.js(strict mode) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elision.js(default) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-elision.js(strict mode) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-empty.js(default) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-empty.js(strict mode) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-rest.js(default) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-ary-rest.js(strict mode) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-id.js(default) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-id.js(strict mode) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(default) -test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js(strict mode) test/language/statements/class/gen-method-param-dflt-yield.js(default) test/language/statements/class/gen-method-param-dflt-yield.js(strict mode) test/language/statements/class/getter-param-dflt.js(default) @@ -1638,14 +1126,6 @@ test/language/statements/class/syntax/early-errors/class-body-static-method-set- test/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js(strict mode) -# Rest parameters -test/language/expressions/assignment/dstr-obj-rest-not-last-element-invalid.js(default) -test/language/expressions/assignment/dstr-obj-rest-not-last-element-invalid.js(strict mode) -test/language/statements/for-of/dstr-obj-rest-not-last-element-invalid.js(default) -test/language/statements/for-of/dstr-obj-rest-not-last-element-invalid.js(strict mode) -test/language/statements/for-in/dstr-obj-rest-not-last-element-invalid.js(default) -test/language/statements/for-in/dstr-obj-rest-not-last-element-invalid.js(strict mode) - # Spread operator test/language/expressions/array/spread-err-mult-err-obj-getter-throws.js(default) test/language/expressions/array/spread-err-mult-err-obj-getter-throws.js(strict mode) @@ -3420,10 +2900,6 @@ test/language/expressions/generators/dstr-obj-ptrn-rest-obj-own-property.js(defa test/language/expressions/generators/dstr-obj-ptrn-rest-obj-own-property.js(strict mode) test/language/expressions/generators/named-yield-identifier-non-strict.js(default) test/language/expressions/generators/named-yield-identifier-spread-non-strict.js(default) -test/language/expressions/generators/named-yield-spread-arr-multiple.js(default) -test/language/expressions/generators/named-yield-spread-arr-multiple.js(strict mode) -test/language/expressions/generators/named-yield-spread-arr-single.js(default) -test/language/expressions/generators/named-yield-spread-arr-single.js(strict mode) test/language/expressions/generators/named-yield-spread-obj.js(default) test/language/expressions/generators/named-yield-spread-obj.js(strict mode) test/language/expressions/generators/params-trailing-comma-multiple.js(default) @@ -3432,10 +2908,6 @@ test/language/expressions/generators/params-trailing-comma-single.js(default) test/language/expressions/generators/params-trailing-comma-single.js(strict mode) test/language/expressions/generators/yield-identifier-non-strict.js(default) test/language/expressions/generators/yield-identifier-spread-non-strict.js(default) -test/language/expressions/generators/yield-spread-arr-multiple.js(default) -test/language/expressions/generators/yield-spread-arr-multiple.js(strict mode) -test/language/expressions/generators/yield-spread-arr-single.js(default) -test/language/expressions/generators/yield-spread-arr-single.js(strict mode) test/language/expressions/generators/yield-spread-obj.js(default) test/language/expressions/generators/yield-spread-obj.js(strict mode) test/language/expressions/async-generator/args-trailing-comma-multiple.js(default) @@ -5643,16 +5115,8 @@ test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.j test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js(strict mode) test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js(default) test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js(strict mode) -test/language/expressions/class/gen-method-static-yield-spread-arr-multiple.js(default) -test/language/expressions/class/gen-method-static-yield-spread-arr-multiple.js(strict mode) -test/language/expressions/class/gen-method-static-yield-spread-arr-single.js(default) -test/language/expressions/class/gen-method-static-yield-spread-arr-single.js(strict mode) test/language/expressions/class/gen-method-static-yield-spread-obj.js(default) test/language/expressions/class/gen-method-static-yield-spread-obj.js(strict mode) -test/language/expressions/class/gen-method-yield-spread-arr-multiple.js(default) -test/language/expressions/class/gen-method-yield-spread-arr-multiple.js(strict mode) -test/language/expressions/class/gen-method-yield-spread-arr-single.js(default) -test/language/expressions/class/gen-method-yield-spread-arr-single.js(strict mode) test/language/expressions/class/gen-method-yield-spread-obj.js(default) test/language/expressions/class/gen-method-yield-spread-obj.js(strict mode) test/language/expressions/class/meth-dflt-params-ref-later.js(default) @@ -6288,10 +5752,6 @@ test/language/expressions/object/method-definition/gen-meth-params-trailing-comm test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js(strict mode) test/language/expressions/object/method-definition/gen-yield-identifier-non-strict.js(default) test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js(default) -test/language/expressions/object/method-definition/gen-yield-spread-arr-multiple.js(default) -test/language/expressions/object/method-definition/gen-yield-spread-arr-multiple.js(strict mode) -test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js(default) -test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js(strict mode) test/language/expressions/object/method-definition/gen-yield-spread-obj.js(default) test/language/expressions/object/method-definition/gen-yield-spread-obj.js(strict mode) test/language/expressions/object/method-definition/meth-dflt-params-ref-later.js(default) @@ -7145,10 +6605,6 @@ test/language/statements/generators/params-trailing-comma-single.js(default) test/language/statements/generators/params-trailing-comma-single.js(strict mode) test/language/statements/generators/yield-identifier-non-strict.js(default) test/language/statements/generators/yield-identifier-spread-non-strict.js(default) -test/language/statements/generators/yield-spread-arr-multiple.js(default) -test/language/statements/generators/yield-spread-arr-multiple.js(strict mode) -test/language/statements/generators/yield-spread-arr-single.js(default) -test/language/statements/generators/yield-spread-arr-single.js(strict mode) test/language/statements/generators/yield-spread-obj.js(default) test/language/statements/generators/yield-spread-obj.js(strict mode) test/language/statements/variable/dstr-obj-ptrn-rest-nested-obj.js(default) @@ -8296,16 +7752,8 @@ test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js(strict mode) test/language/statements/class/gen-meth-static-params-trailing-comma-single.js(default) test/language/statements/class/gen-meth-static-params-trailing-comma-single.js(strict mode) -test/language/statements/class/gen-method-static-yield-spread-arr-multiple.js(default) -test/language/statements/class/gen-method-static-yield-spread-arr-multiple.js(strict mode) -test/language/statements/class/gen-method-static-yield-spread-arr-single.js(default) -test/language/statements/class/gen-method-static-yield-spread-arr-single.js(strict mode) test/language/statements/class/gen-method-static-yield-spread-obj.js(default) test/language/statements/class/gen-method-static-yield-spread-obj.js(strict mode) -test/language/statements/class/gen-method-yield-spread-arr-multiple.js(default) -test/language/statements/class/gen-method-yield-spread-arr-multiple.js(strict mode) -test/language/statements/class/gen-method-yield-spread-arr-single.js(default) -test/language/statements/class/gen-method-yield-spread-arr-single.js(strict mode) test/language/statements/class/gen-method-yield-spread-obj.js(default) test/language/statements/class/gen-method-yield-spread-obj.js(strict mode) test/language/statements/class/meth-dflt-params-ref-later.js(default) @@ -8338,6 +7786,7 @@ test/language/module-code/instn-resolve-empty-export.js(strict mode) test/built-ins/Simd/AUTHORS(default) test/built-ins/Simd/AUTHORS(strict mode) +# Object rest operator test/language/expressions/assignment/dstr-obj-rest-to-property-with-setter.js(default) test/language/expressions/assignment/dstr-obj-rest-to-property-with-setter.js(strict mode) test/language/expressions/assignment/dstr-obj-rest-to-property.js(default) @@ -8346,3 +7795,289 @@ test/language/statements/for-of/dstr-obj-rest-to-property-with-setter.js(default test/language/statements/for-of/dstr-obj-rest-to-property-with-setter.js(strict mode) test/language/statements/for-of/dstr-obj-rest-to-property.js(default) test/language/statements/for-of/dstr-obj-rest-to-property.js(strict mode) +test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/arrow-function/dstr-obj-ptrn-rest-getter.js(default) +test/language/expressions/arrow-function/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/arrow-function/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/arrow-function/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/arrow-function/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/arrow-function/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-descriptors.js(default) +test/language/expressions/assignment/dstr-obj-rest-descriptors.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-empty-obj.js(default) +test/language/expressions/assignment/dstr-obj-rest-empty-obj.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-getter-abrupt-get-error.js(default) +test/language/expressions/assignment/dstr-obj-rest-getter-abrupt-get-error.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-getter.js(default) +test/language/expressions/assignment/dstr-obj-rest-getter.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-number.js(default) +test/language/expressions/assignment/dstr-obj-rest-number.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-put-const.js(default) +test/language/expressions/assignment/dstr-obj-rest-put-const.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-same-name.js(default) +test/language/expressions/assignment/dstr-obj-rest-same-name.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-skip-non-enumerable.js(default) +test/language/expressions/assignment/dstr-obj-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-str-val.js(default) +test/language/expressions/assignment/dstr-obj-rest-str-val.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-symbol-val.js(default) +test/language/expressions/assignment/dstr-obj-rest-symbol-val.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-val-null.js(default) +test/language/expressions/assignment/dstr-obj-rest-val-null.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-val-undefined.js(default) +test/language/expressions/assignment/dstr-obj-rest-val-undefined.js(strict mode) +test/language/expressions/assignment/dstr-obj-rest-valid-object.js(default) +test/language/expressions/assignment/dstr-obj-rest-valid-object.js(strict mode) +test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/class/dstr-meth-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-meth-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-meth-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-meth-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-getter.js(default) +test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/class/dstr-meth-static-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/function/dstr-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/function/dstr-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/function/dstr-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/function/dstr-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/function/dstr-obj-ptrn-rest-getter.js(default) +test/language/expressions/function/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/function/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/function/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/function/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/function/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js(default) +test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js(default) +test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-getter.js(default) +test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/object/dstr-meth-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/expressions/object/dstr-meth-obj-ptrn-rest-getter.js(default) +test/language/expressions/object/dstr-meth-obj-ptrn-rest-getter.js(strict mode) +test/language/expressions/object/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/expressions/object/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/expressions/object/dstr-meth-obj-ptrn-rest-val-obj.js(default) +test/language/expressions/object/dstr-meth-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-meth-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-meth-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-meth-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-meth-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-meth-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-meth-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/class/dstr-meth-static-obj-ptrn-rest-getter.js(default) +test/language/statements/class/dstr-meth-static-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/class/dstr-meth-static-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/class/dstr-meth-static-obj-ptrn-rest-val-obj.js(default) +test/language/statements/class/dstr-meth-static-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/const/dstr-obj-ptrn-rest-getter.js(default) +test/language/statements/const/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/const/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/const/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/const/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/statements/const/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/for/dstr-let-obj-ptrn-rest-getter.js(default) +test/language/statements/for/dstr-let-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/for/dstr-let-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/for/dstr-let-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/for/dstr-let-obj-ptrn-rest-val-obj.js(default) +test/language/statements/for/dstr-let-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/for/dstr-var-obj-ptrn-rest-getter.js(default) +test/language/statements/for/dstr-var-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/for/dstr-var-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/for/dstr-var-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/for/dstr-var-obj-ptrn-rest-val-obj.js(default) +test/language/statements/for/dstr-var-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/for-of/dstr-const-obj-ptrn-rest-getter.js(default) +test/language/statements/for-of/dstr-const-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/for-of/dstr-const-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/for-of/dstr-const-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/for-of/dstr-const-obj-ptrn-rest-val-obj.js(default) +test/language/statements/for-of/dstr-const-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/for-of/dstr-let-obj-ptrn-rest-getter.js(default) +test/language/statements/for-of/dstr-let-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/for-of/dstr-let-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/for-of/dstr-let-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/for-of/dstr-let-obj-ptrn-rest-val-obj.js(default) +test/language/statements/for-of/dstr-let-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-descriptors.js(default) +test/language/statements/for-of/dstr-obj-rest-descriptors.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-empty-obj.js(default) +test/language/statements/for-of/dstr-obj-rest-empty-obj.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-getter-abrupt-get-error.js(default) +test/language/statements/for-of/dstr-obj-rest-getter-abrupt-get-error.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-getter.js(default) +test/language/statements/for-of/dstr-obj-rest-getter.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-number.js(default) +test/language/statements/for-of/dstr-obj-rest-number.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-put-const.js(default) +test/language/statements/for-of/dstr-obj-rest-put-const.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-same-name.js(default) +test/language/statements/for-of/dstr-obj-rest-same-name.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-skip-non-enumerable.js(default) +test/language/statements/for-of/dstr-obj-rest-skip-non-enumerable.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-str-val.js(default) +test/language/statements/for-of/dstr-obj-rest-str-val.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-symbol-val.js(default) +test/language/statements/for-of/dstr-obj-rest-symbol-val.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-val-null.js(default) +test/language/statements/for-of/dstr-obj-rest-val-null.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-val-undefined.js(default) +test/language/statements/for-of/dstr-obj-rest-val-undefined.js(strict mode) +test/language/statements/for-of/dstr-obj-rest-valid-object.js(default) +test/language/statements/for-of/dstr-obj-rest-valid-object.js(strict mode) +test/language/statements/for-of/dstr-var-obj-ptrn-rest-getter.js(default) +test/language/statements/for-of/dstr-var-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/for-of/dstr-var-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/for-of/dstr-var-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/for-of/dstr-var-obj-ptrn-rest-val-obj.js(default) +test/language/statements/for-of/dstr-var-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/function/dstr-dflt-obj-ptrn-rest-getter.js(default) +test/language/statements/function/dstr-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/function/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/function/dstr-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/statements/function/dstr-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/function/dstr-obj-ptrn-rest-getter.js(default) +test/language/statements/function/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/function/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/function/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/function/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/statements/function/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js(default) +test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js(default) +test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/generators/dstr-obj-ptrn-rest-getter.js(default) +test/language/statements/generators/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/let/dstr-obj-ptrn-rest-getter.js(default) +test/language/statements/let/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/let/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/let/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/let/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/statements/let/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/try/dstr-obj-ptrn-rest-getter.js(default) +test/language/statements/try/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/try/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/try/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/try/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/statements/try/dstr-obj-ptrn-rest-val-obj.js(strict mode) +test/language/statements/variable/dstr-obj-ptrn-rest-getter.js(default) +test/language/statements/variable/dstr-obj-ptrn-rest-getter.js(strict mode) +test/language/statements/variable/dstr-obj-ptrn-rest-skip-non-enumerable.js(default) +test/language/statements/variable/dstr-obj-ptrn-rest-skip-non-enumerable.js(strict mode) +test/language/statements/variable/dstr-obj-ptrn-rest-val-obj.js(default) +test/language/statements/variable/dstr-obj-ptrn-rest-val-obj.js(strict mode) diff --git a/tests/unit/parser.js b/tests/unit/parser.js index aaea23efe..39870d336 100644 --- a/tests/unit/parser.js +++ b/tests/unit/parser.js @@ -2148,7 +2148,7 @@ exports["destructuring globals with syntax error"] = function (test) { .addError(6, 7, "Do not assign to the exception parameter.") .addError(7, 6, "Do not assign to the exception parameter.") .addError(9, 9, "Bad assignment.") - .addError(10, 10, "Bad assignment.") + .addError(10, 13, "Bad assignment.") .test([ "[ Number.prototype.toString ] = [function(){}];", "function a() {", @@ -2271,7 +2271,8 @@ exports["destructuring assignment default values"] = function (test) { .addError(11, 7, "It's not necessary to initialize 'u' to 'undefined'.") .addError(12, 7, "It's not necessary to initialize 'v' to 'undefined'.") .addError(13, 10, "It's not necessary to initialize 'x' to 'undefined'.") - .addError(14, 12, "Expected ']' and instead saw '='.") + .addError(14, 12, "Expected ',' and instead saw '='.") + .addError(14, 14, "Expected an identifier and instead saw '3'.") .test(code, { esnext: true }); test.done(); @@ -8227,14 +8228,14 @@ exports.extraRestOperator = function (test) { TestRun(test) .addError(1, 23, "Unexpected '...'.") - // The reported column number for this parsing error is incorrect. - .addError(1, 23, "Unexpected ')'.") + .addError(1, 26, "Expected an identifier and instead saw ')'.") + .addError(1, 30, "Unrecoverable syntax error. (100% scanned).") .test('function fn3(a, b, ......) { }', { esnext: true }); TestRun(test) .addError(1, 17, "Unexpected '...'.") - // The reported column number for this parsing error is incorrect. - .addError(1, 17, "Unexpected ')'.") + .addError(1, 20, "Expected an identifier and instead saw ')'.") + .addError(1, 24, "Unrecoverable syntax error. (100% scanned).") .test('function fn4(......) { }', { esnext: true }); TestRun(test) @@ -8288,21 +8289,72 @@ exports.restOperatorWithoutIdentifier = function (test) { ]; TestRun(test) - .addError(1, 20, "Unexpected ']'.") - .addError(2, 15, "Unexpected ']'.") - .addError(3, 20, "Unexpected ')'.") - .addError(4, 14, "Unexpected ')'.") - .addError(5, 6, "Unexpected ']'.") - .addError(6, 12, "Unexpected ']'.") - .addError(7, 14, "Unexpected ')'.") - .addError(8, 21, "Unexpected ')'.") - .addError(9, 16, "Unexpected ']'.") - .addError(10, 22, "Unexpected ']'.") + .addError(1, 23, "Expected an identifier and instead saw ']'.") + .addError(1, 24, "Expected ',' and instead saw ')'.") + .addError(1, 26, "Empty destructuring: this is unnecessary and can be removed.") + .addError(2, 1, "Expected ',' and instead saw 'function'.") + .addError(2, 13, "Expected ',' and instead saw '('.") + .addError(2, 18, "Expected an identifier and instead saw ']'.") + .addError(2, 19, "Expected ',' and instead saw ')'.") + .addError(2, 21, "Empty destructuring: this is unnecessary and can be removed.") + .addError(3, 1, "Expected ',' and instead saw 'function'.") + .addError(3, 13, "Expected ',' and instead saw '('.") + .addError(3, 23, "Expected an identifier and instead saw ')'.") + .addError(3, 25, "Expected ',' and instead saw '{'.") + .addError(3, 27, "Expected an identifier and instead saw '}'.") + .addError(4, 1, "Expected ',' and instead saw 'function'.") + .addError(4, 13, "Expected ',' and instead saw '('.") + .addError(4, 17, "Expected an identifier and instead saw ')'.") + .addError(4, 19, "Expected ',' and instead saw '{'.") + .addError(4, 21, "Expected an identifier and instead saw '}'.") + .addError(5, 1, "Expected ',' and instead saw 'var'.") + .addError(5, 9, "Expected an identifier and instead saw ']'.") + .addError(5, 11, "Expected ',' and instead saw '='.") + .addError(5, 14, "Expected an identifier and instead saw '1'.") + .addError(5, 17, "Expected an identifier and instead saw '2'.") + .addError(5, 20, "Expected an identifier and instead saw '3'.") + .addError(5, 22, "Expected ',' and instead saw ';'.") + .addError(6, 1, "Expected an identifier and instead saw 'var' (a reserved word).") + .addError(6, 5, "Expected ',' and instead saw '['.") + .addError(6, 15, "Expected an identifier and instead saw ']'.") + .addError(6, 17, "Expected ',' and instead saw '='.") + .addError(6, 20, "Expected an identifier and instead saw '1'.") + .addError(6, 23, "Expected an identifier and instead saw '2'.") + .addError(6, 26, "Expected an identifier and instead saw '3'.") + .addError(6, 28, "Expected ',' and instead saw ';'.") + .addError(7, 1, "Expected an identifier and instead saw 'var' (a reserved word).") + .addError(7, 5, "Expected ',' and instead saw 'arrow'.") + .addError(7, 11, "Expected an identifier and instead saw '='.") + .addError(7, 13, "Expected ',' and instead saw '('.") + .addError(7, 17, "Expected an identifier and instead saw ')'.") + .addError(7, 19, "Expected ',' and instead saw '=>'.") + .addError(7, 22, "Expected an identifier and instead saw 'void' (a reserved word).") + .addError(7, 27, "Expected ',' and instead saw '0'.") + .addError(7, 28, "Expected an identifier and instead saw ';'.") + .addError(7, 28, "Expected ',' and instead saw ';'.") + .addError(8, 1, "Expected an identifier and instead saw 'var' (a reserved word).") + .addError(8, 5, "Expected ',' and instead saw 'arrow2'.") + .addError(8, 12, "Expected an identifier and instead saw '='.") + .addError(8, 14, "Expected ',' and instead saw '('.") + .addError(8, 24, "Expected an identifier and instead saw ')'.") + .addError(8, 26, "Expected ',' and instead saw '=>'.") + .addError(8, 30, "Expected ',' and instead saw ';'.") + .addError(8, 30, "Too many errors. (44% scanned).") .test(code, { esnext: true }); test.done(); }; +exports.invalidSpread = function (test) { + TestRun(test) + .addError(1, 6, "Expected an identifier and instead saw '...'.") + .addError(1, 9, "Missing semicolon.") + .addError(1, 9, "Expected an assignment or function call and instead saw an expression.") + .test('void ...x;', { esversion: 6 }); + + test.done(); +}; + exports.getAsIdentifierProp = function (test) { TestRun(test) .test('var get; var obj = { get };', { esnext: true });