Closed
Bug 769041
Opened 13 years ago
Closed 12 years ago
Remove some unneeded __proto__ special-cases
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: Waldo, Assigned: Waldo)
Details
(Whiteboard: [leave open][js:t])
Attachments
(3 files)
1.02 KB,
patch
|
luke
:
review+
|
Details | Diff | Splinter Review |
3.08 KB,
patch
|
luke
:
review+
|
Details | Diff | Splinter Review |
3.10 KB,
patch
|
luke
:
review+
|
Details | Diff | Splinter Review |
Old "optimizations" to handle __proto__ outside of fast paths don't pay their way complexity-wise.
Assignee | ||
Comment 1•13 years ago
|
||
Attachment #637244 -
Flags: review?(luke)
Assignee | ||
Comment 2•13 years ago
|
||
Attachment #637247 -
Flags: review?(luke)
Assignee | ||
Comment 3•13 years ago
|
||
We now pass along the receiver when delegating access to properties the array doesn't have, so things will just work without this code.
I thought for a moment that this code actually indicated the presence of a bug, if called when obj != receiver, but I think it's not actually an issue, because the only way such a case could happen is if array_lookupProperty indicated that __proto__ existed on the array in question. But I wrote the tests before coming to that conclusion, and they seem reasonable to have, so I've left them in the patch.
Attachment #637258 -
Flags: review?(luke)
![]() |
||
Updated•13 years ago
|
Attachment #637244 -
Flags: review?(luke) → review+
![]() |
||
Updated•13 years ago
|
Attachment #637247 -
Flags: review?(luke) → review+
![]() |
||
Updated•13 years ago
|
Attachment #637258 -
Flags: review?(luke) → review+
Assignee | ||
Comment 4•13 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/76ae14b30bb3
https://hg.mozilla.org/integration/mozilla-inbound/rev/3451a9f921e6
https://hg.mozilla.org/integration/mozilla-inbound/rev/d8fa108aee43
https://hg.mozilla.org/integration/mozilla-inbound/rev/dc013da3bb9b
I think there's still more on this front I can do, perhaps with a little more work. Keeping this open for now to address that.
Whiteboard: [leave open]
Updated•13 years ago
|
Whiteboard: [leave open] → [leave open][js:t]
Comment 5•13 years ago
|
||
Assignee | ||
Comment 6•12 years ago
|
||
Nope, in hindsight this looks done. The remaining special-casing happens because we reuse initprop for both normal properties in literals, and for the __proto__ special case, and that we can't really remove. (Although we probably should have a different JSOp for the __proto__-as-key case here, but that aside.)
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•