Skip to content

refactor: split JavaScript code by feature - #11

Merged
takeokunn merged 2 commits into
mainfrom
ctl/W3.4.javascript-1
Oct 27, 2026
Merged

takeokunn merged 2 commits into
mainfrom
ctl/W3.4.javascript-1

Conversation

@takeokunn

Copy link
Copy Markdown
Contributor

Summary

Split the JavaScript implementation and tests into feature packages. Each feature package owns its grammar registrations; the shared syntax package remains independent of language feature packages.

Feature Scope
syntax Lexer, shared parser core, automatic semicolon insertion, and grammar registry
expressions Expression grammar and runtime operators
statements Statement grammar and control flow
functions Function grammar, calls, and function runtime hooks
classes Class grammar, lowering, and runtime
objects Ordinary object and prototype behavior
proxies Proxy behavior
iterators Iterators and generators
async Promises and async built-ins
modules Module grammar and runtime
regex Regular expressions
strings Strings, templates, encoding, and URL built-ins
numbers Number lexing, math, and BigInt
arrays Arrays and typed arrays
json JSON
dates Date and Temporal
intl Internationalization built-ins
errors Error built-ins and exceptions
disposables Explicit resource management and using
backend Host built-ins, runtime dispatch, and VM integration
v8-objects V8-specific object representations introduced by PR #9

The ASDF load order, feature dependency metadata, test packages, and feature glossary now follow this split. Test files now live in their feature packages.

Verification

Check Before After
JavaScript test inventory 1,109 tests loaded from the baseline system 1,109 tests; 1,109 passed, 0 skipped, 0 todo, 0 failed, 0 errored
Umbrella JavaScript integration suite 955 passed, 26 expected-failed, 981 total 955 passed, 26 expected-failed, 981 total; expected-failure IDs and order match
  • scripts/with-timeout.pl 900 sbcl --script run-tests.lisp: 1,109 passed.
  • feature-lint: 21 features, checks 1–7 passed.
  • orphan-tests: 79 found, 75 registered, 4 allowlisted, 0 orphan.
  • treefmt and maxFileLength: passed.
  • The local docs derivation is available only for x86_64-linux, while this workstation is aarch64-darwin; branch CI will verify the docs gate.

@takeokunn
takeokunn merged commit 4a6326c into main Oct 27, 2026
1 check passed
@takeokunn
takeokunn deleted the ctl/W3.4.javascript-1 branch October 27, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant