diff options
author | Moonchild <moonchild@palemoon.org> | 2020-05-05 23:43:22 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-05-05 23:43:22 +0000 |
commit | f5c2775a69cff7e1aea6b9258760fd4acc36837f (patch) | |
tree | 7396f1ee55a80a67ac1e3e69c0616e18b796cec0 /js/src/jit | |
parent | b378ddaace9e745e9b4a856eb06679e5e8fa07f5 (diff) | |
download | UXP-f5c2775a69cff7e1aea6b9258760fd4acc36837f.tar UXP-f5c2775a69cff7e1aea6b9258760fd4acc36837f.tar.gz UXP-f5c2775a69cff7e1aea6b9258760fd4acc36837f.tar.lz UXP-f5c2775a69cff7e1aea6b9258760fd4acc36837f.tar.xz UXP-f5c2775a69cff7e1aea6b9258760fd4acc36837f.zip |
[js] Record load in MCreateThis alias set.
Diffstat (limited to 'js/src/jit')
-rw-r--r-- | js/src/jit/AliasAnalysisShared.cpp | 1 | ||||
-rw-r--r-- | js/src/jit/MIR.h | 5 |
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; |