js-on-sx: Math.X.name maps SX names to JS for trig/log/etc.
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 22s

js-unmap-fn-name had mappings for older Math methods but not the
trig/hyperbolic/log family added later. Added 22 mappings for sin,
cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh,
atanh, exp, log, log2, log10, expm1, log1p, clz32, imul, fround.
built-ins/Math: 42/45 → 45/45 (100%). conformance.sh: 148/148.
This commit is contained in:
2026-05-08 03:52:21 +00:00
parent d676bcb6b7
commit fb0ca374a3
4 changed files with 40 additions and 41 deletions

View File

@@ -174,6 +174,28 @@
((= name "js-math-sign") "sign")
((= name "js-math-cbrt") "cbrt")
((= name "js-math-hypot") "hypot")
((= name "js-math-sin") "sin")
((= name "js-math-cos") "cos")
((= name "js-math-tan") "tan")
((= name "js-math-asin") "asin")
((= name "js-math-acos") "acos")
((= name "js-math-atan") "atan")
((= name "js-math-atan2") "atan2")
((= name "js-math-sinh") "sinh")
((= name "js-math-cosh") "cosh")
((= name "js-math-tanh") "tanh")
((= name "js-math-asinh") "asinh")
((= name "js-math-acosh") "acosh")
((= name "js-math-atanh") "atanh")
((= name "js-math-exp") "exp")
((= name "js-math-log") "log")
((= name "js-math-log2") "log2")
((= name "js-math-log10") "log10")
((= name "js-math-expm1") "expm1")
((= name "js-math-log1p") "log1p")
((= name "js-math-clz32") "clz32")
((= name "js-math-imul") "imul")
((= name "js-math-fround") "fround")
((= name "js-number-is-finite") "isFinite")
((= name "js-number-is-nan") "isNaN")
((= name "js-number-is-integer") "isInteger")

View File

@@ -1,45 +1,27 @@
{
"totals": {
"pass": 44,
"fail": 6,
"skip": 0,
"pass": 45,
"fail": 0,
"skip": 5,
"timeout": 0,
"total": 50,
"runnable": 50,
"pass_rate": 88.0
"runnable": 45,
"pass_rate": 100.0
},
"categories": [
{
"category": "built-ins/Object",
"category": "built-ins/Math",
"total": 50,
"pass": 44,
"fail": 6,
"skip": 0,
"pass": 45,
"fail": 0,
"skip": 5,
"timeout": 0,
"pass_rate": 88.0,
"top_failures": [
[
"ReferenceError (undefined symbol)",
4
],
[
"SyntaxError (parse/unsupported syntax)",
2
]
]
"pass_rate": 100.0,
"top_failures": []
}
],
"top_failure_modes": [
[
"ReferenceError (undefined symbol)",
4
],
[
"SyntaxError (parse/unsupported syntax)",
2
]
],
"top_failure_modes": [],
"pinned_commit": "d5e73fc8d2c663554fb72e2380a8c2bc1a318a33",
"elapsed_seconds": 42.1,
"elapsed_seconds": 9.0,
"workers": 1
}

View File

@@ -1,24 +1,17 @@
# test262 scoreboard
Pinned commit: `d5e73fc8d2c663554fb72e2380a8c2bc1a318a33`
Wall time: 42.1s
Wall time: 9.0s
**Total:** 44/50 runnable passed (88.0%). Raw: pass=44 fail=6 skip=0 timeout=0 total=50.
**Total:** 45/45 runnable passed (100.0%). Raw: pass=45 fail=0 skip=5 timeout=0 total=50.
## Top failure modes
- **4x** ReferenceError (undefined symbol)
- **2x** SyntaxError (parse/unsupported syntax)
## Categories (worst pass-rate first, min 10 runnable)
| Category | Pass | Fail | Skip | Timeout | Total | Pass % |
|---|---:|---:|---:|---:|---:|---:|
| built-ins/Object | 44 | 6 | 0 | 0 | 50 | 88.0% |
| built-ins/Math | 45 | 0 | 5 | 0 | 50 | 100.0% |
## Per-category top failures (min 10 runnable, worst first)
### built-ins/Object (44/50 — 88.0%)
- **4x** ReferenceError (undefined symbol)
- **2x** SyntaxError (parse/unsupported syntax)

View File

@@ -158,6 +158,8 @@ Each item: implement → tests → update progress. Mark `[x]` when tests green.
Append-only record of completed iterations. Loop writes one line per iteration: date, what was done, test count delta.
- 2026-05-08 — **`Math.X.name` returns the JS-style method name.** `Math.acos.name`, `Math.acosh.name`, `Math.asin.name` were returning the SX symbol name (`"js-math-acos"` etc.). `js-unmap-fn-name` had mappings for the older Math methods but not the trig/hyperbolic/log family added later. Added mappings for sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh, exp, log, log2, log10, expm1, log1p, clz32, imul, fround. built-ins/Math: 42/45 → 45/45 (100%). conformance.sh: 148/148.
- 2026-05-08 — **`fn.constructor === Function` for function instances.** Per ES, every function instance's `constructor` slot points to the `Function` global. Was returning undefined for `(function () {}).constructor`. Added `constructor` to the function-property cond in `js-get-prop`; returns `js-function-global`. Headline scoreboards unchanged (the test that reads it also has unsupported features), but the fix unblocks future tests that check constructor identity. conformance.sh: 148/148.
- 2026-05-08 — **`js-new-call` honours function-typed constructor returns (not just dict/list).** `new Object(func)` should return `func` itself per ES spec ("if value is a native ECMAScript object, return it"), but `js-new-call` only kept the constructor's return when it was dict/list — functions fell through to the empty wrapper. Added `(js-function? ret)` to the accept set. Now `new Object(fn) === fn` and `new Object(fn)()` invokes `fn`. built-ins/Object: 42/50 → 44/50. conformance.sh: 148/148.