Files
Chris Tate cac0a658f6 Compile JavaScript overrides that ignore trailing arguments
- Preserve native virtual dispatch when an override omits trailing checked-value parameters.
- Keep argument side effects and subclass defaults correct across direct, inherited, and super calls.
2026-09-28 01:34:20 -05:00

19 lines
634 B
JavaScript

export class Base {
render(value) { console.log("base", value); }
dispatch(value) { this.render(value); }
}
let effects = 0;
let defaults = 0;
function tick() { return ++effects; }
function optionsDefault() { defaults++; return {}; }
export class ArityBase {
dispatch(value) { this.render(value, tick()); }
render(value, time) { console.log("arity base", value, time); }
defaulted(value, options = optionsDefault()) { console.log("base default", value, Object.keys(options).length); }
dispatchDefault(value) { this.defaulted(value); }
}
export function arityCounts() { console.log("arity counts", effects, defaults); }