Experiment implementing __proto__ as an accessor

RESOLVED FIXED in mozilla17

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: Waldo, Assigned: Waldo)

Tracking

unspecified
mozilla17
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [js:t])

Attachments

(1 attachment, 1 obsolete attachment)

Created attachment 638505 [details] [diff] [review]
Patch

Other engines are testing this out.  We should, too; it's fairly simple to do, and implementing it this way has several nice properties that implementing it the current way doesn't.
Attachment #638505 - Flags: review?(luke)
Comment on attachment 638505 [details] [diff] [review]
Patch

dmandelin, feel free to offer any comments you have on this, too, since I guess this is module-owner-ish territory.
Attachment #638505 - Flags: feedback?(dmandelin)

Comment 2

5 years ago
Comment on attachment 638505 [details] [diff] [review]
Patch

I like the patch; it moves the engine one key step away from JSPropertyOp which, it seems, we should ultimately remove.  jsc has already done this which would imply that the flip to accessor property doesn't break the web.

One nit: I'd like the getter/setter to use BoxNonStrictThis (after error-checking null/undefined) instead of explicitly handling primitive types.

(The title says "experimental", so I assume this won't be landing soon without some higher-level semantic consensus.)
Attachment #638505 - Flags: review?(luke) → review+
Depends on: 770586
Comment on attachment 638505 [details] [diff] [review]
Patch

Review of attachment 638505 [details] [diff] [review]:
-----------------------------------------------------------------

I like the idea of moving the implementation away from JSPropertySpec getters/setters.
Attachment #638505 - Flags: feedback?(dmandelin) → feedback+
Whiteboard: [js:t]
Depends on: 773850
Created attachment 642181 [details] [diff] [review]
Ready for full review, passes try

Okay, this is good to go, and there are no lingering issues which have me suspicious that it might possibly have any lurking fundamental problems.

If you want to test this, apply the patch in bug 773850, then apply this atop it.  I pushed a very-slightly-different version of this patch to try and got only unrelated M4 failures, so the concept is solid.  Here's a repush of this exact patch to hopefully get a fully clean bill of health:

https://tbpl.mozilla.org/?tree=Try&rev=eb81fb9c4cb8

As you're aware, speedy review here and in bug 773850 is highly appreciated, given my impending travel plans.  :-)
Attachment #638505 - Attachment is obsolete: true
Attachment #642181 - Flags: review?(luke)
The X orange in that try-push is from my changes being atop a bad m-i changeset, which was later backed out for it:

https://hg.mozilla.org/integration/mozilla-inbound/rev/1f9add03a089

So that's a definite clean bill of health.

Updated

5 years ago
Attachment #642181 - Flags: review?(luke) → review+
Since we're at the very start of a development cycle, I pushed to get data as to the effectiveness of this technique.  There's no substitute for good, hard data.  And we can always back it out if necessary, or tweak if we hit easily-fixt issues.

https://hg.mozilla.org/integration/mozilla-inbound/rev/7a26f7c820bd
Target Milestone: --- → mozilla17

Comment 7

5 years ago
https://hg.mozilla.org/mozilla-central/rev/7a26f7c820bd
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Duplicate of this bug: 699945
You need to log in before you can comment on or make changes to this bug.