Commit Graph
139 Commits
Author SHA1 Message Date
Chris Tate 28c167e2af feat: support static Three.js collision workloads
- Compile Three.js capsule, sphere, and ray collision queries for native and WebAssembly targets.
- Preserve JavaScript constructor results, shared arrays, and nullable class fields.
- Resolve static methods against their exact class receivers.
2026-09-30 09:14:01 -05:00
Chris Tate d3dfdade8e Compile three.js math modules with LLVM
- Run published three.js vector, matrix, and quaternion operations natively and as Wasm without a JavaScript engine.
- Preserve shared class prototype data and JavaScript overload arguments.
- Support Math function values and distinct npm import and require entries.
2026-09-29 20:58:04 -05:00
Chris Tate f8906d0b75 Expand static native object and array semantics (#569)
* Support primitive and function property descriptors

* Dispatch literal bracket calls to native class methods

* Handle numeric class method keys in bracket calls

* Call function values returned by class accessors

* Expand native object and array semantics

* Keep new corpus fixtures aligned with compiler gates

* Lower Object.isFrozen arguments once
2026-09-29 08:30:54 -05:00
Chris Tate 3f56576644 feat(compiler): rebuild the frontend with native compiler stages (#568)
- Share frontend loading, package selection, contracts, and FFI parsing between Node and native clients.
- Preserve collection layouts and optional method returns while lowering long nullish chains without recursive stack growth.
- Rebuild the frontend from TypeScript through native lowering and C emission with matching output.
2026-09-29 07:45:18 -05:00
Chris Tate 3af05d9fbc feat(compiler): lower the complete frontend statically
- Complete frontend lowering with zero rejected statements, dynamic islands, or skipped functions.
- Support contextual construction, presence guards, and union record copies used by the compiler.
- Add native CommonJS resolution and cross-platform file URL handling while preserving Node host behavior.
2026-09-28 23:49:13 -05:00
Chris Tate bf21f47827 Compile collection metadata and heterogeneous JavaScript tables natively
- Preserve async factory results and mixed table layouts through inference and destructuring.
- Support checked Map and Object.fromEntries construction with native weak collections.
- Keep native weak-key lifetimes and engine-backed collection identities intact.
2026-09-28 22:20:24 -05:00
Chris Tate 24ab670305 Keep numeric typed arrays native across JavaScript boundaries
- Support integer widths and clamped arrays with shared storage and exact runtime brands.
- Preserve typed-array values through untyped fields, iteration, and byte I/O.
- Compile native ArrayBuffer response bodies and checked Number predicates.
2026-09-28 21:15:01 -05:00
Chris Tate 31332427b6 Compile local class factories and spread calls natively
- Preserve fresh constructor identity and shared captures across local class instances.
- Carry constructors through unknown values without a JavaScript engine.
- Support runtime-length spreads into fixed and rest parameters.
2026-09-28 20:11:25 -05:00
Chris Tate 39db8c0a99 feat(compiler): make lowering contexts natively compilable
- Run production scope and closure capture logic with native TypeScript 7 symbols.
- Give lowering caches explicit pass ownership and stable symbol identities.
- Support reference collection arrays and optional Set seeds on both native backends.
2026-09-28 19:48:46 -05:00
Chris Tate f668fc4bfd Support native runtime values used by OpenTUI
- Add shared ArrayBuffer storage and native Unicode grapheme segmentation.
- Preserve builtin modules, globals, and byte views across JavaScript bindings.
- Compile package initialization expressions and optional native callables.
2026-09-28 19:01:50 -05:00
Chris Tate b40a6f6079 feat(compiler): lower frontend collections and string transforms natively
- Keep generic bindings and short-circuit writes scoped to their native execution context.
- Compile Map and Set copies, tuple callbacks and searches, and string-pattern replacement.
- Exercise production frontend registries without Node and preserve mutation, identity, and evaluation order.
2026-09-28 14:38:05 -05:00
Chris Tate 7d5a471c67 Compile renderer values and callbacks natively
- Preserve unbound class methods, call-time receivers, and bound callback arguments.
- Keep native factory results, fallback functions, and mutable JavaScript renderer state intact.
- Support live Error.cause assignment, deletion, and property descriptors across aliases.
2026-09-28 13:54:28 -05:00
Chris Tate f1a1f059c7 feat(compiler): compile the owned TypeScript checker facade
- Compile the memoizing TypeScript checker with project-owned caches and explicit disposal.
- Support nested Map and Set values with native identity and cycle tracing.
- Preserve synthetic AST fragments and isolate semantic answers across snapshots.
2026-09-28 09:05:31 -05:00
Chris Tate 306251e3df feat(compiler): preserve native type refinements for self-hosting
- Preserve class identity and member storage through interface and intersection refinements.
- Replace TypeScript runtime enum imports with pinned native constants and name lookups.
- Use concrete type predicates in the native semantic client.
2026-09-28 08:12:06 -05:00
Chris Tate 3d9a5a59da Compile bound inline arrow callbacks without a JavaScript engine
- Preserve lexical captures, callback identity, receiver effects, and default arguments in native bound arrows.
- Keep bound function name and length available through JavaScript aliases and checked storage.
2026-09-28 07:41:55 -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 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 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 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 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 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 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 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 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 1f23c28bb0 Expand static Array flat, splice, and join lowering (#460)
* Expand static Array flattening, splice insertion, and join coercion

* Refresh Array diagnostic and TypeScript 7 baselines
2026-09-26 08:41:06 -05:00
Chris Tate c92fdceedd Support static String.prototype.at and codePointAt (#454)
* Support static string at and codePointAt

* Update static at diagnostics and island contracts
2026-09-25 21:34:21 -05:00
Chris Tate 5c557d8ea4 Fix static JavaScript edge cases and add Test262 coverage (#414) 2026-09-24 23:01:48 -05:00
Chris Tate 9bff53676e feat: statically lower remaining Math functions (#397)
- Lower tan, asin, acos, atan, cbrt, and sign in C and LLVM.
- Add Node differential coverage and refresh surface and profile fixtures.
2026-09-23 22:21:48 -05:00
Chris Tate 7482bc773b feat(math): add static support for analytic functions (#395)
- Lower ten Math methods through C and LLVM, including variadic hypot.
- Match JavaScript numeric edge cases and add differential coverage.
2026-09-23 19:12:54 -05:00
Chris Tate c8b42772a8 fix(http): enforce HTTP/1.1 Host requirement (#388)
* fix(http): enforce HTTP/1.1 Host requirement

- Enforce Node's default Host behavior while preserving opt-out and HTTP/1.0 handling.

- Match the 400 wire response and add C/LLVM differential coverage.

* feat(http): add static HTTP trailer and streaming support

- Parse incoming chunk trailers and expose distinct/raw trailer reads.
- Frame outgoing trailers and add streaming controls with differential coverage.

* fix(http): harden request trailer parsing

- Safely discard trailers after early responses while preserving parser validation.
- Bound aggregate head and trailer parsing by bytes and field count.
- Add regressions for early response trailers and overflow rejection.
2026-09-23 10:21:53 -05:00
Chris Tate 1b2b39f565 Support scoped computed EventEmitter names (#389)
* Support scoped computed EventEmitter names

* Record order baselines for computed event fixtures
2026-09-23 00:38:45 -05:00
Chris Tate e334ae444e feat(child_process): support inline execFile callback options (#387)
* feat(child_process): lower UTF-8 execFile callback options

* test(ts7): record execFile callback options fixture order
2026-09-23 00:13:44 -05:00
Chris Tate 9ff5ed1680 feat(child_process): support static fork IPC (#386)
* feat(child_process): support static fork IPC

* fix(child_process): fix fork discovery and send callbacks
2026-09-22 23:24:07 -05:00
Chris Tate 15fb993111 feat(compiler): expand static Date, process, and URL support (#379)
* feat(compiler): lower Date.parse through native parser

* feat(compiler): support exit status writes and URL getters

* chore(compat): regenerate static support after upstream changes

* test: update URL fence hint snapshot

* test: record new corpus entries for TS7 parity

* test: record upstream lstat parity entry
2026-09-22 20:13:14 -05:00
Chris TateandHagege Ruben c9cad7a0ba fix(child_process): support shell text capture (#377)
- add cross-platform shell spawning and close lifecycle support
- decode encoded child output across native read boundaries
- cover the supported surface with differential compatibility evidence

Fixes #370

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-22 18:03:52 -05:00
Chris Tate f2c81630ef Add static loose equality (#364) 2026-09-20 20:46:52 -05:00
Chris Tate 69977b9fd0 Add static literal dynamic imports (#363) 2026-09-20 15:59:34 -05:00
Chris Tate 4e175f4d72 Add static node:module parity (#361) 2026-09-20 14:44:19 -05:00
Chris Tate d6657921f5 Add static zlib callback codecs (#356) 2026-09-20 09:10:07 -05:00
Chris Tate e82dc998c4 Add static one-shot zlib codecs (#355) 2026-09-20 01:21:41 -05:00
Chris Tate c33a18d421 Add static fs function values (#354)
* Add static fs function values

* Fence option-sensitive fs function values
2026-09-19 23:11:24 -05:00
Chris Tate 5ae6705e38 Add static builtin function values (#353) 2026-09-19 21:49:21 -05:00
Chris Tate bf6dfb882b Add static Node path function values (#352)
* Add static Node path function values

* Preserve JavaScript builtin alias fences
2026-09-19 12:24:40 -05:00
Chris Tate 37f9438084 Add static fixed-tuple call spreads (#351) 2026-09-19 00:00:26 -05:00
Chris Tate a11fd6c881 Add static callable specialization (#350) 2026-09-18 22:50:45 -05:00
Chris Tate 1600935411 Add static-native BigInt support (#346)
* feat: add static BigInt support

* fix: prevent BigInt width overflow on WASI

* fix: harden BigInt formatting sizes

* test: record BigInt WASI parity baseline
2026-09-18 00:21:12 -05:00
Chris Tateandeuxaristia 5e4b4df1b9 feat(child_process): support writable child stdin (#341)
* feat(child_process): support writable child stdin

- Add nonblocking child stdin writers with lifecycle events and platform-aware backpressure.
- Lower writable streams through the C and LLVM backends while fencing unsupported overloads.
- Add differential, type, diagnostics, and compatibility coverage.

Fixes #311

Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com>

* Reject non-literal spawn options

- Emit a named lowering diagnostic instead of silently dropping variable options.
- Cover two- and three-argument spawn overloads with diagnostic regressions.

Fixes #311

Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com>

---------

Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com>
2026-09-17 07:48:29 -05:00