Index: src/code-stubs.cc |
diff --git a/src/code-stubs.cc b/src/code-stubs.cc |
index 9c87c8490ac8a90cd1d8b8e141710d33f81b4639..1cb4b98e0f2af03fd148c812567b0857b5376ab6 100644 |
--- a/src/code-stubs.cc |
+++ b/src/code-stubs.cc |
@@ -247,6 +247,7 @@ void InstanceofStub::PrintName(StringStream* stream) { |
void KeyedLoadElementStub::Generate(MacroAssembler* masm) { |
switch (elements_kind_) { |
case FAST_ELEMENTS: |
+ case FAST_SMI_ONLY_ELEMENTS: |
KeyedLoadStubCompiler::GenerateLoadFastElement(masm); |
break; |
case FAST_DOUBLE_ELEMENTS: |
@@ -276,7 +277,15 @@ void KeyedLoadElementStub::Generate(MacroAssembler* masm) { |
void KeyedStoreElementStub::Generate(MacroAssembler* masm) { |
switch (elements_kind_) { |
case FAST_ELEMENTS: |
- KeyedStoreStubCompiler::GenerateStoreFastElement(masm, is_js_array_); |
+ case FAST_SMI_ONLY_ELEMENTS: { |
+ KeyedStoreStubCompiler::StoreObjectAction store_object_action = |
+ elements_kind_ == FAST_SMI_ONLY_ELEMENTS |
+ ? KeyedStoreStubCompiler::kObjectStoreForcesGeneric |
+ : KeyedStoreStubCompiler::kObjectStoreCausesWriteBarrier; |
+ KeyedStoreStubCompiler::GenerateStoreFastElement(masm, |
+ is_js_array_, |
+ store_object_action); |
+ } |
break; |
case FAST_DOUBLE_ELEMENTS: |
KeyedStoreStubCompiler::GenerateStoreFastDoubleElement(masm, |