'yield' parsed as keyword instead of identifier
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.1k
- Forks
- 773
- PR merge metrics
- No merged PRs in 30d
Description
In the file src/scanner.ts, in the function isKeyword, yield is treated as a keyword, which is incorrect. This should be handled by the function nextToken() in src/parser.ts, where there already exists an appropriate test for strictness and reserved words in strict mode.
Steps to reproduce
esprima.parseScript('yield : 1')
Expected output
Valid syntax tree.
Actual output
Error: Line 1: Unexpected token :
Relevant references
https://www.ecma-international.org/ecma-262/8.0/index.html#sec-strict-mode-of-ecmascript states that yield is a keyword only in strict mode.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/scanner.ts at isKeyword and then read nextToken() in src/parser.ts, including the existing strictness and reserved-words test. Reproduce the issue with esprima.parseScript('yield : 1') and verify that it produces a valid syntax tree while strict-mode handling remains correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100