Files
scriptc/docs/content/docs/limitations.mdx
T
Chris Tate 05cb9bd609 Add the concurrency test option
node:test changes, matching Node 24.22:

- { concurrency } on describe, suite, test, it and t.test sets how many
  subtests run at once: a number, true for os.availableParallelism() - 1,
  or false for 1. Subtests inherit the parent's value.
- Above 1, each subtest runs on its own fiber. Subtests start in
  declaration order as slots free up, and t.test and test() calls inside a
  concurrent test start the subtest at once; t.test's promise settles when
  it finishes. The parent finishes after all of them.
- Results, diagnostics and failures are reported in declaration order.
- A concurrent subtest waits after its beforeEach hooks, and a concurrent
  suite before its children, for as many turns as Node's runner does, so
  sibling bodies interleave as they do there.
- A concurrency that is not an integer from 1 to 4294967295 throws Node's
  ERR_OUT_OF_RANGE RangeError when the test or suite is created.
- Nested test() calls and hooks inside a concurrent subtest attach to the
  subtest that runs on the calling fiber.

The concurrency fixture compares the reporter output, the order of the
bodies' side effects, and the range errors with Node, plain and with
SCRIPTC_SAN=1.
2026-10-17 03:28:15 -05:00

248 lines
6.4 KiB
Plaintext

