# Node.js Compatibility This document is generated from [docs/compat/nodejs.json](./nodejs.json). Do not edit the tables by hand; update the JSON matrix and run `npm run compat:docs`. ## Sources - [Bun Node.js compatibility](https://bun.com/docs/runtime/nodejs-compat) - [Node.js API documentation](https://nodejs.org/api/) ## Status Legend - `full`: Implemented with behavioral test coverage for the tracked surface. - `partial`: Implemented for the browser-safe subset, with known gaps tracked. - `stubbed`: Resolvable for package probes; behavior is no-op or deliberately narrow. - `blocked`: Resolvable, but faithful behavior is blocked by browser or security limits. - `missing`: Not implemented yet. See [Unsupported APIs And Runtime Limits](./unsupported.md) for stable OpenContainers error codes and browser/security boundaries. ## Summary Modules: `full`: 19 | `partial`: 45 | `stubbed`: 2 | `blocked`: 0 | `missing`: 0 Globals: `full`: 63 | `partial`: 6 | `stubbed`: 0 | `blocked`: 0 | `missing`: 0 ## Core Modules | Module | Target | Current | Owner | Test | Limitation | | --- | --- | --- | --- | --- | --- | | `node:assert` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Native-shaped CommonJS export order, AssertionError metadata, helper metadata/prototypes, Assert facade metadata/prototype order, strict facade identity, matching/async helpers and match argument validation, partialDeepStrictEqual, and loose deepEqual behavior are covered. | | `node:assert/strict` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Native-shaped CommonJS export order, AssertionError metadata, strict facade metadata, helper aliases, Assert facade metadata/prototype order, strict equality behavior, match argument validation, and partialDeepStrictEqual are covered. | | `node:buffer` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Native-shaped CommonJS export order, absence of non-native SlowBuffer/OpenContainersBuffer public exports, accessor INSPECT_MAX_BYTES metadata, read-only constants descriptors, Node v26 max-length probe constants, base64 helpers, UTF validation helpers, Blob/File fallbacks, and object URL resolution are covered. | | `node:console` | `full` | `full` | runtime-node | `tests/process-builtin.test.mjs` | Native-shaped CommonJS export order, hidden own-property descriptor/order parity, Console constructor metadata, Console.prototype order/enumerable descriptors, context/createTask helpers, grouped output, counters, timers, color mode, ignored write errors, and sys alias resolution are covered. | | `node:diagnostics_channel` | `full` | `full` | runtime-node | `tests/process-builtin.test.mjs` | Native-shaped export order, channel constructor metadata, prototype order and method metadata, bounded/tracing helpers, invalid channel-name validation, subscriber validation, bounded channel instance shape, and sync tracing are covered. | | `node:dns` | `full` | `partial` | runtime-node | `tests/net-builtin.test.mjs` | Virtual loopback and IPv4-mapped literal-IP lookup, PTR/reverse records, Resolver instances, Resolver constructor option validation, Resolver#setLocalAddress validation, native-shaped invalid rrtype validation, native-shaped Resolver cancellation for pending virtual queries, native-aligned verbatim default result order and verbatim false IPv4-first override, TTL records, DNS server validation/normalization, malformed IPv6 rejection, Node-shaped CommonJS export order, native-shaped promises accessor identity, Node-shaped function names/arities, native-shaped top-level helper function prototype metadata, native enumerable Resolver query-method prototype order and function prototype metadata, resolver-instance method shape, promise rejection timing for deferred lookup/reverse validation, synchronous lookupService port validation and invalid lookupService port type rejection, common lookupService port-to-service-name mapping, and stable DNS argument/error probes are supported; real DNS is constrained by browser networking. | | `node:dns/promises` | `full` | `partial` | runtime-node | `tests/net-builtin.test.mjs` | Promise API follows the same virtual/browser DNS constraints as node:dns, including loopback and IPv4-mapped literal-IP lookup, loopback PTR/reverse records, local Resolver instances, Resolver constructor option validation, Resolver#setLocalAddress validation, native-shaped invalid rrtype validation, native-shaped Resolver cancellation for pending virtual queries, native-aligned verbatim default result order and verbatim false IPv4-first override, DNS server validation/normalization, malformed IPv6 rejection, Node-shaped CommonJS export order, native-shaped parent accessor identity, Node-shaped function names/arities including reverse, native-shaped top-level helper function prototype metadata, native enumerable Resolver query-method prototype order and function prototype metadata, resolver-instance method shape, argument validation, Node-shaped promise rejection timing for lookup/reverse, synchronous lookupService port validation and invalid lookupService port type rejection, common lookupService port-to-service-name mapping, and TTL records. | | `node:events` | `full` | `full` | runtime-node | `tests/process-builtin.test.mjs` | EventEmitter behavior, native own instance _events/_eventsCount/_maxListeners plus shape/capture symbols with WeakMap-backed listener storage and no leaked OpenContainers storage symbol, EventTarget once/on support including AbortSignal, direct EventTarget getEventListeners/listenerCount and per-target max-listener state, native-shaped addAbortListener validation and disposable metadata, EventEmitterAsyncResource constructor metadata, validation, own emit() prototype metadata/order, resource-shape probes, and async_hooks execution context preservation, native-shaped CommonJS export order, constructor/helper metadata, static helper validation, static accessor descriptors, hidden EventTarget listener symbols, and EventEmitter prototype metadata/aliases are covered. | | `node:fs` | `full` | `partial` | runtime-node | `tests/fs-compat.test.mjs, tests/fs-streams-watch.test.mjs` | Virtual filesystem APIs are broad, including native-shaped CommonJS export order, Node-shaped callback helpers, native-shaped top-level helper own-prototype descriptors, native-shaped sync helper arities, native-shaped stream export accessors/prototypes, ReadStream/WriteStream helper own-prototype metadata, and directory class descriptor metadata, native-shaped Dirent constructor/predicate/parentPath own-key shape, read-only native-order fs.constants metadata without top-level fs constant exports, native-shaped Stats own keys/prototype accessors/constructor wrapper plus instant/nanosecond timestamp fields, descriptor metadata/flush helpers, descriptor read/write object option overloads and Node-shaped callback result tuples, encoding-aware file-content and readlink/realpath/readdir/opendir path helpers, recursive readdir traversal, cp filter/existing-destination/timestamp options, stricter unlink/open flag validation, mkdtemp prefix validation, disposable temp directory symbol metadata, encoded path results, and file URL scheme/host/encoded-separator validation plus URL-like object parity, native-shaped openAsBlob promise helper, openAsBlob argument preflight validation, Node-shaped FileHandle async id/prototype metadata and StatWatcher wrappers, direct ReadStream/WriteStream constructors plus FileHandle stream/line helpers, glob helpers, recursive virtual directory filtering/nested relative filenames for FSWatcher, and StatFs instance wrappers without public constructor exports, native-shaped promises accessor identity, _toUnixTimestamp, native-shaped Utf8Stream prototype/accessor/disposal metadata, fd writing, and common AbortSignal behavior, but host OS descriptors and native permission semantics remain limited. | | `node:fs/promises` | `full` | `partial` | runtime-node | `tests/fs-compat.test.mjs, tests/fs-streams-watch.test.mjs` | Promise APIs target the virtual filesystem, including native-shaped CommonJS export order, Node-shaped FileHandle descriptor/prototype metadata, helper arities and opendir own-prototype metadata, encoding-aware file content, Stats instant/nanosecond timestamp fields, recursive readdir traversal, recursive watch async iterator filenames, async cp filters and existing-destination options, mkdtemp prefix validation and encoded path results, native-shaped fs.promises accessor identity, stream, line, web stream, glob iteration, and common AbortSignal behavior, and do not expose host OS files. | | `node:constants` | `full` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Resolvable and exposes common filesystem constants, top-level errno/dlopen/priority/signal constants without non-native SIGPOLL/SIGPWR exports, common libuv filesystem aliases, Linux-style nonblocking/sync flags, selected host-compatible signal/file flag aliases, stable TLS protocol version constants, stable crypto engine/RSA/DH/point-conversion constants, native-shaped OpenSSL option/version/defaultCoreCipherList constants, crypto-first and TLS/HTTPS-first defaultCipherList load-order parity, and native-order filesystem and crypto-tail constant metadata and native read-only top-level descriptors used by fs/crypto/TLS package probes. | | `node:_http_agent` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private Node HTTP agent module is exposed for package probes and aliases the canonical node:http Agent/globalAgent objects, including native-shaped globalAgent and custom Agent instance option metadata. | | `node:_http_client` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private Node HTTP client module is exposed for package probes and aliases node:http ClientRequest. | | `node:_http_common` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private HTTP parser/common module exposes native-shaped CommonJS export order, token/header checks, parser constants, parser placeholders including native-shaped parser pool name metadata, HTTPParser prototype own-property order/method arities, helper own-prototype metadata, and method metadata for package probes; it is not a native llhttp binding. | | `node:_http_incoming` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private incoming-message module is exposed for package probes and aliases node:http IncomingMessage with pause/resume read helpers, native-shaped IncomingMessage accessor/method descriptors, parser header helpers, helper own-prototype metadata, and setTimeout metadata. | | `node:_http_outgoing` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private outgoing-message module is exposed with native-shaped CommonJS export order for package probes and aliases node:http OutgoingMessage plus header validators, unique-header parsing, and helper own-prototype metadata. | | `node:_http_server` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private HTTP server module is exposed with native-shaped CommonJS export order for package probes and aliases node:http Server, ServerResponse, STATUS_CODES, lightweight connection tracking hooks, and helper own-prototype metadata. | | `node:http` | `full` | `partial` | runtime-node | `tests/http-client.test.mjs` | Virtual loopback and preview HTTP are supported, including common IncomingMessage, ClientRequest, ServerResponse, Server, OutgoingMessage, native-shaped CommonJS export order and accessor descriptors without getter/setter own prototypes, Agent/globalAgent protocol and native-shaped instance option metadata, Agent destroy socket-pool lifecycle, native-shaped Agent and Server prototype probes including Server Symbol.asyncDispose descriptor/not-running/close behavior and helper own-prototype metadata, upgrade, validation, header, non-string header-name validation, Symbol header-value rejection, Basic auth, method/protocol/unescaped-path validation, URL-object enumerable request option parity, URL-plus-options path override/default-port normalization, IncomingMessage/ClientRequest/Server timeout helpers with helper own-prototype metadata, request-side ClientRequest/IncomingMessage prototype parity, ClientRequest socket event/createConnection probes, virtual localhost request-body chunk streaming before client end, trailer helpers including client-visible response trailers/rawTrailers, empty request/response stream end and 204 no-body semantics, full STATUS_CODES, selected HTTP message helper own-prototype metadata, and Node-shaped public helper names/arities including non-constructable setMaxIdleHTTPParsers metadata; external networking follows browser policy. | | `node:https` | `full` | `partial` | runtime-node | `tests/http-client.test.mjs` | HTTPS client behavior is browser-backed and shares the Node-shaped CommonJS export order, request/get/createServer helper surface, Basic auth header synthesis, protocol and unescaped-path validation, protocol-specific Agent/globalAgent metadata, native-shaped Agent instance option metadata, HTTPS Agent prototype/session-cache probes, and native-ordered Server prototype helper metadata plus Symbol.asyncDispose descriptor/not-running/close behavior with helper own-prototype metadata without extra HTTP constants; createServer exposes the Node shape on the virtual HTTP transport, while native TLS socket controls are unavailable. | | `node:os` | `full` | `full` | runtime-node | `tests/process-builtin.test.mjs` | Virtual Linux metadata is deterministic, including package-facing homedir/tmpdir/devNull/EOL helpers, one virtual CPU, load averages, positive memory values, loopback network interfaces, encoded userInfo variants, native-shaped helper names/arities/prototype ownership, constants/descriptors, native-order errno constants, and priority validation. | | `node:path` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Path helpers, validation, native-shaped helper names/arities and no-own-prototype function metadata, bound format constructor validation, _makeLong identity, namespaced path passthrough, and matchesGlob recursive/star/brace/negated-class probes are covered. | | `node:path/posix` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | POSIX path helpers mirror node:path helper metadata, validation, _makeLong identity, namespaced passthrough, formatting, basename, and cross-namespace identity probes. | | `node:path/win32` | `full` | `full` | runtime-node | `tests/process-builtin.test.mjs` | Win32 path helpers mirror native helper metadata, validation, _makeLong identity, namespaced conversion, formatting, basename, drive/UNC, and cross-namespace probes. | | `node:punycode` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Native-shaped CommonJS export metadata including constructable helper prototype ownership, encode/decode helpers, ucs2 helpers, Unicode domain separator normalization, and native null/non-string coercion errors are covered. | | `node:querystring` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Native-shaped export order, parse/stringify defaults including null separators, maxKeys, custom codec hooks, prototype-safe parse objects, and invalid escape handling are covered. | | `node:readline` | `full` | `partial` | runtime-node | `tests/tty-readline.test.mjs` | TTY-backed readline works in virtual PTY flows, including Node-shaped CommonJS export order and metadata, legacy positional createInterface streams, native-shaped createInterface validation, callback questions, async iteration, keypress events, terminal history recording/navigation with Node-shaped history accessors, prompt-aware getCursorPos cursor wrapping, native-shaped legacy _getCursorPos alias metadata, native-shaped callback Interface parent prototype metadata including public symbol descriptors and legacy private accessor/method probes, and common ANSI cursor and clear helpers, top-level ANSI helper callback validation, output.isTTY terminal defaulting, fallback cursorTo no-op/NaN validation; deeper terminal edge cases are still expanding. | | `node:readline/promises` | `full` | `partial` | runtime-node | `tests/tty-readline.test.mjs` | Promise question support is present for virtual stdin/stdout with Node-shaped promise module exports, legacy positional createInterface streams, output.isTTY terminal defaulting, createInterface metadata, inherited prompt-aware getCursorPos cursor wrapping, native-shaped Readline prototype order/arities, native-shaped promise Interface parent prototype metadata including public symbol descriptors, native-shaped createInterface validation for missing/malformed input, Node-shaped Readline constructor, options.autoCommit, and cursor argument validation including bracketed String(error) codes, and native-order moveCursor escape output. | | `node:stream` | `full` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Core stream classes, OpenContainers package-facing CommonJS export order, Node-shaped constructor and duplexPair arities, native-shaped root Stream prototype descriptor and PassThrough _transform metadata, native-shaped promises accessor identity, stream-to-stream, iterable-source, and function-stage pipeline, compose, Web conversion helpers including Readable.fromWeb destroy/iterator cancellation and Writable.fromWeb close/abort propagation, Node-shaped Readable/Writable/Duplex legacy helper metadata including native-shaped Writable/Duplex prototype order, enumerable keys, helper own-prototype metadata, Writable capture-rejection metadata, inherited async-disposal ownership, and own Readable listener-removal aliases, _undestroy reset helpers, default _destroy callbacks, Writable _writev = null, Writable default pipe/_write probes, Duplex writable defaults, Transform default hook probes, and Readable pause/unshift/pipe/prototype wrap/static wrap probes, Readable.pipe backpressure pause/resume and end:false option, pull-driven custom Readable sources, Readable.from string/Buffer single-chunk and typed-array iterable validation/default-state parity, setEncoding split-byte decoding, native-shaped Readable iterator/compose helper metadata, Transform/PassThrough readable-side async iteration, constructor transform options, native-like static/prototype ancestry, Writable instanceof recognition, and basic state metadata, native-shaped Readable static internals, static helper, fresh Web ReadableStream/WritableStream/TransformStream state-helper probes, and Web bridge metadata, synchronous invalid Web bridge input validation, and inherited isDisturbed helper metadata, Readable iterator helpers including early-termination lifecycle, Writable backpressure/cork buffering probes, addAbortSignal abort behavior and native-shaped argument validation, Node-shaped disturbed/destroyed/state probes for stream and non-stream values, async disposal, default high-water-mark helpers, public helper names and _isArrayBufferView nonconstructable metadata, native-shaped Readable/Writable/Duplex state accessors without own instance state fields, corked writableBuffer visibility, and common lifecycle state exist; deeper stream fixture coverage is still expanding. | | `node:stream/consumers` | `full` | `full` | runtime-node | `tests/process-builtin.test.mjs` | CommonJS export shape, helper names/arities, native-shaped invalid input rejections, and text/json/bytes/buffer/blob/arrayBuffer consumers are implemented for strings, blobs, iterables, promises, Web streams, and Node streams. | | `node:stream/promises` | `full` | `full` | runtime-node | `tests/process-builtin.test.mjs` | Native-shaped CommonJS export order is present, and finished() matches Node cleanup option listener retention/removal and validation semantics. | | `node:stream/web` | `full` | `partial` | runtime-node | `tests/process-builtin.test.mjs, tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers fallback covers Node-shaped CommonJS and static ESM namespace export shape, default stream construction, readers, writers, transforms, text streams, queueing strategies, desiredSize/highWaterMark accounting, and queued byte/BYOB reads. Advanced byte/BYOB semantics remain partial. | | `node:string_decoder` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Chunked UTF-8/base64/base64url/ascii decoding, accepted string/DataView inputs, native-shaped constructor/prototype descriptors, enumerable helper metadata with own prototypes, symbol-backed decoder state accessors, text(offset) helper behavior, and invalid buffer validation are covered; deeper undocumented decoder internals are not exposed. | | `node:timers` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Native-shaped CommonJS export order, public helper names/arities and own-prototype metadata, non-constructible promises accessor descriptor, callback validation, handle refs, primitive ids, and Symbol.dispose cancellation are present. | | `node:timers/promises` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Native-shaped CommonJS export order, public helper names/arities/descriptors, scheduler prototype metadata, scheduler marker symbol, basic wait/yield behavior, AbortSignal cancellation, and native-shaped promise option validation are present. | | `node:tty` | `full` | `partial` | runtime-node | `tests/tty-readline.test.mjs` | Virtual TTY metadata, Node-shaped constructor/prototype descriptors and ordering, helper names/arities, helper own-prototype metadata, descriptor validation, native-aligned TERM_PROGRAM, FORCE_COLOR, and TMUX color probes, explicit hasColors(count, env) validation, window-size helpers, resize hooks, native-order moveCursor output, invalid ANSI helper callback validation, native-aligned WriteStream cursorTo no-op/NaN/negative-coordinate behavior, and common ANSI cursor/clear helpers are implemented for OpenContainers PTYs. | | `node:url` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs, tests/process-builtin.test.mjs` | WHATWG URL, legacy Url helpers, IDNA helpers, URL-object format options including unicode hosts, URL-to-HTTP option translation with null-prototype output, enumerable string/symbol URL property copying, IPv6 hostname normalization, native object validation, file URL buffer decoding, pathToFileURL/fileURLToPath { windows } option handling, string-or-URL file path input validation, encoded separator validation, native-shaped helper metadata, and native-shaped legacy Url constructor/prototype metadata are covered. | | `node:zlib` | `full` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Callback/sync helpers, util.promisify-compatible async compression, crc32 with Node-shaped typed-array validation, Node-shaped CommonJS export order without zlib.promises, public helper names/arities, native-shaped codes map, readonly codes/constants/factory descriptors, constants including native-shaped Brotli/Zstd insertion order, native-shaped non-enumerable top-level constant insertion order, non-enumerable top-level aliases, host-backed zstd when available, buffered transform streams, native-shaped callable classic/Brotli transform constructors, Zstd class-constructor no-new behavior, transform constructor prototype descriptors, transform prototype hierarchy metadata, native-shaped transform instance state, and stream probe methods are implemented, including common options, synchronous classic-option, params, flush-kind validation, and gzip flush output before end; browser zstd and deeper native stream parity remain limited. | | `node:net` | `full` | `partial` | runtime-node | `tests/net-builtin.test.mjs` | Virtual loopback TCP supports constructor sockets, Node-shaped public export order and BlockList/SocketAddress accessor descriptors, Socket/Server/createServer/private helper names/arities, Server Symbol.asyncDispose descriptor/idle close behavior, and exported helper own-prototype metadata, Stream aliasing, native-shaped Socket prototype control/accessor rows, fresh-socket state, accepted server sockets as net.Socket instances, legacy argument normalization probes, missing connect target validation, Node-shaped bad port validation, common socket state fields, paused reads, allowHalfOpen readOnly/writeOnly lifecycle with delayed peer writes, timeouts, chainable socket controls, Node-shaped BlockList/SocketAddress static guards, accessors, native-aligned SocketAddress parse/port/address/family/flowlabel validation, JSON probes, and auto-select-family defaults; external raw TCP and native libuv server handles are blocked. | | `node:async_hooks` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | AsyncLocalStorage supports default values, names, bound callbacks, native-shaped accessor export/prototype metadata, withScope disposable scope probes, AsyncResource lifecycle hooks, scoped execution IDs/resources, native-shaped helper metadata, null-prototype provider constants, Node-shaped CommonJS export shape, and AsyncResource prototype order, native-shaped AsyncHook createHook instances/validation, AsyncResource type/trigger/bind validation, and RunScope metadata; native hook timing fidelity is incomplete. | | `node:child_process` | `partial` | `partial` | runtime-node | `tests/child-process-sync.test.mjs, tests/shell-features.test.mjs` | Virtual child process execution is supported for OpenContainers commands, including Node-shaped CommonJS export order/helper arities/helper own prototypes, spawn/exec/execFile sync and async helpers, spawn event plus spawnfile/spawnargs/stdio metadata, shell mode, sync stdin input, sync and async encoding buffer results, sync maxBuffer validation/ENOBUFS results, sync timeout validation/ETIMEDOUT results, sync missing executable ENOENT result/error shape, async missing executable ENOENT event/callback shape, shell command-not-found status 127 behavior, async per-stream maxBuffer validation/ERR_CHILD_PROCESS_STDIO_MAXBUFFER results, async timeout kill semantics, AbortSignal cancellation with Node-shaped AbortError events, fork JSON IPC, and ChildProcess package-probe constructors, writable ChildProcess constructor prototype descriptor, prototype metadata, and Symbol.dispose descriptor/kill-call parity. Host OS processes, direct ChildProcess.spawn, child_process._forkChild, and IPC handle/fd passing are unsupported. | | `node:cluster` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Virtual cluster workers can fork the current OpenContainers entrypoint and emit lifecycle events with Node-shaped CommonJS export order, module EventEmitter metadata without leaking the internal OpenContainers event storage symbol, and Worker callable constructor/prototype plus method prototype metadata, and native-shaped setup/fork/disconnect helper function metadata; IPC, handle passing, shared server handles, and real multi-process OS semantics remain unsupported. | | `node:crypto` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Common hash algorithms including MD5/SHA with buffer digest output, native-ordered getHashes/getCurves discovery-list probes, random UUID v4/v7 helpers, Node-shaped randomBytes/randomInt/randomFill validation, native-shaped CommonJS export order, native-shaped descriptor, browser-safe prime check/generation probes, OpenSSL/FIPS helper validation, random/helper own-prototype metadata, and function/prototype metadata for constants/WebCrypto/legacy random aliases/timingSafeEqual/common helpers, stable OpenSSL option/version/cipher-list constants including native-shaped defaultCipherList accessor-to-data assignment metadata plus TLS protocol aliases and RSA/DH/engine/point-conversion constants, getRandomValues, HMAC, AES-CBC/CTR/GCM, PBKDF2/HKDF/scrypt KDFs, WebCrypto, OpenSSL engine/FIPS probes, Node-shaped Hash/Hmac deprecated public constructor names, callable Hash/Hmac direct constructors, and Cipheriv/Decipheriv constructors, callable Certificate constructor with native-shaped static/prototype descriptor metadata and malformed-SPKAC fallbacks, X509Certificate metadata, public/private key probes, and constructable/writable asymmetric package probes are present; native OpenSSL coverage, Argon2, and KEM encapsulation/decapsulation remain unsupported with stable errors and Node-shaped arities. | | `node:dgram` | `partial` | `partial` | runtime-node | `tests/net-builtin.test.mjs` | Virtual UDP loopback sockets support udp4/udp6 bind, connect, disconnect/remoteAddress lifecycle errors, message callbacks, send/sendto chunk-array delivery, connected offset/length send overloads, unconnected numeric string port sends and native-shaped ambiguous send overload validation, queue probes, buffer sizing, AbortSignal socket option close behavior, Node-shaped CommonJS export/prototype order, native-shaped public Socket own-prototype names, writable Socket prototype descriptor, callable Socket constructor no-op parity, socket option method metadata plus native-shaped own function prototype descriptors, async disposal, Node-shaped socket type/TTL/buffer-size validation errors, unbound setBroadcast/setTTL EBADF behavior, duplicate close errors, non-function close callback tolerance, and multicast argument validation before stable unsupported multicast failures; external UDP and multicast remain blocked by the browser security model. | | `node:domain` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Legacy domain APIs, Node-shaped CommonJS export shape, create/createDomain aliases, active stack probes, native-shaped active data property, Domain prototype metadata including own-prototype parity, Domain instance domain descriptor plus EventEmitter own state without leaking the internal OpenContainers event storage symbol, Domain add/remove return and validation parity, pre-load process.domain value descriptor plus post-load accessors with native getter/setter own-prototype metadata, bind/intercept wrapper receiver and metadata parity, and EventEmitter error routing are shimmed. | | `node:http2` | `partial` | `partial` | runtime-node | `tests/http2-builtin.test.mjs` | Virtual cleartext h2c sessions are supported for loopback server/client streams and createServer request/response handlers with native-shaped CommonJS export order, constants, helper metadata/own-prototype descriptors, sensitiveHeaders symbol, settings packing probes, exact Http2ServerRequest/Http2ServerResponse prototype order, inherited request stream helpers, response symbol descriptors, and response helper/accessor probes; secure HTTP/2, external HTTP/2, raw wire-level protocol negotiation, push streams, and performServerHandshake raw stream handoff remain unsupported with stable errors. | | `node:module` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs, tests/esm-exports-loader.test.mjs` | CommonJS helpers, default-free CommonJS export shape, native-shaped CommonJS export and own-property order including flushCompileCache no-own-prototype metadata, native-shaped builtinModules order, require-cache parity, require.extensions handlers, public require/resolve request validation, relative paths lookup behavior, and null-receiver Module.prototype.require fallback, createRequire filename validation, parent-aware Module._load, native-shaped public helper metadata/own-prototype shape including module.register arity, Module.wrapper/wrap probes, native-shaped Module.prototype method/accessor metadata including constructor and parent accessor own-prototype shape plus manual require/load/_compile probes, native-shaped private resolver hook arities and private helper metadata, private _stat/_readPackage accessors and package probes, native-shaped SourceMap prototype/accessor metadata including Symbol(kMappings) tuple-array probes plus simple VLQ findEntry/findOrigin mapping lookups, Node-shaped builtin metadata including node:-only test/sqlite modules, native-shaped transformed ESM builtin namespace order/descriptors/assignment probes, syncBuiltinESMExports mutation/delete refresh behavior for builtin namespaces, package self-reference exports, import.meta.resolve package exports/imports including pattern targets, package exports/imports pattern arrays, mixed package exports config validation, package imports target validation, require.resolve/_resolveFilename explicit lookup paths, virtual HOME/NODE_PATH-backed Module.globalPaths and _initPaths reset behavior, static ESM package imports/re-exports, default+namespace imports, and namespace re-exports using import-condition resolution, and declaration-order conditional targets with browser fallback, package lookup with native-shaped findPackageJSON argument and resolution validation, compile-cache cacheDir validation/source-map probes, stripTypeScriptTypes strip-mode validation/sourceURL trailers, synchronous registerHooks resolve/load execution for CommonJS require and dynamic ESM import, data: URL and parentURL-backed file module.register loader hooks for dynamic ESM import, and native-shaped registerHooks handle keys/descriptors/prototype metadata are shimmed, while native .node add-ons fail with a stable OpenContainers unsupported error; broader custom loader coverage remains partial. | | `node:perf_hooks` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Backed by host timing where available with OpenContainers mark/measure/function/resource observer delivery, mark/measure argument validation for missing names, missing marks, negative timestamps, and invalid option combinations, resource timing entries and buffer controls, PerformanceObserver option validation and native-hidden observer/list instance state, native-shaped Performance singleton/prototype/global metadata including custom inspect and toStringTag symbols, native-shaped PerformanceNodeTiming metadata and JSON shape, process-local performance entry state, native-shaped RecordableHistogram createHistogram probes, array option validation for monitorEventLoopDelay(), createHistogram(), and timerify(), module/performance timerify and eventLoopUtilization identity plus receiver-tolerant eventLoopUtilization calls, a dedicated timer-sampled ELDHistogram monitorEventLoopDelay handle without recordable histogram mutators plus Symbol.dispose metadata, native-shaped PerformanceObserver internal/custom inspect/toStringTag symbols, native-shaped constants, and browser-safe approximate event loop utilization. | | `node:process` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs, tests/cjs-loader-parity.test.mjs` | Process metadata, native-shaped CommonJS export and own-property order, expanded native-ordered process.versions dependency keys/read-only descriptors, native-shaped process.features values/property descriptors plus allowedNodeEnvironmentFlags/finalization/exitCode and sourceMapsEnabled/stdin/stdout/stderr/report accessor descriptor metadata, sourceMapsEnabled/report non-constructable getters, node -e argv and bad-option normalization, launch-mode process._eval/preload/exiting probes, script-mode process.mainModule parity, pid/argv0/preload identity descriptor metadata, Node-shaped process toStringTag/EventEmitter metadata without leaking the internal OpenContainers event storage symbol, readonly public runtime metadata descriptors, native-shaped process diagnostic helper names/arities/prototype metadata, POSIX identity/mutation helper names/arities/prototype metadata, selected process helper names/arities/prototype metadata, hidden OpenContainers internal lifecycle helpers, process.loadEnvFile, Node-shaped process.env assignment/defineProperty string coercion, Node-like allowedNodeEnvironmentFlags, process.domain probes, feature probes, refable helpers, signal-0 process probes, current-process virtual signal listener delivery, unhandled SIGINT termination metadata, cpuUsage/threadCpuUsage previous-sample validation, report generation/exclusion flags, common helpers, umask parsing, chdir target validation/cwd preservation, common argument validation, native escape-hatch metadata/validation for browser-blocked execve/dlopen/binding/abort/debug helpers, and Node-shaped exitCode assignment validation/coercion are virtualized; host-native signals, uid/gid, host real cwd semantics, native dlopen/addons, process replacement, and host debugger controls are constrained. | | `node:tls` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | TLS API shape, Node-shaped CommonJS export order/descriptors without legacy createConnection/createSecurePair/parseCertString exports, connect argument validation, secure contexts, constructor/function arities, native constructor prototype descriptors, callable SecureContext/Server constructors, getCiphers no-own-prototype metadata and native ordered cipher-list parity, native DEFAULT_CIPHERS parity with crypto.constants.defaultCoreCipherList, constants, hostname identity checks, X509 certificate accessors, ALPN helpers, empty browser CA certificate helper stores, rootCertificates getter metadata, native-shaped TLSSocket/Server own-prototype metadata and prototype symbols, native-shaped TLSSocket/Server method-function own-prototype and constructability metadata, Server ticket-key Buffer copy/validation probes, unconnected TLSSocket cipher/protocol probes, inherited transport helper probes, and enumerable probe class methods are available; raw TLS sockets, OS certificate stores, and secure servers remain unavailable to browser JavaScript. | | `node:_tls_common` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private TLS common module is exposed for package probes and aliases node:tls SecureContext/createSecureContext; peer certificate translation is a browser-safe pass-through with native-shaped helper own-prototype metadata. | | `node:_tls_wrap` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Deprecated private TLS wrap module is exposed with native-shaped CommonJS export order for package probes and aliases node:tls Server, TLSSocket, connect, and createServer; raw TLS remains blocked by the public node:tls unsupported errors. | | `node:util` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Common util APIs, native-shaped CommonJS export order, util.aborted accessor metadata, AsyncFunction branding, Node-shaped rejected-promise argument validation, and abort-event resolution, own function prototype metadata, MIME helpers, ignored public MIMEParams constructor arguments, receiver/iterator errors, and prototype metadata, native-shaped promisify custom markers/metadata, generic first-success-value behavior, callbackify wrapper metadata, env parsing, Node-shaped parseArgs validation/strict positional defaults/option-terminator tokens/loose unknown option handling, process signal conversion, legacy errno helpers, system error validation, transferable abort helper accessor metadata, color formatting, native styleText/inspect.colors bright/style alias table, native-shaped format token conversion, circular reference labels, %O depth semantics, and hidden %o inspection, native-shaped debuglog/deprecate wrapper metadata and callback/warning-event behavior, diff/getCallSites probes, shared util.types export identity, and native-shaped util.inspect defaultOptions accessor/sealed assignment behavior plus showHidden/sorted/maxArrayLength/maxStringLength/numericSeparator/getter-safe behavior are present; inspector-specific, proxy, and advanced layout internals are approximate. | | `node:util/types` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Type predicates cover common values, expose Node-shaped predicate export order/metadata, native-shaped typed-array predicate prototype/constructor metadata, spoof-resistant brand checks for package probes including async/generator functions and DOMException native errors, and KeyObject/CryptoKey probes; native V8 proxy/external detection remains unavailable in the browser sandbox. | | `node:v8` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Heap stats and C++ heap statistics expose the native Node v26 field set and object shapes with browser-safe approximate values, while serialize/deserialize, stable nonzero cached-data version tag, Node-shaped CommonJS export order, Serializer/Deserializer/GCProfiler constructor and prototype metadata, native-shaped Serializer._getDataCloneError function prototype metadata and selected Serializer/Deserializer method own-prototype metadata, no-op CPU/heap/GC profiler handles, GCProfiler Symbol.dispose metadata, helper arities, native-shaped helper own-prototype metadata, nested promiseHooks/startupSnapshot helper own-prototype metadata, promise hook no-op stop functions and callback validation, queryObjects validation, isStringOneByteRepresentation input validation, deserialize input validation, Deserializer constructor validation, raw-byte serializer validation, raw-byte length validation, direct SharedArrayBuffer serialization rejection while preserving SAB-backed typed-array serialization, releaseBuffer empty/consume semantics, ArrayBuffer transfer validation, heap snapshot option/path validation, and startupSnapshot shape use browser-safe OpenContainers approximations; native V8 snapshots and heap inspection remain unavailable. | | `node:vm` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Runs in the virtual runtime context with native-shaped VM-module-enabled CommonJS export order and Node-shaped public helper names/arities, helper own-prototype descriptors, VM module prototype/accessor descriptors, and Module constructor name/arity; contextified sandboxes hide Node globals such as process and Buffer, but isolation is not equivalent to native Node vm contexts; cachedData APIs are synthetic no-op probes; SourceTextModule and SyntheticModule cover common linking and namespace workflows with native-shaped prototype order and empty enumerable instance surfaces, but without native V8 module isolation. | | `node:wasi` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | WASI construction including preview1 and legacy unstable namespace selection, constructor/prototype metadata, Node-shaped constructor option validation for version/args/env/preopens/returnOnExit/stdin/stdout/stderr, Node-shaped CommonJS export shape, getImportObject(), lifecycle instance/export validation, initialize() _initialize invocation/validation, finalizeBindings/start handling, direct proc_exit sentinel throws, proc_exit exit-code returns for default/returnOnExit=true starts, and a wasi_snapshot_preview1 import table with Node-shaped import names/arities and native-shaped own/prototype function metadata, import order, constructor metadata, and selected native errno probes for package probes are present. Browser-safe memory-backed args, env, clock, random, sched_yield, buffered stdin fd_read, stdio fd_write, guest preopen metadata, read-only path_open/fd_read/fd_close for files under declared preopens, and native-shaped fd_fdstat_get imports are implemented after memory binding; WASI filesystem mutation, sockets, polling, and returnOnExit=false host process termination remain unsupported. | | `node:worker_threads` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Worker-compatible behavior is browser-backed with native-shaped CommonJS export order; eval/file URL workers, argv/env options, native-keyed SHARE_ENV, thread names, environment data, normalized resourceLimits metadata as accepted no-op limits, native-shaped Worker prototype accessors, synthetic worker heap/cpu/profile probe helpers, main-thread workerData nullability, stdin writable piping, stdout/stderr readable streams with truthy capture options and default forwarding, MessageChannel call/prototype metadata, ArrayBuffer and MessagePort transferList detachment/validation/close-event behavior, native-shaped MessagePort prototype order/accessor/function metadata, moveMessagePortToContext validation and moved-port wrapper probes, receiveMessageOnPort, BroadcastChannel accessor metadata, lock probes including callback validation, postMessageToThread timeout validation-before-unsupported behavior, object marking helpers including markAsUncloneable clone rejection, and Node-shaped helper prototype metadata are supported, but native worker features remain limited. | | `node:inspector` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Session constructor/prototype shape, hidden connection state, Node-shaped CommonJS export order/top-level function metadata, duplicate-connect, truthy non-function callback validation before connection checks, main-thread connectToMainThread rejection, Node-shaped event-silent manual disconnect, eventing, Runtime.evaluate/getProperties with native-shaped invalid-parameter and invalid remote object protocol errors, synthetic Profiler.start/stop CPU profiles, native-ordered, toStringTag-aligned no-op console and native-ordered Network/DOMStorage/NetworkResources namespace probes with native-shaped helper names/arities/prototype metadata, no-op domain enable/disable, and Schema.getDomains are present; the real browser inspector protocol is not exposed to sandboxed code. | | `node:inspector/promises` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Promise-based Session wraps the same browser-safe inspector subset as node:inspector, including Node-shaped CommonJS export order/top-level function metadata, native-shaped enumerable and constructable Session.post with own-prototype metadata, inherited connect/disconnect, duplicate-connect, truthy non-function callback validation before connection checks, main-thread connectToMainThread rejection, Node-shaped event-silent manual disconnect, Runtime.evaluate/getProperties with native-shaped invalid-parameter and invalid remote object protocol rejections, synthetic Profiler.start/stop CPU profiles, native-ordered, toStringTag-aligned no-op console and native-ordered Network/DOMStorage/NetworkResources namespace probes with native-shaped helper names/arities/prototype metadata, no-op domain probes, and Node-shaped promise rejection for unsupported commands; the real browser inspector protocol is not exposed to sandboxed code. | | `node:test` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Basic in-process test callbacks, describe/it suites, lifecycle hooks, active getTestContext tracking, mocks, mock methods/properties/accessors, per-test t.assert helpers including native-shaped snapshot/fileSnapshot metadata with Node-shaped invalid-state errors, root assert/snapshot null-prototype helper metadata and validation probes, native-shaped mock tracker/timer prototype metadata including root own-property order and no-own-prototype mock method/getter descriptors, MockFunctionContext descriptors, call snapshot accessors, indexed mockImplementationOnce behavior, past onCall validation, undefined function mock implementation mutator returns, mock { times } validation, function implementation restoration, and method/getter/setter auto-restore, MockPropertyContext descriptors, access snapshot accessors, indexed property mockImplementationOnce behavior and primitive onAccess validation, virtual Date/timer advancement, test.run() TestsStream Readable metadata/event emission, native-shaped CommonJS export order/function metadata, root accessor descriptors without own getter prototypes, and Node-shaped node:test/reporters adapters with native-shaped CommonJS export order/descriptors plus native-named async-iterable spec/lcov transforms are available; process isolation parity and real snapshot file generation/update semantics are not complete. | | `node:test/reporters` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Common reporter adapters expose Node v26.3.0-shaped CommonJS export keys, descriptors, native-named async-iterable spec/lcov transform instances, native-shaped SpecReporter/LcovReporter prototype ownership for _transform/_flush, basic stream state metadata, and basic event output; deeper native test-runner reporter semantics remain tied to the partial node:test implementation. | | `node:repl` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | REPLServer, start, writer, syntax helpers, Recoverable constructor with native-shaped own-property metadata, Node-shaped CommonJS export order/helper metadata, writer.options defaults, legacy positional start/REPLServer arguments, replMode/breakEvalOnSigint option state and eval-config validation, runtime-global useGlobal contexts, including helper own-prototype metadata, native-shaped REPLServer prototype metadata, Node-shaped builtin module accessors without getter/setter own prototypes and with native REPL builtin list filtering, prompt/control helpers, recoverable multiline input buffering, context reset, basic completion, built-in dot commands, command registration, history callbacks, terminal-aware history recording, and simple input evaluation exist; full terminal integration is host-owned. | | `node:sea` | `stubbed` | `stubbed` | runtime-node | `tests/process-builtin.test.mjs` | Single executable application probes are exposed with node:-only builtin metadata, native-shaped CommonJS export order, native accessor names/arities/own-prototype metadata, key and getAsset encoding argument validation with native-shaped received-value wording and coded String(error) output, and isSea() false; asset accessors throw Node's ERR_NOT_IN_SINGLE_EXECUTABLE_APPLICATION because OpenContainers is not packaged as a native SEA binary. | | `node:sqlite` | `stubbed` | `stubbed` | runtime-node | `tests/process-builtin.test.mjs` | Exports constructible inert DatabaseSync plus non-constructible StatementSync and Session probe handles, backup, native-shaped extensible SQLite conflict/authorizer constants, default-free CommonJS export shape, and Node-shaped export/constant/prototype ordering and metadata including constructor prototype descriptors, no-new and illegal-constructor error codes, DatabaseSync path/options validation, open/close/isOpen state probes, anonymous DatabaseSync accessor metadata, limits metadata, createTagStore with non-exported SQLTagStore accessor/prototype shape, location() state and dbName validation, empty applyChangeset no-op behavior, validation-before-unsupported for SQL/changeset/backup helpers, backup option validation, backup Promise-return parity, backup/prototype-method own-prototype parity, and DatabaseSync/Session Symbol.dispose metadata with DatabaseSync close semantics; database operations, statement/session methods, backups, non-empty changesets, and SQLite execution throw ERR_OPENCONTAINERS_SQLITE_UNSUPPORTED until a WASM-backed adapter exists. | | `node:trace_events` | `partial` | `partial` | runtime-node | `tests/process-builtin.test.mjs` | Tracing APIs expose Node-shaped CommonJS export shape, constructable createTracing(), Tracing handle prototype metadata including custom inspect and constructor descriptors, option/category validation with native-shaped error messages and bracketed String(error) codes, whitespace-preserving category strings, and ref-counted no-op category controls for package probes; native runtime tracing is unavailable in the browser sandbox. | | `node:sys` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Alias to node:util for legacy package probes. | ## Globals | Global | Target | Current | Owner | Test | Limitation | | --- | --- | --- | --- | --- | --- | | `AbortController` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `AbortSignal` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `Blob` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `Buffer` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global Buffer exposes a Node-shaped non-enumerable configurable get/set descriptor and remains assignable for package probes. | | `ByteLengthQueuingStrategy` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `CountQueuingStrategy` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `__dirname` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | CommonJS module-scoped global. | | `__filename` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | CommonJS module-scoped global. | | `atob` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Base64 helper exposes Node-shaped function metadata. | | `btoa` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Base64 helper exposes Node-shaped function metadata. | | `Atomics` | `full` | `partial` | runtime-node | `tests/compat-matrix.test.mjs` | Host-provided shared-memory primitive with native-shaped global descriptor; depends on page isolation support. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `BroadcastChannel` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `clearImmediate` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `setImmediate` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `clearInterval` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `setInterval` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `clearTimeout` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `setTimeout` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `CompressionStream` | `full` | `partial` | runtime-node | `tests/compat-matrix.test.mjs` | Host-provided compression stream constructor with native-shaped global descriptor where available. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `DecompressionStream` | `full` | `partial` | runtime-node | `tests/compat-matrix.test.mjs` | Host-provided decompression stream constructor with native-shaped global descriptor where available. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `console` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Console global is exposed with Node-shaped non-enumerable descriptor metadata. | | `Crypto` | `full` | `partial` | runtime-node | `tests/compat-matrix.test.mjs` | Host WebCrypto constructor with native-shaped global descriptor where available. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `SubtleCrypto` | `full` | `partial` | runtime-node | `tests/compat-matrix.test.mjs` | Host WebCrypto constructor with native-shaped global descriptor where available. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `CryptoKey` | `full` | `partial` | runtime-node | `tests/compat-matrix.test.mjs` | Host WebCrypto key constructor with native-shaped global descriptor where available. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `CustomEvent` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `DOMException` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host DOMException is preferred; OpenContainers fallback preserves Node-shaped name/message/code accessors, legacy constants, Error inheritance, and [object DOMException] branding when the host constructor is unavailable. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `Event` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `EventTarget` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `exports` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | CommonJS module-scoped global. | | `module` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | CommonJS module-scoped global. | | `require` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | CommonJS module-scoped global. | | `fetch` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs, tests/compat-matrix.test.mjs` | Virtual/browser fetch with OpenContainers network policy and native-shaped global function metadata. | | `Headers` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs, tests/compat-matrix.test.mjs` | Fetch constructor global is exposed with Node-shaped non-enumerable descriptor metadata. | | `Request` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs, tests/compat-matrix.test.mjs` | Fetch constructor global is exposed with Node-shaped non-enumerable descriptor metadata. | | `Response` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs, tests/compat-matrix.test.mjs` | Fetch constructor global is exposed with Node-shaped non-enumerable descriptor metadata. | | `FormData` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs, tests/compat-matrix.test.mjs` | Fetch constructor global is exposed with Node-shaped non-enumerable descriptor metadata. | | `global` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `globalThis` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | The globalThis self-reference is exposed with Node-shaped non-enumerable descriptor metadata. | | `MessageChannel` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | OpenContainers worker thread message channel implementation. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `MessageEvent` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `MessagePort` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | OpenContainers worker thread message port implementation. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `PerformanceEntry` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `PerformanceMark` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `PerformanceMeasure` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `PerformanceObserver` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `PerformanceObserverEntryList` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `PerformanceResourceTiming` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `performance` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Runtime performance object is exposed through a Node-shaped enumerable configurable get/set global descriptor and remains assignable for package probes. | | `process` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Virtual process object is exposed through a Node-shaped non-enumerable configurable get/set global descriptor and remains assignable for package probes. | | `queueMicrotask` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | | | `ReadableStream` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `ReadableByteStreamController` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers fallback byte streams support native-shaped constructor metadata, byte-stream controllers, BYOB requests, queued byte reads, and native-style BYOB source-buffer detachment for the tracked surface; advanced backpressure remains simplified. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `ReadableStreamBYOBReader` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers fallback byte streams support native-shaped constructor metadata, byte-stream controllers, BYOB requests, queued byte reads, and native-style BYOB source-buffer detachment for the tracked surface; advanced backpressure remains simplified. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `ReadableStreamBYOBRequest` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers fallback byte streams support native-shaped constructor metadata, byte-stream controllers, BYOB requests, queued byte reads, and native-style BYOB source-buffer detachment for the tracked surface; advanced backpressure remains simplified. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `ReadableStreamDefaultController` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `ReadableStreamDefaultReader` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `structuredClone` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Structured clone helper exposes Node-shaped function metadata. | | `TextDecoder` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `TextDecoderStream` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `TextEncoder` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `TextEncoderStream` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `TransformStream` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `TransformStreamDefaultController` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `URL` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `URLSearchParams` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `WebAssembly` | `full` | `full` | runtime-node | `tests/compat-matrix.test.mjs` | Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `WritableStream` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `WritableStreamDefaultController` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. | | `WritableStreamDefaultWriter` | `full` | `full` | runtime-node | `tests/globals-isolation.test.mjs` | Host Web Streams are preferred; OpenContainers provides fallback default stream constructors, readers, writers, transforms, and queueing strategies when host constructors are missing. Global constructor is exposed with Node-shaped non-enumerable descriptor metadata. |