diff options
author | Moonchild <moonchild@palemoon.org> | 2022-04-15 20:22:02 +0200 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2022-04-15 20:22:02 +0200 |
commit | 9a2da3012a583487e7574572ffd3eb6030ad0964 (patch) | |
tree | 9ea92b6d4c21b01ed93e8ea4753d8454c45f8024 /js | |
parent | 39ba93e1d72e3e88633a13a31abbaa1035fe7ee5 (diff) | |
download | uxp-9a2da3012a583487e7574572ffd3eb6030ad0964.tar.gz |
Issue #1864 - Fix IonBuilder::maybeMarkEmpty.
Look at the instruction's operands instead of the instruction itself,
and take an early exit on empty types.
Diffstat (limited to 'js')
-rw-r--r-- | js/src/jit/IonBuilder.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp index 2b7ac6b9ce..dae86fd92a 100644 --- a/js/src/jit/IonBuilder.cpp +++ b/js/src/jit/IonBuilder.cpp @@ -8181,12 +8181,14 @@ IonBuilder::maybeMarkEmpty(MDefinition* ins) // as having no possible types too. This is to avoid degrading // subsequent analysis. for (size_t i = 0; i < ins->numOperands(); i++) { - if (!ins->emptyResultTypeSet()) + if (!ins->getOperand(i)->emptyResultTypeSet()) continue; TemporaryTypeSet* types = alloc().lifoAlloc()->new_<TemporaryTypeSet>(); - if (types) + if (types) { ins->setResultTypeSet(types); + return; + } } } |