Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index e09d83e6fa1ac11541abfc81d693ddbede786758..e0852455a2c5a9ebf5d0ab427f351960fbfeef2f 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -2481,6 +2481,24 @@ RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_MissForceGeneric) { |
} |
+RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) { |
+ SealHandleScope scope(isolate); |
+ ASSERT(args.length() == 4); |
+ KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate); |
+ Code::ExtraICState extra_ic_state = ic.target()->extra_ic_state(); |
+ Handle<Object> value = args.at<Object>(0); |
+ Handle<Object> key = args.at<Object>(2); |
+ Handle<Object> object = args.at<Object>(3); |
+ StrictModeFlag strict_mode = Code::GetStrictMode(extra_ic_state); |
+ return Runtime::SetObjectProperty(isolate, |
+ object, |
+ key, |
+ value, |
+ NONE, |
+ strict_mode); |
+} |
+ |
+ |
void BinaryOpIC::patch(Code* code) { |
set_target(code); |
} |