---
title: "Limitations"
---
<include>../limitations/introduction.mdx</include>
<span id="static-compilation" />
## Language and API restrictions
<include>../limitations/language-and-api-restrictions.mdx</include>
### Language features
<include>../limitations/language-features/error-causes.mdx</include>
<include>../limitations/language-features/class-reflection.mdx</include>
<include>../limitations/language-features/method-values.mdx</include>
<include>../limitations/language-features/loose-equality.mdx</include>
<include>../limitations/language-features/resource-disposal.mdx</include>
<include>../limitations/language-features/async-iteration.mdx</include>
<include>../limitations/language-features/generics.mdx</include>
<include>../limitations/language-features/function-values.mdx</include>
<include>../limitations/language-features/argument-spreads.mdx</include>
<include>../limitations/language-features/dynamic-imports.mdx</include>
### Types and class definitions
<include>../limitations/types-and-class-definitions/bigint.mdx</include>
<include>../limitations/types-and-class-definitions/interfaces.mdx</include>
<include>../limitations/types-and-class-definitions/record-shapes.mdx</include>
<include>../limitations/types-and-class-definitions/unions.mdx</include>
<include>../limitations/types-and-class-definitions/null-and-optional-values.mdx</include>
<include>../limitations/types-and-class-definitions/static-field-updates.mdx</include>
<include>../limitations/types-and-class-definitions/local-class-expressions.mdx</include>
<include>../limitations/types-and-class-definitions/constructor-function-inheritance.mdx</include>
<include>../limitations/types-and-class-definitions/symbol-fields.mdx</include>
<include>../limitations/types-and-class-definitions.mdx</include>
### Builtin APIs
<include>../limitations/builtin-apis.mdx</include>
<include>../limitations/builtin-apis/text-encoding.mdx</include>
<include>../limitations/builtin-apis/eventemitter.mdx</include>
<include>../limitations/builtin-apis/streams-and-readline.mdx</include>
<include>../limitations/builtin-apis/commonjs-metadata.mdx</include>
<include>../limitations/builtin-apis/esm-metadata.mdx</include>
<include>../limitations/builtin-apis/date.mdx</include>
<include>../limitations/builtin-apis/url.mdx</include>
<include>../limitations/builtin-apis/legacy-url-api.mdx</include>
<include>../limitations/builtin-apis/filesystem-flags.mdx</include>
<include>../limitations/builtin-apis/copy.mdx</include>
<include>../limitations/builtin-apis/glob.mdx</include>
<include>../limitations/builtin-apis/filehandle-and-descriptor-i-o.mdx</include>
<include>../limitations/builtin-apis/file-streams.mdx</include>
<include>../limitations/builtin-apis/crypto.mdx</include>
<include>../limitations/builtin-apis/assertions.mdx</include>
<include>../limitations/builtin-apis/test-runner.mdx</include>
<include>../limitations/builtin-apis/test-mocks.mdx</include>
<include>../limitations/builtin-apis/exit-status.mdx</include>
<include>../limitations/builtin-apis/process-memory.mdx</include>
<include>../limitations/builtin-apis/performance-entries.mdx</include>
<include>../limitations/builtin-apis/builtin-module-lookup.mdx</include>
<include>../limitations/builtin-apis/arraybuffers-and-typed-arrays.mdx</include>
<include>../limitations/builtin-apis/blob-and-file.mdx</include>
<include>../limitations/builtin-apis/prototypes.mdx</include>
<include>../limitations/builtin-apis/intl-segmenter.mdx</include>
<include>../limitations/builtin-apis/globals.mdx</include>
<include>../limitations/builtin-apis/map-and-set.mdx</include>
<include>../limitations/builtin-apis/compression.mdx</include>
<include>../limitations/builtin-apis/synchronous-iteration.mdx</include>
<include>../limitations/builtin-apis/regular-expressions.mdx</include>
<include>../limitations/builtin-apis/object-freezing.mdx</include>
### Builtin function values
<include>../limitations/builtin-function-values.mdx</include>
### Native worker threads
<include>../limitations/native-worker-threads.mdx</include>
### Child-process workers
<include>../limitations/child-process-workers.mdx</include>
### Untyped values
<include>../limitations/untyped-values.mdx</include>
### Type checking
<include>../limitations/type-checking.mdx</include>
### Contract types
<include>../limitations/contract-types.mdx</include>
### three.js
<include>../limitations/three-js.mdx</include>
## Runtime differences from Node.js
<include>../limitations/runtime-differences-from-node-js.mdx</include>
### Array bounds and runtime errors
<include>../limitations/array-bounds-and-runtime-errors.mdx</include>
### Runtime type checks
<include>../limitations/runtime-type-checks.mdx</include>
### Record identity and property order
<include>../limitations/record-identity-and-property-order.mdx</include>
### Buffer construction
<include>../limitations/buffer-construction.mdx</include>
### HTTP headers
<include>../limitations/http-headers.mdx</include>
### JSON callbacks
<include>../limitations/json-callbacks.mdx</include>
### Strings and sorting
<include>../limitations/strings-and-sorting.mdx</include>
### Published graphs
<include>../limitations/published-graphs.mdx</include>
### Dates and timezones
<include>../limitations/dates-and-timezones.mdx</include>
### Weak collections and memory
<include>../limitations/weak-collections-and-memory.mdx</include>
### Foreign-thread callbacks
<include>../limitations/foreign-thread-callbacks.mdx</include>
### TLS ciphers
<include>../limitations/tls-ciphers.mdx</include>
### Console and process streams
<include>../limitations/console-and-process-streams.mdx</include>
### DNS lookup errors
<include>../limitations/dns-lookup-errors.mdx</include>
### UDP socket options
<include>../limitations/udp-socket-options.mdx</include>
### Process arguments and errors
<include>../limitations/process-arguments-and-errors.mdx</include>
<span id="embedded-javascript-engine" />
## Runtime code evaluation
<include>../limitations/runtime-code-evaluation.mdx</include>
## Process events
<include>../limitations/process-events.mdx</include>
## Native addons
<include>../limitations/native-addons.mdx</include>
## WASI target
<include>../limitations/wasi-target.mdx</include>
## Tooling and native FFI
<include>../limitations/tooling-and-native-ffi.mdx</include>
## Browser embedding
<include>../limitations/browser-embedding.mdx</include>
## Native debugging
<include>../limitations/native-debugging.mdx</include>