Index: src/ic/ic-compiler.cc |
diff --git a/src/ic/ic-compiler.cc b/src/ic/ic-compiler.cc |
index aeae4ba90e5d0ef6e216e5e34095e8d3e16fca53..24715645da13d0c3a7db82b93238861ad36ecb5b 100644 |
--- a/src/ic/ic-compiler.cc |
+++ b/src/ic/ic-compiler.cc |
@@ -57,6 +57,13 @@ Handle<Code> PropertyICCompiler::ComputeMonomorphic( |
CacheHolderFlag flag; |
Handle<Map> stub_holder = IC::GetICCacheHolder(*type, isolate, &flag); |
+ if (kind == Code::KEYED_STORE_IC) { |
+ // Always set the "property" bit. |
+ extra_ic_state = |
+ KeyedStoreIC::IcCheckTypeField::update(extra_ic_state, PROPERTY); |
+ DCHECK(STANDARD_STORE == |
+ KeyedStoreIC::GetKeyedAccessStoreMode(extra_ic_state)); |
+ } |
Handle<Code> ic; |
// There are multiple string maps that all use the same prototype. That |
@@ -68,13 +75,6 @@ Handle<Code> PropertyICCompiler::ComputeMonomorphic( |
if (!ic.is_null()) return ic; |
} |
-#ifdef DEBUG |
- if (kind == Code::KEYED_STORE_IC) { |
- DCHECK(STANDARD_STORE == |
- KeyedStoreIC::GetKeyedAccessStoreMode(extra_ic_state)); |
- } |
-#endif |
- |
PropertyICCompiler ic_compiler(isolate, kind, extra_ic_state, flag); |
ic = ic_compiler.CompileMonomorphic(type, handler, name, PROPERTY); |