Closed Bug 770344 Opened 10 years ago Closed 10 years ago

Experiment implementing __proto__ as an accessor


(Core :: JavaScript Engine, defect)

Not set





(Reporter: Waldo, Assigned: Waldo)



(Whiteboard: [js:t])


(1 file, 1 obsolete file)

Attached patch Patch (obsolete) — Splinter Review
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]

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 on attachment 638505 [details] [diff] [review]

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]

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
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:

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:

So that's a definite clean bill of health.
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.
Target Milestone: --- → mozilla17
Closed: 10 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.