Closed
Bug 1761755
Opened 2 years ago
Closed 2 years ago
Add JSOp::IsNullOrUndefined to replace BytecodeEmitter::emitPushNotUndefinedOrNull
Categories
(Core :: JavaScript Engine, task, P3)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
100 Branch
Tracking | Status | |
---|---|---|
firefox100 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(3 files)
In BytecodeEmitter::emitPushNotUndefinedOrNull
we emit the equivalent of x !== undefined && x !== null
. This bloats the bytecode for for-of, iterator closing, optional chaining, etc quite a lot. It probably makes sense to add a separate bytecode op for null-or-undefined testing.
Assignee | ||
Comment 1•2 years ago
|
||
Assignee | ||
Comment 2•2 years ago
|
||
This reduces the amount of bytecode emitted for optional chaining and iterator closing.
Depends on D142204
Assignee | ||
Comment 3•2 years ago
|
||
Depends on D142205
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2bd0d33b0e1c part 1 - Add JSOp::IsNullOrUndefined. r=arai https://hg.mozilla.org/integration/autoland/rev/a460ae7807f0 part 2 - Replace BytecodeEmitter::emitPushNotUndefinedOrNull with JSOp::IsNullOrUndefined. r=arai https://hg.mozilla.org/integration/autoland/rev/79f4d29fb759 part 3 - Remove unnecessary IfEmitter in OptionalEmitter::emitJumpShortCircuit. r=arai
Comment 5•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/2bd0d33b0e1c
https://hg.mozilla.org/mozilla-central/rev/a460ae7807f0
https://hg.mozilla.org/mozilla-central/rev/79f4d29fb759
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
status-firefox100:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
You need to log in
before you can comment on or make changes to this bug.
Description
•