Open Bug 835884 Opened 11 years ago Updated 1 year ago

IonMonkey: Optimize ListBase proxy.


(Core :: JavaScript Engine, defect)





(Reporter: nbp, Unassigned)



Bug 769911 introduces ListBase proxies and Bug 830086 disables all ListBase proxy optimization as they are not checking any the expando object of the ListBase proxy.

AFAIU, ListBase proxy are not part of the shell and cannot be emulated in anyway with the shell.  They are emulating Array-like behavior for DOM objects and any property is stored on the "expando" (object wrapped by the proxy).  Ion caches for reading slots should check the expando of the ListBase proxy in the code produced by generateReadSlot.

In addition, it would be good to add a ListBase proxy in the js/src/shell/js.cpp such as we can benchmark performances before and after the modification, to determine if this is worth back-porting to any previous versions.
Bug 830086 disables just the missing-property IC optimization for ListBase proxies, I hope, right?

If you'd like I can probably try to write up a shell patch to add some sort of ListBase-like thing there.
Depends on: 875452
Assignee: general → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.