Repository navigation
[TS] Model Array and Error constructors and String.replaceAll - #451
Merged
Merged
Conversation
CaelmBleidd
marked this pull request as ready for review
October 2, 2026 16:15
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-runtime-values-pr391
branch
from
October 2, 2026 16:45
ff54580 to
aaae9a2
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-constructors-pr391
branch
from
October 2, 2026 16:45
03bad57 to
1daff2b
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-constructors-pr391
branch
from
October 11, 2026 06:51
1daff2b to
debf84d
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-runtime-values-pr391
branch
from
October 11, 2026 06:51
aaae9a2 to
741be74
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-constructors-pr391
branch
from
October 12, 2026 13:26
debf84d to
f8b213c
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-runtime-values-pr391
branch
from
October 12, 2026 13:26
741be74 to
55af9fc
Compare
This was referenced Oct 12, 2026
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-constructors-pr391
branch
from
October 12, 2026 23:24
f8b213c to
b654cbd
Compare
CaelmBleidd
changed the base branch from
caelmbleidd/stdlib-runtime-values-pr391
to
caelmbleidd/stdlib-bounded-sequences-pr391
October 12, 2026 23:24
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-constructors-pr391
branch
from
October 12, 2026 23:39
b654cbd to
09b16f7
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-bounded-sequences-pr391
branch
from
October 12, 2026 23:39
7d282e8 to
1fb4ccf
Compare
This was referenced Oct 13, 2026
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-bounded-sequences-pr391
branch
2 times, most recently
from
October 13, 2026 20:27
0c41796 to
b8a1601
Compare
Base automatically changed from
caelmbleidd/stdlib-bounded-sequences-pr391
to
main
October 13, 2026 20:30
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-constructors-pr391
branch
from
October 13, 2026 20:34
09b16f7 to
32b0774
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/stdlib-constructors-pr391
branch
from
October 13, 2026 20:56
343c3b7 to
6be44b9
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.
Preserve actual runtime values in Error.name/message, including primitive/nullish values, object aliases and bounded symbolic strings. Private storage avoids collisions with ordinary fields. Thrown Error/TypeError identity survives complete fake packets and conditional references; catch routing remains intact, and source class shadows do not acquire SDK identity.
Callable builtin Array reaches its bounded model even when the native frontend provides a nonreference function pointer. Array allocations retain their logical runtime type and exact undefined holes. String.replaceAll uses current length/slice operations; type assertions erase annotations without changing runtime values.
Based on main at 5645f04, including merged #449, #450 and #452. The diff contains the constructor/replaceAll and modeled Error changes, plus explicit assertion-erasure configuration and its regression tests. The guarded primitive dispatch and catalog-derived model routing from main are preserved. Error throw and storage helpers are extracted to retain Detekt limits after integration.
Modeled Error storage is handled at read/write boundaries, without Error-specific parameters in generic field readers. Conditional deletion and reassignment retain the stored runtime value. Type assertions are erased only when TsOptions.eraseTypeAssertions is explicitly true; the default preserves prior ETS cast constraints and unsupported casts. The TypeScript Calls engine explicitly opts into erasure.
Validation on 6be44b9: 297 focused usvm-ts tests (280 passed, 17 skipped, no failures), one Calls test with confirmed JavaScript replay, production/test compilation, Detekt usvm-ts main/test and git diff --check passed. Coverage includes Array constructors, replaceAll, model catalog, primitive owner boundaries, Error fields/deletion/identity, cast modes, ordinary fields and runtime class operations. Temporarily restoring unconditional assertion erasure made the default-cast regression fail with an extra execution; the corrected implementation passes. Calls Detekt tasks previously completed with seven pre-existing formatting findings also present in main. The obsolete local checkLicense commit hook was bypassed; validation ran independently. GitHub CI pending.