summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-05-05 23:43:22 +0000
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-05-06 19:15:54 +0200
commit31f47a2ba435d44ae7d8e0bfe70ac2d7c7993af9 (patch)
tree99a0e2e09dcb0b54d360bfd37b44d91ad3dda285
parent8b3b85854666ce1cabc25bda77f642e387ea49f6 (diff)
downloadUXP-31f47a2ba435d44ae7d8e0bfe70ac2d7c7993af9.tar
UXP-31f47a2ba435d44ae7d8e0bfe70ac2d7c7993af9.tar.gz
UXP-31f47a2ba435d44ae7d8e0bfe70ac2d7c7993af9.tar.lz
UXP-31f47a2ba435d44ae7d8e0bfe70ac2d7c7993af9.tar.xz
UXP-31f47a2ba435d44ae7d8e0bfe70ac2d7c7993af9.zip
[js] Record load in MCreateThis alias set.
-rw-r--r--js/src/jit/AliasAnalysisShared.cpp1
-rw-r--r--js/src/jit/MIR.h5
2 files changed, 4 insertions, 2 deletions
diff --git a/js/src/jit/AliasAnalysisShared.cpp b/js/src/jit/AliasAnalysisShared.cpp
index 99c23d2a3..21a479bf8 100644
--- a/js/src/jit/AliasAnalysisShared.cpp
+++ b/js/src/jit/AliasAnalysisShared.cpp
@@ -134,6 +134,7 @@ GetObject(const MDefinition* ins)
case MDefinition::Op_SetArgumentsObjectArg:
case MDefinition::Op_GetFrameArgument:
case MDefinition::Op_SetFrameArgument:
+ case MDefinition::Op_CreateThis:
case MDefinition::Op_CompareExchangeTypedArrayElement:
case MDefinition::Op_AtomicExchangeTypedArrayElement:
case MDefinition::Op_AtomicTypedArrayElementBinop:
diff --git a/js/src/jit/MIR.h b/js/src/jit/MIR.h
index 81662a9be..a7daea081 100644
--- a/js/src/jit/MIR.h
+++ b/js/src/jit/MIR.h
@@ -5007,9 +5007,10 @@ class MCreateThis
TRIVIAL_NEW_WRAPPERS
NAMED_OPERANDS((0, getCallee), (1, getNewTarget))
- // Although creation of |this| modifies global state, it is safely repeatable.
+ // Performs a property read from |newTarget| if |newTarget| is a JSFunction
+ // with an own |.prototype| property.
AliasSet getAliasSet() const override {
- return AliasSet::None();
+ return AliasSet::Load(AliasSet::Any);
}
bool possiblyCalls() const override {
return true;