mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-20 08:13:31 +00:00
77 lines
4.9 KiB
Markdown
77 lines
4.9 KiB
Markdown
# 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.from` mappers, custom iterables, constructor substitution, and iterator-closing behavior.
|
|
- Native iterator identity, `.next()`, completion records, or live iterator mutation. CodeMode deliberately materializes
|
|
`keys`, `values`, and `entries` as 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 `join` separators
|
|
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.
|