summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-05-05 23:43:22 +0000
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-05-06 19:02:42 +0200
commit533b346f4e598f40e7eae81566c6953a2f4cd525 (patch)
treef65d61aa459802789eb773f56ab81b050b108aaf /js
parent6afd96c4602b611993f7c6128f29ea59a104992f (diff)
downloadUXP-533b346f4e598f40e7eae81566c6953a2f4cd525.tar
UXP-533b346f4e598f40e7eae81566c6953a2f4cd525.tar.gz
UXP-533b346f4e598f40e7eae81566c6953a2f4cd525.tar.lz
UXP-533b346f4e598f40e7eae81566c6953a2f4cd525.tar.xz
UXP-533b346f4e598f40e7eae81566c6953a2f4cd525.zip
[js] Record load in MCreateThis alias set.
Diffstat (limited to 'js')
-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;