Remove AbstractScopePtrIter
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox86 | --- | fixed |
People
(Reporter: tcampbell, Assigned: tcampbell)
References
(Blocks 1 open bug)
Details
Attachments
(6 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 |
This was a transition step to getting the parser gc-free. We instead should snapshot what external information we need in ScopeContext.
In particular, the remaining uses are:
- BytecodeEmitter::emitThisEnvironmentCallee
- This is only used by derived constructors
- We should be able to just record the hop count
- LexicalScope::nextFrameSlot
- This is only needed for concrete js::Scope, outside of asserts.
The other upside of this is removing the isArrow
field from ScopeCreationData
.
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
The emitThisEnvironmentCallee
helper is used when handling certain 'super'
operations. If the current scope is an eval or arrow, we instead use the
callee of the enclosing environment chain. When this is a case, the Parser
must already have marked the appropriate 'this' as closed-over and we can
simply assert that the scope has an environment.
Assignee | ||
Comment 2•4 years ago
|
||
To avoid walking the enclosing scope chain while parsing, compute the number
of hops between enclosing scope and the effective callee's scope. This is
used if there are 'super' references within an arrow or eval script.
Depends on D100814
Assignee | ||
Comment 3•4 years ago
|
||
Depends on D100815
Assignee | ||
Comment 4•4 years ago
|
||
Depends on D100816
Assignee | ||
Comment 5•4 years ago
|
||
Instead of traversing the scope chain several times, combine some of the
traversals to simplify code. Certain behaviours use the debugger-eval
effective scope, while others ignore it. This patch does not change any of
the current semantics.
Depends on D100814
Assignee | ||
Comment 6•4 years ago
|
||
Instead of generating bogus values inspecting the scope chain when the script
will provide a this-environment, we leave at default based on if the
InheritThis flag is passed. This is used for arrow-function and evals (as the
spec requires).
Depends on D100847
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 8•4 years ago
|
||
Backed out 6 changesets (Bug 1655052) for xpcshell failures at test_protocol_children.js.
https://hg.mozilla.org/integration/autoland/rev/9bad255663ef0504ae110fb9ecf30dff5a48be90
Push with failures:
https://treeherder.mozilla.org/jobs?repo=autoland&revision=0a841c531e0d422b38e4b54808036e4847834cfb&selectedTaskRun=BjViWepMS3-PdccejmFIwg.0
Failure log:
https://treeherder.mozilla.org/logviewer?job_id=325953896&repo=autoland&lineNumber=3791
Assignee | ||
Comment 10•4 years ago
|
||
Updated patches, added tests and requested re-review.
Comment 11•4 years ago
|
||
Comment 12•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/d6d38173b994
https://hg.mozilla.org/mozilla-central/rev/dca3555f3a33
https://hg.mozilla.org/mozilla-central/rev/154dd55151c3
https://hg.mozilla.org/mozilla-central/rev/b39d8a74ce2d
https://hg.mozilla.org/mozilla-central/rev/ee4580ef371c
https://hg.mozilla.org/mozilla-central/rev/eb94385e9c80
Description
•