summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2022-04-15 20:22:02 +0200
committerMoonchild <moonchild@palemoon.org>2022-04-15 20:22:02 +0200
commit9a2da3012a583487e7574572ffd3eb6030ad0964 (patch)
tree9ea92b6d4c21b01ed93e8ea4753d8454c45f8024 /js
parent39ba93e1d72e3e88633a13a31abbaa1035fe7ee5 (diff)
downloaduxp-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.cpp6
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;
+ }
}
}