Repository navigation
[TS] Preserve computed property Get and Put evaluation order - #423
Open
CaelmBleidd wants to merge 1 commit into
Open
CaelmBleidd wants to merge 1 commit into
CaelmBleidd wants to merge 1 commit into
Conversation
CaelmBleidd
force-pushed
the
caelmbleidd/ts-support-frontend-regressions
branch
from
October 7, 2026 21:41
46e3ef9 to
e0c782a
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/ts-computed-access-order
branch
from
October 7, 2026 21:41
cfbf2ea to
cae216a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Generic computed property reads, calls and tags now evaluate the key expression, reject a nullish receiver, and then perform key coercion in the correct order. Computed write references retain the raw key so Get and Put each convert it at their own evaluation point; ordinary assignment evaluates and saves its RHS before Put-time coercion. An obsolete PropertyRef fallback is removed from the replaced computed-write path. The scope is key/Get/Put ordering; numeric conversion of postfix results is outside this change.
Validation on the final combined stack: typecheck/build; computed-access-order.spec.ts: 22/22 and optional-callee-wrappers.spec.ts: 29/29 within the full TypeScript suite: 477/477 across 37 files; selected Kotlin frontend JSON/model tests: 62/62; license checks and diff-check. Tests compare native JavaScript and serialized IR event traces, exceptions, stored properties and selected results. No skips or failures; CI and downstream USVM execution were not run.
The original change is preserved on the corrected parent, keeping this PR independently reviewable in its original stack position.
Validation on
cae216a4d2635ab40e3b85bd9039b0b67125bcd5: Tests 59 passed (59); frontend typecheck andgit diff --checkpassed. The final #425 tree is identical to the tree that passed all 622 frontend tests across 40 files and the frontend build. These checks validate frontend/serialized IR behavior; downstream USVM execution and GitHub CI remain separate gates.