Summary
In node scripts/parity-compare.mjs --langs jelly-micro, the native engine produces 6 extra dynamic call edges that WASM does not:
classes2/classes2.js:G.constructor → prototypes3/prototypes3.js:a(constant) conf=0.5 dyn=1
classes2/classes2.js:G.constructor → spread/spread.js:a(function) conf=0.5 dyn=1
fun/fun.js:bar → prototypes3/prototypes3.js:c(constant) conf=0.5 dyn=1
fun/fun.js:bar → spread/spread.js:c(function) conf=0.5 dyn=1
fun/fun.js:foo → spread/spread.js:b(function) conf=0.5 dyn=1
fun/fun.js:foo → super5/super5.js:b(function) conf=0.5 dyn=1
These are false-positive dynamic CHA edges — the native engine's CHA resolution is overly broad for this()-style calls in fun.js and constructor calls in classes2.js, matching names from unrelated fixture files.
Notes
Pre-existing on main, not introduced by any recent PR.
Summary
In
node scripts/parity-compare.mjs --langs jelly-micro, the native engine produces 6 extra dynamic call edges that WASM does not:classes2/classes2.js:G.constructor → prototypes3/prototypes3.js:a(constant)conf=0.5 dyn=1classes2/classes2.js:G.constructor → spread/spread.js:a(function)conf=0.5 dyn=1fun/fun.js:bar → prototypes3/prototypes3.js:c(constant)conf=0.5 dyn=1fun/fun.js:bar → spread/spread.js:c(function)conf=0.5 dyn=1fun/fun.js:foo → spread/spread.js:b(function)conf=0.5 dyn=1fun/fun.js:foo → super5/super5.js:b(function)conf=0.5 dyn=1These are false-positive dynamic CHA edges — the native engine's CHA resolution is overly broad for
this()-style calls infun.jsand constructor calls inclasses2.js, matching names from unrelated fixture files.Notes
Pre-existing on
main, not introduced by any recent PR.