Branch: refs/heads/initializr-local-javascript-build
Home:
https://github.com/codenameone/CodenameOne
Commit: a21df2736b95dca814d74cc7f3d1d90c4c3c8c53
https://github.com/codenameone/CodenameOne/commit/a21df2736b95dca814d74cc7f3d1d90c4c3c8c53
Author: Shai Almog <
67850168+...@users.noreply.github.com>
Date: 2026-06-11 (Thu, 11 Jun 2026)
Changed paths:
M scripts/build-javascript-port-hellocodenameone.sh
M vm/ByteCodeTranslator/src/com/codename1/tools/translator/JavascriptMethodGenerator.java
Log Message:
-----------
js-port: structured (labeled-break) emission for acyclic-forward CFGs
Methods whose control flow is forward-only (if/else diamonds, early
returns -- no loops, switches, exception tables or monitors) no longer
fall to the for(;;)switch(pc) interpreter: forward jumps lower to
break B<n>; out of labeled blocks and the body shares the straight-line
emitter's deferred-expression lowering. Soundness: every jump flushes
deferred expressions and records the entry stack depth per target
(bailing to the interpreter on mismatch / unsupported instructions /
past the parparvm.js.structured.maxblocks budget), and entering a merge
point drops stale pendings from dead fall-off paths so they cannot
shadow the flushed slot values. Restores the CFG foundation
(BasicBlock/buildBasicBlocks/isAcyclicForward) and fixes the
straight-line path's preempt-yield gate (was still opt-in). 8,412
methods structured; -440KB raw on the test app.
Co-Authored-By: Claude Fable 5 <
nor...@anthropic.com>
To unsubscribe from these emails, change your notification settings at
https://github.com/codenameone/CodenameOne/settings/notifications