Closed
Bug 832364
Opened 12 years ago
Closed 12 years ago
IonMonkey: add paths for dense element accesses on native objects
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla21
People
(Reporter: bhackett1024, Unassigned)
References
Details
Attachments
(1 file)
33.18 KB,
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
For native objects, accesses on 'own' dense elements that are property hits always work the same way. However, even if we have compile time information that an element access is on a native object, we only compile a fast path for the access if the object is known to be an array with no sparse indexes or indexes in its prototypes. This might be hurting on several Kraken tests. Bug 827490 caused regressions in several tests in this suite, and all of the regressing tests use a generic get or set element path at some point. I don't know whether this is actually the cause, but after bug 832360 it will be an easy fix and might as well do it.
Reporter | ||
Comment 1•12 years ago
|
||
Attachment #705904 -
Flags: review?(jdemooij)
Reporter | ||
Comment 2•12 years ago
|
||
Oh, re: comment 0 this shouldn't help kraken at all (bug 832578 took care of that) but is good for robustness and is necessary for (near) future work on desparsifying arrays.
Comment 3•12 years ago
|
||
Comment on attachment 705904 [details] [diff] [review] patch Review of attachment 705904 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/ion/TypeOracle.cpp @@ +428,5 @@ > > bool > +TypeInferenceOracle::elementWriteHasExtraIndexedProperty(UnrootedScript script, jsbytecode *pc) > +{ > + StackTypeSet *obj = script->analysis()->poppedTypes(pc, 1); This should be 2 I think. ::: js/src/jsinfer.cpp @@ +2065,5 @@ > + nproto = object->proto.get(); > + else > + continue; > + > + if (i) { Will testing |i| always work with the |continue| above? Should we check proto != NULL instead?
Attachment #705904 -
Flags: review?(jdemooij) → review+
Reporter | ||
Comment 4•12 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/e6d6b014a076
Comment 5•12 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/e6d6b014a076
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
You need to log in
before you can comment on or make changes to this bug.
Description
•