Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index 2f004d8b14a3f71e5c2403484684916744b2c601..b005f59b9feb11efe6ee0f9229b8c442ed08ab1c 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -3493,6 +3493,7 @@ static bool IsElementTypeSigned(ElementsKind elements_kind) { |
case EXTERNAL_FLOAT_ELEMENTS: |
case EXTERNAL_DOUBLE_ELEMENTS: |
case FAST_ELEMENTS: |
+ case FAST_SMI_ONLY_ELEMENTS: |
case FAST_DOUBLE_ELEMENTS: |
case DICTIONARY_ELEMENTS: |
case NON_STRICT_ARGUMENTS_ELEMENTS: |
@@ -3579,6 +3580,7 @@ void KeyedLoadStubCompiler::GenerateLoadExternalArray( |
} |
break; |
case FAST_ELEMENTS: |
+ case FAST_SMI_ONLY_ELEMENTS: |
case FAST_DOUBLE_ELEMENTS: |
case DICTIONARY_ELEMENTS: |
case NON_STRICT_ARGUMENTS_ELEMENTS: |
@@ -3919,6 +3921,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray( |
} |
break; |
case FAST_ELEMENTS: |
+ case FAST_SMI_ONLY_ELEMENTS: |
case FAST_DOUBLE_ELEMENTS: |
case DICTIONARY_ELEMENTS: |
case NON_STRICT_ARGUMENTS_ELEMENTS: |
@@ -3982,6 +3985,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray( |
case EXTERNAL_FLOAT_ELEMENTS: |
case EXTERNAL_DOUBLE_ELEMENTS: |
case FAST_ELEMENTS: |
+ case FAST_SMI_ONLY_ELEMENTS: |
case FAST_DOUBLE_ELEMENTS: |
case DICTIONARY_ELEMENTS: |
case NON_STRICT_ARGUMENTS_ELEMENTS: |
@@ -4121,6 +4125,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray( |
case EXTERNAL_FLOAT_ELEMENTS: |
case EXTERNAL_DOUBLE_ELEMENTS: |
case FAST_ELEMENTS: |
+ case FAST_SMI_ONLY_ELEMENTS: |
case FAST_DOUBLE_ELEMENTS: |
case DICTIONARY_ELEMENTS: |
case NON_STRICT_ARGUMENTS_ELEMENTS: |
@@ -4273,8 +4278,10 @@ void KeyedLoadStubCompiler::GenerateLoadFastDoubleElement( |
} |
-void KeyedStoreStubCompiler::GenerateStoreFastElement(MacroAssembler* masm, |
- bool is_js_array) { |
+void KeyedStoreStubCompiler::GenerateStoreFastElement( |
+ MacroAssembler* masm, |
+ bool is_js_array, |
+ ElementsKind elements_kind) { |
// ----------- S t a t e ------------- |
// -- r0 : value |
// -- r1 : key |
@@ -4324,6 +4331,7 @@ void KeyedStoreStubCompiler::GenerateStoreFastElement(MacroAssembler* masm, |
Operand(key_reg, LSL, kPointerSizeLog2 - kSmiTagSize)); |
__ str(value_reg, MemOperand(scratch)); |
__ mov(receiver_reg, value_reg); |
+ ASSERT(elements_kind == FAST_ELEMENTS); |
__ RecordWrite(elements_reg, // Object. |
scratch, // Address. |
receiver_reg, // Value. |