Closed Bug 1288507 Opened 9 years ago Closed 9 years ago

yield not always parsed correctly

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1305566
Tracking Status
firefox50 --- affected

People

(Reporter: anba, Unassigned)

References

(Blocks 1 open bug)

Details

`yield` is not parsed correctly in some edge cases. Test case 1: --- function f({yield}) {} (({yield}) => {}); function* g() { (function yield(){}); } --- Expected: No SyntaxError Actual: Throws SyntaxError "SyntaxError: yield is a reserved identifier" Test case 2: --- function f(...yield) {} --- Expected: No SyntaxError Actual: SyntaxError "no parameter name after ..." Test case 3: --- yield => 0; --- Expected: No SyntaxError Actual: SyntaxError "invalid arrow-function arguments (parentheses around the arrow-function may help)" Test case 4: --- ((...yield) => {}); --- Expected: No SyntaxError Actual: SyntaxError "expected rest argument name, got keyword 'yield'" Test case 5: --- function f() { let yield } --- Expected: No SyntaxError Actual: SyntaxError "missing ; before statement" Test case 6: --- (function* yield(){}); function* f3() { (yield) => 0; } function* f5() { (a = yield * 2) => 0; } function* f8() { ([yield]) => 0; } function* f9() { ([...yield]) => 0; } function* f11() { ({a: yield}) => 0; } function* f12() { ({yield: yield}) => 0; } --- Expected: Throws a SyntaxError for each expression/declaration Actual: No SyntaxErrors
Depends on: 1305566
Blocks: es6
You need to log in before you can comment on or make changes to this bug.