[codenameone/CodenameOne] ce0267: js-port: deferred-expression lowering for constant...

0 views
Skip to first unread message

Shai Almog

unread,
Jun 11, 2026, 1:46:35 PM (13 hours ago) Jun 11
to codenameo...@googlegroups.com
Branch: refs/heads/initializr-local-javascript-build
Home: https://github.com/codenameone/CodenameOne
Commit: ce02670393ec10bd3c804f25a88c6f18882ca462
https://github.com/codenameone/CodenameOne/commit/ce02670393ec10bd3c804f25a88c6f18882ca462
Author: Shai Almog <67850168+...@users.noreply.github.com>
Date: 2026-06-11 (Thu, 11 Jun 2026)

Changed paths:
M vm/ByteCodeTranslator/src/com/codename1/tools/translator/JavascriptMethodGenerator.java

Log Message:
-----------
js-port: deferred-expression lowering for constants and local reads

StraightLineContext no longer materialises an sN slot for pushes of
pure, re-readable expressions (numeric/null/boolean constants and bare
lN local reads): the expression is recorded per stack entry and
substituted directly at the consuming site, collapsing the accumulator
chains (sN = l3; l4 = sN; -> l4 = l3;) the regex peepholes cannot reach
for lack of liveness. Locals are only mutable via the store opcodes
inside a straight-line block (JS calls cannot touch caller locals), so
the single invalidation point is flushPendingLocal() before each store;
DUP-family peeks can re-evaluate pure expressions freely.

Suite green at CI budgets.

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
Reply all
Reply to author
Forward
0 new messages