Against test262
test262 is the official conformance suite of JavaScript, kept by the committee that writes the language. Spark ran all of test/language and the directories of test/built-ins for the built-ins it has, in node, in strict and sloppy mode as each test asks. A test passes when every mode passes.
- The language
- 100.00%
- 22,763 of 22,763 tests
- The built-ins Spark has
- 99.99%
- 15,876 of 15,878 tests
- Skipped by feature
- 2,787
- 35 features Spark does not attempt
- The full run
- 322 s
- 3 node workers, 2026-10-05
The subset, run live in this page
3,127 tests from 75 directories of test262, chosen by a seed among the directories whose tests pass in node, run here by Spark in a Web Worker. Every one of them passed in the full run, so each one must pass here too.
| Directory | Tests | Passed | Time |
|---|
A test
Press a square to see the test’s source and its result.
Parts of the language
| Directory | Pass | Fail | Skipped | Share |
|---|---|---|---|---|
expressions | 10,605 | 0 | 497 | 100.0% |
statements | 9,115 | 0 | 232 | 100.0% |
module-code | 579 | 0 | 20 | 100.0% |
literals | 453 | 0 | 83 | 100.0% |
eval-code | 346 | 0 | 1 | 100.0% |
identifiers | 268 | 0 | 0 | 100.0% |
arguments-object | 261 | 0 | 2 | 100.0% |
function-code | 217 | 0 | 0 | 100.0% |
block-scope | 145 | 0 | 0 | 100.0% |
types | 111 | 0 | 2 | 100.0% |
asi | 102 | 0 | 0 | 100.0% |
statementList | 80 | 0 | 0 | 100.0% |
white-space | 67 | 0 | 0 | 100.0% |
directive-prologue | 62 | 0 | 0 | 100.0% |
future-reserved-words | 55 | 0 | 0 | 100.0% |
comments | 52 | 0 | 0 | 100.0% |
computed-property-names | 48 | 0 | 0 | 100.0% |
global-code | 42 | 0 | 0 | 100.0% |
line-terminators | 41 | 0 | 0 | 100.0% |
reserved-words | 27 | 0 | 0 | 100.0% |
keywords | 25 | 0 | 0 | 100.0% |
destructuring | 18 | 0 | 1 | 100.0% |
identifier-resolution | 14 | 0 | 0 | 100.0% |
punctuators | 11 | 0 | 0 | 100.0% |
rest-parameters | 11 | 0 | 0 | 100.0% |
import | 4 | 0 | 125 | 100.0% |
export | 3 | 0 | 0 | 100.0% |
source-text | 1 | 0 | 0 | 100.0% |
Built-ins
| Built-in | Pass | Fail | Skipped | Share |
|---|---|---|---|---|
Object | 3,384 | 0 | 27 | 100.0% |
Array | 2,889 | 0 | 193 | 100.0% |
RegExp | 1,507 | 0 | 372 | 100.0% |
TypedArray | 1,224 | 0 | 229 | 100.0% |
String | 1,197 | 0 | 26 | 100.0% |
TypedArrayConstructors | 650 | 2 | 86 | 99.7% |
Promise | 621 | 0 | 111 | 100.0% |
Date | 583 | 0 | 11 | 100.0% |
DataView | 480 | 0 | 81 | 100.0% |
Function | 474 | 0 | 35 | 100.0% |
Number | 339 | 0 | 1 | 100.0% |
Math | 317 | 0 | 10 | 100.0% |
Proxy | 274 | 0 | 37 | 100.0% |
Set | 195 | 0 | 188 | 100.0% |
Map | 155 | 0 | 49 | 100.0% |
Reflect | 153 | 0 | 0 | 100.0% |
JSON | 142 | 0 | 23 | 100.0% |
WeakMap | 101 | 0 | 40 | 100.0% |
NativeErrors | 88 | 0 | 6 | 100.0% |
WeakSet | 84 | 0 | 1 | 100.0% |
ArrayBuffer | 80 | 0 | 141 | 100.0% |
Symbol | 77 | 0 | 21 | 100.0% |
BigInt | 76 | 0 | 1 | 100.0% |
GeneratorPrototype | 61 | 0 | 0 | 100.0% |
decodeURIComponent | 56 | 0 | 0 | 100.0% |
decodeURI | 55 | 0 | 0 | 100.0% |
parseInt | 55 | 0 | 0 | 100.0% |
parseFloat | 54 | 0 | 0 | 100.0% |
Boolean | 50 | 0 | 1 | 100.0% |
AsyncGeneratorPrototype | 48 | 0 | 0 | 100.0% |
Error | 45 | 0 | 48 | 100.0% |
AsyncFromSyncIteratorPrototype | 38 | 0 | 0 | 100.0% |
encodeURI | 31 | 0 | 0 | 100.0% |
encodeURIComponent | 31 | 0 | 0 | 100.0% |
global | 29 | 0 | 0 | 100.0% |
ArrayIteratorPrototype | 27 | 0 | 0 | 100.0% |
AggregateError | 24 | 0 | 1 | 100.0% |
AsyncGeneratorFunction | 21 | 0 | 2 | 100.0% |
GeneratorFunction | 21 | 0 | 2 | 100.0% |
AsyncFunction | 17 | 0 | 1 | 100.0% |
RegExpStringIteratorPrototype | 17 | 0 | 0 | 100.0% |
isFinite | 15 | 0 | 0 | 100.0% |
isNaN | 15 | 0 | 0 | 100.0% |
ThrowTypeError | 13 | 0 | 1 | 100.0% |
MapIteratorPrototype | 11 | 0 | 0 | 100.0% |
SetIteratorPrototype | 11 | 0 | 0 | 100.0% |
eval | 10 | 0 | 0 | 100.0% |
undefined | 8 | 0 | 0 | 100.0% |
StringIteratorPrototype | 7 | 0 | 0 | 100.0% |
Infinity | 6 | 0 | 0 | 100.0% |
NaN | 6 | 0 | 0 | 100.0% |
AsyncIteratorPrototype | 4 | 0 | 9 | 100.0% |
Uint8Array | 0 | 0 | 70 | none run |
Skipped by feature
Tests that need a feature Spark does not attempt are skipped, each with the number of tests behind it.
| Feature | Tests | Why |
|---|---|---|
resizable-arraybuffer | 415 | resizable buffers are after ES2023 |
import-defer | 252 | a proposal after ES2023 |
source-phase-imports | 243 | a proposal after ES2023 |
regexp-modifiers | 230 | after ES2023 |
explicit-resource-management | 201 | after ES2023 |
regexp-v-flag | 187 | after ES2023 |
set-methods | 186 | after ES2023 |
cross-realm | 169 | Spark runs one realm per test |
SharedArrayBuffer | 114 | shared memory is not written |
import-attributes | 100 | after ES2023 |
Array.fromAsync | 95 | after ES2023 |
await-dictionary | 89 | a proposal after ES2023 |
upsert | 72 | a proposal after ES2023 |
uint8array-base64 | 70 | after ES2023 |
immutable-arraybuffer | 42 | a proposal after ES2023 |
arraybuffer-transfer | 39 | after ES2023 |
tail-call-optimization | 35 | Spark has no proper tail calls |
error-stack-accessor | 35 | a proposal after ES2023 |
array-grouping | 28 | after ES2023 |
decorators | 24 | a proposal after ES2023 |
caller | 23 | legacy function properties are not written |
json-parse-with-source | 21 | after ES2023 |
RegExp.escape | 20 | after ES2023 |
promise-try | 15 | after ES2023 |
regexp-duplicate-named-groups | 15 | after ES2023 |
Error.isError | 12 | after ES2023 |
Math.sumPrecise | 10 | after ES2023 |
promise-with-resolvers | 9 | after ES2023 |
Temporal | 8 | Temporal is a proposal after ES2023 |
String.prototype.isWellFormed | 8 | after ES2023 |
String.prototype.toWellFormed | 8 | after ES2023 |
WeakRef | 5 | garbage collection is not observable in Spark |
iterator-helpers | 4 | after ES2023 |
nonextensible-applies-to-private | 2 | a proposal after ES2023 |
FinalizationRegistry | 1 | garbage collection is not observable in Spark |
Built-ins not attempted
These directories of test/built-ins test built-ins Spark does not have, so they were not run.
| Built-in | Tests |
|---|---|
Temporal | 4,605 |
Iterator | 654 |
Atomics | 389 |
AsyncDisposableStack | 104 |
SharedArrayBuffer | 104 |
DisposableStack | 93 |
ShadowRealm | 64 |
FinalizationRegistry | 47 |
WeakRef | 29 |
SuppressedError | 22 |
AbstractModuleSource | 8 |