Note: There are a few cases of duplicates in user autocompletion which are being worked on.

Support JSOP_SETPROP_SUPER in Baseline

RESOLVED FIXED in Firefox 56

Status

()

Core
JavaScript Engine: JIT
RESOLVED FIXED
25 days ago
23 days ago

People

(Reporter: tcampbell, Assigned: tcampbell)

Tracking

(Blocks: 1 bug)

unspecified
mozilla56
Points:
---

Firefox Tracking Flags

(firefox56 fixed)

Details

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(2 attachments)

(Assignee)

Description

25 days ago
There are only a few remaining opcodes for Baseline support of ES6 Classes.
JSOP_SETPROP_SUPER
JSOP_STRICTSETPROP_SUPER
JSOP_SETELEM_SUPER
JSOP_STRICTSETELEM_SUPER

The complexities out-weight the usefulness, so use a VMCall to implement. Will also include a jit-test for some of the special complexities that SetPropIRGenerator does not support.
(Assignee)

Updated

25 days ago
Blocks: 1167472
(Assignee)

Updated

25 days ago
Assignee: nobody → tcampbell
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 3

24 days ago
mozreview-review
Comment on attachment 8882444 [details]
Bug 1377051 - Support JSOP_SETPROP_SUPER in Baseline

https://reviewboard.mozilla.org/r/153570/#review158936

Thanks for adding the tests.

::: js/src/vm/Interpreter.cpp:2874
(Diff revision 1)
>  
> -
>      ReservedRooted<Value> receiver(&rootValue0, REGS.sp[-3]);
>      ReservedRooted<JSObject*> obj(&rootObject0, &REGS.sp[-2].toObject());
>      ReservedRooted<Value> rval(&rootValue1, REGS.sp[-1]);
> -    ReservedRooted<jsid> id(&rootId0, NameToId(script->getName(REGS.pc)));
> +    ReservedRooted<PropertyName*> id(&rootName0, script->getName(REGS.pc));

Nit: rename id -> name

::: js/src/vm/Interpreter.cpp:5263
(Diff revision 1)
> +js::SetPropertySuper(JSContext* cx, HandleObject obj, HandleValue receiver,
> +                     HandlePropertyName name, HandleValue rval, bool strict)
> +{
> +    RootedId id(cx, NameToId(name));
> +    ObjectOpResult result;
> +    if (!SetProperty(cx, obj, name, rval, receiver, result))

Nit: can pass id instead of name, I think the name version will do NameToId(name) a second time.
Attachment #8882444 - Flags: review?(jdemooij) → review+

Comment 4

24 days ago
mozreview-review
Comment on attachment 8882445 [details]
Bug 1377051 - Support JSOP_SETELEM_SUPER in Baseline

https://reviewboard.mozilla.org/r/153572/#review158942

Do we have decent tests for this that run in Baseline?
Attachment #8882445 - Flags: review?(jdemooij) → review+
(Assignee)

Comment 5

24 days ago
(In reply to Jan de Mooij [:jandem] from comment #4)
> Comment on attachment 8882445 [details]
> Bug 1377051 - Support JSOP_SETELEM_SUPER in Baseline
> 
> https://reviewboard.mozilla.org/r/153572/#review158942
> 
> Do we have decent tests for this that run in Baseline?
Tests are included in previous patch tests.
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 10

24 days ago
Pushed by tcampbell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/52c00746ebc4
Support JSOP_SETPROP_SUPER in Baseline r=jandem
https://hg.mozilla.org/integration/autoland/rev/2319ae1c0f8a
Support JSOP_SETELEM_SUPER in Baseline r=jandem
https://hg.mozilla.org/mozilla-central/rev/52c00746ebc4
https://hg.mozilla.org/mozilla-central/rev/2319ae1c0f8a
Status: NEW → RESOLVED
Last Resolved: 23 days ago
status-firefox56: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.