| 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();
|
|
|