Allow [[ReferencedName]] in Reference Records to be a not-yet-resolved property key
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox132 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
References
(Blocks 1 open bug)
Details
Attachments
(9 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Implement the changes from https://github.com/tc39/ecma262/pull/3307.
| Assignee | ||
Comment 2•1 year ago
|
||
The spec PR reordered when ToPropertyKey is evaluated. For the delete super
case the ToPropertKey evaluation doesn't happen anymore at all. See [1], step 4.
[1] https://tc39.es/ecma262/#sec-delete-operator-runtime-semantics-evaluation
| Assignee | ||
Comment 3•1 year ago
|
||
emitObjAndKey is only called from emitElemObjAndKey. Let's merge both methods.
| Assignee | ||
Comment 4•1 year ago
|
||
Reduce code duplicate in emitElemObjAndKey. Also aligns with similar code
elsewhere in BytecodeEmitter, search for callers to emitGetThisForSuperBase.
| Assignee | ||
Comment 5•1 year ago
|
||
emitElemObjAndKey performs the exact same sequence of steps, so there's no
reason not to call it here.
| Assignee | ||
Comment 6•1 year ago
|
||
prepareForObj only updates PropOpEmitter::state_, so there's no good reason
to omit calling it for the super case.
| Assignee | ||
Comment 7•1 year ago
|
||
The spec PR reordered the ToPropertyKey call to happen in GetValue resp.
PutValue, which means it has to happen after GetSuperBase.
Tests are included in https://github.com/tc39/test262/pull/4216.
| Assignee | ||
Comment 8•1 year ago
|
||
| Assignee | ||
Comment 9•1 year ago
|
||
Computed property names are evaluated first in destructuring contexts.
| Assignee | ||
Comment 10•1 year ago
|
||
BytecodeEmitter::emitDestructuringLHSRef needs to call NameOpEmitter::prepareForRhs
to emit the necessary steps to resolve environment bindings. To avoid adding a new
skipPrepareForRhs method to NameOpEmitter, instead pass DestructuringLHSRef&
to emitDestructuringLHSRef, where DestructuringLHSRef holds the emitter for the
destructuring left-hand side reference.
There's always only exactly one emitter instantiated, so using mozilla::MaybeOneOf
seems preferable, except that mozilla::MaybeOneOf only allows two possible states.
Add the new class MaybeOneOfMany to use composition to allow having more than two
states.
Tests are in https://github.com/tc39/test262/pull/4216.
Updated•1 year ago
|
Comment 11•1 year ago
|
||
Comment 12•1 year ago
|
||
Backed out 9 changesets (Bug 1916260) for causing bustage in ElemOpEmitter.h CLOSED TREE
Log: https://treeherder.mozilla.org/logviewer?job_id=472899530&repo=autoland&lineNumber=15053
Backout: https://hg.mozilla.org/integration/autoland/rev/890755664a3edd21d67b0999a534730f0121c933
| Assignee | ||
Comment 13•1 year ago
|
||
Thanks, looks like it's just missing an #include. I'll take a look.
Comment 14•1 year ago
|
||
Comment 15•1 year ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/d20c97df0b86
https://hg.mozilla.org/mozilla-central/rev/6c64397920b4
https://hg.mozilla.org/mozilla-central/rev/73ef1798d76b
https://hg.mozilla.org/mozilla-central/rev/d98e8d9afe8e
https://hg.mozilla.org/mozilla-central/rev/edc63c19288f
https://hg.mozilla.org/mozilla-central/rev/e7e456e896ff
https://hg.mozilla.org/mozilla-central/rev/99ff134cb9e0
https://hg.mozilla.org/mozilla-central/rev/50af3f905683
https://hg.mozilla.org/mozilla-central/rev/4c26da6ff326
Description
•