Skip to content

Commit

Permalink
[[FIX]] Allow YieldExpression as computed property
Browse files Browse the repository at this point in the history
  • Loading branch information
jugglinmike committed Jan 27, 2019
1 parent 17ca4e4 commit 40dca82
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
6 changes: 6 additions & 0 deletions src/jshint.js
Original file line number Diff line number Diff line change
Expand Up @@ -5651,6 +5651,12 @@ var JSHINT = (function() {
*/
function computedPropertyName(context) {
advance("[");

// Explicitly reclassify token as a delimeter to prevent its later
// interpretation as an "infix" operator.
state.tokens.curr.delim = true;
state.tokens.curr.lbp = 0;

if (!state.inES6()) {
warning("W119", state.tokens.curr, "computed property names", "6");
}
Expand Down
10 changes: 0 additions & 10 deletions tests/test262/expectations.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3476,12 +3476,8 @@ test/language/expressions/function/dflt-params-ref-later.js(default)
test/language/expressions/function/dflt-params-ref-later.js(strict mode)
test/language/expressions/function/dflt-params-ref-self.js(default)
test/language/expressions/function/dflt-params-ref-self.js(strict mode)
test/language/expressions/class/accessor-name-inst-computed-yield-expr.js(default)
test/language/expressions/class/accessor-name-inst-computed-yield-expr.js(strict mode)
test/language/expressions/class/accessor-name-inst-literal-string-unicode-escape.js(default)
test/language/expressions/class/accessor-name-inst-literal-string-unicode-escape.js(strict mode)
test/language/expressions/class/accessor-name-static-computed-yield-expr.js(default)
test/language/expressions/class/accessor-name-static-computed-yield-expr.js(strict mode)
test/language/expressions/class/accessor-name-static-literal-string-unicode-escape.js(default)
test/language/expressions/class/accessor-name-static-literal-string-unicode-escape.js(strict mode)
test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js(default)
Expand Down Expand Up @@ -4520,8 +4516,6 @@ test/language/expressions/class/meth-static-dflt-params-ref-later.js(default)
test/language/expressions/class/meth-static-dflt-params-ref-later.js(strict mode)
test/language/expressions/class/meth-static-dflt-params-ref-self.js(default)
test/language/expressions/class/meth-static-dflt-params-ref-self.js(strict mode)
test/language/expressions/object/accessor-name-computed-yield-expr.js(default)
test/language/expressions/object/accessor-name-computed-yield-expr.js(strict mode)
test/language/expressions/object/accessor-name-computed-yield-id.js(default)
test/language/expressions/object/accessor-name-literal-string-unicode-escape.js(default)
test/language/expressions/object/accessor-name-literal-string-unicode-escape.js(strict mode)
Expand Down Expand Up @@ -5814,12 +5808,8 @@ test/language/statements/generators/dflt-params-ref-self.js(default)
test/language/statements/generators/dflt-params-ref-self.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/class/accessor-name-inst-computed-yield-expr.js(default)
test/language/statements/class/accessor-name-inst-computed-yield-expr.js(strict mode)
test/language/statements/class/accessor-name-inst-literal-string-unicode-escape.js(default)
test/language/statements/class/accessor-name-inst-literal-string-unicode-escape.js(strict mode)
test/language/statements/class/accessor-name-static-computed-yield-expr.js(default)
test/language/statements/class/accessor-name-static-computed-yield-expr.js(strict mode)
test/language/statements/class/accessor-name-static-literal-string-unicode-escape.js(default)
test/language/statements/class/accessor-name-static-literal-string-unicode-escape.js(strict mode)

Expand Down
11 changes: 11 additions & 0 deletions tests/unit/parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -6215,6 +6215,17 @@ exports["object ComputedPropertyName"] = function (test) {
.addError(19, 17, "Setter is defined without getter.")
.test(code);

TestRun(test, "YieldExpression")
.test([
"(function * () {",
" void {",
" [yield]: 0,",
" [yield 0]: 0,",
" [yield * 0]: 0",
" };",
"}());"
], { esversion: 6 });

test.done();
};

Expand Down

0 comments on commit 40dca82

Please sign in to comment.