Index: src/x64/stub-cache-x64.cc |
diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc |
index 5a7bd10c11f7d7de149a254a04c036f28acdd70c..57c6a353c14ae6c16d641be7d8bc4681751d6d67 100644 |
--- a/src/x64/stub-cache-x64.cc |
+++ b/src/x64/stub-cache-x64.cc |
@@ -1284,14 +1284,14 @@ void StoreStubCompiler::HandlerFrontendFooter(Handle<Name> name, Label* miss) { |
Register LoadStubCompiler::CallbackHandlerFrontend( |
- Handle<Object> object, |
+ Handle<Type> type, |
Register object_reg, |
Handle<JSObject> holder, |
Handle<Name> name, |
Handle<Object> callback) { |
Label miss; |
- Register reg = HandlerFrontendHeader(object, object_reg, holder, name, &miss); |
+ Register reg = HandlerFrontendHeader(type, object_reg, holder, name, &miss); |
if (!holder->HasFastProperties() && !holder->IsJSGlobalObject()) { |
ASSERT(!reg.is(scratch2())); |
@@ -2862,7 +2862,8 @@ Handle<Code> StoreStubCompiler::CompileStoreCallback( |
Handle<JSObject> holder, |
Handle<Name> name, |
Handle<ExecutableAccessorInfo> callback) { |
- HandlerFrontend(object, receiver(), holder, name); |
+ HandlerFrontend(IC::CurrentTypeOf(object, isolate()), |
+ receiver(), holder, name); |
__ PopReturnAddressTo(scratch1()); |
__ push(receiver()); |
@@ -2886,7 +2887,8 @@ Handle<Code> StoreStubCompiler::CompileStoreCallback( |
Handle<JSObject> holder, |
Handle<Name> name, |
const CallOptimization& call_optimization) { |
- HandlerFrontend(object, receiver(), holder, name); |
+ HandlerFrontend(IC::CurrentTypeOf(object, isolate()), |
+ receiver(), holder, name); |
Register values[] = { value() }; |
GenerateFastApiCall( |
@@ -3000,12 +3002,10 @@ Handle<Code> KeyedStoreStubCompiler::CompileStorePolymorphic( |
} |
-Handle<Code> LoadStubCompiler::CompileLoadNonexistent( |
- Handle<Object> object, |
- Handle<JSObject> last, |
- Handle<Name> name, |
- Handle<JSGlobalObject> global) { |
- NonexistentHandlerFrontend(object, last, name, global); |
+Handle<Code> LoadStubCompiler::CompileLoadNonexistent(Handle<Type> type, |
+ Handle<JSObject> last, |
+ Handle<Name> name) { |
+ NonexistentHandlerFrontend(type, last, name); |
// Return undefined if maps of the full prototype chain are still the |
// same and no global property with this name contains a value. |
@@ -3101,7 +3101,7 @@ void LoadStubCompiler::GenerateLoadViaGetter(MacroAssembler* masm, |
Handle<Code> LoadStubCompiler::CompileLoadGlobal( |
- Handle<Object> object, |
+ Handle<Type> type, |
Handle<GlobalObject> global, |
Handle<PropertyCell> cell, |
Handle<Name> name, |
@@ -3110,7 +3110,7 @@ Handle<Code> LoadStubCompiler::CompileLoadGlobal( |
// TODO(verwaest): Directly store to rax. Currently we cannot do this, since |
// rax is used as receiver(), which we would otherwise clobber before a |
// potential miss. |
- HandlerFrontendHeader(object, receiver(), global, name, &miss); |
+ HandlerFrontendHeader(type, receiver(), global, name, &miss); |
// Get the value from the cell. |
__ Move(rbx, cell); |