Closed
Bug 1701711
Opened 4 years ago
Closed 2 years ago
Support undefined properties in scalar replacement
Categories
(Core :: JavaScript Engine: JIT, task, P3)
Core
JavaScript Engine: JIT
Tracking
()
RESOLVED
FIXED
108 Branch
Tracking | Status | |
---|---|---|
firefox108 | --- | fixed |
People
(Reporter: iain, Assigned: anba)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
ion/recover-objects.js
contains the following (currently disabled) test:
function unknownLoad(i) {
var obj = { foo: i };
// Unknown properties are inlined as undefined.
assertEq(obj.bar, undefined);
assertRecoveredOnBailout(obj, true);
}
To scalar-replace obj.bar
with undefined
, we need to ensure that the prototype chain hasn't been modified. In Ion, we could rely on TI. In Warp, we generate ObjectStaticProto
+ GuardShape
, which isn't trivial to scalar-replace.
This might be another case where a fuse is the nicest approach.
Assignee | ||
Comment 1•2 years ago
|
||
We no longer load the prototype after bug 1792228, so we don't have to support
MObjectStaticProto
during scalar replacement. This also means scalar
replacement when loading undefined properties is now trivially supported.
Updated•2 years ago
|
Assignee: nobody → andrebargull
Status: NEW → ASSIGNED
Pushed by andre.bargull@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/7f6ed6a483ff
Enable test case for undefined loads. r=iain
Comment 3•2 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
status-firefox108:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 108 Branch
You need to log in
before you can comment on or make changes to this bug.
Description
•