Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d646fa7
Collect garbage cycles across the scriptc and V8 heaps (NI-8)
cramforce Oct 23, 2026
d9a7ef1
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 23, 2026
2c0accc
Merge ni/i10-js-island-requires into ni/i11-cross-heap-gc
cramforce Oct 23, 2026
bb28b57
Merge commit '4f801f1b39285271a755fb6016926a3815f46cac' into HEAD
cramforce Oct 23, 2026
313936f
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 23, 2026
d3b1e33
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 23, 2026
6d920c2
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 23, 2026
55d19f3
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 23, 2026
35b0b09
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 23, 2026
7c54da9
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 23, 2026
fce38bc
Merge base branch and fix
ctate Oct 25, 2026
92a4b39
Merge base branch
cramforce Oct 26, 2026
fade126
Merge ni/i10-js-island-requires and fix live-handle tracing
ctate Oct 26, 2026
3bfe3f7
Merge base branch
cramforce Oct 26, 2026
cc091ba
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 26, 2026
5a673f3
Merge the macOS island fixes
cramforce Oct 26, 2026
147fbe0
Merge the ASan fix for nested entries on macOS
cramforce Oct 26, 2026
c89c4a0
Merge the deferral test lint fix
cramforce Oct 26, 2026
d0813fc
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 26, 2026
f29a780
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 26, 2026
597b759
Merge the restacked base into ni/i11-cross-heap-gc
cramforce Oct 27, 2026
db2c419
Suppress the root certificates' leak under a stripped libnode
cramforce Oct 27, 2026
11918b4
Treat the worker-startup ordering program as a race
cramforce Oct 28, 2026
f43332a
Merge remote-tracking branch 'origin/ni/i10-js-island-requires' into …
cramforce Oct 28, 2026
78fc4be
Document the event-order limitation between native code and islands
cramforce Oct 28, 2026
08ec7fd
Merge ni/i10-js-island-requires into ni/i11-cross-heap-gc
cramforce Oct 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/content/docs/limitations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ title: "Limitations"

<include>../limitations/runtime-differences-from-node-js.mdx</include>

<include>../limitations/runtime-differences-from-node-js/event-order-across-native-code-and-islands.mdx</include>

### Array bounds and runtime errors

<include>../limitations/array-bounds-and-runtime-errors.mdx</include>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- **Event order across native code and islands:** Timers, worker output, and other macrotasks from the program and from JavaScript it runs in a Node island share one event loop under Node.js, so their order is fixed.
A compiled program runs both on the event loop it hosts for Node.js, but it does not merge them into one order, so callbacks from the two sides can run in a different order than under Node.js, and the order can vary between runs.
Only programs that depend on the ordering between native and island callbacks are affected.
1 change: 1 addition & 0 deletions packages/compiler/src/backend/native/executable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,7 @@ const RUNTIME_UNITS: readonly RuntimeUnit[] = [
"scr_node_island_handle.c",
"scr_node_island_export.c",
"scr_node_island_boot.c",
"scr_node_island_gc.c",
),
// Readable.fromWeb reads a web ReadableStream through its reader.
unit((u) => u.nativeFetch && u.opts.stream, "scr_stream_from_web.c"),
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/src/node-islands/libnode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ import {
export const NODE_ISLAND_MIN_NODE = "24.13.1";

/** The bridge ABI this compiler's runtime speaks (scr_node_bridge.h). */
export const NODE_BRIDGE_ABI = 9;
export const NODE_BRIDGE_ABI = 10;

/** The prefix of a recorded path relative to the executable's directory. */
export const ORIGIN = "$ORIGIN/";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"order": [
"<repo>/tests/corpus/6890-node-island-gc-emitter/main.mjs"
],
"diags": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"order": [
"<repo>/tests/corpus/6891-node-island-gc-closure/main.mjs"
],
"diags": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"order": [
"<repo>/tests/corpus/6892-node-island-gc-native-subclass/main.ts"
],
"diags": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"order": [
"<repo>/tests/corpus/6893-node-island-gc-shared-module/sessions.mjs",
"<repo>/tests/corpus/6893-node-island-gc-shared-module/main.mjs"
],
"diags": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"order": [
"<repo>/tests/corpus/6894-node-island-gc-promises/main.mjs"
],
"diags": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"order": [
"<repo>/tests/corpus/6895-node-island-gc-weakmap/main.mjs"
],
"diags": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"order": [
"<repo>/tests/corpus/6896-node-island-native-method-member/main.mjs"
],
"diags": []
}
Loading
Loading