perf(arguments): keep strict callee descriptors in object slots (#10509) - #11711
proggeramlug wants to merge 3 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)
💤 Files with no reviewable changes (1)
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughRestricted arguments-object allocation now records the ChangesRestricted arguments objects
CI codegen suite mapping
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Refactor Suggested reviewers: Merge Risk: ⚪ Minimal · up to The restricted arguments layout has matching descriptor and moving-GC checks, and the CI change removes a stale suite reference. No actionable merge-blocking risk remains after normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The inspected paths preserve restricted callee access and keep accessor values private to each object. No introduced security issue was identified, but focused runtime tests have not completed and security coverage remains incomplete. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🧪 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 |
Summary
Advances #10509 for strict escaping
argumentsobjects.lengthandcalleeattributes instead of installing their descriptors on every allocation.calleegetter/setter pair in the object's own accessor slot, with the accessor read gate enabled.mainCI map so the requirede2e-scopedjob can run. perf: GC scope contexts and captured-binding fixes (#10500, #10703, #10520) #11710 independently carries the same correction.This removes per-call descriptor side-table work; it adds no side tables and makes no version bump. The remaining cost of escaping
argumentsand the issue's performance target still need measurement and follow-up. #11710 covers the separate box registry and capture-count machinery.Verification
cargo check -p perry-runtimepassed.python3 scripts/ci_e2e_scope.py --self-testpassed.git diff --checkpassed.Summary by CodeRabbit
lengthand restrictedcalleeproperties without separate per-object descriptor entries.calleeremains non-writable, non-enumerable, and non-configurable after garbage collection moves the object.