Index: src/stub-cache.cc |
diff --git a/src/stub-cache.cc b/src/stub-cache.cc |
index a687d81a3e57351eab2d2d2b6b9839f3fc3ebfcf..74f6c34d4d3b539e4eb1ea301fd52c9756f83285 100644 |
--- a/src/stub-cache.cc |
+++ b/src/stub-cache.cc |
@@ -1993,12 +1993,23 @@ Handle<Code> KeyedStoreStubCompiler::CompileStoreElementPolymorphic( |
bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE; |
ElementsKind elements_kind = receiver_map->elements_kind(); |
if (!transitioned_map.is_null()) { |
- cached_stub = ElementsTransitionAndStoreStub( |
- elements_kind, |
- transitioned_map->elements_kind(), |
- is_js_array, |
- strict_mode(), |
- store_mode_).GetCode(isolate()); |
+ switch (strict_mode()) { |
+ case kNonStrictMode: |
+ cached_stub = ElementsTransitionAndStoreNonStrictStub( |
+ elements_kind, |
+ transitioned_map->elements_kind(), |
+ is_js_array, |
+ store_mode_).GetCode(isolate()); |
+ break; |
+ |
+ case kStrictMode: |
+ cached_stub = ElementsTransitionAndStoreStrictStub( |
+ elements_kind, |
+ transitioned_map->elements_kind(), |
+ is_js_array, |
+ store_mode_).GetCode(isolate()); |
+ break; |
+ } |
} else { |
if (FLAG_compiled_keyed_stores && |
(receiver_map->has_fast_elements() || |