Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index f464c2043b2372a35e0fe90d93f5731574c9bf77..b091dc1f5d993caec8f3b9b93f5efde693209804 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -2476,6 +2476,24 @@ RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_MissForceGeneric) { |
} |
+RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss) { |
+ SealHandleScope scope(isolate); |
+ ASSERT(args.length() == 4); |
+ KeyedStoreIC ic(IC::NO_EXTRA_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); |
} |