Index: src/stub-cache.cc |
diff --git a/src/stub-cache.cc b/src/stub-cache.cc |
index 36e59bd21c406c1d5c070288bf7bc99b93149201..132ed711aa27f920a89af918ff748f54b4818b56 100644 |
--- a/src/stub-cache.cc |
+++ b/src/stub-cache.cc |
@@ -947,8 +947,10 @@ Handle<Code> LoadStubCompiler::CompileLoadCallback( |
ASSERT(call_optimization.is_simple_api_call()); |
Handle<JSFunction> callback = call_optimization.constant_function(); |
CallbackHandlerFrontend(type, receiver(), holder, name, callback); |
- GenerateLoadCallback(call_optimization, IC::TypeToMap(*type, isolate())); |
- |
+ Handle<Map>receiver_map = IC::TypeToMap(*type, isolate()); |
+ GenerateFastApiCall( |
+ masm(), call_optimization, receiver_map, |
+ receiver(), scratch1(), false, 0, NULL); |
// Return the generated code. |
return GetCode(kind(), Code::FAST, name); |
} |
@@ -1127,6 +1129,22 @@ Handle<Code> StoreStubCompiler::CompileStoreViaSetter( |
} |
+Handle<Code> StoreStubCompiler::CompileStoreCallback( |
+ Handle<JSObject> object, |
+ Handle<JSObject> holder, |
+ Handle<Name> name, |
+ const CallOptimization& call_optimization) { |
+ HandlerFrontend(IC::CurrentTypeOf(object, isolate()), |
+ receiver(), holder, name); |
+ Register values[] = { value() }; |
+ GenerateFastApiCall( |
+ masm(), call_optimization, handle(object->map()), |
+ receiver(), scratch1(), true, 1, values); |
+ // Return the generated code. |
+ return GetCode(kind(), Code::FAST, name); |
+} |
+ |
+ |
Handle<Code> KeyedLoadStubCompiler::CompileLoadElement( |
Handle<Map> receiver_map) { |
ElementsKind elements_kind = receiver_map->elements_kind(); |