Commit Graph
866 Commits
Author SHA1 Message Date
Chris Tate cac0a658f6 Compile JavaScript overrides that ignore trailing arguments
- Preserve native virtual dispatch when an override omits trailing checked-value parameters.
- Keep argument side effects and subclass defaults correct across direct, inherited, and super calls.
2026-09-28 01:34:20 -05:00
Chris Tate 6fd750c5e1 Ignore known ASan fiber warning in LLVM self-hosting check (#519) 2026-09-28 01:32:09 -05:00
Chris Tate 1cc30b4c5e Preserve populated JavaScript default options in static calls
- Keep empty inferred options objects in native checked storage across calls and function values.
- Preserve supplied properties, per-call defaults, and null errors through JavaScript exports.
2026-09-28 01:27:09 -05:00
Chris Tate f251066719 Preserve JavaScript class values and inherited behavior
- Keep fields, accessor parameters, and return values inferred as undefined in native checked storage.
- Preserve virtual dispatch for overridden methods in JavaScript packages.
- Route assignments through class accessors without creating shadow fields.
2026-09-28 01:16:59 -05:00
Chris Tate f52b3b5b73 Compile untyped Map and Set registries without a JavaScript engine
- Store checked values in native collections while preserving supported object identities and JavaScript key equality.
- Support collection iteration and reject reference conversions that would copy or adapt stored objects.
2026-09-28 01:12:29 -05:00
Chris Tate ec2ebb6ef4 Support JavaScript async class methods in static mode (#515) 2026-09-28 00:46:44 -05:00
Chris Tate 82d7d9a237 feat(compiler): use a statically compilable TypeScript AST model
- Replace SDK AST materialization with checked native node, list, and text decoding.
- Preserve checker handle identity and snapshot reuse across the frontend.
- Compile generic visitors and guarded node-list iteration without dynamic execution.
2026-09-28 00:40:27 -05:00
Chris Tate 6aa732c089 Support static generator methods and loop bindings (#512)
Lower static and non-overridden instance generator methods through spawn wrappers. Bind sync and async generator loop values through declarations or assignment patterns, and preserve compound assignment expression values.
2026-09-27 23:33:40 -05:00
Chris Tate 2e7fdcf1ca feat(compiler): statically compile the TypeScript RPC client
- Move frontend message framing and filesystem callbacks into native-capable TypeScript
- Route production requests through the owned client while preserving AST and checker identity
- Preserve synchronous error recovery and cross-platform process cleanup
2026-09-27 23:22:42 -05:00
Chris Tate 5ae7350b0a Support declared JavaScript fields and static counters
- Compile JavaScript instance fields with native undefined initialization and ordered resets.
- Support prefix and postfix updates to numeric static fields through exact class bindings.
2026-09-27 23:13:02 -05:00
Chris Tate c58160ca94 Support stable symbol-keyed class fields
- Compile initialized Symbol() and Symbol.for() fields, including inherited OpenTUI brands.
- Share registry-key storage across modules and keep symbol slots out of string-keyed enumeration.
- Refuse unstable keys and unsupported symbol-field copies.
2026-09-27 22:47:14 -05:00
Chris Tate 7b007e03ef feat(compiler): bootstrap the LLVM emitter natively
- Run the production LLVM backend natively and reproduce its output across compiler generations.
- Replace unchecked emitter contexts with explicit shared state and callback hosts.
- Preserve NaN in serialized IR and respect optional record storage during spreads.
2026-09-27 22:29:24 -05:00
Chris Tate 37a25ebf7f Support stable bundled loaders and native console imports
- Statically resolve stable let/var createRequire bindings while rejecting mutation, escape, and early use.
- Compile node:console output methods to native process streams and retain explicit custom Console refusals.
2026-09-27 22:20:25 -05:00
Chris Tate be1426a5cb feat(compiler): advance static OpenTUI support
- Extend native FFI with additional scalar widths and writable byte spans.
- Compile stored text codecs and supported bundled module patterns without a JavaScript engine.
- Document supported limits.
2026-09-27 21:49:40 -05:00
Chris Tate cb94453647 feat(compiler): bootstrap the C emitter natively
- Compile the production C emitter and reproduce its output across native generations.
- Support the union operations, recursive spreads, and compression options needed by the emitter.
- Fix temporary ownership and verify the bootstrap and shared call operands with both backends and sanitizers.
2026-09-27 21:45:26 -05:00
Chris Tate a1ec135d79 Distribute compile-heavy CI files across shards (#505) 2026-09-27 21:28:37 -05:00
Chris Tate 42638a65b7 Run self-hosting CI harness in a dedicated worker (#503) 2026-09-27 21:03:25 -05:00
Chris Tate 4c6635a3e0 isolate long serialization suite in macOS CI (#502) 2026-09-27 20:48:53 -05:00
Chris Tate f7d217f0d5 Support native ReferenceError, EvalError, and URIError (#501)
* Support additional native Error subclasses

* fix error identity across island callback bridge

* record new Error family parity entry
2026-09-27 20:27:50 -05:00
Chris Tate d3ecb0fc9d feat(compiler): advance self-hosting with identity collections (#500)
* feat(compiler): advance self-hosting with identity collections

- Support reference identity in Maps and Sets, including unions and cycle cleanup.
- Run production integer-range analysis natively with typed IR traversal.
- Add differential coverage for native analyses and collection behavior.

* chore: ignore generated output directories

- Exclude generated output directories from version control.
2026-09-27 20:02:13 -05:00
Chris Tate 04aa42354c Support static for-await over synchronous arrays (#498)
* Support synchronous arrays in for-await loops

Drive array values through async-from-sync timing, including promise values and early iterator close. Handle defaulted union destructuring into checked-dynamic bindings and refuse void callback parameters before native code generation. Add differential coverage and pinned async Test262 regressions with original-source completion checks.

* Fix Error subclass C calls and diagnostics snapshot
2026-09-27 19:00:17 -05:00
Chris Tate 8f46e7ae8f feat(compiler): run LLVM layout and helper emission natively (#499)
- Compile production LLVM layouts, ownership helpers, debug metadata, and JSON emitters on both native backends
- Support nullable collections and mixed insertion spreads needed by compiler code
- Verify native emission parity and generated executables with focused sanitizer coverage
2026-09-27 18:49:36 -05:00
Chris Tate 48e00aa779 feat(compiler): run optimization and backend analyses natively (#497)
- Compile scalar-record optimization and backend analyses on both native backends
- Use exhaustive typed IR traversal and shared cycle analysis
- Verify optimized IR and executable parity with focused sanitizer coverage
2026-09-27 16:41:16 -05:00
Chris Tate b778bf6e6e feat(compiler): run IR serialization and dependency scans natively (#496)
- Compile production IR serialization and runtime dependency scans on both native backends
- Support native JSON callbacks and checked records with unknown payloads
- Verify native IR round trips and executable generation with focused sanitizer coverage
2026-09-27 15:56:58 -05:00
Chris Tate 13234396c2 Admit receiver-bound this in static Test262 scripts (#495)
* Admit receiver-bound this in static Test262 scripts

* Refresh Set seed diagnostic snapshot
2026-09-27 15:36:42 -05:00
Chris Tate d714819bbf Recognize additional JavaScript early errors in Test262 runner (#494) 2026-09-27 13:44:13 -05:00
Chris Tate ffe5e27563 feat(compiler): run the IR validator natively (#493)
- Compile the production validator and exercise native IR construction and validation on C and LLVM.
- Preserve Error causes, wider callbacks, and discriminated JSON layouts in static programs.
- Version the IR and runtime ABI and cover the new compiler paths with differential and sanitizer tests.
2026-09-27 13:11:56 -05:00
Chris Tate 8e95bcbe7f feat(compiler): advance native validator self-hosting (#492)
- Support mutable forward captures with correct initialization and exception behavior.
- Compile recursive literals, exhaustive bindings, and validator collection operations statically.
- Run validator control-flow analysis natively with C and LLVM differential coverage.
2026-09-27 12:14:06 -05:00
Chris Tate 7a30a159eb feat(compiler): enable native IR construction for self-hosting (#491)
- Compile native collection views and recursive discriminated IR structures.
- Preserve optional-chain behavior and union payload ownership across C and LLVM.
- Exercise real IR builders and analyses in native executables with differential coverage.
2026-09-27 11:41:52 -05:00
Chris Tate 34edee1d08 Expand static Test262 execution for sloppy scripts and parse negatives (#490) 2026-09-27 11:23:06 -05:00
Chris Tate 8094372ca5 chore(release): prepare v0.1.7 (#489)
- Record v0.1.7 highlights and align the published package versions.
- Regenerate the compiler surface manifest for the release.
v0.1.7
2026-09-27 10:40:41 -05:00
Chris Tate 4070ef701c fix(compiler): unblock self-hosting analysis and tuple construction (#488)
* fix(compiler): unblock self-hosting analysis and tuple construction

- Bound type diagnostics to handle deeply nested and shared compiler types.
- Compile fixed tuple spreads and preserve const tuple inference under satisfies.
- Add native compiler-component and differential regression coverage.

* fix(tests): record tuple spread frontend parity baseline

- Record module order and preflight diagnostics for the new tuple spread regression fixture.
2026-09-27 10:29:10 -05:00
Chris Tate 3d04a561ef Expand static Test262 execution and exception behavior (#486)
* Expand static Test262 harness and exception semantics

* Ignore ASan fiber warning in dev source test

* Refresh TS7 parity baselines after main rebase
2026-09-27 09:21:29 -05:00
Chris Tate b2c160cb2a perf(compiler): reduce development build fingerprint overhead (#487)
- Parallelize compiler fingerprint reads while preserving cache identity and invalidation guarantees.
- Add a reproducible development build benchmark and regression coverage for file changes.
2026-09-27 09:02:28 -05:00
Chris Tateandtimokosonen 0af282af54 fix(compiler): expose source variables in LLVM dev builds (#485)
- Preserve source bindings and lexical scopes for native debugger inspection.
- Verify variable values, module isolation, and cache restores in LLDB, and document native representations.

Fixes #483

Co-authored-by: timokosonen <325538238+timokosonen@users.noreply.github.com>
2026-09-27 08:26:32 -05:00
Chris TateandHagege Ruben 41020ddb39 fix(compiler): guide native addon users to C ABI FFI (#484)
- Diagnose native addon requires precisely across local path forms and build modes.
- Document and validate migration from Node-API wrappers to statically linked C ABI functions.

Fixes #471

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-27 07:54:10 -05:00
Chris Tateandvini 2d74c03adf fix(compiler): admit safe CommonJS export prologues (#482)
- Keep CommonJS packages eligible for static compilation when export prologues precede require calls.
- Preserve initialization order and early-access safeguards with frontend and native regression coverage.

Fixes #37

Co-authored-by: vini <91087061+vinikjkkj@users.noreply.github.com>
2026-09-26 23:52:23 -05:00
Chris Tateandtimokosonen 0e6a13d041 fix(compiler): support source breakpoints in dev builds (#481)
- Emit source locations for native TypeScript and JavaScript debugging across C and LLVM backends.
- Preserve macOS debug symbols through linking and cache reuse, with regression coverage and Xcode guidance.

Fixes #461

Co-authored-by: timokosonen <325538238+timokosonen@users.noreply.github.com>
2026-09-26 22:21:11 -05:00
Chris Tateandguest271314 8272aa83c2 fix(compiler): preserve static imports for installed entries (#480)
- Compile an installed entry's own TypeScript and JavaScript modules statically while preserving external dependency boundaries.
- Cover installed package layouts, module initialization, and diagnostics with C and LLVM regression tests.

Fixes #463

Co-authored-by: guest271314 <4174848+guest271314@users.noreply.github.com>
2026-09-26 19:44:13 -05:00
Chris TateandGianluca Esposito 12f7580203 fix(compiler): preserve optional receiver storage when narrowing (#479)
- Compile record predicates and class guards over array-derived values.
- Preserve missing-value checks and report unsupported union refinements.
- Cover narrowing in differential tests, coverage analysis, and frontend baselines.

Fixes #477

Co-authored-by: Gianluca Esposito <735227+gesposito@users.noreply.github.com>
2026-09-26 19:26:39 -05:00
Chris TateandOlup 080cf5e227 fix(runtime): commit fiber stacks on demand (#478)
- Reduce async and generator memory use on Apple Silicon and Windows while preserving stack capacity.
- Cover memory commitment, suspension, and stack reuse with regression tests.
- Avoid undefined behavior when initializing the async ready queue.

Fixes #40

Co-authored-by: Olup <13785588+olup@users.noreply.github.com>
2026-09-26 19:09:54 -05:00
Chris Tateandryoppippi 27f274c66e fix: expose host globals through dynamic globalThis (#476)
- Route explicit TypeScript globalThis escapes through the dynamic island.
- Initialize Node globals on first escaped access and cover C and LLVM parity.
- Document the island capabilities that remain conditional.

Fixes #34

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>
2026-09-26 17:37:45 -05:00
Chris TateandArtem Gurtovoi c1634d4167 fix: distinguish arguments property names from reads (#475)
* fix: distinguish arguments property names from reads

- Share one runtime arguments scan across type mapping and call lowering.
- Add Node differential coverage for names in keys, types, bindings, and labels.

Fixes #431

Co-authored-by: Artem Gurtovoi <1233869+temich@users.noreply.github.com>

* test: record TypeScript 7 parity for arguments properties

- Add the new corpus case to the preflight and module order baseline.

Fixes #431

Co-authored-by: Artem Gurtovoi <1233869+temich@users.noreply.github.com>

---------

Co-authored-by: Artem Gurtovoi <1233869+temich@users.noreply.github.com>
2026-09-26 17:07:06 -05:00
Chris TateandHagege Ruben 0ad3fc7d43 fix: lower array callbacks inside optional chains (#474)
- Narrow guarded array receivers while preparing callback signatures.
- Cover filter, map, and join chains against Node in native builds.

Fixes #472

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-26 15:27:21 -05:00
Chris TateandHagege Ruben fb3d11a210 fix: restore RequestInfo with Node type definitions (#473)
- Share the RequestInfo type alias across compiler type worlds.
- Cover imported TypeScript sources in coverage and native builds.

Fixes #470

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-26 15:09:54 -05:00
Chris TateandGianluca Esposito edb0e51d9c fix: honor project defaults for builtin imports (#469)
- Preserve TypeScript’s effective synthetic default import setting before scriptc forces its frontend options.
- Cover NodeNext and Bundler builtin imports in static and dynamic builds while retaining the no-interop diagnostic.

Fixes #467

Co-authored-by: Gianluca Esposito <735227+gesposito@users.noreply.github.com>
2026-09-26 14:44:56 -05:00
Chris TateandArtem Gurtovoi ce6b03707e fix: preserve static options records with abort handles (#455)
- Keep AbortSignal and AbortController fields in statically shaped records under --dynamic.
- Handle omitted optional fields and optional access through ambient handles.
- Cover abort state and record spread with differential corpus evidence.

Fixes #432

Co-authored-by: Artem Gurtovoi <1233869+temich@users.noreply.github.com>
2026-09-26 14:17:49 -05:00
Chris Tate 0e3808b60d Stabilize sanitized terminal geometry test on macOS (#468) 2026-09-26 14:06:12 -05:00
Chris Tate 4ac24f27e9 Expand static Math numeric lowering (#465)
* Expand static Math numeric lowering

* Update Math method-value fence snapshot

* Rebase Math fixtures onto current corpus
2026-09-26 13:51:07 -05:00
Chris Tate 6d279ceb4d chore(release): prepare v0.1.6 (#466)
- Align all published package versions and the surface manifest at 0.1.6.

- Record the static Array, Object, and String updates in the changelog.

- Summarize the runtime memory and terminal performance improvements.
v0.1.6
2026-09-26 10:12:12 -05:00