| Index: src/stub-cache.cc
|
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
|
| index 9dc89c2314b55fa552558514163221455f0d09a7..b3d93f33071f558fd53d042aa41876a81fb9873e 100644
|
| --- a/src/stub-cache.cc
|
| +++ b/src/stub-cache.cc
|
| @@ -134,7 +134,7 @@ Handle<Code> StubCache::FindHandler(Handle<Name> name,
|
|
|
|
|
| Handle<Code> StubCache::ComputeMonomorphicIC(Handle<Name> name,
|
| - Handle<HeapObject> object,
|
| + Handle<Object> object,
|
| Handle<Code> handler,
|
| StrictModeFlag strict_mode) {
|
| Code::Kind kind = handler->handler_kind();
|
| @@ -148,7 +148,7 @@ Handle<Code> StubCache::ComputeMonomorphicIC(Handle<Name> name,
|
| name, stub_holder_map, kind, strict_mode, cache_holder);
|
| if (!ic.is_null()) return ic;
|
|
|
| - Handle<Map> map(object->map());
|
| + Handle<Map> map(object->GetMarkerMap(isolate()));
|
| if (kind == Code::LOAD_IC) {
|
| LoadStubCompiler ic_compiler(isolate(), cache_holder);
|
| ic = ic_compiler.CompileMonomorphicIC(map, handler, name);
|
| @@ -1181,6 +1181,17 @@ Register StoreStubCompiler::HandlerFrontendHeader(
|
| }
|
|
|
|
|
| +bool BaseLoadStoreStubCompiler::HasHeapNumberMap(MapHandleList* receiver_maps) {
|
| + for (int i = 0; i < receiver_maps->length(); ++i) {
|
| + Handle<Map> map = receiver_maps->at(i);
|
| + if (map.is_identical_to(isolate()->factory()->heap_number_map())) {
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +
|
| Register BaseLoadStoreStubCompiler::HandlerFrontend(Handle<Object> object,
|
| Register object_reg,
|
| Handle<JSObject> holder,
|
|
|