fix(runtime): resolve Boolean and BigInt inherited accessors - #10992
proggeramlug wants to merge 2 commits into
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan provides up to 8 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughThe runtime now resolves inherited ChangesBoolean and BigInt prototype lookup
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to Boolean and BigInt primitive prototype reads are covered by the new dispatch and regression cases, with no remaining concrete merge-blocking risk. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 4 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Landed on main in merge train 258 (#11078, v0.5.1641), main Carried at head This train was bisect-verified: after an earlier 35-PR assembly hit five gap regressions, the lowering-touching PRs were split into probes, and this set (#11070) came back with all six gap shards clean while the other half reproduced all five. Trains rebase-merge, so commits get new SHAs and GitHub cannot mark this merged. Closed as landed. |
Fixes #10648.
Boolean and BigInt property reads returned
undefinedbefore reaching the inherited prototype-accessor path that Number uses. Route those tagged primitives through their builtin prototype lookup. The new path roots the BigInt receiver, property key, constructor, prototype, and previous accessor receiver across GC-capable lookups.A focused runtime test is red on the untouched path and passes for
true,false,1n, and-1nwith this change. A gap fixture checks the same reads against Node, with Number and String controls.Verification:
CARGO_TARGET_DIR=/Users/amlug/projects/perry/agent-trees/fix-10645/target RUST_TEST_THREADS=1 cargo test -p perry-runtime --lib boolean_and_bigint_inherit_object_proto_getter -- --test-threads=1node --experimental-strip-types test-files/test_gap_10648_primitive_dunder_proto.tsrustfmt --check --edition 2021on the changed Rust files andgit diff --checkSummary by CodeRabbit
__proto__access for Boolean and BigInt primitive values.