mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-17 03:49:48 +00:00
69 lines
3.5 KiB
Markdown
69 lines
3.5 KiB
Markdown
# Test262 String Coverage
|
|
|
|
The String tests adapt Test262 at revision `250f204f23a9249ff204be2baec29600faae7b75`. They cover CodeMode's 32
|
|
exposed instance methods and two static methods using primitive receivers, accepted argument types, and deterministic
|
|
behavior. Each executable case names its exact upstream source path. `LICENSE.test262` contains the upstream BSD terms.
|
|
|
|
This is coverage of CodeMode's bounded String 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 relevant upstream directories contain 1,048 files: 1,009 core built-in files, 29 Annex B files for exposed methods,
|
|
and 10 Intl `localeCompare` files. The executable suite adapts assertions from 298 distinct sources.
|
|
|
|
| API | Upstream files | Adapted sources |
|
|
| --- | ---: | ---: |
|
|
| `String.fromCharCode` | 17 | 6 |
|
|
| `String.fromCodePoint` | 11 | 4 |
|
|
| `String.prototype.at` | 11 | 5 |
|
|
| `String.prototype.charAt` | 30 | 9 |
|
|
| `String.prototype.charCodeAt` | 25 | 4 |
|
|
| `String.prototype.codePointAt` | 16 | 6 |
|
|
| `String.prototype.concat` | 22 | 1 |
|
|
| `String.prototype.endsWith` | 27 | 13 |
|
|
| `String.prototype.includes` | 27 | 12 |
|
|
| `String.prototype.indexOf` | 47 | 8 |
|
|
| `String.prototype.lastIndexOf` | 25 | 1 |
|
|
| `String.prototype.localeCompare` | 23 | 1 |
|
|
| `String.prototype.match` | 52 | 9 |
|
|
| `String.prototype.matchAll` | 26 | 1 |
|
|
| `String.prototype.normalize` | 14 | 3 |
|
|
| `String.prototype.padEnd` | 13 | 4 |
|
|
| `String.prototype.padStart` | 13 | 4 |
|
|
| `String.prototype.repeat` | 16 | 4 |
|
|
| `String.prototype.replace` | 56 | 16 |
|
|
| `String.prototype.replaceAll` | 46 | 12 |
|
|
| `String.prototype.search` | 44 | 10 |
|
|
| `String.prototype.slice` | 38 | 11 |
|
|
| `String.prototype.split` | 121 | 50 |
|
|
| `String.prototype.startsWith` | 21 | 7 |
|
|
| `String.prototype.substr` | 15 | 6 |
|
|
| `String.prototype.substring` | 46 | 12 |
|
|
| `String.prototype.toLowerCase` | 30 | 5 |
|
|
| `String.prototype.toString` | 7 | 1 |
|
|
| `String.prototype.toUpperCase` | 26 | 3 |
|
|
| `String.prototype.trim` | 129 | 66 |
|
|
| `String.prototype.trimEnd` | 23 | 2 |
|
|
| `String.prototype.trimLeft` | 4 | 0 |
|
|
| `String.prototype.trimRight` | 4 | 0 |
|
|
| `String.prototype.trimStart` | 23 | 2 |
|
|
|
|
## Exclusions
|
|
|
|
Assertions are not adapted when they test behavior outside CodeMode's documented String surface:
|
|
|
|
- Function metadata, property descriptors, constructibility, prototype mutation, or cross-realm identity.
|
|
- The `trimLeft`/`trimRight` Test262 files assert prototype function identity, which CodeMode does not expose. Their
|
|
supported call behavior remains covered by CodeMode-specific tests.
|
|
- Boxed strings, generic receivers, custom coercion objects, Symbols, BigInts, or argument types CodeMode rejects.
|
|
- Symbol-based RegExp dispatch, custom matchers, species constructors, or iterator protocol details. CodeMode materializes
|
|
`matchAll` results instead of exposing iterators.
|
|
- Locale selection and options. CodeMode deliberately uses the host default locale and ignores those arguments.
|
|
- Test262 harness behavior or setup syntax unavailable in the confined interpreter.
|
|
- Function-replacer behavior that is covered by CodeMode-specific tests for sequential callbacks, async tool calls,
|
|
result coercion, diagnostics, and sandbox boundaries.
|
|
- Assertions requiring an exact native error type when CodeMode deliberately exposes only its safe runtime error.
|
|
|
|
Handwritten tests remain where they specify CodeMode behavior rather than ordinary ECMAScript String semantics.
|