diff --git a/src/jshint.js b/src/jshint.js index c4b8a3960b..49e7b5540c 100644 --- a/src/jshint.js +++ b/src/jshint.js @@ -3522,6 +3522,8 @@ var JSHINT = (function() { // are added to the param scope var currentParams = []; + pastRest = spreadrest("rest"); + if (_.includes(["{", "["], state.tokens.next.id)) { hasDestructuring = true; tokens = destructuringPattern(context); @@ -3533,7 +3535,6 @@ var JSHINT = (function() { } } } else { - pastRest = spreadrest("rest"); ident = identifier(context); if (ident) { diff --git a/tests/test262/expectations.txt b/tests/test262/expectations.txt index c8836ca755..2aef55d545 100644 --- a/tests/test262/expectations.txt +++ b/tests/test262/expectations.txt @@ -143,10 +143,6 @@ test/language/identifiers/vals-rus-alpha-lower-via-escape-hex.js(default) test/language/identifiers/vals-rus-alpha-lower-via-escape-hex.js(strict mode) test/language/identifiers/vals-rus-alpha-upper-via-escape-hex.js(default) test/language/identifiers/vals-rus-alpha-upper-via-escape-hex.js(strict mode) -test/language/rest-parameters/array-pattern.js(default) -test/language/rest-parameters/array-pattern.js(strict mode) -test/language/rest-parameters/object-pattern.js(default) -test/language/rest-parameters/object-pattern.js(strict mode) test/language/arguments-object/10.6-13-c-1-s.js(strict mode) test/language/arguments-object/10.6-1gs.js(strict mode) test/language/arguments-object/10.6-2gs.js(strict mode) @@ -191,10 +187,6 @@ 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/scope-param-rest-elem-var-close.js(default) -test/language/expressions/function/scope-param-rest-elem-var-open.js(default) -test/language/expressions/generators/scope-param-rest-elem-var-close.js(default) -test/language/expressions/generators/scope-param-rest-elem-var-open.js(default) test/language/expressions/generators/yield-as-function-expression-binding-identifier.js(default) test/language/expressions/generators/yield-as-logical-or-expression.js(default) test/language/expressions/generators/yield-as-logical-or-expression.js(strict mode) @@ -202,10 +194,6 @@ 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/getter-param-dflt.js(default) test/language/expressions/class/getter-param-dflt.js(strict mode) -test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js(default) -test/language/expressions/object/scope-gen-meth-param-rest-elem-var-open.js(default) -test/language/expressions/object/scope-meth-param-rest-elem-var-close.js(default) -test/language/expressions/object/scope-meth-param-rest-elem-var-open.js(default) test/language/expressions/object/method-definition/yield-as-expression-with-rhs.js(default) test/language/expressions/object/method-definition/yield-as-expression-with-rhs.js(strict mode) test/language/expressions/object/method-definition/yield-as-expression-without-rhs.js(default) @@ -215,8 +203,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/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/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js(default) test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js(strict mode) test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js(default) @@ -257,8 +243,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/scope-param-rest-elem-var-close.js(default) -test/language/statements/generators/scope-param-rest-elem-var-open.js(default) test/language/statements/generators/yield-as-function-expression-binding-identifier.js(default) test/language/statements/generators/yield-as-logical-or-expression.js(default) test/language/statements/generators/yield-as-logical-or-expression.js(strict mode) @@ -275,8 +259,6 @@ test/language/statements/labeled/decl-gen.js(default) 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/function/scope-param-rest-elem-var-close.js(default) -test/language/statements/function/scope-param-rest-elem-var-open.js(default) test/language/statements/return/S12.9_A1_T1.js(default) test/language/statements/return/S12.9_A1_T1.js(strict mode) test/language/statements/return/S12.9_A1_T10.js(default)