@loopdive/js2 0.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1425 -0
- package/LICENSE +189 -0
- package/README.md +451 -0
- package/dist/checker/index.d.ts +117 -0
- package/dist/checker/language-service.d.ts +39 -0
- package/dist/checker/node-capability-map.d.ts +63 -0
- package/dist/checker/type-mapper.d.ts +84 -0
- package/dist/cjs-rewrite.d.ts +19 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +363 -0
- package/dist/codegen/accessor-driver.d.ts +97 -0
- package/dist/codegen/any-helpers.d.ts +72 -0
- package/dist/codegen/array-element-typing.d.ts +46 -0
- package/dist/codegen/array-holes.d.ts +69 -0
- package/dist/codegen/array-methods.d.ts +68 -0
- package/dist/codegen/array-object-proto.d.ts +64 -0
- package/dist/codegen/array-reduce-fusion.d.ts +31 -0
- package/dist/codegen/array-to-primitive.d.ts +28 -0
- package/dist/codegen/async-cps.d.ts +239 -0
- package/dist/codegen/async-scheduler.d.ts +349 -0
- package/dist/codegen/binary-ops.d.ts +78 -0
- package/dist/codegen/binding-info.d.ts +31 -0
- package/dist/codegen/builtin-scaffold.d.ts +98 -0
- package/dist/codegen/builtin-static-globals.d.ts +8 -0
- package/dist/codegen/builtin-tags.d.ts +189 -0
- package/dist/codegen/case-convert-native.d.ts +12 -0
- package/dist/codegen/case-tables.d.ts +4 -0
- package/dist/codegen/class-bodies.d.ts +41 -0
- package/dist/codegen/class-member-keys.d.ts +33 -0
- package/dist/codegen/class-to-primitive.d.ts +39 -0
- package/dist/codegen/closed-method-dispatch.d.ts +42 -0
- package/dist/codegen/closures.d.ts +285 -0
- package/dist/codegen/coercion-engine.d.ts +154 -0
- package/dist/codegen/coercion-plan.d.ts +29 -0
- package/dist/codegen/context/bodies.d.ts +4 -0
- package/dist/codegen/context/create-context.d.ts +4 -0
- package/dist/codegen/context/errors.d.ts +39 -0
- package/dist/codegen/context/locals.d.ts +69 -0
- package/dist/codegen/context/source-pos.d.ts +5 -0
- package/dist/codegen/context/speculative.d.ts +95 -0
- package/dist/codegen/context/types.d.ts +1936 -0
- package/dist/codegen/custom-iterable.d.ts +34 -0
- package/dist/codegen/dataview-native.d.ts +51 -0
- package/dist/codegen/date-parse-native.d.ts +13 -0
- package/dist/codegen/dead-elimination.d.ts +26 -0
- package/dist/codegen/declarations.d.ts +147 -0
- package/dist/codegen/deno-api.d.ts +11 -0
- package/dist/codegen/destructuring-params.d.ts +102 -0
- package/dist/codegen/dyn-read.d.ts +26 -0
- package/dist/codegen/eval-tiering.d.ts +19 -0
- package/dist/codegen/expressions/assignment.d.ts +61 -0
- package/dist/codegen/expressions/builtins.d.ts +26 -0
- package/dist/codegen/expressions/calls-closures.d.ts +54 -0
- package/dist/codegen/expressions/calls-guards.d.ts +49 -0
- package/dist/codegen/expressions/calls-optional.d.ts +4 -0
- package/dist/codegen/expressions/calls.d.ts +83 -0
- package/dist/codegen/expressions/eval-inline.d.ts +24 -0
- package/dist/codegen/expressions/extern.d.ts +67 -0
- package/dist/codegen/expressions/fnctor-prototype.d.ts +52 -0
- package/dist/codegen/expressions/helpers.d.ts +212 -0
- package/dist/codegen/expressions/identifiers.d.ts +57 -0
- package/dist/codegen/expressions/late-imports.d.ts +81 -0
- package/dist/codegen/expressions/logical-ops.d.ts +18 -0
- package/dist/codegen/expressions/misc.d.ts +27 -0
- package/dist/codegen/expressions/new-super.d.ts +25 -0
- package/dist/codegen/expressions/promise-subclass.d.ts +38 -0
- package/dist/codegen/expressions/proto-override.d.ts +63 -0
- package/dist/codegen/expressions/unary-updates.d.ts +21 -0
- package/dist/codegen/expressions/unary.d.ts +6 -0
- package/dist/codegen/expressions.d.ts +31 -0
- package/dist/codegen/fallback-telemetry.d.ts +53 -0
- package/dist/codegen/fixups.d.ts +80 -0
- package/dist/codegen/fmod.d.ts +10 -0
- package/dist/codegen/fnctor-escape-gate.d.ts +92 -0
- package/dist/codegen/function-body.d.ts +52 -0
- package/dist/codegen/generators-native.d.ts +92 -0
- package/dist/codegen/helpers/body-references-own-this.d.ts +22 -0
- package/dist/codegen/helpers/body-uses-arguments.d.ts +12 -0
- package/dist/codegen/helpers/is-strict-function.d.ts +52 -0
- package/dist/codegen/host-import-allowlist.d.ts +140 -0
- package/dist/codegen/index.d.ts +500 -0
- package/dist/codegen/ir-tail-call.d.ts +8 -0
- package/dist/codegen/iterator-native.d.ts +44 -0
- package/dist/codegen/json-codec-native.d.ts +78 -0
- package/dist/codegen/json-runtime.d.ts +35 -0
- package/dist/codegen/json-standalone.d.ts +25 -0
- package/dist/codegen/linear-uint8-analysis.d.ts +46 -0
- package/dist/codegen/linear-uint8-arena.d.ts +7 -0
- package/dist/codegen/linear-uint8-codegen.d.ts +103 -0
- package/dist/codegen/linear-uint8-signatures.d.ts +26 -0
- package/dist/codegen/literals.d.ts +115 -0
- package/dist/codegen/map-runtime.d.ts +142 -0
- package/dist/codegen/math-helpers.d.ts +7 -0
- package/dist/codegen/member-get-dispatch.d.ts +42 -0
- package/dist/codegen/member-set-dispatch.d.ts +28 -0
- package/dist/codegen/native-proto.d.ts +98 -0
- package/dist/codegen/native-regex.d.ts +158 -0
- package/dist/codegen/native-strings.d.ts +146 -0
- package/dist/codegen/new-target.d.ts +30 -0
- package/dist/codegen/node-fs-api.d.ts +47 -0
- package/dist/codegen/number-format-native.d.ts +9 -0
- package/dist/codegen/number-ryu.d.ts +27 -0
- package/dist/codegen/object-ops.d.ts +94 -0
- package/dist/codegen/object-runtime.d.ts +171 -0
- package/dist/codegen/parse-number-native.d.ts +10 -0
- package/dist/codegen/peephole.d.ts +6 -0
- package/dist/codegen/property-access.d.ts +294 -0
- package/dist/codegen/raw-wasi-api.d.ts +13 -0
- package/dist/codegen/regex/bytecode.d.ts +140 -0
- package/dist/codegen/regex/casefold.d.ts +41 -0
- package/dist/codegen/regex/compile.d.ts +51 -0
- package/dist/codegen/regex/parse.d.ts +76 -0
- package/dist/codegen/regex/unicode.d.ts +42 -0
- package/dist/codegen/regex/vm.d.ts +24 -0
- package/dist/codegen/regexp-standalone.d.ts +350 -0
- package/dist/codegen/registry/error-types.d.ts +38 -0
- package/dist/codegen/registry/imports.d.ts +46 -0
- package/dist/codegen/registry/types.d.ts +59 -0
- package/dist/codegen/set-algebra.d.ts +17 -0
- package/dist/codegen/set-runtime.d.ts +74 -0
- package/dist/codegen/shared.d.ts +111 -0
- package/dist/codegen/stack-balance.d.ts +43 -0
- package/dist/codegen/statements/control-flow.d.ts +25 -0
- package/dist/codegen/statements/destructuring.d.ts +177 -0
- package/dist/codegen/statements/exceptions.d.ts +11 -0
- package/dist/codegen/statements/functions.d.ts +1 -0
- package/dist/codegen/statements/index.d.ts +1 -0
- package/dist/codegen/statements/loops.d.ts +7 -0
- package/dist/codegen/statements/nested-declarations.d.ts +78 -0
- package/dist/codegen/statements/shared.d.ts +38 -0
- package/dist/codegen/statements/tdz.d.ts +43 -0
- package/dist/codegen/statements/variables.d.ts +3 -0
- package/dist/codegen/statements.d.ts +9 -0
- package/dist/codegen/string-builder.d.ts +131 -0
- package/dist/codegen/string-ops.d.ts +87 -0
- package/dist/codegen/struct-accessor-closure.d.ts +36 -0
- package/dist/codegen/symbol-native.d.ts +55 -0
- package/dist/codegen/temporal-native.d.ts +8 -0
- package/dist/codegen/timsort.d.ts +2 -0
- package/dist/codegen/type-coercion.d.ts +123 -0
- package/dist/codegen/typeof-delete.d.ts +38 -0
- package/dist/codegen/uri-encoding-native.d.ts +33 -0
- package/dist/codegen/value-tags.d.ts +74 -0
- package/dist/codegen/walk-instructions.d.ts +20 -0
- package/dist/codegen/weak-collections-runtime.d.ts +16 -0
- package/dist/codegen/with-scope.d.ts +106 -0
- package/dist/codegen-linear/c-abi.d.ts +74 -0
- package/dist/codegen-linear/context.d.ts +86 -0
- package/dist/codegen-linear/index.d.ts +28 -0
- package/dist/codegen-linear/layout.d.ts +39 -0
- package/dist/codegen-linear/runtime.d.ts +161 -0
- package/dist/codegen-linear/simd.d.ts +7 -0
- package/dist/compiler/define-substitution.d.ts +27 -0
- package/dist/compiler/early-errors/assignment.d.ts +26 -0
- package/dist/compiler/early-errors/context.d.ts +17 -0
- package/dist/compiler/early-errors/duplicates.d.ts +20 -0
- package/dist/compiler/early-errors/index.d.ts +11 -0
- package/dist/compiler/early-errors/labels.d.ts +13 -0
- package/dist/compiler/early-errors/module-rules.d.ts +36 -0
- package/dist/compiler/early-errors/node-checks.d.ts +7 -0
- package/dist/compiler/early-errors/predicates.d.ts +140 -0
- package/dist/compiler/early-errors/tdz.d.ts +17 -0
- package/dist/compiler/import-manifest.d.ts +18 -0
- package/dist/compiler/output.d.ts +46 -0
- package/dist/compiler/validation.d.ts +45 -0
- package/dist/compiler.d.ts +48 -0
- package/dist/define-substitution-BcUeKC2A.js +109 -0
- package/dist/emit/binary.d.ts +50 -0
- package/dist/emit/c-header.d.ts +23 -0
- package/dist/emit/canonical-recgroup.d.ts +86 -0
- package/dist/emit/encoder.d.ts +28 -0
- package/dist/emit/object.d.ts +14 -0
- package/dist/emit/opcodes.d.ts +464 -0
- package/dist/emit/sourcemap.d.ts +33 -0
- package/dist/emit/wat.d.ts +6 -0
- package/dist/env.d.ts +46 -0
- package/dist/import-resolver.d.ts +68 -0
- package/dist/index.d.ts +486 -0
- package/dist/index.js +755 -0
- package/dist/ir/alloc-registry.d.ts +75 -0
- package/dist/ir/analysis/encoding.d.ts +38 -0
- package/dist/ir/analysis/escape.d.ts +32 -0
- package/dist/ir/analysis/lattice.d.ts +72 -0
- package/dist/ir/analysis/ownership.d.ts +31 -0
- package/dist/ir/analysis/stack-alloc.d.ts +20 -0
- package/dist/ir/backend/bytecode-emitter.d.ts +237 -0
- package/dist/ir/backend/bytecode-vm.d.ts +74 -0
- package/dist/ir/backend/emitter.d.ts +121 -0
- package/dist/ir/backend/handles.d.ts +133 -0
- package/dist/ir/backend/legality.d.ts +9 -0
- package/dist/ir/backend/linear-emitter.d.ts +41 -0
- package/dist/ir/backend/wasmgc-emitter.d.ts +43 -0
- package/dist/ir/builder.d.ts +401 -0
- package/dist/ir/from-ast.d.ts +192 -0
- package/dist/ir/index.d.ts +16 -0
- package/dist/ir/integration.d.ts +27 -0
- package/dist/ir/lower.d.ts +203 -0
- package/dist/ir/nodes.d.ts +1452 -0
- package/dist/ir/passes/alloc-discipline.d.ts +19 -0
- package/dist/ir/passes/constant-fold.d.ts +7 -0
- package/dist/ir/passes/dead-code.d.ts +18 -0
- package/dist/ir/passes/inline-small.d.ts +7 -0
- package/dist/ir/passes/monomorphize.d.ts +21 -0
- package/dist/ir/passes/simplify-cfg.d.ts +19 -0
- package/dist/ir/passes/tagged-union-types.d.ts +45 -0
- package/dist/ir/passes/tagged-unions.d.ts +22 -0
- package/dist/ir/propagate.d.ts +135 -0
- package/dist/ir/select.d.ts +81 -0
- package/dist/ir/types.d.ts +832 -0
- package/dist/ir/verify-alloc.d.ts +18 -0
- package/dist/ir/verify.d.ts +7 -0
- package/dist/link/index.d.ts +11 -0
- package/dist/link/isolation.d.ts +24 -0
- package/dist/link/linker.d.ts +37 -0
- package/dist/link/reader.d.ts +158 -0
- package/dist/link/resolver.d.ts +19 -0
- package/dist/optimize.d.ts +54 -0
- package/dist/optimize.js +262 -0
- package/dist/position-map.d.ts +64 -0
- package/dist/process-stdin-prelude.d.ts +16 -0
- package/dist/resolve.d.ts +82 -0
- package/dist/runtime/builtins.d.ts +1 -0
- package/dist/runtime-C-4q_KwU.js +164438 -0
- package/dist/runtime-containment.d.ts +6 -0
- package/dist/runtime-eval.d.ts +132 -0
- package/dist/runtime-instantiate.d.ts +16 -0
- package/dist/runtime.d.ts +128 -0
- package/dist/runtime.js +12 -0
- package/dist/shape-inference.d.ts +20 -0
- package/dist/treeshake.d.ts +17 -0
- package/dist/ts-api.d.ts +30 -0
- package/dist/wit-generator.d.ts +18 -0
- package/package.json +187 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,1425 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
### Added: relocatable standalone CLI bundle (#1775, GH #986 follow-up)
|
|
6
|
+
|
|
7
|
+
- Added `pnpm run build:standalone-cli`, which writes
|
|
8
|
+
`dist/js2wasm-standalone.mjs` for `deno compile` / `bun build --compile`
|
|
9
|
+
workflows. This build bundles the core compiler dependencies and injects
|
|
10
|
+
TypeScript's `lib.*.d.ts` files into the existing bundled-lib hook, so the
|
|
11
|
+
generated file does not need to stay next to `node_modules/typescript/lib`.
|
|
12
|
+
- Standalone bundles now get the package version injected at build time, so
|
|
13
|
+
`--version` does not rely on `../package.json` after the file is moved.
|
|
14
|
+
- Binaryen is now an optional peer/dev dependency and is no longer bundled into
|
|
15
|
+
the standalone CLI artifact; `-O` can use an installed `binaryen` package or a
|
|
16
|
+
`wasm-opt` binary on PATH, and the emitted `.wasm` can be optimized afterward.
|
|
17
|
+
- The standalone docs now recommend `--minify`, which brings the no-Binaryen
|
|
18
|
+
bundle down to roughly 8.5 MB before native runtime embedding.
|
|
19
|
+
|
|
20
|
+
### Breaking: `compile()` API is now async (#1757)
|
|
21
|
+
|
|
22
|
+
- The public compiler entry points — `compile`, `compileMulti`, `compileFiles`,
|
|
23
|
+
`compileToWat`, `compileProject`, and `createIncrementalCompiler().compile`
|
|
24
|
+
(plus the lower-level `compileSource` / `compileMultiSource` /
|
|
25
|
+
`compileFilesSource`) — now return a `Promise`. **Every caller must `await`
|
|
26
|
+
them.** A synchronous `compileSourceSync` (no Binaryen optimization) is
|
|
27
|
+
retained for the few contexts that cannot await (the `eval` host shim).
|
|
28
|
+
- **Why:** the optional Binaryen optimizer now loads via
|
|
29
|
+
`await import("binaryen")` instead of a synchronous `require`. Binaryen ships
|
|
30
|
+
a top-level `await` that a sync `require` cannot load, which is what blocked
|
|
31
|
+
embedding it in a `bun build --compile` / `deno compile` standalone binary
|
|
32
|
+
(GH #986). With the async path the optimizer is bundled and the single-file
|
|
33
|
+
binary runs `--optimize` with Binaryen embedded — no `wasm-opt` on `PATH`
|
|
34
|
+
required. Follow-up to the #1756 `createRequire` stopgap.
|
|
35
|
+
|
|
36
|
+
Migration: `const r = compile(src)` → `const r = await compile(src)`.
|
|
37
|
+
|
|
38
|
+
### Repository rename
|
|
39
|
+
|
|
40
|
+
- The repo has been renamed `loopdive/js2wasm` → `loopdive/js2`.
|
|
41
|
+
GitHub provides a permanent redirect for the old URL, so existing
|
|
42
|
+
clones and PR links continue to work. New clones and CI should use
|
|
43
|
+
the new name. The `loopdive/js2wasm-baselines` baselines repo is
|
|
44
|
+
tracked separately and will be renamed in a follow-up.
|
|
45
|
+
|
|
46
|
+
## Historical sprint tags
|
|
47
|
+
|
|
48
|
+
This file records the historical sprint boundary tags created from the sprint history in `plan/sprints/` and the Git history on `main`.
|
|
49
|
+
|
|
50
|
+
Tagging method:
|
|
51
|
+
|
|
52
|
+
- Use an explicit sprint-closing commit when one exists, for example `sprint-31 suspend`.
|
|
53
|
+
- Otherwise use the closest `main` snapshot that matches the documented sprint boundary and/or the archived `test262` run for that sprint.
|
|
54
|
+
- `sprint/32`, `sprint/34`, and `sprint/35` were not tagged because their sprint docs are still planning or incomplete.
|
|
55
|
+
- `sprint/33` does not exist in the current sprint history.
|
|
56
|
+
|
|
57
|
+
## Current test262 status
|
|
58
|
+
|
|
59
|
+
Latest complete archived full-suite entry: `20260331-215747` from [benchmarks/results/runs/index.json](/Users/thomas/Documents/Arbeit/Startup/Projekte/Mosaic/code/@loopdive/ts2wasm/benchmarks/results/runs/index.json)
|
|
60
|
+
|
|
61
|
+
- Pass rate: `15,155 / 48,174` = `31.5%`
|
|
62
|
+
- Previous full-suite entry: `15,246 / 48,174` = `31.7%`
|
|
63
|
+
- Note: [benchmarks/results/test262-report.json](/Users/thomas/Documents/Arbeit/Startup/Projekte/Mosaic/code/@loopdive/ts2wasm/benchmarks/results/test262-report.json) currently points to a missing target, so the pass rate above is sourced from the run index rather than the symlink.
|
|
64
|
+
|
|
65
|
+
## Sprint history
|
|
66
|
+
|
|
67
|
+
## Sprint 0 - v0.0.0
|
|
68
|
+
|
|
69
|
+
- Tags: `sprint/0`, `v0.0.0`
|
|
70
|
+
- Date range: 2026-02-27 to 2026-03-10
|
|
71
|
+
- Goal: Build the compiler, runtime, playground, and first conformance baseline before structured sprint tracking began.
|
|
72
|
+
- Worked on: Turned the initial prototype into a real TypeScript-to-Wasm toolchain: core AOT compilation, CLI and playground, import resolution and stdlib growth, classes/closures/async-await/destructuring, relocatable object emission and multi-memory linking, linear-memory backend work, fast mode, native strings and arrays, gradual typing, npm/package resolution, SIMD and benchmark infrastructure, and the first serious test262 subset runs that reached the 550-pass baseline used by Sprint 1.
|
|
73
|
+
- Baseline: project bootstrap / no recorded sprint baseline
|
|
74
|
+
- Final result: pre-Sprint-1 baseline established at `550` test262 passes
|
|
75
|
+
- test262: `550` pass (100% of compilable tests at that point)
|
|
76
|
+
|
|
77
|
+
### Issues worked on
|
|
78
|
+
|
|
79
|
+
- #31 Default number type to i32, promote to f64 only when needed
|
|
80
|
+
- #33 Relocatable Wasm Object File (.o) Emission
|
|
81
|
+
- #34 Multi-Memory Module Linker with Isolation Validation
|
|
82
|
+
- #35 Class inheritance with extends and super
|
|
83
|
+
- #36 Static class members
|
|
84
|
+
- #37 Getter/Setter Properties on User-Defined Classes
|
|
85
|
+
- #38 Implement `instanceof` operator
|
|
86
|
+
- #39 Labeled Break and Continue
|
|
87
|
+
- #40 String Enums
|
|
88
|
+
- #41 typeof as Expression
|
|
89
|
+
- #42 Comma operator support
|
|
90
|
+
- #43 void Expression
|
|
91
|
+
- #44 Source Map Generation
|
|
92
|
+
- #45 Error reporting with source locations
|
|
93
|
+
- #46 Linear-memory compilation backend
|
|
94
|
+
- #47 importedStringConstants support
|
|
95
|
+
- #49 Default parameter values
|
|
96
|
+
- #50 Nullish and logical assignment operators
|
|
97
|
+
- #51 Functional array methods (filter, map, reduce, forEach, find)
|
|
98
|
+
- #52 String.split() method
|
|
99
|
+
- #53 Numeric separators
|
|
100
|
+
- #54 Map and Set collections
|
|
101
|
+
- #55 Function expressions
|
|
102
|
+
- #56 Tuples
|
|
103
|
+
- #57 Class expressions
|
|
104
|
+
- #58 Iterators and for...of with custom iterables
|
|
105
|
+
- #59 Abstract classes
|
|
106
|
+
- #60 RegExp via host imports
|
|
107
|
+
- #61 Object.keys / Object.values / Object.entries
|
|
108
|
+
- #62 JSON.parse / JSON.stringify via host
|
|
109
|
+
- #63 Promise.all / Promise.race
|
|
110
|
+
- #64 Generators and yield
|
|
111
|
+
- #65 Computed property names
|
|
112
|
+
- #67 Closed import objects — replace Proxy with compiler manifest
|
|
113
|
+
- #68 DOM containment — scope wasm module access to a subtree
|
|
114
|
+
- #69 Safe mode — restrict TypeScript to a secure subset
|
|
115
|
+
- #70 Fast mode — optimize for performance with restricted TypeScript
|
|
116
|
+
- #71 Fast mode — WasmGC-native strings
|
|
117
|
+
- #72 Fast mode — WasmGC-native arrays
|
|
118
|
+
- #73 Benchmark — JS vs host-call vs GC-native vs linear-memory performance
|
|
119
|
+
- #74 WASM SIMD support for string and array operations
|
|
120
|
+
- #75 Slice-based string views for substring/trim/slice
|
|
121
|
+
- #76 Rope/cons-string for O(1) concatenation
|
|
122
|
+
- #77 Object literals, spread, and structural typing
|
|
123
|
+
- #78 Standard library coverage — builtins and static methods
|
|
124
|
+
- #79 Gradual typing — boxed `any` with runtime dispatch
|
|
125
|
+
- #80 JS file compilation via `.d.ts` types and TS inference
|
|
126
|
+
- #81 npm package resolution and tree-shaking
|
|
127
|
+
- #83 Test262 conformance subset
|
|
128
|
+
- #85 Variadic `Math.min` / `Math.max`
|
|
129
|
+
- #87 Math.round negative zero preservation
|
|
130
|
+
- #88 Test262 coverage — language/expressions
|
|
131
|
+
- #89 Test262 coverage — language/statements
|
|
132
|
+
- #90 Test262 coverage — built-ins/Array
|
|
133
|
+
- #91 Test262 coverage — built-ins/Number
|
|
134
|
+
- #92 Test262 coverage — language/types (coercion)
|
|
135
|
+
- #93 Test262 coverage — built-ins/Object
|
|
136
|
+
- #94 Test262 coverage — language/function-code
|
|
137
|
+
- #95 Test262 coverage — built-ins/isNaN + isFinite
|
|
138
|
+
- #96 Test262 coverage — built-ins/JSON
|
|
139
|
+
- #97 NaN/undefined/null truthiness in boolean contexts
|
|
140
|
+
- #98 Proper ToInt32 modular arithmetic for bitwise operations
|
|
141
|
+
- #99 Externref arithmetic, comparison, and control flow
|
|
142
|
+
- #100 Mutable closure captures via ref cells
|
|
143
|
+
- #101 Test262 — language/statements remaining
|
|
144
|
+
- #102 Test262 — language/expressions remaining
|
|
145
|
+
- #103 Test262 — built-ins/String prototype methods
|
|
146
|
+
- #104 Test262 — language/ top-level categories
|
|
147
|
+
- #105 Test262 — built-ins/Map, built-ins/Set, built-ins/Promise
|
|
148
|
+
- #106 Test262 — built-ins/Object extended + built-ins/Array constructor
|
|
149
|
+
- #107 Fix codegen null-dereference crashes (90 occurrences)
|
|
150
|
+
- #109 Tagged template literals
|
|
151
|
+
|
|
152
|
+
## Sprint 1 - v0.1.0
|
|
153
|
+
|
|
154
|
+
- Tags: `sprint/1`, `v0.1.0`
|
|
155
|
+
- Date range: 2026-03-11 (morning) to 2026-03-11 (morning)
|
|
156
|
+
- Goal: First test262 conformance push — language feature coverage
|
|
157
|
+
- Worked on: Built the first serious test262 push: harness improvements, BigInt support, private class members, arguments/valueOf/toString behavior, object literal accessors, destructuring, IIFE support, and broad operator/coercion fixes.
|
|
158
|
+
- Baseline: 550 pass (100% of compilable tests at the time)
|
|
159
|
+
- Final result: 1,509 pass / ~23,000 total
|
|
160
|
+
- test262: `550 -> 1,509` pass
|
|
161
|
+
- Delta: +959 pass (+174% from 550)
|
|
162
|
+
|
|
163
|
+
### Issues worked on
|
|
164
|
+
|
|
165
|
+
- #116 Unskip implemented features in test262 runner
|
|
166
|
+
- #117 String comparison support in test262 harness
|
|
167
|
+
- #118 compareArray.js test262 harness include
|
|
168
|
+
- #119 assert.throws support in test262 harness
|
|
169
|
+
- #120 undefined/void 0 comparison support
|
|
170
|
+
- #121 Function.prototype.call/apply
|
|
171
|
+
- #122 arguments object
|
|
172
|
+
- #123 Wrapper object constructors: new Number/String/Boolean (648 tests)
|
|
173
|
+
- #124 delete operator via undefined sentinel (232 tests)
|
|
174
|
+
- #125 Object.defineProperty / property descriptors (106 tests)
|
|
175
|
+
- #126 valueOf/toString coercion
|
|
176
|
+
- #127 Private class members (#field, #method)
|
|
177
|
+
- #128 BigInt type
|
|
178
|
+
- #129 propertyHelper.js test262 harness (341 tests)
|
|
179
|
+
- #130 Usage-based shape inference + call/apply inlining
|
|
180
|
+
- #131 String concatenation with variables
|
|
181
|
+
- #132 Logical operators returning values (short-circuit)
|
|
182
|
+
- #133 typeof runtime comparison
|
|
183
|
+
- #134 Switch fallthrough
|
|
184
|
+
- #135 Ternary/conditional returning non-boolean values
|
|
185
|
+
- #136 Loose equality (== / !=)
|
|
186
|
+
- #137 Object literal getter/setter
|
|
187
|
+
- #138 valueOf/toString coercion on comparison operators
|
|
188
|
+
- #139 valueOf/toString coercion on arithmetic operators
|
|
189
|
+
- #140 Object computed property names not working at runtime
|
|
190
|
+
- #141 Tagged template literal runtime failures
|
|
191
|
+
- #142 Assignment destructuring failures
|
|
192
|
+
- #143 for-loop edge cases
|
|
193
|
+
- #144 new expression with class expressions
|
|
194
|
+
- #145 allowJs type flexibility — boolean/string/void as number
|
|
195
|
+
- #148 Element access (bracket notation) on struct types
|
|
196
|
+
- #150 ClassDeclaration in statement positions
|
|
197
|
+
- #151 `this` keyword in class methods for test262
|
|
198
|
+
- #152 Setter return value error in allowJs mode
|
|
199
|
+
- #154 while/do-while loop condition evaluation
|
|
200
|
+
- #155 Logical-and/logical-or short-circuit returns wrong value
|
|
201
|
+
- #156 Conditional (ternary) expression evaluation
|
|
202
|
+
- #157 void expression returns wrong value
|
|
203
|
+
- #158 String concatenation with non-string operands
|
|
204
|
+
- #159 Call expression edge cases
|
|
205
|
+
- #160 Math method edge cases
|
|
206
|
+
- #161 Compound assignment edge cases
|
|
207
|
+
- #162 switch statement matching
|
|
208
|
+
- #163 return statement edge cases
|
|
209
|
+
- #164 variable declaration edge cases
|
|
210
|
+
- #165 function statement hoisting and edge cases
|
|
211
|
+
- #166 `in` operator runtime failures
|
|
212
|
+
- #167 typeof edge cases
|
|
213
|
+
- #168 equality operators with null/undefined
|
|
214
|
+
- #169 Arrow function edge cases
|
|
215
|
+
- #170 Class expression/declaration edge cases
|
|
216
|
+
- #171 Boolean() edge cases
|
|
217
|
+
- #172 Array.isArray edge case
|
|
218
|
+
|
|
219
|
+
## Sprint 2 - v0.2.0
|
|
220
|
+
|
|
221
|
+
- Tags: `sprint/2`, `v0.2.0`
|
|
222
|
+
- Date range: 2026-03-11 (afternoon) to 2026-03-11 (afternoon)
|
|
223
|
+
- Goal: Runtime failure reduction — 167 failures and ~1,200 compile errors
|
|
224
|
+
- Worked on: Focused on runtime failure reduction: type coercion edge cases, built-in method compile errors, computed/class property names, `.call()` support, tagged template caching, for-of destructuring, and member increment/decrement.
|
|
225
|
+
- Baseline: 1,509 pass
|
|
226
|
+
- Final result: ~1,509+ pass (merged same day as Sprint 1)
|
|
227
|
+
- test262: incremental, no isolated archived run
|
|
228
|
+
- Delta: Primarily reduced runtime failures and compile errors
|
|
229
|
+
|
|
230
|
+
### Issues worked on
|
|
231
|
+
|
|
232
|
+
- #175 Bug: Negative zero not preserved in arithmetic operations
|
|
233
|
+
- #177 - Bug: Spread operator in new expressions
|
|
234
|
+
- #180 JS var re-declaration: "Subsequent variable declarations must have the same type"
|
|
235
|
+
- #181 Unsupported `new Object()` and `new Function()` constructor calls
|
|
236
|
+
- #183 Template literal type coercion wasm errors
|
|
237
|
+
- #184 - Function arity mismatch: "not enough arguments on the stack"
|
|
238
|
+
- #185 Unary plus on non-numeric types
|
|
239
|
+
- #186 `typeof null` returns wrong value
|
|
240
|
+
- #187 String prototype methods: heavy test skipping due to include filters
|
|
241
|
+
- #191 `assert` not found: tests using raw `assert()` calls
|
|
242
|
+
- #193 Coalesce operator wasm type mismatch
|
|
243
|
+
- #195 Prefix/postfix increment/decrement compile errors
|
|
244
|
+
- #196 Try/catch/finally: 66 compile errors
|
|
245
|
+
- #197 Statement-level `if` compile errors
|
|
246
|
+
- #200 JSON.parse/JSON.stringify: 24 compile errors
|
|
247
|
+
- #203 LEB128 encoding overflow for large type indices
|
|
248
|
+
- #205 String.prototype.indexOf type coercion errors
|
|
249
|
+
- #207 Class statement/expression runtime failures
|
|
250
|
+
- #208 Computed property names with complex expressions
|
|
251
|
+
- #209 While/do-while with string/object loop conditions and labeled block break
|
|
252
|
+
- #210 for-of destructuring runtime failures
|
|
253
|
+
- #211 Function.length and undefined comparison edge cases
|
|
254
|
+
- #212 Tagged template object caching
|
|
255
|
+
- #213 New expression spread arguments and module-level init collection
|
|
256
|
+
- #214 String relational ops and unary plus coercion
|
|
257
|
+
- #215 Modulus operator edge cases
|
|
258
|
+
- #216 More modulus and numeric coercion edge cases
|
|
259
|
+
- #217 While/do-while with string/object loop conditions and labeled block break
|
|
260
|
+
- #218 Remove Boolean() skip filter
|
|
261
|
+
- #219 Additional Boolean runtime fixes
|
|
262
|
+
- #220 ClassDeclaration in all statement positions
|
|
263
|
+
- #221 .call() and comma-operator indirect call patterns
|
|
264
|
+
- #222 Hoist var declarations from destructuring patterns
|
|
265
|
+
- #223 Computed property names in classes
|
|
266
|
+
- #224 Member increment/decrement on class properties
|
|
267
|
+
|
|
268
|
+
## Sprint 3 - v0.3.0
|
|
269
|
+
|
|
270
|
+
- Tags: `sprint/3`, `v0.3.0`
|
|
271
|
+
- Date range: 2026-03-11 (evening) to 2026-03-11 (evening)
|
|
272
|
+
- Goal: Zero runtime failures, ~1,500 CE reduction
|
|
273
|
+
- Worked on: Consolidated fixes around string comparison, object `valueOf` coercion, BigInt cross-type equality, nested hoisting, `in` operator runtime behavior, object destructuring, and private-field diagnostics.
|
|
274
|
+
- Baseline: ~1,509 pass
|
|
275
|
+
- Final result: merged same session, incremental improvements
|
|
276
|
+
- test262: incremental, merged same session
|
|
277
|
+
- Delta: 13 issues marked done
|
|
278
|
+
|
|
279
|
+
### Issues worked on
|
|
280
|
+
|
|
281
|
+
- #225 String comparison in equality ops
|
|
282
|
+
- #226 valueOf coercion on object literal comparisons
|
|
283
|
+
- #227 BigInt comparison/equality with Number and Infinity
|
|
284
|
+
- #228 BigInt equality with Number and Infinity
|
|
285
|
+
- #231 Remove overly broad typeof skip filter
|
|
286
|
+
- #233 Nested function hoisting in loops/switch
|
|
287
|
+
- #236 Super/derived-class diagnostic suppression
|
|
288
|
+
- #240 More super/derived-class diagnostic suppression
|
|
289
|
+
- #244 In operator runtime failures
|
|
290
|
+
- #245 String comparison in switch statements
|
|
291
|
+
- #246 Missing struct fields in for-of object destructuring
|
|
292
|
+
- #247 Null/undefined arithmetic correct results
|
|
293
|
+
- #248 Logical op tests around valueOf coercion
|
|
294
|
+
- #251 Equivalence test expansion
|
|
295
|
+
- #252 Additional equivalence tests
|
|
296
|
+
- #253 Remove overly broad loose inequality skip filter
|
|
297
|
+
- #254 Private class field assignment diagnostic suppression
|
|
298
|
+
- #255 More equivalence coverage
|
|
299
|
+
- #256 Unknown function: f -- locally declared functions not found
|
|
300
|
+
|
|
301
|
+
## Sprint 4 - v0.4.0
|
|
302
|
+
|
|
303
|
+
- Tags: `sprint/4`, `v0.4.0`
|
|
304
|
+
- Date range: 2026-03-11 to 2026-03-12
|
|
305
|
+
- Goal: Diagnostic suppression, bracket notation, destructuring, compound assignment
|
|
306
|
+
- Worked on: Reduced compile errors with batch diagnostic suppression while extending dynamic property fallback, bracket writes, destructuring scope handling, anonymous struct registration, arrow/default params, complex for-loop heads, and logical/compound assignment lowering.
|
|
307
|
+
- Baseline: ~1,509 pass
|
|
308
|
+
- Final result: incremental (same multi-day session)
|
|
309
|
+
- test262: incremental, multi-day session
|
|
310
|
+
- Delta: Major reduction in compile errors from diagnostic suppression
|
|
311
|
+
|
|
312
|
+
### Issues worked on
|
|
313
|
+
|
|
314
|
+
- #257 Unsupported call expression -- double/triple nested calls
|
|
315
|
+
- #258 Unsupported call expression -- double/triple nested calls
|
|
316
|
+
- #259 ClassDeclaration in block scope
|
|
317
|
+
- #261 New expression with inline/anonymous class expressions
|
|
318
|
+
- #262 Batch diagnostic suppression for Sprint 4
|
|
319
|
+
- #263 Dynamic property access fallback
|
|
320
|
+
- #264 Bracket notation write path for const keys
|
|
321
|
+
- #265 Additional diagnostic suppression
|
|
322
|
+
- #266 Scope resolution for multi-variable destructuring
|
|
323
|
+
- #267 Suppress yield-outside-generator diagnostics
|
|
324
|
+
- #268 Suppress TS2548 iterator protocol diagnostic
|
|
325
|
+
- #269 Strict-mode reserved word diagnostic suppression
|
|
326
|
+
- #270 Reserved word/strict-mode diagnostic suppression
|
|
327
|
+
- #272 Re-lookup funcIdx after arg compilation
|
|
328
|
+
- #273 Anonymous class expressions in new expressions
|
|
329
|
+
- #275 Comma operator unused diagnostic suppression
|
|
330
|
+
- #276 Additional assignability diagnostic suppression
|
|
331
|
+
- #277 Type coercion before local.set/local.tee
|
|
332
|
+
- #278 Auto-register anonymous struct types
|
|
333
|
+
- #279 Arrow function destructuring params and defaults
|
|
334
|
+
- #280 Function expression name binding and closure call
|
|
335
|
+
- #281 Object literal method names and spread ordering
|
|
336
|
+
- #282 Scan top-level statements for string literals
|
|
337
|
+
- #283 Compound assignment type coercion
|
|
338
|
+
- #284 Nested destructuring and rest elements in for-of
|
|
339
|
+
- #285 Complex for-loop initializers
|
|
340
|
+
- #286 Logical assignment compile errors -- nullish and short-circuit
|
|
341
|
+
- #316 Runtime failure -- array element access out of bounds
|
|
342
|
+
|
|
343
|
+
## Sprint 5 - v0.5.0
|
|
344
|
+
|
|
345
|
+
- Tags: `sprint/5`, `v0.5.0`
|
|
346
|
+
- Date range: 2026-03-12 to 2026-03-12
|
|
347
|
+
- Goal: Deep runtime fixes — coercion, equality, assignment, instanceof
|
|
348
|
+
- Worked on: Tightened runtime semantics: Wasm type-mismatch repair, nested class/function positioning, `instanceof`, default parameter initialization for methods/constructors, assignment result semantics, BigInt/string comparison, unary minus and `-0`, and Math intrinsics in pure Wasm.
|
|
349
|
+
- Baseline: building on Sprint 4
|
|
350
|
+
- Final result: incremental improvements in runtime correctness
|
|
351
|
+
- test262: incremental runtime gains
|
|
352
|
+
- Delta: 25+ issues resolved in one session
|
|
353
|
+
|
|
354
|
+
### Issues worked on
|
|
355
|
+
|
|
356
|
+
- #178 Resolve Wasm validation errors for type mismatches
|
|
357
|
+
- #234 ClassDeclaration in nested/expression positions
|
|
358
|
+
- #235 Function.name prefers own name over variable name for named expressions
|
|
359
|
+
- #238 Named class expressions in new expressions
|
|
360
|
+
- #239 Bracket notation field resolution for struct types
|
|
361
|
+
- #250 Function declarations inside for-loop bodies
|
|
362
|
+
- #260 Preserve non-null ref type in conditional expressions
|
|
363
|
+
- #274 Function .name property access
|
|
364
|
+
- #289 Bare identifier/assignment initializers in for-in
|
|
365
|
+
- #290 instanceof with class hierarchies and expression operands
|
|
366
|
+
- #292 number_toString import for any-typed string +=
|
|
367
|
+
- #293 Default parameter initialization for class constructors/methods
|
|
368
|
+
- #294 Assignment expressions return RHS value
|
|
369
|
+
- #295 BigInt vs String comparison
|
|
370
|
+
- #296 Strict equality cross-type comparison
|
|
371
|
+
- #297 Switch statement fall-through with default in non-last position
|
|
372
|
+
- #298 Nested function mutable captures and capture param padding
|
|
373
|
+
- #299 Loose equality null == undefined
|
|
374
|
+
- #301 Saturating float-to-int truncation
|
|
375
|
+
- #302 Math.min/max zero-argument edge cases
|
|
376
|
+
- #303 parseInt edge cases
|
|
377
|
+
- #304 Unary minus coercion and -0 preservation
|
|
378
|
+
- #306 Prefix/postfix inc/dec on member expressions
|
|
379
|
+
- #308 bigint-to-string coercion and ambiguous addition fallback
|
|
380
|
+
- #315 Re-read local type after func expr update
|
|
381
|
+
- #317 Issue 317
|
|
382
|
+
- #318 Issue 318
|
|
383
|
+
- #319 Issue 319
|
|
384
|
+
- #320 Issue 320
|
|
385
|
+
- #321 Issue 321
|
|
386
|
+
- #322 Issue 322
|
|
387
|
+
- #323 Native type annotations — type i32 = number
|
|
388
|
+
|
|
389
|
+
## Sprint 6 - v0.6.0
|
|
390
|
+
|
|
391
|
+
- Tags: `sprint/6`, `v0.6.0`
|
|
392
|
+
- Date range: 2026-03-13 to 2026-03-13
|
|
393
|
+
- Goal: Test262 expansion, generator fixes, test infrastructure, equivalence tests
|
|
394
|
+
- Worked on: Expanded the compiler and runner together: more test262 categories, negative-test support, generator and `new.target` fixes, Promise construction, object introspection, type inference from call sites, dead import elimination, and runner profiling.
|
|
395
|
+
- Baseline: building on Sprint 5
|
|
396
|
+
- Final result: significant test262 category expansion
|
|
397
|
+
- test262: `1,952` pass, `2,248` compilable
|
|
398
|
+
- Delta: 80+ issues resolved across Sprint 5-6 session
|
|
399
|
+
|
|
400
|
+
### Issues worked on
|
|
401
|
+
|
|
402
|
+
- #121 Function.prototype.call/apply
|
|
403
|
+
- #138 valueOf/toString coercion on comparison operators
|
|
404
|
+
- #139 valueOf/toString coercion on arithmetic operators
|
|
405
|
+
- #141 Tagged template literal runtime failures
|
|
406
|
+
- #142 Assignment destructuring failures
|
|
407
|
+
- #143 for-loop edge cases
|
|
408
|
+
- #146 Unknown identifier resolution from scope/hoisting issues
|
|
409
|
+
- #147 Function.name property
|
|
410
|
+
- #149 Additional call expression patterns
|
|
411
|
+
- #165 function statement hoisting and edge cases
|
|
412
|
+
- #176 Unicode escape sequences in property names
|
|
413
|
+
- #179 Generator yield in module mode
|
|
414
|
+
- #182 Arrow function closure type coercion errors
|
|
415
|
+
- #188 instanceof compile errors
|
|
416
|
+
- #189 new.target meta-property
|
|
417
|
+
- #190 Array destructuring assignment patterns
|
|
418
|
+
- #194 Logical assignment operators
|
|
419
|
+
- #198 Switch statement compile errors and type coercion
|
|
420
|
+
- #199 Labeled statement compile errors
|
|
421
|
+
- #201 Object.keys/values/entries
|
|
422
|
+
- #202 Var hoisting tests
|
|
423
|
+
- #227 BigInt comparison/equality with Number and Infinity
|
|
424
|
+
- #228 BigInt equality with Number and Infinity
|
|
425
|
+
- #229 Global index corruption when late string imports shift globals
|
|
426
|
+
- #230 Computed property names with let/var variable keys
|
|
427
|
+
- #232 Module-level object literal methods
|
|
428
|
+
- #237 i64 boxing/unboxing coercion paths for AnyValue
|
|
429
|
+
- #241 yield-as-identifier diagnostics
|
|
430
|
+
- #243 Array destructuring assignment and nested patterns
|
|
431
|
+
- #249 typeof Math constants and Math.round precision
|
|
432
|
+
- #261 New expression with inline/anonymous class expressions
|
|
433
|
+
- #267 Suppress yield-outside-generator diagnostics
|
|
434
|
+
- #279 Arrow function destructuring params and defaults
|
|
435
|
+
- #287 Spread stack corruption and callback destructuring
|
|
436
|
+
- #288 try/catch/finally runs finally on exception in catch body
|
|
437
|
+
- #291 in operator fallback with variable keys
|
|
438
|
+
- #300 Struct ref in template expressions toString coercion
|
|
439
|
+
- #305 ref/ref_null type mismatch resolution
|
|
440
|
+
- #307 Promise.resolve/reject/new
|
|
441
|
+
- #309 Test262 harness expansion
|
|
442
|
+
- #310 Remove 16 overly conservative test262 skip filters
|
|
443
|
+
- #311 String.prototype category expansion in test262 runner
|
|
444
|
+
- #312 Number prototype method categories in test262 runner
|
|
445
|
+
- #313 Add new test262 expression categories
|
|
446
|
+
- #314 Compile-time profiling in test262 runner
|
|
447
|
+
- #318 Issue 318
|
|
448
|
+
- #319 Issue 319
|
|
449
|
+
- #320 Issue 320
|
|
450
|
+
|
|
451
|
+
## Sprint 7 - v0.7.0
|
|
452
|
+
|
|
453
|
+
- Tags: `sprint/7`, `v0.7.0`
|
|
454
|
+
- Date range: 2026-03-13 (continued) to 2026-03-13 (continued)
|
|
455
|
+
- Goal: Runtime failure patterns — null guards, skip filter cleanup, gap coverage
|
|
456
|
+
- Worked on: Continued runtime cleanup with null guards, `_FIXTURE` filtering, property introspection, wrapper constructors, `delete`, `super` calls, global/globalThis handling, accessor edge cases, graceful extern fallbacks, and a large gap-analysis issue wave.
|
|
457
|
+
- Baseline: building on Sprint 6
|
|
458
|
+
- Final result: ~6,366 pass (first test262 run recorded at end of day)
|
|
459
|
+
- test262: later history records first end-of-day `~6,366` pass
|
|
460
|
+
- Delta: Major jump from skip filter cleanup and new test categories
|
|
461
|
+
|
|
462
|
+
### Issues worked on
|
|
463
|
+
|
|
464
|
+
- #324 Runtime test failures with wrong return values
|
|
465
|
+
- #325 Array rest destructuring null deref
|
|
466
|
+
- #326 Array destructuring bounds checking
|
|
467
|
+
- #327 Object-to-primitive coercion for increment/decrement
|
|
468
|
+
- #328 OmittedExpression for array holes/elision
|
|
469
|
+
- #330 ClassExpression in assignment positions
|
|
470
|
+
- #331 Strict mode eval/arguments diagnostic suppression
|
|
471
|
+
- #332 Skip _FIXTURE helper files in test262
|
|
472
|
+
- #334 Private class fields/methods and accessor compound assignment
|
|
473
|
+
- #335 Track bracket/brace depth in stripThirdArg/stripUndefinedAssert
|
|
474
|
+
- #336 for-of object destructuring on non-struct refs
|
|
475
|
+
- #337 Null guards to runtime property/element access
|
|
476
|
+
- #338 Negative test support in test262 runner
|
|
477
|
+
- #341 Property introspection (hasOwnProperty, propertyIsEnumerable)
|
|
478
|
+
- #342 Array.prototype.method.call/apply patterns
|
|
479
|
+
- #344 Wrapper constructors new Number/String/Boolean
|
|
480
|
+
- #347 Function/class .name property completion
|
|
481
|
+
- #348 Null/undefined arithmetic coercion
|
|
482
|
+
- #349 String() constructor as function
|
|
483
|
+
- #352 Delete operator expression
|
|
484
|
+
- #355 Object.keys with numeric-string keys
|
|
485
|
+
- #357 IIFE and call expression tagged templates
|
|
486
|
+
- #358 Issue 358
|
|
487
|
+
- #359 Gap coverage issue
|
|
488
|
+
- #361 Runtime `in` operator for array index bounds
|
|
489
|
+
- #362 Issue 362
|
|
490
|
+
- #367 Remove overly broad string concatenation skip filter
|
|
491
|
+
- #368 `this` in global scope
|
|
492
|
+
- #369 globalThis identifier
|
|
493
|
+
- #375 super.method() and super.prop in class methods
|
|
494
|
+
- #377 Getter/setter accessor edge cases
|
|
495
|
+
- #378 Graceful fallback for inc/dec on unresolvable access
|
|
496
|
+
- #379 Tuple/destructuring type errors
|
|
497
|
+
- #380 Unknown variable/function in test scope
|
|
498
|
+
- #381 Downgrade "never nullish" diagnostic
|
|
499
|
+
- #382 Spread argument in super/function calls
|
|
500
|
+
- #385 Array method optional args
|
|
501
|
+
- #386 Gap coverage issue
|
|
502
|
+
|
|
503
|
+
## Sprint 8 - v0.8.0
|
|
504
|
+
|
|
505
|
+
- Tags: `sprint/8`, `v0.8.0`
|
|
506
|
+
- Date range: 2026-03-16 to 2026-03-16
|
|
507
|
+
- Goal: Property access, element access, class inheritance, skip filter removal
|
|
508
|
+
- Worked on: Deepened property and element access support: externref/class/struct element reads and writes, tagged template identity, arrow-function `.call()` behavior, `import.meta`, narrower skip filters, fallback assignment targets, and class inheritance/property initialization fixes.
|
|
509
|
+
- Baseline: ~6,366 pass (from 2026-03-18 run, likely lower on 03-16)
|
|
510
|
+
- Final result: incremental (no test262 run recorded this day)
|
|
511
|
+
- test262: no dedicated full run archived
|
|
512
|
+
- Delta: 50+ issues resolved, major element/property access improvements
|
|
513
|
+
|
|
514
|
+
### Issues worked on
|
|
515
|
+
|
|
516
|
+
- #153 BigInt cross-type comparison tests
|
|
517
|
+
- #173 BigInt comparison support follow-up
|
|
518
|
+
- #174 BigInt comparison support follow-up
|
|
519
|
+
- #204 Miscellaneous runtime fixes
|
|
520
|
+
- #329 Runtime failure pattern
|
|
521
|
+
- #331 Strict mode eval/arguments diagnostic suppression
|
|
522
|
+
- #337 Null guards to runtime property/element access
|
|
523
|
+
- #339 Runtime failure pattern
|
|
524
|
+
- #340 Runtime failure pattern
|
|
525
|
+
- #343 Runtime failure pattern
|
|
526
|
+
- #344 Wrapper constructors new Number/String/Boolean
|
|
527
|
+
- #345 Runtime failure pattern
|
|
528
|
+
- #346 Issue 346
|
|
529
|
+
- #350 Test coverage improvements
|
|
530
|
+
- #351 Test coverage improvements
|
|
531
|
+
- #353 Test coverage improvements
|
|
532
|
+
- #354 Test coverage improvements
|
|
533
|
+
- #356 Remove overly broad skip filter
|
|
534
|
+
- #357 IIFE and call expression tagged templates
|
|
535
|
+
- #358 Issue 358
|
|
536
|
+
- #359 Gap coverage issue
|
|
537
|
+
- #360 Remove overly broad skip filters (closure-as-value, JSON.stringify)
|
|
538
|
+
- #362 Issue 362
|
|
539
|
+
- #363 Tagged template .raw property and identity
|
|
540
|
+
- #364 .call()/.apply() on arrow functions and module-level closures
|
|
541
|
+
- #365 Additional gap coverage
|
|
542
|
+
- #366 Additional gap coverage
|
|
543
|
+
- #370 Additional gap coverage
|
|
544
|
+
- #371 Compile import.meta expressions
|
|
545
|
+
- #372 Additional gap coverage
|
|
546
|
+
- #373 Remove outdated loop condition skip filters
|
|
547
|
+
- #374 Additional gap coverage
|
|
548
|
+
- #376 Additional gap coverage
|
|
549
|
+
- #383 Downgrade tolerated syntax diagnostics
|
|
550
|
+
- #384 ES2021+ string/array method type declarations
|
|
551
|
+
- #387 Graceful fallback for unsupported assignment targets
|
|
552
|
+
- #388 Element access on externref
|
|
553
|
+
- #389 Element access on class instances
|
|
554
|
+
- #390 Assignment to non-array types (70 CE)
|
|
555
|
+
- #391 Downgrade TS7053 index signature diagnostic
|
|
556
|
+
- #392 Graceful fallback for unknown field access on class structs
|
|
557
|
+
- #393 Compound assignment on externref element access
|
|
558
|
+
- #395 Function references callable via closure wrapping
|
|
559
|
+
- #396 Null guards for struct dereference traps
|
|
560
|
+
- #397 Additional fix
|
|
561
|
+
- #398 Inherit parent field initializers and accessors
|
|
562
|
+
- #399 Additional fix
|
|
563
|
+
- #400 Additional fix
|
|
564
|
+
- #401 Additional fix
|
|
565
|
+
- #402 Additional fix
|
|
566
|
+
- #403 Additional fix
|
|
567
|
+
- #404 Additional fix
|
|
568
|
+
- #405 Additional fix
|
|
569
|
+
- #406 Additional fix
|
|
570
|
+
- #407 Additional fix
|
|
571
|
+
|
|
572
|
+
## Sprint 9 - v0.9.0
|
|
573
|
+
|
|
574
|
+
- Tags: `sprint/9`, `v0.9.0`
|
|
575
|
+
- Date range: 2026-03-17 to 2026-03-17
|
|
576
|
+
- Goal: Async/await, for-in, try-catch, class features, prototype chain
|
|
577
|
+
- Worked on: Large compiler wave across async/await, for-in, try/catch/finally, class fields/methods, operator semantics, runtime error handling, and the start of React scheduler compilation work.
|
|
578
|
+
- Baseline: building on Sprint 8
|
|
579
|
+
- Final result: no test262 run recorded for this date
|
|
580
|
+
- test262: no dedicated full run archived
|
|
581
|
+
- Delta: 39 issues touched
|
|
582
|
+
|
|
583
|
+
### Issues worked on
|
|
584
|
+
|
|
585
|
+
- #408 Async/await compilation improvement
|
|
586
|
+
- #409 Async/await compilation improvement
|
|
587
|
+
- #410 Async/await compilation improvement
|
|
588
|
+
- #411 Async/await compilation improvement
|
|
589
|
+
- #412 Async/await compilation improvement
|
|
590
|
+
- #413 For-in loop enhancement
|
|
591
|
+
- #414 For-in loop enhancement
|
|
592
|
+
- #415 For-in loop enhancement
|
|
593
|
+
- #416 For-in loop enhancement
|
|
594
|
+
- #417 Try/catch/finally edge case
|
|
595
|
+
- #418 Try/catch/finally edge case
|
|
596
|
+
- #419 Try/catch/finally edge case
|
|
597
|
+
- #420 Try/catch/finally edge case
|
|
598
|
+
- #421 Class method/field fix
|
|
599
|
+
- #422 Class method/field fix
|
|
600
|
+
- #423 Class method/field fix
|
|
601
|
+
- #425 Various operator and expression fix
|
|
602
|
+
- #427 Various operator and expression fix
|
|
603
|
+
- #428 Various operator and expression fix
|
|
604
|
+
- #429 Various operator and expression fix
|
|
605
|
+
- #430 Various operator and expression fix
|
|
606
|
+
- #431 Various operator and expression fix
|
|
607
|
+
- #432 Various operator and expression fix
|
|
608
|
+
- #433 Various operator and expression fix
|
|
609
|
+
- #434 Various operator and expression fix
|
|
610
|
+
- #435 Various operator and expression fix
|
|
611
|
+
- #436 Various operator and expression fix
|
|
612
|
+
- #438 Additional fix
|
|
613
|
+
- #441 Additional fix
|
|
614
|
+
- #444 Additional runtime improvement
|
|
615
|
+
- #445 Additional runtime improvement
|
|
616
|
+
- #446 Additional runtime improvement
|
|
617
|
+
- #447 Additional runtime improvement
|
|
618
|
+
- #448 Additional runtime improvement
|
|
619
|
+
- #455 Compile React to Wasm
|
|
620
|
+
- #458 Additional issue
|
|
621
|
+
- #459 Additional issue
|
|
622
|
+
- #460 Additional issue
|
|
623
|
+
- #461 Additional issue
|
|
624
|
+
|
|
625
|
+
## Sprint 10 - v0.10.0
|
|
626
|
+
|
|
627
|
+
- Tags: `sprint/10`, `v0.10.0`
|
|
628
|
+
- Date range: 2026-03-18 (morning) to 2026-03-18 (morning)
|
|
629
|
+
- Goal: React compilation milestones, expression parser, playground improvements
|
|
630
|
+
- Worked on: Landed major real-world compilation milestones: React scheduler/fiber/hooks/custom renderer work, expression-parser demos, Symbol/WeakMap support, interactive conformance report work, and the first recorded large-scale test262 baseline.
|
|
631
|
+
- Baseline: ~6,366 pass (test262 run at 21:35 UTC)
|
|
632
|
+
- Final result: 6,366 pass / 23,021 total (first recorded run)
|
|
633
|
+
- test262: `6,366 / 23,021`
|
|
634
|
+
- Delta: baseline established
|
|
635
|
+
|
|
636
|
+
### Issues worked on
|
|
637
|
+
|
|
638
|
+
- #437 Continued fix from previous session
|
|
639
|
+
- #439 Generator .return()/.throw() methods and diagnostic downgrade
|
|
640
|
+
- #440 Handle dynamic import() expressions gracefully
|
|
641
|
+
- #449 Add ref.as_non_null before call_ref
|
|
642
|
+
- #450 Benchmark/maths milestone
|
|
643
|
+
- #451 Lodash utilities compile to Wasm
|
|
644
|
+
- #452 Expression parser / TypeScript compiler pattern tests
|
|
645
|
+
- #453 Three.js math and benchmark suite
|
|
646
|
+
- #454 pako zlib kernels compile to Wasm
|
|
647
|
+
- #455 Compile React to Wasm
|
|
648
|
+
- #456 Symbol.iterator/toPrimitive as compile-time constants
|
|
649
|
+
- #457 WeakMap/WeakSet support via extern class infrastructure
|
|
650
|
+
- #462 Null narrowing in if-statements
|
|
651
|
+
- #463 Self-referencing struct types for linked lists/fiber trees
|
|
652
|
+
- #464 Array bounds check elimination
|
|
653
|
+
- #465 Inline small functions at call sites
|
|
654
|
+
- #466 Local reuse via temp-local free list
|
|
655
|
+
- #467 Constant folding for binary expressions on numeric literals
|
|
656
|
+
- #468 Interactive conformance report with drill-down
|
|
657
|
+
- #469 React hooks state machine compiles to Wasm
|
|
658
|
+
- #470 f64/i32-to-externref coercion in expression statement context
|
|
659
|
+
- #471 Basic Symbol() support
|
|
660
|
+
- #472 Additional issue
|
|
661
|
+
- #473 Additional issue
|
|
662
|
+
- #474 Remove delete operator skip filter
|
|
663
|
+
- #475 Additional issue
|
|
664
|
+
- #476 Narrow hasOwnProperty.call skip filter
|
|
665
|
+
- #477 verifyEqualTo/verifyNotEqualTo propertyHelper stubs
|
|
666
|
+
- #478 assert_throws shim correctness
|
|
667
|
+
- #479 Additional issue
|
|
668
|
+
- #480 Additional issue
|
|
669
|
+
- #481 Resolve well-known symbols in element access
|
|
670
|
+
- #482 Dispatch [Symbol.toPrimitive] in type coercion
|
|
671
|
+
- #483 typeof Symbol() and narrower Symbol skip filter
|
|
672
|
+
- #484 Additional issue
|
|
673
|
+
- #485 Additional issue
|
|
674
|
+
- #486 Additional issue
|
|
675
|
+
- #487 Additional issue
|
|
676
|
+
- #488 propertyHelper transforms for hasOwnProperty/propertyIsEnumerable
|
|
677
|
+
|
|
678
|
+
## Sprint 11 - v0.11.0
|
|
679
|
+
|
|
680
|
+
- Tags: `sprint/11`, `v0.11.0`
|
|
681
|
+
- Date range: 2026-03-18 (afternoon/evening) to 2026-03-18 (afternoon/evening)
|
|
682
|
+
- Goal: Massive feature push — WASI, native strings, WIT, tail calls, SIMD, type annotations
|
|
683
|
+
- Worked on: Added major architecture/features rather than immediate conformance: WASI target support, native strings, WIT generation, tail-call optimization, peephole optimization, SIMD plumbing, native type annotations, TypedArray/ArrayBuffer work, and broader async/generator coverage.
|
|
684
|
+
- Baseline: 6,366 pass / 23,021 total
|
|
685
|
+
- Final result: 6,366 pass / 23,025 total (second run, minimal change)
|
|
686
|
+
- test262: `6,366 / 23,025`
|
|
687
|
+
- Delta: +0 pass (feature additions, not test262 focused)
|
|
688
|
+
|
|
689
|
+
### Issues worked on
|
|
690
|
+
|
|
691
|
+
- #493 Narrow prototype chain skip filter
|
|
692
|
+
- #494 Remove stale skip filters
|
|
693
|
+
- #495 Array-like objects with numeric keys
|
|
694
|
+
- #496 eval() and new Function() source transform for test262
|
|
695
|
+
- #497 Dynamic import() via host-side module loading
|
|
696
|
+
- #498 Proxy via type-aware compilation with trap inlining (70 tests)
|
|
697
|
+
- #499 with statement via static identifier dispatch
|
|
698
|
+
- #500 Remove cross-realm skip filter
|
|
699
|
+
- #501 Complete test262 baseline run and pin results
|
|
700
|
+
- #502 Quick wins: narrow stale skip filters
|
|
701
|
+
- #503 Runner safe-write: don't corrupt report on crash
|
|
702
|
+
- #504 Auto-generated README feature coverage + benchmark tables
|
|
703
|
+
- #505 Playground: integrate test262 results into test262 browser panel
|
|
704
|
+
- #506 Remove redundant conformance-report.html
|
|
705
|
+
- #507 Run benchmark suite and generate latest.json
|
|
706
|
+
- #508 ts2wasm-jwt: pure Wasm JWT decode + HS256 verify
|
|
707
|
+
- #509 Post-fix error analysis: create issues from fresh test262 run
|
|
708
|
+
- #510 TS parse errors from test wrapping
|
|
709
|
+
- #511 Wasm validation: call/call_ref type mismatch
|
|
710
|
+
- #512 RuntimeError: illegal cast
|
|
711
|
+
- #513 Fix any-typed equality: object/ref identity broken in __any_strict_eq and externref path
|
|
712
|
+
- #514 Generator/async-gen 'options is not defined'
|
|
713
|
+
- #515 Wasm validation: uninitialized non-defaultable local + struct.get/set type errors
|
|
714
|
+
- #516 struct.new argument count mismatch in class constructors
|
|
715
|
+
- #517 Unsupported call expression: class/generator/built-in method calls
|
|
716
|
+
- #518 Cannot destructure: not an array type
|
|
717
|
+
- #519 Internal error: targetLocal is not defined
|
|
718
|
+
- #520 Delete operator: operand must be optional
|
|
719
|
+
- #521 Yield keyword not recognized in nested contexts
|
|
720
|
+
- #522 Object.keys() requires struct type argument
|
|
721
|
+
- #523 Internal compiler errors: undefined property access
|
|
722
|
+
- #524 Type '{}' missing Function properties
|
|
723
|
+
- #525 RuntimeError: illegal cast
|
|
724
|
+
- #526 RuntimeError: dereferencing a null pointer
|
|
725
|
+
- #527 Fix test262 script: use tsx instead of node
|
|
726
|
+
- #528 Test262 runner -- show progress when starting each batch
|
|
727
|
+
- #529 Speed up test262 runner with parallel workers + compilation cache
|
|
728
|
+
- #530 Unsupported call expression — remaining CE bucket
|
|
729
|
+
- #531 Issue 531
|
|
730
|
+
- #532 Wasm validation: call type mismatch -- string addition folded to numeric
|
|
731
|
+
- #533 Wasm validation: struct.get on null ref type
|
|
732
|
+
- #534 Fix addUnionImports func index shift for parent function bodies
|
|
733
|
+
- #535 'delete' cannot be called on identifier in strict mode
|
|
734
|
+
- #536 Spread types may only be created from object types
|
|
735
|
+
- #537 TypeScript diagnostic suppressions for test262
|
|
736
|
+
- #538 PrivateIdentifier + new.target unsupported
|
|
737
|
+
- #539 Issue 539
|
|
738
|
+
- #540 Array out of bounds guards
|
|
739
|
+
- #541 Async flag skip filter blocks many tests
|
|
740
|
+
- #542 Negative test skip blocks many tests
|
|
741
|
+
- #543 propertyHelper.js + hasOwnProperty.call skip filters
|
|
742
|
+
- #544 Remove/narrow stale skip filters
|
|
743
|
+
- #545 Hang-risk skip filters
|
|
744
|
+
- #546 Remaining skip filters cleanup
|
|
745
|
+
- #547 Restore search/filter UI in report.html
|
|
746
|
+
- #548 Security: WAT string injection + memory bounds validation
|
|
747
|
+
- #549 Security: playground path traversal via symlinks
|
|
748
|
+
- #550 Security: XSS via error messages in report.html
|
|
749
|
+
- #551 Issue 551
|
|
750
|
+
- #552 Issue 552
|
|
751
|
+
- #553 Division by zero missing in constant folding
|
|
752
|
+
- #554 JSONL concurrent write corruption from parallel workers
|
|
753
|
+
- #555 Cache invalidation misses uncommitted source changes
|
|
754
|
+
- #556 Performance: O(n^2) struct deduplication in ensureStructForType
|
|
755
|
+
|
|
756
|
+
## Sprint 12 - v0.12.0
|
|
757
|
+
|
|
758
|
+
- Tags: `sprint/12`, `v0.12.0`
|
|
759
|
+
- Date range: 2026-03-19 (early) to 2026-03-19 (early)
|
|
760
|
+
- Goal: Test262 category expansion, continued feature work
|
|
761
|
+
- Worked on: Recovered from skip-filter regression by refining category coverage, removing stale skips, expanding test262 harness coverage, and fixing runtime/compiler failure patterns across the newly widened suite.
|
|
762
|
+
- Baseline: 5,753 pass / 22,974 total (regression from skip filter changes)
|
|
763
|
+
- Final result: 5,797 pass / 22,974 total → 7,139 pass / 22,974 total
|
|
764
|
+
- test262: `5,753 -> 7,139 / 22,974`
|
|
765
|
+
- Delta: +1,386 pass during the day
|
|
766
|
+
|
|
767
|
+
### Issues worked on
|
|
768
|
+
|
|
769
|
+
- #124 delete operator via undefined sentinel (232 tests)
|
|
770
|
+
- #125 Object.defineProperty / property descriptors (106 tests)
|
|
771
|
+
- #323 Native type annotations — type i32 = number
|
|
772
|
+
- #498 Proxy via type-aware compilation with trap inlining (70 tests)
|
|
773
|
+
- #557 Performance: repeated instruction tree traversal for index shifting
|
|
774
|
+
- #558 Performance: add hash-based function type deduplication
|
|
775
|
+
- #559 Addition/subtraction result not coerced to externref before call
|
|
776
|
+
- #560 BigInt + Number mixed arithmetic leaves stack dirty
|
|
777
|
+
- #561 Math.hypot closure captures ref instead of f64
|
|
778
|
+
- #562 Addition/subtraction valueOf coercion + Math special values
|
|
779
|
+
- #563 Unsupported call expression
|
|
780
|
+
- #564 Worker crashed -- tests lost to worker process crashes
|
|
781
|
+
- #565 Wrong return value bucket
|
|
782
|
+
- #566 Null pointer dereference (853 FAIL) - local index shift not recursive
|
|
783
|
+
- #567 Wasm validation: struct.get on null ref type
|
|
784
|
+
- #568 Wasm validation: local.set type mismatch
|
|
785
|
+
- #569 Issue 569
|
|
786
|
+
- #570 Issue 570
|
|
787
|
+
- #571 struct.new argument count mismatch
|
|
788
|
+
- #572 Internal compiler errors
|
|
789
|
+
- #573 struct.get on null ref in class tests
|
|
790
|
+
- #574 Worker crashed -- tests lost to worker process crashes
|
|
791
|
+
- #575 Class statement tests all return 0
|
|
792
|
+
- #576 TEST_CATEGORIES covers only a subset of previously-tested tests
|
|
793
|
+
- #577 Run test262 in a worktree to avoid mid-run code changes
|
|
794
|
+
- #578 WASI target: console.log -> fd_write, process.exit -> proc_exit
|
|
795
|
+
- #579 Issue 579
|
|
796
|
+
- #580 Issue 580
|
|
797
|
+
- #581 struct.get on ref.null in Wasm:test function
|
|
798
|
+
- #582 local.set type mismatch in class methods
|
|
799
|
+
- #583 Stack not empty at fallthrough in Wasm:test
|
|
800
|
+
- #584 Null pointer dereference in many tests
|
|
801
|
+
- #585 RuntimeError: illegal cast
|
|
802
|
+
- #586 Deduplicate array method callbacks
|
|
803
|
+
- #587 Deduplicate destructuring code
|
|
804
|
+
- #588 Finally block executes multiple times instead of once
|
|
805
|
+
- #589 ref.as_non_null on ref.null always traps
|
|
806
|
+
- #590 Generator for-of-string missing return depth update
|
|
807
|
+
- #591 Split expressions.ts into focused modules
|
|
808
|
+
- #592 Consolidate AST collection passes into single visitor
|
|
809
|
+
- #593 Minor security/correctness fixes across emit + runtime
|
|
810
|
+
- #594 Mark WasmGC struct types as final for V8 devirtualization
|
|
811
|
+
- #595 Integer loop inference: emit i32 loop counters
|
|
812
|
+
- #596 Eliminate unnecessary ref.cast when type is statically known
|
|
813
|
+
- #679 Dual string backend: js-host mode vs standalone mode
|
|
814
|
+
|
|
815
|
+
## Sprint 13 - v0.13.0
|
|
816
|
+
|
|
817
|
+
- Tags: `sprint/13`, `v0.13.0`
|
|
818
|
+
- Date range: 2026-03-19 (afternoon/evening) to 2026-03-19 (afternoon/evening)
|
|
819
|
+
- Goal: Continued test262 improvement, 53 session issues finalized
|
|
820
|
+
- Worked on: Finalized the large issue wave from error analysis, documented runtime failure patterns, and expanded the exercised test262 surface from roughly 23k tests to nearly 48k.
|
|
821
|
+
- Baseline: 7,139 pass / 22,974 total
|
|
822
|
+
- Final result: 9,560 pass / 47,983 total (test set nearly doubled)
|
|
823
|
+
- test262: `9,560 / 47,983`
|
|
824
|
+
- Delta: +2,421 pass, test suite expanded from ~23K to ~48K tests
|
|
825
|
+
|
|
826
|
+
### Issues worked on
|
|
827
|
+
|
|
828
|
+
- #597 Type-specialized arithmetic skips AnyValue for non-addition ops
|
|
829
|
+
- #598 Regression tests for typed export signatures
|
|
830
|
+
- #599 Decouple native WasmGC strings from fast mode
|
|
831
|
+
- #600 Generate WIT interface files from TypeScript types
|
|
832
|
+
- #601 Binaryen wasm-opt post-processing pass
|
|
833
|
+
- #602 Emit return_call for tail-position calls
|
|
834
|
+
- #603 Remove stale skip filters blocking ~2,500 tests
|
|
835
|
+
- #604 add asyncHelpers.js shim
|
|
836
|
+
- #605 bypass shouldSkip for runtime negative tests
|
|
837
|
+
- #606 expand test262 harness with tcoHelper, deepEqual, throwsAsync
|
|
838
|
+
- #607 Issue 607
|
|
839
|
+
- #608 TypedArray constructor and element access support
|
|
840
|
+
- #609 cover all test262 directories in TEST_CATEGORIES
|
|
841
|
+
- #610 Issue 610
|
|
842
|
+
- #611 Null guards for undefined AST nodes + duplicate escapeWatString
|
|
843
|
+
- #612 suppress async iterator diagnostics for for-await-of
|
|
844
|
+
- #613 suppress TS2551 property-with-suggestion diagnostic
|
|
845
|
+
- #614 ArrayBuffer/DataView/TypedArray in compileNewExpression
|
|
846
|
+
- #615 Issue 615
|
|
847
|
+
- #616 suppress TS2689 for Iterator/Generator extends
|
|
848
|
+
- #617 prevent drop on empty stack for async void calls
|
|
849
|
+
- #618 triage umbrella
|
|
850
|
+
- #619 handle class element AST nodes in statement/expression compilers
|
|
851
|
+
- #620 Issue 620
|
|
852
|
+
- #621 graceful fallback for unsupported call expressions
|
|
853
|
+
- #622 null guard in destructureParamObject
|
|
854
|
+
- #623 increase worker timeout and per-test timeout
|
|
855
|
+
- #624 prevent dynamic field addition to class struct types
|
|
856
|
+
- #625 detect no-op coerceType to prevent local.set type mismatch
|
|
857
|
+
- #626 coerce call/call_ref arguments to match signatures
|
|
858
|
+
- #627 handle void RHS in logical operators
|
|
859
|
+
- #628 generator yield validation via fctx.isGenerator
|
|
860
|
+
- #629 tuple struct destructuring in function/method parameters
|
|
861
|
+
- #630 skip Temporal API tests
|
|
862
|
+
- #631 prototype chain patterns for class instances
|
|
863
|
+
- #632 emit empty string for RegExp flags
|
|
864
|
+
- #633 extend shape inference into try/catch/loop/switch blocks
|
|
865
|
+
- #634 promote captured locals to globals for object literal accessors
|
|
866
|
+
- #642 architecture/platform issue
|
|
867
|
+
- #643 atomic report writes for test262 runner
|
|
868
|
+
- #644 platform issue
|
|
869
|
+
- #645 additional issue
|
|
870
|
+
- #646 additional issue
|
|
871
|
+
- #647 additional issue
|
|
872
|
+
- #648 additional issue
|
|
873
|
+
- #649 additional fix
|
|
874
|
+
- #650 additional issue
|
|
875
|
+
- #651 additional issue
|
|
876
|
+
|
|
877
|
+
## Sprint 14 - v0.14.0
|
|
878
|
+
|
|
879
|
+
- Tags: `sprint/14`, `v0.14.0`
|
|
880
|
+
- Date range: 2026-03-20 (early) to 2026-03-20 (early)
|
|
881
|
+
- Goal: Dual-mode backends, compiler infrastructure
|
|
882
|
+
- Worked on: Established the dual-mode backend direction: dual string and RegExp backend work, broader compiler infrastructure changes, and architecture principles later documented for the project.
|
|
883
|
+
- Baseline: 9,560 pass / 47,983 total
|
|
884
|
+
- Final result: 10,444 pass / 47,773 total
|
|
885
|
+
- test262: `10,444 / 47,773`
|
|
886
|
+
- Delta: +884 pass
|
|
887
|
+
|
|
888
|
+
### Issues worked on
|
|
889
|
+
|
|
890
|
+
- #123 Wrapper object constructors: new Number/String/Boolean (648 tests)
|
|
891
|
+
- #333 Additional previously blocked issue
|
|
892
|
+
- #490 Additional fix
|
|
893
|
+
- #635 architecture/compiler issue
|
|
894
|
+
- #636 architecture/compiler issue
|
|
895
|
+
- #637 architecture/compiler issue
|
|
896
|
+
- #638 Reverse type map / platform issue
|
|
897
|
+
- #649 additional fix
|
|
898
|
+
- #652 Compile-time ARC
|
|
899
|
+
- #653 additional issue
|
|
900
|
+
- #654 additional issue
|
|
901
|
+
- #655 additional issue
|
|
902
|
+
- #656 additional issue
|
|
903
|
+
- #657 additional issue
|
|
904
|
+
- #658 additional issue
|
|
905
|
+
- #659 additional issue
|
|
906
|
+
- #660 additional issue
|
|
907
|
+
- #661 Temporal / coercion issue bucket
|
|
908
|
+
- #662 additional issue
|
|
909
|
+
- #663 additional issue
|
|
910
|
+
- #664 additional issue
|
|
911
|
+
- #665 additional issue
|
|
912
|
+
- #668 additional fix
|
|
913
|
+
- #669 additional fix
|
|
914
|
+
- #670 additional fix
|
|
915
|
+
- #679 Dual string backend: js-host mode vs standalone mode
|
|
916
|
+
- #682 Dual RegExp backend
|
|
917
|
+
|
|
918
|
+
## Sprint 15 - v0.15.0
|
|
919
|
+
|
|
920
|
+
- Tags: `sprint/15`, `v0.15.0`
|
|
921
|
+
- Date range: 2026-03-20 (continued) to 2026-03-20 (continued)
|
|
922
|
+
- Goal: Type tracking, backlog cleanup, MCP channel server
|
|
923
|
+
- Worked on: Pushed on type tracking and tooling: backlog cleanup, MCP channel server integration, more compiler fixes, and broad type-flow work that drove a large pass-count jump across partial/full runs.
|
|
924
|
+
- Baseline: 10,444 pass / 47,773 total
|
|
925
|
+
- Final result: 10,974 pass → 15,244 pass (by end of day runs)
|
|
926
|
+
- test262: `10,974 -> 15,244`
|
|
927
|
+
- Delta: +530 to +4,800 (variable due to partial runs)
|
|
928
|
+
|
|
929
|
+
### Issues worked on
|
|
930
|
+
|
|
931
|
+
- #672 Additional fix
|
|
932
|
+
- #673 Additional fix
|
|
933
|
+
- #676 Compiler improvement
|
|
934
|
+
- #677 Compiler improvement
|
|
935
|
+
- #678 Compiler improvement
|
|
936
|
+
- #683 Type tracking issue
|
|
937
|
+
- #686 Closure capture types
|
|
938
|
+
- #687 Live-streaming report / tooling
|
|
939
|
+
- #688 Extract property access / split index.ts umbrella
|
|
940
|
+
- #689 additional issue
|
|
941
|
+
- #690 additional issue
|
|
942
|
+
- #691 additional issue
|
|
943
|
+
- #692 additional issue
|
|
944
|
+
- #693 Issue 693
|
|
945
|
+
- #694 additional issue
|
|
946
|
+
- #695 Error classification improvement
|
|
947
|
+
- #696 Classify runtime errors
|
|
948
|
+
- #697 Ref/ref_null / error classification issue
|
|
949
|
+
- #698 property access fallback and setter dispatch coercion
|
|
950
|
+
- #699 Compiler pool
|
|
951
|
+
- #700 Reuse ts.CompilerHost across compilations (~25% speedup)
|
|
952
|
+
|
|
953
|
+
## Sprint 16 - v0.16.0
|
|
954
|
+
|
|
955
|
+
- Tags: `sprint/16`, `v0.16.0`
|
|
956
|
+
- Date range: 2026-03-21 to 2026-03-21
|
|
957
|
+
- Goal: Error classification, type coercion, equivalence tests
|
|
958
|
+
- Worked on: Focused on error classification, ref/ref_null coercion, property-access correctness, equivalence-test expansion, and compile-error reduction while stabilizing the enlarged 48k suite.
|
|
959
|
+
- Baseline: ~15,244 pass (from 03-20 evening run)
|
|
960
|
+
- Final result: 15,232 pass / 48,097 total
|
|
961
|
+
- test262: `15,232 / 48,097`
|
|
962
|
+
- Delta: roughly stable (±0 from baseline)
|
|
963
|
+
|
|
964
|
+
### Issues worked on
|
|
965
|
+
|
|
966
|
+
- #695 Error classification improvement
|
|
967
|
+
- #697 Ref/ref_null / error classification issue
|
|
968
|
+
- #702 issue
|
|
969
|
+
- #703 issue
|
|
970
|
+
- #704 issue
|
|
971
|
+
- #705 issue
|
|
972
|
+
- #706 issue
|
|
973
|
+
- #707 issue
|
|
974
|
+
- #708 issue
|
|
975
|
+
- #709 issue
|
|
976
|
+
- #710 issue
|
|
977
|
+
- #711 issue
|
|
978
|
+
- #712 issue
|
|
979
|
+
- #713 issue
|
|
980
|
+
- #714 conformance progress graph with historical trend tracking
|
|
981
|
+
- #715 issue
|
|
982
|
+
- #716 issue
|
|
983
|
+
- #717 issue
|
|
984
|
+
- #718 issue
|
|
985
|
+
- #719 issue
|
|
986
|
+
- #720 missing coercion paths to coercionInstrs
|
|
987
|
+
- #721 issue
|
|
988
|
+
- #722 issue
|
|
989
|
+
- #723 issue
|
|
990
|
+
- #724 TypeError for Object.defineProperty on non-configurable properties
|
|
991
|
+
- #725 fall back to __extern_get when ref.cast fails in property access
|
|
992
|
+
|
|
993
|
+
## Sprint 17 - v0.17.0
|
|
994
|
+
|
|
995
|
+
- Tags: `sprint/17`, `v0.17.0`
|
|
996
|
+
- Date range: 2026-03-22 (morning) to 2026-03-22 (morning)
|
|
997
|
+
- Goal: expressions.ts refactoring, goal system
|
|
998
|
+
- Worked on: Refactored the oversized `expressions.ts`, added goal-system groundwork, and changed pieces of property access, lib handling, and exception flow, but incurred a measurable regression during the refactor.
|
|
999
|
+
- Baseline: 15,232 pass / 48,097 total
|
|
1000
|
+
- Final result: 14,757 pass / 48,097 total → 14,720 pass / 48,102 total
|
|
1001
|
+
- test262: `15,232 -> 14,720 / 48,102`
|
|
1002
|
+
- Delta: -512 pass (regression, likely from refactoring)
|
|
1003
|
+
|
|
1004
|
+
### Issues worked on
|
|
1005
|
+
|
|
1006
|
+
- #726 Multi-struct dispatch for property access on wrong-type GC objects
|
|
1007
|
+
- #728 Null dereference should throw TypeError instead of trapping
|
|
1008
|
+
- #739 assertion sub-classification follow-up
|
|
1009
|
+
- #740 read lib.d.ts from typescript package at runtime
|
|
1010
|
+
- #741 split index.ts / extract modules
|
|
1011
|
+
- #742 Extract and refactor compileCallExpression
|
|
1012
|
+
- #745 Promise/async handling / RegExp flags null behavior
|
|
1013
|
+
- #746 Inline property tables / hash all codegen files
|
|
1014
|
+
- #747 Escape analysis / Object.defineProperty host import + transforms
|
|
1015
|
+
- #748 propertyHelper.js value checks in test262 preamble
|
|
1016
|
+
- #750 extern.convert_any at call sites for ref→externref mismatch
|
|
1017
|
+
- #751 monomorphization issue
|
|
1018
|
+
- #754 issue already fixed by prior work
|
|
1019
|
+
|
|
1020
|
+
## Sprint 18 - v0.18.0
|
|
1021
|
+
|
|
1022
|
+
- Tags: `sprint/18`, `v0.18.0`
|
|
1023
|
+
- Date range: 2026-03-22 (afternoon/evening) to 2026-03-22 (afternoon/evening)
|
|
1024
|
+
- Goal: DAG-based goal system, milestone migration, issue renumbering
|
|
1025
|
+
- Worked on: Shifted planning/infrastructure from milestones to a DAG-style goal system, renumbered and audited issue streams, and stabilized the branch after the prior refactor regression.
|
|
1026
|
+
- Baseline: 14,720 pass / 48,102 total
|
|
1027
|
+
- Final result: 14,720 pass / 48,102 total (stable)
|
|
1028
|
+
- test262: `14,720 / 48,102`
|
|
1029
|
+
- Delta: ~0 (infrastructure/planning focused)
|
|
1030
|
+
|
|
1031
|
+
### Issues worked on
|
|
1032
|
+
|
|
1033
|
+
- #761 Rest/spread destructuring
|
|
1034
|
+
- #762 Generator .next(value) arguments are silently ignored
|
|
1035
|
+
- #763 RegExp runtime methods
|
|
1036
|
+
- #764 Immutable global / Temporal-related issue
|
|
1037
|
+
- #765 issue
|
|
1038
|
+
- #766 Symbol.iterator protocol
|
|
1039
|
+
- #767 Equivalence test coverage
|
|
1040
|
+
- #768 renumbered session issue
|
|
1041
|
+
- #769 renumbered session issue
|
|
1042
|
+
- #770 verifyProperty transform
|
|
1043
|
+
- #771 externref-backed arguments object to preserve param types
|
|
1044
|
+
- #772 renumbered session issue
|
|
1045
|
+
- #773 Monomorphize functions
|
|
1046
|
+
- #776 Yield in expression position leaves value on stack
|
|
1047
|
+
- #777 fixupModuleGlobalIndices / immutable global CEs
|
|
1048
|
+
|
|
1049
|
+
## Sprint 19 - v0.19.0
|
|
1050
|
+
|
|
1051
|
+
- Tags: `sprint/19`, `v0.19.0`
|
|
1052
|
+
- Date range: 2026-03-23 to 2026-03-23
|
|
1053
|
+
- Goal: Equivalence tests, RegExp, skip filter work
|
|
1054
|
+
- Worked on: Worked on equivalence coverage for RegExp/Promise/Proxy/WeakMap, skip-filter cleanup, struct/call coercion fixes, and failure-pattern analysis; the sprint dipped first and then recovered strongly.
|
|
1055
|
+
- Baseline: 14,720 pass / 48,102 total
|
|
1056
|
+
- Final result: 14,120 pass / 48,102 total → 15,997 pass / 49,642 total
|
|
1057
|
+
- test262: `14,120 -> 15,997 / 49,642`
|
|
1058
|
+
- Delta: Variable — initial regression then recovery to +1,277
|
|
1059
|
+
|
|
1060
|
+
### Issues worked on
|
|
1061
|
+
|
|
1062
|
+
- #767 Equivalence test coverage
|
|
1063
|
+
- #774 Additional fix / already-fixed cleanup
|
|
1064
|
+
|
|
1065
|
+
## Sprint 20 - v0.20.0
|
|
1066
|
+
|
|
1067
|
+
- Tags: `sprint/20`, `v0.20.0`
|
|
1068
|
+
- Date range: 2026-03-24 to 2026-03-24
|
|
1069
|
+
- Goal: Light maintenance day
|
|
1070
|
+
- Worked on: Mostly maintenance and targeted repair work between larger sessions, with very low commit volume and no archived full-suite run.
|
|
1071
|
+
- Baseline: 15,997 pass / 49,642 total
|
|
1072
|
+
- Final result: no test262 run recorded
|
|
1073
|
+
- test262: no archived full run
|
|
1074
|
+
|
|
1075
|
+
### Issues worked on
|
|
1076
|
+
|
|
1077
|
+
- No specific issues were recorded for this sprint.
|
|
1078
|
+
|
|
1079
|
+
## Sprint 21 - v0.21.0
|
|
1080
|
+
|
|
1081
|
+
- Tags: `sprint/21`, `v0.21.0`
|
|
1082
|
+
- Date range: 2026-03-25 to 2026-03-25
|
|
1083
|
+
- Goal: Mutable closure captures, assertion failures, type errors
|
|
1084
|
+
- Worked on: Addressed mutable closure captures, assertion-failure patterns, TypeError/null-trap behavior, early error detection, regex-based assert routing, and several compiler error-model fixes.
|
|
1085
|
+
- Baseline: ~15,997 pass / 49,642 total
|
|
1086
|
+
- Final result: 15,410 pass / 49,663 total
|
|
1087
|
+
- test262: `15,410 / 49,663`
|
|
1088
|
+
- Delta: -587 from peak (expanded test coverage exposing new failures)
|
|
1089
|
+
|
|
1090
|
+
### Issues worked on
|
|
1091
|
+
|
|
1092
|
+
- #729 generator return values dropped
|
|
1093
|
+
- #730 TypeError for destructuring null/undefined and new on arrows
|
|
1094
|
+
- #731 function/class .name property infrastructure
|
|
1095
|
+
- #732 hasOwnProperty/propertyIsEnumerable correctness
|
|
1096
|
+
- #734 Array method correctness edge cases
|
|
1097
|
+
- #738 instanceof to host for unresolvable constructors
|
|
1098
|
+
- #771 externref-backed arguments object to preserve param types
|
|
1099
|
+
- #775 null dereferences throw catchable TypeError instead of trapping
|
|
1100
|
+
- #779 Wrong values / boxed captures written in outer scope
|
|
1101
|
+
- #780 null guards to throw TypeError instead of trapping
|
|
1102
|
+
- #781 __async_iterator for for-await-of
|
|
1103
|
+
- #782 detect JS undefined in destructuring defaults
|
|
1104
|
+
- #783 throw TypeError when destructuring null/undefined
|
|
1105
|
+
- #784 early error checks for rest elements, await/yield identifiers, strict reserved words
|
|
1106
|
+
- #785 null guards for for-of array/string struct.get
|
|
1107
|
+
- #786 Multi-assertion failures / boxed capture propagation / wrong AnyValue→f64 unboxing
|
|
1108
|
+
- #787 NaN sentinel for f64 default parameter checks
|
|
1109
|
+
- #788 modularize src/ into focused subfolder structure
|
|
1110
|
+
|
|
1111
|
+
## Sprint 22 - v0.22.0
|
|
1112
|
+
|
|
1113
|
+
- Tags: `sprint/22`, `v0.22.0`
|
|
1114
|
+
- Date range: 2026-03-26 (morning) to 2026-03-26 (morning)
|
|
1115
|
+
- Goal: Compile-away principle, new issues, memory files
|
|
1116
|
+
- Worked on: Established the “compile away, don’t emulate” principle while landing null-guard fixes, TDZ checks, `verifyProperty` handling, ref.cast safety, iterator protocol work, memory/process notes, and a new batch of issue triage.
|
|
1117
|
+
- Baseline: 15,410 pass / 49,663 total
|
|
1118
|
+
- Final result: 15,579 pass / 49,833 total
|
|
1119
|
+
- test262: `15,579 / 49,833`
|
|
1120
|
+
- Delta: +169 pass
|
|
1121
|
+
|
|
1122
|
+
### Issues worked on
|
|
1123
|
+
|
|
1124
|
+
- #494 Remove stale skip filters
|
|
1125
|
+
- #766 Symbol.iterator protocol
|
|
1126
|
+
- #770 verifyProperty transform
|
|
1127
|
+
- #778 Illegal cast failures
|
|
1128
|
+
- #789 Null guard only throws TypeError for genuinely null refs
|
|
1129
|
+
- #790 TDZ checks in closures and for-loop let/const
|
|
1130
|
+
- #791 Detect SyntaxErrors that ES spec requires but TS parser accepts
|
|
1131
|
+
- #792 Export exception tag and multi-struct dispatch for emitGuardedRefCast
|
|
1132
|
+
- #793 class/elements compilation hang investigation
|
|
1133
|
+
- #794 nested binding patterns with defaults in destructuring
|
|
1134
|
+
- #795 externref unbox/string-concat coercion for boxed captures
|
|
1135
|
+
- #796 destructuring default value checks in param destructuring
|
|
1136
|
+
- #797 Property descriptor work
|
|
1137
|
+
- #798 foreign JS exceptions / rethrow instruction
|
|
1138
|
+
- #799 prototype chain walk for property access
|
|
1139
|
+
- #800 compile-away typeof / null guards / TDZ analysis
|
|
1140
|
+
- #801 tuple literals in destructuring defaults
|
|
1141
|
+
- #811 issue
|
|
1142
|
+
- #812 Test262Error extern class
|
|
1143
|
+
- #813 private member name collision
|
|
1144
|
+
- #815 Regression from patch-rescue commits
|
|
1145
|
+
|
|
1146
|
+
## Sprint 23 - v0.23.0
|
|
1147
|
+
|
|
1148
|
+
- Tags: `sprint/23`, `v0.23.0`
|
|
1149
|
+
- Date range: 2026-03-26 (afternoon/evening) to 2026-03-26 (afternoon/evening)
|
|
1150
|
+
- Goal: Push toward 20K pass, team protocol improvements
|
|
1151
|
+
- Worked on: Continued the same fix wave with more honest measurement discipline: cache-clearing, repeated full-suite verification, and team/protocol updates that corrected previously inflated counts.
|
|
1152
|
+
- Baseline: 15,579 pass / 49,833 total
|
|
1153
|
+
- Final result: 15,362 pass / 49,834 total (full run)
|
|
1154
|
+
- test262: `15,362 / 49,834`
|
|
1155
|
+
- Delta: -217 pass (honest measurement after cache clear)
|
|
1156
|
+
|
|
1157
|
+
### Issues worked on
|
|
1158
|
+
|
|
1159
|
+
- #789 Null guard only throws TypeError for genuinely null refs
|
|
1160
|
+
- #790 TDZ checks in closures and for-loop let/const
|
|
1161
|
+
- #791 Detect SyntaxErrors that ES spec requires but TS parser accepts
|
|
1162
|
+
- #792 Export exception tag and multi-struct dispatch for emitGuardedRefCast
|
|
1163
|
+
- #793 class/elements compilation hang investigation
|
|
1164
|
+
- #794 nested binding patterns with defaults in destructuring
|
|
1165
|
+
- #795 externref unbox/string-concat coercion for boxed captures
|
|
1166
|
+
- #796 destructuring default value checks in param destructuring
|
|
1167
|
+
- #797 Property descriptor work
|
|
1168
|
+
- #798 foreign JS exceptions / rethrow instruction
|
|
1169
|
+
- #799 prototype chain walk for property access
|
|
1170
|
+
- #800 compile-away typeof / null guards / TDZ analysis
|
|
1171
|
+
- #801 tuple literals in destructuring defaults
|
|
1172
|
+
- #802 issue
|
|
1173
|
+
- #803 issue
|
|
1174
|
+
- #804 issue
|
|
1175
|
+
- #805 issue
|
|
1176
|
+
- #806 issue
|
|
1177
|
+
- #807 issue
|
|
1178
|
+
- #808 issue
|
|
1179
|
+
- #809 issue
|
|
1180
|
+
- #810 issue
|
|
1181
|
+
- #811 issue
|
|
1182
|
+
- #812 Test262Error extern class
|
|
1183
|
+
- #813 private member name collision
|
|
1184
|
+
- #815 Regression from patch-rescue commits
|
|
1185
|
+
|
|
1186
|
+
## Sprint 24 - v0.24.0
|
|
1187
|
+
|
|
1188
|
+
- Tags: `sprint/24`, `v0.24.0`
|
|
1189
|
+
- Date range: 2026-03-27 (early morning) to 2026-03-27 (early morning)
|
|
1190
|
+
- Goal: valueOf recursion fixes, depth limiter, String/prototype unblocking
|
|
1191
|
+
- Worked on: Unblocked `String.prototype` and valueOf-heavy tests with recursion depth limiting, SyntaxError early-error checks, RangeError validation, JS-`undefined` emission fixes, and better runtime error classification.
|
|
1192
|
+
- Baseline: ~15,182 pass / 49,840 total
|
|
1193
|
+
- Final result: 14,169 pass → 14,616 pass / 49,880 total
|
|
1194
|
+
- test262: `14,616 / 49,880`
|
|
1195
|
+
- Delta: +447 pass (from session start of 14,169)
|
|
1196
|
+
|
|
1197
|
+
### Issues worked on
|
|
1198
|
+
|
|
1199
|
+
- #675 Dynamic import
|
|
1200
|
+
- #696 Classify runtime errors
|
|
1201
|
+
- #701 resolveWasmType recursion depth guard
|
|
1202
|
+
- #733 RangeError validation
|
|
1203
|
+
- #736 SyntaxError gaps / early error checks
|
|
1204
|
+
- #737 Emit JS undefined instead of null for missing args/uninit vars
|
|
1205
|
+
- #816 String/prototype compilation hang investigation
|
|
1206
|
+
|
|
1207
|
+
## Sprint 25 - v0.25.0
|
|
1208
|
+
|
|
1209
|
+
- Tags: `sprint/25`, `v0.25.0`
|
|
1210
|
+
- Date range: 2026-03-27 (afternoon) to 2026-03-27 (afternoon)
|
|
1211
|
+
- Goal: Wave 4 merge, class/elements unblocking, worker thread execution
|
|
1212
|
+
- Worked on: Merged the wave-4 fixes: broader destructuring coverage, RegExp host-import methods, ref.cast guarding, removal of class/elements hang workarounds, and replacement of direct execution with a worker-thread Wasm pool.
|
|
1213
|
+
- Baseline: 14,616 pass / 49,880 total
|
|
1214
|
+
- Final result: 15,197 pass / 49,881 total (+1,028 session gain)
|
|
1215
|
+
- test262: `15,197 / 49,881`
|
|
1216
|
+
- Delta: +581 from sprint start, +1,028 from session start (14,169)
|
|
1217
|
+
|
|
1218
|
+
### Issues worked on
|
|
1219
|
+
|
|
1220
|
+
- #761 Rest/spread destructuring
|
|
1221
|
+
- #763 RegExp runtime methods
|
|
1222
|
+
- #766 Symbol.iterator protocol
|
|
1223
|
+
- #778 Illegal cast failures
|
|
1224
|
+
- #789 Null guard only throws TypeError for genuinely null refs
|
|
1225
|
+
- #793 class/elements compilation hang investigation
|
|
1226
|
+
- #815 Regression from patch-rescue commits
|
|
1227
|
+
- #817 let/const in loop and try/catch bodies
|
|
1228
|
+
- #818 additional issue
|
|
1229
|
+
- #819 Multi-file compilation for _FIXTURE tests via compileMulti
|
|
1230
|
+
- #820 TypeError / null dereference failures
|
|
1231
|
+
- #821 additional issue
|
|
1232
|
+
- #822 Wasm type mismatch compile errors (907 CE)
|
|
1233
|
+
- #823 additional issue
|
|
1234
|
+
|
|
1235
|
+
## Sprint 26 - v0.26.0
|
|
1236
|
+
|
|
1237
|
+
- Tags: `sprint/26`, `v0.26.0`
|
|
1238
|
+
- Date range: 2026-03-27 (evening) to 2026-03-28 (early)
|
|
1239
|
+
- Goal: Exception tag fix, honest baseline, multi-file compilation
|
|
1240
|
+
- Worked on: Exposed stale-cache inflation, fixed exception-tag and multi-file compilation issues, revisited arguments/default/null-deref behavior, and reset the project onto an honest worker-thread baseline.
|
|
1241
|
+
- Baseline: 15,197 pass / 49,881 total (stale cache)
|
|
1242
|
+
- Final result: 13,289 pass / 36,828 total (fresh run with worker threads)
|
|
1243
|
+
- test262: sprint document records `13,289 / 36,828`; tag uses the nearest preserved boundary snapshot
|
|
1244
|
+
- Delta: Honest baseline established — previous 15,197 was stale cache
|
|
1245
|
+
|
|
1246
|
+
### Issues worked on
|
|
1247
|
+
|
|
1248
|
+
- #779 Wrong values / NaN sentinel defaults / closure semantics
|
|
1249
|
+
- #819 Multi-file compilation for _FIXTURE tests via compileMulti
|
|
1250
|
+
- #820 TypeError / null dereference failures
|
|
1251
|
+
- #822 Wasm type mismatch compile errors (907 CE)
|
|
1252
|
+
|
|
1253
|
+
## Sprint 27 - v0.27.0
|
|
1254
|
+
|
|
1255
|
+
- Tags: `sprint/27`, `v0.27.0`
|
|
1256
|
+
- Date range: 2026-03-28 (morning/afternoon) to 2026-03-28 (morning/afternoon)
|
|
1257
|
+
- Goal: Test262 infrastructure overhaul — precompiler, caching, vitest runner
|
|
1258
|
+
- Worked on: Overhauled test262 infrastructure: standalone precompiler, two-phase compile/run flow, compiler pools sized to cores, batch JSONL writes, split compile/run logs, disk cache, Vitest integration, and targeted skip policy cleanup.
|
|
1259
|
+
- Baseline: 13,289 pass (honest baseline)
|
|
1260
|
+
- Final result: 17,612 pass / 48,086 total → 18,546 pass / 48,086 total
|
|
1261
|
+
- test262: `17,612 -> 18,546 / 48,086`
|
|
1262
|
+
- Delta: +4,323 to +5,257 from honest baseline
|
|
1263
|
+
|
|
1264
|
+
### Issues worked on
|
|
1265
|
+
|
|
1266
|
+
- #674 SharedArrayBuffer and Atomics
|
|
1267
|
+
- #832 Upgrade to TypeScript 6.x to support Unicode 16.0.0 identifiers
|
|
1268
|
+
- #833 Consider sloppy mode support for legacy octal escapes and non-strict code
|
|
1269
|
+
- #834 ES2025 Set methods
|
|
1270
|
+
- #835 Unknown extern class: Error types
|
|
1271
|
+
- #836 Tagged templates with non-PropertyAccess tag expressions
|
|
1272
|
+
- #837 Stage 3: Map/WeakMap upsert
|
|
1273
|
+
- #838 BigInt64Array / BigUint64Array typed arrays
|
|
1274
|
+
|
|
1275
|
+
## Sprint 28 - v0.28.0
|
|
1276
|
+
|
|
1277
|
+
- Tags: `sprint/28`, `v0.28.0`
|
|
1278
|
+
- Date range: 2026-03-28 (evening) to 2026-03-29 (early)
|
|
1279
|
+
- Goal: PO analysis, runtime fix wave, closure semantics
|
|
1280
|
+
- Worked on: Combined PO-guided analysis with runtime/compiler fixes for computed properties, accessor correctness, iterator close protocol, safe externref destructuring, closure capture semantics, callback detection, and runtime trap diagnostics.
|
|
1281
|
+
- Baseline: 18,546 pass / 48,086 total
|
|
1282
|
+
- Final result: 18,117 pass / 47,835 total → 18,186 pass / 47,782 total
|
|
1283
|
+
- test262: `18,117 -> 18,186 / 47,782`
|
|
1284
|
+
- Delta: -360 to -429 from peak (but more honest/complete runs)
|
|
1285
|
+
|
|
1286
|
+
### Issues worked on
|
|
1287
|
+
|
|
1288
|
+
- #848 Class computed property and accessor correctness
|
|
1289
|
+
- #850 Object-to-primitive conversion missing: valueOf/toString not called
|
|
1290
|
+
- #851 Iterator close protocol not implemented
|
|
1291
|
+
- #852 Destructuring parameters cause null_deref and illegal_cast
|
|
1292
|
+
- #857 wasm_compile: 'fn is not a function' in Array callback methods
|
|
1293
|
+
- #859 Map.forEach callback captures are immutable snapshots
|
|
1294
|
+
- #860 Promise executor and property-assigned functions not compiled as host callbacks
|
|
1295
|
+
- #861 Playground: fs module externalized error in browser
|
|
1296
|
+
- #862 Empty error message failures: iterator/destructuring step-err tests
|
|
1297
|
+
- #863 decodeURI/encodeURI failures
|
|
1298
|
+
- #864 WeakMap/WeakSet invalid key errors
|
|
1299
|
+
|
|
1300
|
+
## Sprint 29 - v0.29.0
|
|
1301
|
+
|
|
1302
|
+
- Tags: `sprint/29`, `v0.29.0`
|
|
1303
|
+
- Date range: 2026-03-29 to 2026-03-29
|
|
1304
|
+
- Goal: Team infrastructure, agent roles, checklists, runtime fixes
|
|
1305
|
+
- Worked on: Mixed compiler fixes with team/process infrastructure: array callback semantics, for-of defaults, math methods, AggregateError, URI imports, WeakMap boxing, caller-side default-param refactor, ff-only merge rules, agent roles, and checklist-driven workflow.
|
|
1306
|
+
- Baseline: 18,167 pass / 47,797 total
|
|
1307
|
+
- Final result: 18,284 pass / 48,088 total
|
|
1308
|
+
- test262: `18,284 / 48,088`
|
|
1309
|
+
- Delta: +117 pass from baseline
|
|
1310
|
+
|
|
1311
|
+
### Issues worked on
|
|
1312
|
+
|
|
1313
|
+
- #825 Null dereference failures
|
|
1314
|
+
- #827 Array callback methods: 'fn is not a function' Wasm compile error
|
|
1315
|
+
- #836 Tagged templates with non-PropertyAccess tag expressions
|
|
1316
|
+
- #839 return_call stack args and type mismatch in class constructors
|
|
1317
|
+
- #840 Array.prototype.concat/push/splice require 0-arg support
|
|
1318
|
+
- #841 Unsupported Math methods: sumPrecise, cosh, sinh, tanh, f16round
|
|
1319
|
+
- #843 super keyword in object literals and edge cases
|
|
1320
|
+
- #844 Unsupported new expression for built-in classes
|
|
1321
|
+
- #846 assert.throws not thrown: built-in methods accept invalid arguments silently
|
|
1322
|
+
- #847 for-await-of / for-of destructuring produces wrong values
|
|
1323
|
+
- #849 Mapped arguments object does not sync with named parameters
|
|
1324
|
+
- #854 Iterator protocol: null next/return/throw methods
|
|
1325
|
+
- #856 Expected TypeError but got wrong error type
|
|
1326
|
+
- #863 decodeURI/encodeURI failures
|
|
1327
|
+
- #864 WeakMap/WeakSet invalid key errors
|
|
1328
|
+
- #865 Console wrapper for fd_write in JavaScript environments
|
|
1329
|
+
- #866 Regression: NaN sentinel interferes with toString/valueOf and explicit NaN arguments
|
|
1330
|
+
- #867 Playground: interactive test262 conformance explorer with inline errors
|
|
1331
|
+
- #868 Playground: lazy-load test262 tree and file contents on demand
|
|
1332
|
+
- #869 Refactor default params: caller-side insertion instead of sNaN sentinel
|
|
1333
|
+
- #870 Playground: Monaco web workers fail to load, UI freezes
|
|
1334
|
+
- #871 Playground: default example throws WebAssembly.Exception at runtime
|
|
1335
|
+
- #872 Test262 report data should only update on complete runs
|
|
1336
|
+
- #873 Design dev branch protocol for agent merge workflow
|
|
1337
|
+
|
|
1338
|
+
## Sprint 30 - v0.30.0
|
|
1339
|
+
|
|
1340
|
+
- Tags: `sprint/30`, `v0.30.0`
|
|
1341
|
+
- Date range: 2026-03-29 to 2026-03-29
|
|
1342
|
+
- Goal: High-impact test262 fixes targeting 40%+ pass rate
|
|
1343
|
+
- Worked on: Targeted the biggest remaining test262 wins: computed class properties/accessors, for-of destructuring, `assert.throws` validation, array callback methods, destructuring null-deref repair, plus verifyProperty diagnosis and stronger merge/test discipline.
|
|
1344
|
+
- Baseline: 18,284 pass / 48,088 total (38.0%)
|
|
1345
|
+
- Final result: 18,599 pass / 48,088 total (38.7%)
|
|
1346
|
+
- test262: `18,599 / 48,088`
|
|
1347
|
+
- Delta: +315 pass, -64 CE
|
|
1348
|
+
|
|
1349
|
+
### Issues worked on
|
|
1350
|
+
|
|
1351
|
+
- #822 Wasm type mismatch compile errors (907 CE)
|
|
1352
|
+
- #824 Compilation timeouts: tests exceed compile limit
|
|
1353
|
+
- #825 Null dereference failures
|
|
1354
|
+
- #827 Array callback methods: 'fn is not a function' Wasm compile error
|
|
1355
|
+
- #846 assert.throws not thrown: built-in methods accept invalid arguments silently
|
|
1356
|
+
- #847 for-await-of / for-of destructuring produces wrong values
|
|
1357
|
+
- #848 Class computed property and accessor correctness
|
|
1358
|
+
- #850 Object-to-primitive conversion missing: valueOf/toString not called
|
|
1359
|
+
- #852 Destructuring parameters cause null_deref and illegal_cast
|
|
1360
|
+
- #857 wasm_compile: 'fn is not a function' in Array callback methods
|
|
1361
|
+
- #866 Regression: NaN sentinel interferes with toString/valueOf and explicit NaN arguments
|
|
1362
|
+
|
|
1363
|
+
## Sprint 31 - v0.31.0
|
|
1364
|
+
|
|
1365
|
+
- Tags: `sprint/31`, `v0.31.0`
|
|
1366
|
+
- Date range: 2026-03-30 to 2026-03-30
|
|
1367
|
+
- Goal: Re-apply sprint-31 fixes without regressions. Test262 between EVERY merge.
|
|
1368
|
+
- Worked on: Re-ran the previous sprint under a stricter safe-first protocol, focusing on tail-call guards, sNaN/ToPrimitive fixes, WasmGC iterable support, equivalence-test infrastructure, and “test262 after every merge” process enforcement before the sprint was suspended.
|
|
1369
|
+
- Baseline: 15,246 pass / 48,174 total (31.7%) — honest baseline, no cache, negative test bug fixed
|
|
1370
|
+
- Final result: baseline `15,246 / 48,174`; latest archived full run `15,155 / 48,174`
|
|
1371
|
+
- test262: baseline `15,246 / 48,174`; latest archived full run `15,155 / 48,174`
|
|
1372
|
+
|
|
1373
|
+
### Issues worked on
|
|
1374
|
+
|
|
1375
|
+
- #822 Wasm type mismatch compile errors (907 CE)
|
|
1376
|
+
- #826 Illegal cast failures
|
|
1377
|
+
- #828 Unexpected undefined AST node in compileExpression
|
|
1378
|
+
- #839 return_call stack args and type mismatch in class constructors
|
|
1379
|
+
- #851 Iterator close protocol not implemented
|
|
1380
|
+
- #854 Iterator protocol: null next/return/throw methods
|
|
1381
|
+
- #862 Empty error message failures: iterator/destructuring step-err tests
|
|
1382
|
+
- #866 Regression: NaN sentinel interferes with toString/valueOf and explicit NaN arguments
|
|
1383
|
+
- #868 Playground: lazy-load test262 tree and file contents on demand
|
|
1384
|
+
- #876 Sprint dashboard — kanban board, burndown, agent status, metrics
|
|
1385
|
+
- #877 Agile criteria — Definition of Ready, Definition of Done, velocity tracking
|
|
1386
|
+
- #891 Apply test262 infrastructure learnings to equivalence tests
|
|
1387
|
+
|
|
1388
|
+
## Sprint 52 - v0.52.0
|
|
1389
|
+
|
|
1390
|
+
- Tags: `sprint/52`, `v0.52.0`
|
|
1391
|
+
- Date range: 2026-05-20
|
|
1392
|
+
- Goal: Spec-completeness continuation + host platform imports — spec gap fixes, WASI extensions, Node.js/browser host imports, method closure caching, builtin subclassing
|
|
1393
|
+
- Baseline: 22,412 pass / 43,160 total (51.9%) at v0.41.0
|
|
1394
|
+
- Final result: 28,171 pass / 43,160 total (65.3%)
|
|
1395
|
+
- test262: `28,171 / 43,160`
|
|
1396
|
+
- Delta: +5,759 pass from v0.41.0 baseline (+25.7 pp)
|
|
1397
|
+
|
|
1398
|
+
### Highlights
|
|
1399
|
+
|
|
1400
|
+
- **Node.js host imports**: `fs.readFileSync`/`writeFileSync`/`existsSync` (gated behind `--allow-fs`), `crypto.randomBytes`/`randomUUID`, `console.error`/`warn` stderr routing, `process.argv`/`env`/`cwd`/`exit`, `__dirname`/`__filename`/`import.meta.url`
|
|
1401
|
+
- **Browser host imports**: `fetch`, `setTimeout`/`setInterval`/`clearTimeout`, `localStorage`/`sessionStorage`, `crypto.getRandomValues`, export return-type interop
|
|
1402
|
+
- **WASI extensions**: stdin via `fd_read`, console stderr via `fd_write`, `environ_get`/`environ_sizes_get`, `clock_time_get`, async stubs
|
|
1403
|
+
- **Builtin subclassing**: `instanceof Sub` and `instanceof Parent` both true for `class Sub extends Map/Float32Array/WeakRef/Set` (tag-chain runtime approach)
|
|
1404
|
+
- **Method closure caching**: fixes repeated `obj.method` creating new function objects each time
|
|
1405
|
+
- **Spec gap fixes**: assignment-operator destructuring completion, rest-parameter destructuring, `ToNumber`/`ToNumeric` coercion, named-evaluation destructuring defaults, for-loop per-iteration let binding, iterator protocol destructuring close, private reference readonly TypeError, `Object.defineProperty` descriptor fidelity, `Array.prototype` generic arraylike, `Promise` combinators, generator prototype, `Array.fromAsync`, and 30+ more
|
|
1406
|
+
- **Test262 CI**: 3× speedup via cross-PR baseline cache and per-scope test filter; sharded run time ~8 min
|
|
1407
|
+
- **ESLint valid-wasm plugin**: `@loopdive/eslint-plugin-js2` package entries fixed
|
|
1408
|
+
|
|
1409
|
+
### Issues worked on (done)
|
|
1410
|
+
|
|
1411
|
+
- #1392 Refresh benchmarks — browser runtime hang
|
|
1412
|
+
- #1394 Method closure caching
|
|
1413
|
+
- #1396 for-of destructuring externref array defaults
|
|
1414
|
+
- #1397 Static dispatch on method reassignment
|
|
1415
|
+
- #1398 Report edition filter and category table
|
|
1416
|
+
- #1400 ESLint package entry valid-wasm
|
|
1417
|
+
- #1431 Assignment-operator destructuring completion
|
|
1418
|
+
- #1432 Parameter list rest destructuring
|
|
1419
|
+
- #1434 ToNumber/ToNumeric unary coercion
|
|
1420
|
+
- #1437 Math numeric edge cases
|
|
1421
|
+
- #1455 Subclassing builtins — instanceof and prototype chain
|
|
1422
|
+
- #1481 WASI stdin fd_read
|
|
1423
|
+
- #1491 Node.js fs host imports (non-WASI)
|
|
1424
|
+
- #1493 Node.js console.error/warn stderr routing
|
|
1425
|
+
- #1521 Test262 CI speedup — cross-PR cache and scope filter
|