Index: src/code-factory.cc |
diff --git a/src/code-factory.cc b/src/code-factory.cc |
index 79cc649d560e4d46140c50a747f1159ac67d15f5..ce588e7bc8ce3f2340e13ce51668915534a4a650 100644 |
--- a/src/code-factory.cc |
+++ b/src/code-factory.cc |
@@ -101,6 +101,10 @@ Callable CodeFactory::StoreICInOptimizedCode(Isolate* isolate, |
// static |
Callable CodeFactory::KeyedStoreIC(Isolate* isolate, |
LanguageMode language_mode) { |
+ if (FLAG_tf_store_ic_stub) { |
+ KeyedStoreICTrampolineTFStub stub(isolate, StoreICState(language_mode)); |
+ return make_callable(stub); |
+ } |
KeyedStoreICTrampolineStub stub(isolate, StoreICState(language_mode)); |
return make_callable(stub); |
} |
@@ -108,11 +112,24 @@ Callable CodeFactory::KeyedStoreIC(Isolate* isolate, |
// static |
Callable CodeFactory::KeyedStoreICInOptimizedCode(Isolate* isolate, |
LanguageMode language_mode) { |
+ if (FLAG_tf_store_ic_stub) { |
+ KeyedStoreICTFStub stub(isolate, StoreICState(language_mode)); |
+ return make_callable(stub); |
+ } |
KeyedStoreICStub stub(isolate, StoreICState(language_mode)); |
return make_callable(stub); |
} |
// static |
+Callable CodeFactory::KeyedStoreIC_Megamorphic(Isolate* isolate, |
+ LanguageMode language_mode) { |
+ return Callable(language_mode == STRICT |
+ ? isolate->builtins()->KeyedStoreIC_Megamorphic_Strict() |
+ : isolate->builtins()->KeyedStoreIC_Megamorphic(), |
+ StoreWithVectorDescriptor(isolate)); |
+} |
+ |
+// static |
Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op) { |
CompareICStub stub(isolate, op); |
return make_callable(stub); |