Fix bytecode live module lexical exports#675
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Suite TimingTest Runner (interpreted: 9,738 passed; bytecode: 9,738 passed)
MemoryGC rows aggregate the main thread plus all worker thread-local GCs. Test runner worker shutdown frees thread-local heaps in bulk; that shutdown reclamation is not counted as GC collections or collected objects.
Benchmarks (interpreted: 407; bytecode: 407)
MemoryGC rows aggregate the main thread plus all worker thread-local GCs. Benchmark runner performs explicit between-file collections, so collection and collected-object counts can be much higher than the test runner.
Measured on ubuntu-latest x64. |
Benchmark Results407 benchmarks Interpreted: 🟢 48 improved · 🔴 162 regressed · 197 unchanged · avg -1.9% arraybuffer.js — Interp: 🟢 4, 🔴 5, 5 unch. · avg +0.3% · Bytecode: 🟢 1, 🔴 11, 2 unch. · avg -8.4%
arrays.js — Interp: 🟢 1, 🔴 6, 12 unch. · avg -2.2% · Bytecode: 🔴 19 · avg -11.6%
async-await.js — Interp: 🟢 2, 4 unch. · avg +2.4% · Bytecode: 🔴 5, 1 unch. · avg -10.5%
async-generators.js — Interp: 2 unch. · avg +0.2% · Bytecode: 🔴 2 · avg -11.7%
base64.js — Interp: 🟢 7, 3 unch. · avg +7.0% · Bytecode: 🟢 6, 🔴 3, 1 unch. · avg -0.7%
classes.js — Interp: 🟢 1, 🔴 2, 28 unch. · avg -0.2% · Bytecode: 🔴 23, 8 unch. · avg -6.9%
closures.js — Interp: 🔴 7, 4 unch. · avg -2.9% · Bytecode: 🔴 11 · avg -10.5%
collections.js — Interp: 🟢 3, 🔴 2, 7 unch. · avg +0.3% · Bytecode: 🔴 12 · avg -12.6%
csv.js — Interp: 🔴 13 · avg -8.4% · Bytecode: 🔴 11, 2 unch. · avg -9.1%
destructuring.js — Interp: 🟢 1, 🔴 7, 14 unch. · avg -1.7% · Bytecode: 🔴 21, 1 unch. · avg -9.0%
fibonacci.js — Interp: 🔴 4, 4 unch. · avg -2.5% · Bytecode: 🔴 8 · avg -10.2%
float16array.js — Interp: 🔴 18, 14 unch. · avg -6.1% · Bytecode: 🔴 30, 2 unch. · avg -9.0%
for-of.js — Interp: 🟢 1, 6 unch. · avg +1.7% · Bytecode: 🔴 7 · avg -11.1%
generators.js — Interp: 🔴 1, 3 unch. · avg -3.5% · Bytecode: 🔴 4 · avg -12.6%
iterators.js — Interp: 🟢 4, 🔴 2, 36 unch. · avg +0.4% · Bytecode: 🔴 42 · avg -10.6%
json.js — Interp: 🔴 18, 2 unch. · avg -6.4% · Bytecode: 🔴 20 · avg -9.9%
jsx.jsx — Interp: 🟢 2, 🔴 8, 11 unch. · avg -1.2% · Bytecode: 🔴 21 · avg -11.5%
modules.js — Interp: 🔴 6, 3 unch. · avg -3.3% · Bytecode: 🔴 9 · avg -13.0%
numbers.js — Interp: 🔴 5, 6 unch. · avg -2.5% · Bytecode: 🔴 11 · avg -9.4%
objects.js — Interp: 🟢 1, 🔴 2, 4 unch. · avg -1.5% · Bytecode: 🔴 7 · avg -8.9%
promises.js — Interp: 🟢 1, 11 unch. · avg +0.1% · Bytecode: 🔴 11, 1 unch. · avg -7.6%
regexp.js — Interp: 🟢 6, 🔴 3, 2 unch. · avg +4.7% · Bytecode: 🟢 6, 🔴 3, 2 unch. · avg +4.8%
strings.js — Interp: 🔴 17, 2 unch. · avg -8.4% · Bytecode: 🔴 19 · avg -10.4%
tsv.js — Interp: 🔴 8, 1 unch. · avg -7.7% · Bytecode: 🔴 9 · avg -7.5%
typed-arrays.js — Interp: 🟢 4, 🔴 11, 7 unch. · avg -14.5% · Bytecode: 🔴 20, 2 unch. · avg -10.2%
uint8array-encoding.js — Interp: 🟢 7, 🔴 10, 1 unch. · avg +14.3% · Bytecode: 🟢 2, 🔴 12, 4 unch. · avg -9.3%
weak-collections.js — Interp: 🟢 3, 🔴 7, 5 unch. · avg +0.7% · Bytecode: 🟢 7, 🔴 6, 2 unch. · avg +15.5%
Deterministic profile diffbase64
float16array
jsx
uint8array-encoding
Measured on ubuntu-latest x64. Benchmark ranges compare cached main-branch min/max ops/sec with the PR run; overlapping ranges are treated as unchanged noise. Percentage deltas are secondary context. |
test262 Conformance
Areas closest to 100%
Per-test deltas (+1 / -0)Newly passing (1):
Steady-state failures are non-blocking; regressions vs the cached main baseline (lower total pass count, or any PASS → non-PASS transition) fail the conformance gate. Measured on ubuntu-latest x64, bytecode mode. Areas grouped by the first two test262 path components; minimum 25 attempted tests, areas already at 100% excluded. Δ vs main compares against the most recent cached |
434a879 to
ddf7b15
Compare
Ensure top-level module lexical bindings are marked global-backed in bytecode mode so assignments update the module scope used for named exports. Add a regression for reassigned simple and destructured top-level lexical exports.
Summary
goccia.jsonconfig, includingtests/built-ins/FFI/goccia.jsonfor FFI tests.--asior--unsafe-ffiglobally.Testing
Commands run:
./build.pas loader repl benchmarkrunner testrunner./build/GocciaTestRunner tests/language/modules/live-bindings.js --silent --no-progress./build/GocciaTestRunner tests/language/modules/live-bindings.js --mode=bytecode --silent --no-progress./build/GocciaTestRunner tests/built-ins/FFI --silent --no-progress./build/GocciaTestRunner tests/language/asi --silent --no-progress./build/GocciaTestRunner tests --silent --no-progress./build/GocciaTestRunner tests --mode=bytecode --silent --no-progress./build/GocciaScriptLoader /tmp/goccia-ffi-config.Ve2N4k/main.js --print(verified"unsafe-ffi": trueconfig enables FFI without CLI flag)./format.pas --check