Skip to content

feat(parser): Test262 100% — 23,384/23,384 passing#191

Merged
ohah merged 2 commits intomainfrom
feature/test262-100-percent
Mar 20, 2026
Merged

feat(parser): Test262 100% — 23,384/23,384 passing#191
ohah merged 2 commits intomainfrom
feature/test262-100-percent

Conversation

@ohah
Copy link
Copy Markdown
Owner

@ohah ohah commented Mar 20, 2026

Summary

  • Test262: 34→0건 (99.9%→100.0%)
  • Heritage private environment: heritage를 class scope push 전에 방문 (2-pass)
  • Private name ZWNJ/ZWJ: scanPrivateIdentifierStart로 IdentifierStart 검증
  • Class accessor field: kw_accessor 감지 + accessor_property 파싱
  • Arrow parameter declaration: cover grammar에서 파라미터 심볼 등록
  • 그 외 14가지 edge case 수정

Test plan

  • zig build test 통과
  • zig fmt --check src/ 통과
  • zig build test262-run 100.0% (23,384/23,384)

🤖 Generated with Claude Code

All 23,384 Test262 tests now pass (100.0%).

Fixes across parser, lexer, and semantic analyzer:

- Class heritage: use parseCallExpression instead of parseAssignmentExpression
  to reject arrow functions in extends clause (ECMAScript ClassHeritage)
- Private name environment: visit heritage before pushing class scope so
  heritage cannot access the class's own private names
- ZWNJ/ZWJ: add scanPrivateIdentifierStart to reject U+200C/U+200D as
  IdentifierStart after # (only valid as IdentifierPart)
- accessor keyword: parse `accessor` contextual keyword in class members
- super in class fields: set allow_super_property=true for field initializers
- new import.meta: allow import.meta as new callee while still rejecting
  new import() and new import.source/defer()
- #field in expression: validate bare private_identifier requires `in` operator
  and reject private_identifier as RHS of `in`
- for-await-of async: allow `async` as identifier in for-await-of LHS
- await in static block arrow: handle kw_await as shorthand in binding patterns
  when not in async context
- Object destructuring: reject private names (#x) in destructuring patterns
- Computed property: visit computed_property_key in semantic analyzer
- Arrow params: implement declareArrowParams for parameter-body duplicate check

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ohah ohah added the enhancement New feature or request label Mar 20, 2026
@ohah ohah self-assigned this Mar 20, 2026
- emitAccessorProp: accessor 키워드 + static 플래그 출력
- accessor를 get/set 앞으로 이동 (modifier이므로 선행 파싱)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ohah ohah merged commit a72532d into main Mar 20, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant