4.9 KiB
Test262 Array Coverage
The Array tests adapt Test262 at revision 250f204f23a9249ff204be2baec29600faae7b75. They cover CodeMode's 35
exposed instance methods and three static methods using actual arrays, accepted argument types, deterministic behavior,
and CodeMode's materialized collection conventions. Each executable case names its exact upstream source path.
LICENSE.test262 contains the upstream BSD terms.
This is coverage of CodeMode's bounded Array surface, not a claim of ECMAScript or Test262 conformance. One upstream file may contain both adapted and inapplicable assertions, so a cited source means only that the represented assertions were adapted.
Inventory
The 38 relevant upstream API directories contain 2,837 files. The executable suite adapts assertions from 83 distinct sources.
| API | Upstream files | Adapted sources |
|---|---|---|
Array.prototype.map |
216 | 3 |
Array.prototype.filter |
242 | 3 |
Array.prototype.find |
23 | 4 |
Array.prototype.findIndex |
23 | 3 |
Array.prototype.findLast |
24 | 3 |
Array.prototype.findLastIndex |
24 | 3 |
Array.prototype.some |
219 | 2 |
Array.prototype.every |
218 | 2 |
Array.prototype.includes |
30 | 2 |
Array.prototype.join |
23 | 2 |
Array.prototype.reduce |
260 | 3 |
Array.prototype.reduceRight |
260 | 3 |
Array.prototype.flatMap |
24 | 2 |
Array.prototype.forEach |
190 | 2 |
Array.prototype.sort |
54 | 3 |
Array.prototype.toSorted |
21 | 4 |
Array.prototype.slice |
71 | 1 |
Array.prototype.concat |
69 | 3 |
Array.prototype.indexOf |
201 | 2 |
Array.prototype.lastIndexOf |
198 | 2 |
Array.prototype.at |
13 | 3 |
Array.prototype.flat |
19 | 2 |
Array.prototype.reverse |
18 | 1 |
Array.prototype.toReversed |
17 | 2 |
Array.prototype.with |
21 | 2 |
Array.prototype.push |
24 | 1 |
Array.prototype.pop |
23 | 1 |
Array.prototype.shift |
20 | 1 |
Array.prototype.unshift |
22 | 1 |
Array.prototype.splice |
81 | 3 |
Array.prototype.fill |
22 | 3 |
Array.prototype.copyWithin |
39 | 2 |
Array.prototype.keys |
12 | 1 |
Array.prototype.values |
12 | 1 |
Array.prototype.entries |
12 | 1 |
Array.from |
47 | 3 |
Array.isArray |
29 | 2 |
Array.of |
16 | 1 |
Exclusions
Assertions are not adapted when they test behavior outside CodeMode's documented Array surface:
- Function metadata, property descriptors, constructibility, prototype mutation, species constructors, or cross-realm identity.
- Generic receivers, detached methods,
.call,.apply, boxed values, custom coercion objects, Symbols, BigInts, proxies, accessors, frozen arrays, typed arrays, or ArrayBuffers. Array.frommappers, custom iterables, constructor substitution, and iterator-closing behavior.- Native iterator identity,
.next(), completion records, or live iterator mutation. CodeMode deliberately materializeskeys,values, andentriesas arrays. - Sparse-array assertions that depend on literal elisions or inherited indexed properties. CodeMode's confined data model does not preserve those prototype and hole semantics at every boundary.
- Argument coercions outside the accepted schema-like surface. Numeric positions must be numbers and
joinseparators must be strings. - Exact native error brands where CodeMode exposes a safe runtime error instead.
- Async/effectful callbacks, circular-data rejection, sandbox-value identity, diagnostics, and host-boundary behavior. Those remain covered by CodeMode-specific tests.
Handwritten tests remain where they specify CodeMode behavior rather than ordinary ECMAScript Array semantics.