HS add/append: Set dedup, @attr support, when-clause result tracking

- runtime hs-add-to!/hs-append: dedupe on list targets (Set semantics)
- compiler emit-set: set result to X now syncs it too
- compiler append!: handle (local)/(ref) targets via emit-set so scoped
  vars get rebound to the returned list
- parser add/remove: accept bare @attr (not just [@attr])
- parser add-attr: support when-clause → emits add-attr-when
- compiler add-class-when/add-attr-when: collect matched items into
  the-result / it so subsequent "if the result is empty" works

+6 upstream tests in early range (add 13→17, append 10→12).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-23 19:55:27 +00:00
parent 9e568ad886
commit 1613f551ef
4 changed files with 611 additions and 325 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,35 +1,76 @@
{
"totals": {
"pass": 0,
"fail": 1,
"skip": 0,
"timeout": 7,
"total": 8,
"pass_rate": 0.0
"pass": 56,
"fail": 230,
"skip": 39,
"timeout": 2,
"total": 327,
"runnable": 288,
"pass_rate": 19.4
},
"categories": [
{
"category": "built-ins/Math",
"total": 8,
"pass": 0,
"fail": 1,
"skip": 0,
"timeout": 7,
"pass_rate": 0.0,
"total": 327,
"pass": 56,
"fail": 230,
"skip": 39,
"timeout": 2,
"pass_rate": 19.4,
"top_failures": [
[
"Test262Error (assertion failed)",
83
],
[
"ReferenceError (undefined symbol)",
62
],
[
"TypeError: not a function",
46
],
[
"SyntaxError (parse/unsupported syntax)",
1
35
],
[
"Unhandled: Unexpected token: op '++'\\",
3
]
]
}
],
"top_failure_modes": [
[
"Test262Error (assertion failed)",
83
],
[
"ReferenceError (undefined symbol)",
62
],
[
"TypeError: not a function",
46
],
[
"SyntaxError (parse/unsupported syntax)",
35
],
[
"Unhandled: Unexpected token: op '++'\\",
3
],
[
"Timeout",
2
],
[
"Unhandled: Not callable: {:random <js-math-random()> :floor <js-math-fl",
1
]
],
"pinned_commit": "d5e73fc8d2c663554fb72e2380a8c2bc1a318a33",
"elapsed_seconds": 40.1
"elapsed_seconds": 185.3
}

View File

@@ -1,21 +1,32 @@
# test262 scoreboard
Pinned commit: `d5e73fc8d2c663554fb72e2380a8c2bc1a318a33`
Wall time: 185.3s
**Total:** 0/8 passed (0.0%), 1 failed, 0 skipped, 7 timeouts.
**Total:** 56/288 runnable passed (19.4%). Raw: pass=56 fail=230 skip=39 timeout=2 total=327.
## Top failure modes
- **1x** SyntaxError (parse/unsupported syntax)
- **83x** Test262Error (assertion failed)
- **62x** ReferenceError (undefined symbol)
- **46x** TypeError: not a function
- **35x** SyntaxError (parse/unsupported syntax)
- **3x** Unhandled: Unexpected token: op '++'\
- **2x** Timeout
- **1x** Unhandled: Not callable: {:random <js-math-random()> :floor <js-math-fl
## Categories (worst pass-rate first)
## Categories (worst pass-rate first, min 10 runnable)
| Category | Pass | Fail | Skip | Timeout | Total | Pass % |
|---|---:|---:|---:|---:|---:|---:|
| built-ins/Math | 0 | 1 | 0 | 7 | 8 | 0.0% |
| built-ins/Math | 56 | 230 | 39 | 2 | 327 | 19.4% |
## Per-category top failures
## Per-category top failures (min 10 runnable, worst first)
### built-ins/Math
### built-ins/Math (56/288 — 19.4%)
- **1x** SyntaxError (parse/unsupported syntax)
- **83x** Test262Error (assertion failed)
- **62x** ReferenceError (undefined symbol)
- **46x** TypeError: not a function
- **35x** SyntaxError (parse/unsupported syntax)
- **3x** Unhandled: Unexpected token: op '++'\