Index: src/code-stubs-hydrogen.cc |
diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc |
index d346e95af20411b48aadef4fedca2a977f531719..43224c1b77d818d926d638f1842c51f3ca96240f 100644 |
--- a/src/code-stubs-hydrogen.cc |
+++ b/src/code-stubs-hydrogen.cc |
@@ -578,13 +578,18 @@ Handle<Code> StoreScriptContextFieldStub::GenerateCode() { |
template <> |
HValue* CodeStubGraphBuilder<GrowArrayElementsStub>::BuildCodeStub() { |
+ ElementsKind kind = casted_stub()->elements_kind(); |
+ if (IsFastDoubleElementsKind(kind)) { |
+ info()->MarkAsSavesCallerDoubles(); |
+ } |
+ |
HValue* object = GetParameter(GrowArrayElementsDescriptor::kObjectIndex); |
HValue* key = GetParameter(GrowArrayElementsDescriptor::kKeyIndex); |
- HValue* current_capacity = |
- GetParameter(GrowArrayElementsDescriptor::kCapacityIndex); |
- ElementsKind kind = casted_stub()->elements_kind(); |
HValue* elements = AddLoadElements(object); |
+ HValue* current_capacity = Add<HLoadNamedField>( |
+ elements, nullptr, HObjectAccess::ForFixedArrayLength()); |
+ |
HValue* length = |
casted_stub()->is_js_array() |
? Add<HLoadNamedField>(object, static_cast<HValue*>(NULL), |