Index: src/code-stubs-hydrogen.cc |
diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc |
index 43752cbf84160c4e40e36e37a7a970990e82fe1e..cf80c3db029c0d744d80545f29929cb9cf4a93ed 100644 |
--- a/src/code-stubs-hydrogen.cc |
+++ b/src/code-stubs-hydrogen.cc |
@@ -62,8 +62,7 @@ class CodeStubGraphBuilderBase : public HGraphBuilder { |
HContext* context() { return context_; } |
Isolate* isolate() { return info_->isolate(); } |
- HLoadNamedField* BuildLoadNamedField(HValue* object, |
- FieldIndex index); |
+ HLoadNamedField* BuildLoadNamedField(HValue* object, FieldIndex index); |
void BuildStoreNamedField(HValue* object, HValue* value, FieldIndex index, |
Representation representation, |
bool transition_to_field); |
@@ -1925,7 +1924,8 @@ HValue* CodeStubGraphBuilder<LoadDictionaryElementStub>::BuildCodeStub() { |
HValue* hash = BuildElementIndexHash(key); |
- return BuildUncheckedDictionaryElementLoad(receiver, elements, key, hash); |
+ return BuildUncheckedDictionaryElementLoad(receiver, elements, key, hash, |
+ casted_stub()->language_mode()); |
} |
@@ -2039,7 +2039,6 @@ void CodeStubGraphBuilder<KeyedLoadGenericStub>::BuildExternalElementLoad( |
HValue* CodeStubGraphBuilder<KeyedLoadGenericStub>::BuildCodeStub() { |
HValue* receiver = GetParameter(LoadDescriptor::kReceiverIndex); |
HValue* key = GetParameter(LoadDescriptor::kNameIndex); |
- |
// Split into a smi/integer case and unique string case. |
HIfContinuation index_name_split_continuation(graph()->CreateBasicBlock(), |
graph()->CreateBasicBlock()); |
@@ -2083,7 +2082,8 @@ HValue* CodeStubGraphBuilder<KeyedLoadGenericStub>::BuildCodeStub() { |
HValue* hash = BuildElementIndexHash(key); |
- Push(BuildUncheckedDictionaryElementLoad(receiver, elements, key, hash)); |
+ Push(BuildUncheckedDictionaryElementLoad(receiver, elements, key, hash, |
+ casted_stub()->language_mode())); |
} |
kind_if.Else(); |
@@ -2161,10 +2161,8 @@ HValue* CodeStubGraphBuilder<KeyedLoadGenericStub>::BuildCodeStub() { |
hash = AddUncasted<HShr>(hash, Add<HConstant>(Name::kHashShift)); |
- HValue* value = BuildUncheckedDictionaryElementLoad(receiver, |
- properties, |
- key, |
- hash); |
+ HValue* value = BuildUncheckedDictionaryElementLoad( |
+ receiver, properties, key, hash, casted_stub()->language_mode()); |
Push(value); |
} |
if_dict_properties.Else(); |
@@ -2242,7 +2240,10 @@ HValue* CodeStubGraphBuilder<KeyedLoadGenericStub>::BuildCodeStub() { |
Add<HPushArguments>(receiver, key); |
Push(Add<HCallRuntime>( |
isolate()->factory()->empty_string(), |
- Runtime::FunctionForId(Runtime::kKeyedGetProperty), 2)); |
+ Runtime::FunctionForId(is_strong(casted_stub()->language_mode()) |
+ ? Runtime::kKeyedGetPropertyStrong |
+ : Runtime::kKeyedGetProperty), |
+ 2)); |
} |
inline_or_runtime.End(); |
} |