Warp: support transpiling instanceof
Categories
(Core :: JavaScript Engine: JIT, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox82 | --- | fixed |
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(3 files)
After bug 1645353 we only have to add LoadInstanceOfObjectResult
to support transpiling instanceof stubs.
Comment 1•5 years ago
|
||
InstanceOfPolicy
is equivalent with BoxExceptPolicy
, so let's use the
latter as the off the shelf type policy.
Comment 2•5 years ago
|
||
Change MInstanceOf
to use MDefinition
for the prototype in preparation for
part 3. Lowering uses useRegisterOrConstant()
to ensure we still bake in the
prototype for constant objects, which is the default in both Ion and Warp.
Drive-by change:
Remove bogus LInstanceOfV::lhs()
and LInstanceOfCache::lhs()
methods. The
left-hand side is a boxed operand, so it can't be accessed through getOperand
.
Depends on D88573
Comment 3•5 years ago
|
||
Transpile LoadInstanceOfObjectResult
through the existing MInstanceOf
op.
In contrast to the CacheIR implementation, MInstanceOf
can also handle
proxy objects in the prototype chain via a VM call, whereas the CacheIR
implementation always bails out in that case.
Depends on D88574
Comment 5•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/6f21128ed923
https://hg.mozilla.org/mozilla-central/rev/fc32f8858aec
https://hg.mozilla.org/mozilla-central/rev/b077d656f564
Description
•