Closed Bug 1320461 Opened 3 years ago Closed 3 years ago

CacheIR: support PropertyOp getters

Categories

(Core :: JavaScript Engine: JIT, defect, P3)

defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: jandem, Unassigned)

References

(Blocks 1 open bug)

Details

PropertyOp getters are kind of deprecated and Baseline never supported them, but Ion does and so we should add them before we convert Ion's GetPropertyIC to CacheIR.

For Baseline, we can just compile this to a callVM for now (similar to what we do for native getters). The main issue is that the CacheIR generator has to be careful to pass the right object as |this| (unlike native/scripted getters, it should be the holder not the receiver).
bz filed bug 1139750 on removing the PropertyOp ICs, almost 2 years ago, so that may be an even better option.

It should be easy to add some logging (like bz did there) and then browse some popular websites to see how hot these cases are. That bug mentions CTypes but that's not really an interesting use case that websites run into.
See Also: → 1139750
I converted a bunch of ctypes code to JSNative awhile back, so that may not even be a user at all any more.
Priority: -- → P3
Since last week (bug 1322093) we no longer use the code in IonCaches.cpp for GETPROP/GETELEM \o/ and I'm not aware of any regressions from not supporting PropertyOp getters.

I think for SETPROP we can special-case array.length sets, as discussed in bug 1139750. Once that's done we can close bug 1139750.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.