Commit Graph
168 Commits
Author SHA1 Message Date
Chris Tate af3f357f74 chore(release): prepare v0.1.4 (#390)
* chore(release): prepare v0.1.4

- Bump the CLI, compiler, runtime, and platform packages to 0.1.4.
- Add v0.1.4 release notes and regenerate the static surface manifest.

* test: keep upgrade fairness client open through timer check

- Keep upgraded clients connected through the fairness timer check under CI load.
- Fail the driver clearly if its watchdog expires.

* test: record fork dispatch TS7 baseline

- Record the new fork dispatch corpus entry in the TS7 order canary.
- Pin its single-module evaluation order and empty preflight diagnostics.

* fix(runtime): complete fork IPC shutdown before close

- Release the IPC writer listener when the remote channel closes after writes finish.

- Deliver disconnect before close for forked children with active IPC listeners.
2026-09-23 13:44:41 -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 b9d55037ac Support static URL credentials and descriptor operations (#385) 2026-09-22 23:11:41 -05:00
Chris TateandHagege Ruben cc44afb4ee fix: accept readonly tuples as Set seeds (#384)
- Accept supported readonly tuples in static Set constructors while preserving single evaluation and insertion order.
- Add differential coverage and refresh constructor diagnostics.

Fixes #373

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-22 21:50:04 -05:00
Chris TateandHagege Ruben e12856c1b4 fix: support static URL port and hash getters (#383)
- Lower URL.port and URL.hash through both native backends with Node-compatible values.
- Add differential and typed-project coverage, and update compatibility evidence and docs.

Fixes #372

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-22 21:18:37 -05:00
Chris Tate 72ebac8659 fix(fs): support async readdir Dirent overload (#382)
* fix(fs): support async readdir Dirent overload

* test(ts7): record recent corpus fixtures
2026-09-22 20:47:12 -05:00
Chris TateandMateus Mamede Lage b6bd80c391 fix(windows): support GUI executables (#380)
* fix(windows): support GUI executables

- Add Windows subsystem selection across executable link paths and cache keys.
- Verify PE subsystem output and add Windows CI coverage.

Fixes #259

Co-authored-by: Mateus Mamede Lage <23098414+mmamedel@users.noreply.github.com>

* fix(ci): restore cross-platform test parity

- Make the Windows subsystem test use a portable loader URL.
- Sync TS7 order-parity baselines with current corpus fixtures.

---------

Co-authored-by: Mateus Mamede Lage <23098414+mmamedel@users.noreply.github.com>
2026-09-22 20:40:11 -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 dc283c9184 fix(compiler): declare RequestInfo in fallback ambient (#376)
- Add the Node-compatible RequestInfo alias without widening supported fetch inputs.
- Cover RequestInfo resolution at the shared preflight boundary.

Fixes #369

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-22 14:53:12 -05:00
Chris TateandHagege Ruben 8a12d34a1d fix(compiler): resolve package imports in npm graphs (#375)
* fix(compiler): resolve package imports in npm graphs

- Resolve package-scoped import maps with edge-specific conditions and diagnostics.
- Add Chalk-compatible ambient typing and differential coverage across import forms.

Fixes #374

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>

* test(compiler): make resolver parity paths portable

- Normalize path separators before excluding package runtime trees from resolver parity sweeps.

---------

Co-authored-by: Hagege Ruben <20857346+HagegeR@users.noreply.github.com>
2026-09-22 08:43:45 -05:00
Chris Tateandguest271314 bc9cfa608a fix(compiler): support fs sync buffer overloads (#368)
- Lower readSync and writeSync shorthand and options forms with Node-compatible defaults and evaluation order.
- Add fallback declarations and differential corpus coverage.

Fixes #362

Co-authored-by: guest271314 <4174848+guest271314@users.noreply.github.com>
2026-09-22 07:37:33 -05:00
Chris TateandFábio Pereira c5129449ab perf(llvm): inline numeric bitwise operations (#366)
- Emit JavaScript bitwise operators with native i32 instructions.
- Cover native emission and hot-loop coercion semantics.

Fixes #357

Co-authored-by: Fábio Pereira <300015+redvulps@users.noreply.github.com>
2026-09-21 10:51:41 -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 e42ee19e41 Add static CommonJS factory exports (#360)
* Add static CommonJS factory exports

* Fence inherited methods on dynamic objects
2026-09-20 13:07:51 -05:00
Chris Tate bef652e50d Add static union receiver calls (#359) 2026-09-20 10:53:00 -05:00
Chris Tate d6657921f5 Add static zlib callback codecs (#356) 2026-09-20 09:10:07 -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 Tateandryoppippi 5a1aec07f2 fix: lower discarded conditional expressions (#343)
- Lower discarded conditionals as lazy statement control flow.

- Add differential and TS7 coverage for void conditional arrows.

Fixes #33

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>
2026-09-17 10:55:27 -05:00
Chris Tateandryoppippi 11ed6e4d1d Fix nested mutual function recursion (#342)
* Fix nested mutual function recursion

- Predeclare nested function bindings before sibling closures capture them.
- Cover two- and three-way recursive declaration cycles across native backends.

Fixes #32

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>

* Record nested recursion parity baseline

- Add the generated TypeScript 7 order baseline for the nested mutual-recursion corpus fixture.

Fixes #32

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>

---------

Co-authored-by: ryoppippi <1560508+ryoppippi@users.noreply.github.com>
2026-09-17 10:22:01 -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
Chris TateandXia Chao 2e51e8e191 Fix JSON record key serialization (#339)
- Encode record property names as valid JSON across C and LLVM emitters.
- Sanitize generated backend comments and cover escaped and terminating keys.

Fixes #312

Co-authored-by: Xia Chao <236466140+xia-chao@users.noreply.github.com>
2026-09-16 14:16:39 -05:00
Chris Tate ffa248efcf feat: add static crypto utility support (#335)
* feat: add static crypto utility support

* fix: match Node crypto digest errors
2026-09-16 11:15:12 -05:00
Chris Tate fcacc4d4b0 feat: add static CommonJS module graph (#332) 2026-09-15 21:17:31 -05:00
Chris Tate 280fe1a8da feat: preserve class and child handles through unknown (#331)
* feat: preserve class and child handles through unknown

* fix: hide private fields from unknown views
2026-09-15 19:30:22 -05:00
Chris Tate e559808ef0 feat: run Commander actions statically (#330) 2026-09-15 16:30:54 -05:00
Chris Tate 5a782a6150 feat: add static async iteration parity (#328) 2026-09-15 00:03:07 -05:00
Chris Tate 2ac8743dbb feat(compiler): add Node module resolution introspection (#322) 2026-09-14 18:15:44 -05:00
Chris TateandPaolo Anzani 2bfc37b138 fix(compiler): support branded primitive types (#320)
Co-authored-by: Paolo Anzani <201222836+paoloanzn@users.noreply.github.com>
2026-09-14 13:46:36 -05:00
Chris TateandMateus Mamede Lage 16de852347 fix(compiler): lower dynamic any-local operators (#319)
Fixes #290

Co-authored-by: Mateus Mamede Lage <23098414+mmamedel@users.noreply.github.com>
2026-09-14 12:31:25 -05:00
Chris Tate 74dce238ab perf(runtime): scale URLSearchParams sorting (#318) 2026-09-14 11:53:42 -05:00
Chris Tateand2youg1 b74364ed01 fix(compiler): preserve leading BOM literals (#316)
Co-authored-by: 2youg1 <65069696+2youg1@users.noreply.github.com>
2026-09-14 10:29:16 -05:00
Chris Tate 073c840564 Enforce TypeScript 7 and Node type-link parity (#315)
* Enforce TypeScript 7 and Node type-link parity

* fix(compiler): normalize Windows resolver paths

* fix(compiler): canonicalize Windows realpaths
2026-09-14 09:19:08 -05:00
Chris Tate a8a5204574 Implement typed async generators (#310) 2026-09-14 00:38:06 -05:00
Chris Tate d7aed4b722 Unify TS 7 project module resolution (#308) 2026-09-13 21:53:45 -05:00
Chris Tate 94fd361b54 Implement sparse native arrays and missing-value parity (#297)
Represent ordinary JavaScript arrays with hole, value, and explicit-undefined states; add sparse side storage and carry missing values through the frontend, native backends, runtime, and Node-facing consumers.
2026-09-12 22:39:07 -05:00
Chris Tate 4b241f77d7 Replace quadratic array sorting with stable merge sort (#296)
* Fix Sandbox command transport and pinned native setup

Build the Linux LLVM helper and runtime pack before running both test lanes, and align native cache contracts with the current target policy. Full managed Sandbox gate passed.

* Replace quadratic array sorting with stable merge sort

Cover sort snapshots, consistent-comparator results, stable ties, and comparator complexity with Node differential fixtures. Document differences from V8 TimSort.
2026-09-12 16:05:16 -05:00
Chris Tate bf32f155fc test: record TS7 order parity baselines (#285) 2026-09-02 20:08:06 -05:00
Chris Tateandeuxaristia 1730676951 fix(compiler): keep targetless Zig native builds coherent (#273)
Co-authored-by: euxaristia <25621994+euxaristia@users.noreply.github.com>
2026-08-31 10:47:41 -05:00
Chris Tateandmonteslu 4d9e2a2397 fix ffi call initializers (#268)
Co-authored-by: monteslu <423800+monteslu@users.noreply.github.com>
2026-08-30 19:23:04 -05:00
Chris Tateandmmamedel 0b1738d51e optimize string self-concatenation ownership (#267)
Co-authored-by: mmamedel <23098414+mmamedel@users.noreply.github.com>
2026-08-30 17:53:30 -05:00