Warp: Transpile FunApplyArray and spread calls
Categories
(Core :: JavaScript Engine: JIT, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox82 | --- | fixed |
People
(Reporter: iain, Assigned: iain)
References
Details
Attachments
(5 files)
Transpiler support for FunApplyArgs was added in bug 1658811. These patches add support for FunApplyArray (and spread calls, which are very similar).
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Prior to the NON_PACKED flag, we had to iterate over each element of the array to verify that it was packed. It made sense to fold the argc check in with that code. Now that we are using the flag, I moved the argc check inside the call op to match other argument formats.
Assignee | ||
Comment 2•5 years ago
|
||
It's a bit awkward having both MIsPackedArray and MGuardArrayIsPacked, but I didn't see a nicer approach.
Depends on D88510
Assignee | ||
Comment 3•5 years ago
|
||
This makes transpiling nicer, and should also make inlining much easier.
Depends on D88511
Assignee | ||
Comment 4•5 years ago
|
||
CallInfo::ArgFormat::Array supports FunApplyArray (in this patch), SpreadCall (in the next patch), and eventually SpreadNew/SpreadSuperCall.
Depends on D88512
Assignee | ||
Comment 5•5 years ago
|
||
The assertion in emitLoadArgumentSlot was unnecessary. Spread calls always have an argc of 1, so hasArgumentArray
and !addArgc
cancel each other out in GetIndexOfArgument.
Depends on D88513
Comment 7•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/9abed09112c4
https://hg.mozilla.org/mozilla-central/rev/65b269adf362
https://hg.mozilla.org/mozilla-central/rev/732dada7d4a5
https://hg.mozilla.org/mozilla-central/rev/9fcedf4aaee2
https://hg.mozilla.org/mozilla-central/rev/4cd7a663cfab
Description
•