Commit Graph
834 Commits
Author SHA1 Message Date
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
Chris Tate d2195d8b6e Optimize terminal startup and memory use (#464)
- Reduce allocation overhead in array comparisons and string operations.
- Reuse fiber stacks and release cached memory while idle.
- Read terminal dimensions directly from native streams.
2026-09-26 10:02:56 -05:00
Chris Tate 27a1aad10c Lower static Array construction and iterable conversion (#462) 2026-09-26 09:38:53 -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 46d30c8671 Preserve class own-key lowering and verify npm static calls (#459) 2026-09-26 08:00:23 -05:00
Chris Tate fc2569ef89 Lower Object prototype tags and own-property calls in static mode (#458)
* Lower static Object prototype tags and own-key calls

* Handle checked-dynamic own keys for strings and bytes

* Record order-parity baselines for Object fixtures
2026-09-26 00:21:19 -05:00
Chris Tate 183a0bbcec Lower static Array fill/copyWithin and position coercion (#457)
* Coerce static Array slice and splice positions

* Lower static Array fill and copyWithin with Test262 assertions
2026-09-25 23:17:24 -05:00
Chris Tate baef5fed29 Handle primitive Array relative indexes in static mode (#456)
* Handle primitive Array relative indexes in static mode

* Record TS7 parity for Array index fixture
2026-09-25 22:21:49 -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 894d687037 Support static string split argument coercion (#452)
* Support static string split argument coercion

* Record split fixture preflight baseline
2026-09-25 20:52:01 -05:00
Chris Tate 97343c7478 chore(release): prepare v0.1.5 (#453)
- Bump published packages and the surface manifest to 0.1.5.

- Summarize the HTTP, numeric, and npm-static updates in the changelog.

- Verify cross-target library conformance.
v0.1.5
2026-09-25 20:50:34 -05:00
Chris TateandArtem Gurtovoi 0d05e56e52 fix: let Redis 6 load in dynamic islands (#449)
- Make DNS promises imports load with the expected exports and explicit query errors.
- Resolve CommonJS directory requires used during Redis initialization.
- Record the missing TypeScript order baselines required by the full gate.

Fixes #434

Co-authored-by: Artem Gurtovoi <1233869+temich@users.noreply.github.com>
2026-09-25 20:39:50 -05:00
Chris Tate 413c4a7811 Handle static string padding coercion and ordering (#451) 2026-09-25 19:49:08 -05:00
Chris Tate a7d2da5726 Lower direct String calls on wrappers and plain objects (#450) 2026-09-25 19:09:25 -05:00
Chris Tate d51aa96290 Lower static String prototype call forms (#448) 2026-09-25 18:38:10 -05:00
Chris Tate 2bd50ba0ee Record TypeScript 7 baseline for repeat corpus fixture (#447) 2026-09-25 17:49:00 -05:00
Chris Tate 625b27af4a Make island EventEmitter callable for legacy packages (#433) (#445)
- Support EventEmitter.call(this) while preserving class inheritance and emitter state.
- Cover legacy and modern constructors in Node differential tests.
2026-09-25 17:38:33 -05:00
Chris Tate 86ee43e1b1 Handle scalar repeat counts in static string calls (#446) 2026-09-25 17:32:37 -05:00
Chris Tate 951b8bc4e4 Handle scalar unions in static Number conversion (#444) 2026-09-25 16:59:58 -05:00
Chris Tate a9d68b8e87 Handle nullish Number conversion in static mode (#443) 2026-09-25 15:42:14 -05:00
Chris Tate c7b24413f7 Fix published LLVM helper execute permissions (#430) (#442)
- Declare POSIX helpers as npm bins so package tarballs retain executable mode.
- Check packed helper modes during release and in integration tests.
2026-09-25 15:32:37 -05:00
Chris Tate cd6095b1a0 Preserve object literals in static string search coercion (#441) 2026-09-25 14:11:53 -05:00
Chris Tate 9f897fbec6 Handle scalar search values in positioned string methods (#436) 2026-09-25 13:07:51 -05:00
Chris Tate 266e22b151 Enable initial static compilation of published Effect modules (#428)
* Enable initial static compilation of published Effect modules

- Compile the published Effect Function subpath and deeper npm module chains as static program code.

- Preserve JavaScript argument and string search behavior across native backends, with differential coverage.

* Prune unused static npm namespace re-exports

- Honor package sideEffects metadata across nested ESM scopes and pure dependencies.
- Keep preflight, linking, and initialization consistent, with Node differential coverage.

* Fix static npm pruning across dependency cycles

- Make package purity caching safe across dependency cycles.

- Cover transitive module initialization with a Node differential fixture.
2026-09-25 12:52:27 -05:00
Chris Tate cf1071e49f Handle omitted and primitive string search values in static calls (#435) 2026-09-25 12:01:51 -05:00
Chris Tate 665f0fe647 Handle omitted and primitive string lastIndexOf search values (#429) 2026-09-25 11:23:05 -05:00
Chris Tate 965f8b72c8 Handle omitted Array.includes search values in static mode (#427) 2026-09-25 10:29:19 -05:00
Chris Tate 9282ed542a Implement static array lastIndexOf search (#426)
* Implement static array lastIndexOf search

* Coerce dynamic string-search needles before positions

* Handle optional string-search needles with positions
2026-09-25 10:04:33 -05:00
Chris Tate 0c109d93f8 Add opt-in executable stripping (#425)
- Link smaller executables across native targets with an explicit --strip flag.

- Keep stripped and default builds separate in the cache and cover their behavior.
2026-09-25 09:12:58 -05:00
Chris Tate 2367c081bf Handle coerced positions in static string search calls (#424)
* Coerce static string search positions

* Record TypeScript parity for string search fixture
2026-09-25 08:30:18 -05:00
Chris Tate 58bd6749b5 Fix String conversion after union narrowing (#423)
- Extract primitive arms proven by TypeScript before string conversion.

- Cover guarded record values in the differential corpus.
2026-09-25 08:19:18 -05:00
Chris Tate 93af33085e Handle positioned string affix calls in static mode (#421)
* Handle positioned string affix calls in static mode

* Record preflight baselines for string affix fixtures
2026-09-25 07:58:24 -05:00
Chris Tate b5c0d78d0d Fix Buffer.from on narrowed callback unions (#422)
- Extract the checker-proven source arm before constructing a Buffer from a callback value.
- Cover narrowed byte and number array callbacks with Node differential fixtures.
2026-09-25 07:14:19 -05:00