| Index: src/stub-cache.cc
|
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
|
| index d7a47e32023ce61435e8d20b208535d4cdb31c28..5ff45c04efc219873769985645a02a4930f583c7 100644
|
| --- a/src/stub-cache.cc
|
| +++ b/src/stub-cache.cc
|
| @@ -842,18 +842,22 @@ void PropertyHandlerCompiler::NonexistentFrontendHeader(Handle<Name> name,
|
| }
|
|
|
|
|
| -Handle<Code> NamedLoadHandlerCompiler::CompileLoadField(
|
| - Handle<Name> name, FieldIndex field, Representation representation) {
|
| +Handle<Code> NamedLoadHandlerCompiler::CompileLoadField(Handle<Name> name,
|
| + FieldIndex field) {
|
| Register reg = Frontend(receiver(), name);
|
| - GenerateLoadField(reg, field, representation);
|
| + __ Move(receiver(), reg);
|
| + LoadFieldStub stub(isolate(), field);
|
| + GenerateTailCall(masm(), stub.GetCode());
|
| return GetCode(kind(), Code::FAST, name);
|
| }
|
|
|
|
|
| -Handle<Code> NamedLoadHandlerCompiler::CompileLoadConstant(
|
| - Handle<Name> name, Handle<Object> value) {
|
| - Frontend(receiver(), name);
|
| - GenerateLoadConstant(value);
|
| +Handle<Code> NamedLoadHandlerCompiler::CompileLoadConstant(Handle<Name> name,
|
| + int constant_index) {
|
| + Register reg = Frontend(receiver(), name);
|
| + __ Move(receiver(), reg);
|
| + LoadConstantStub stub(isolate(), constant_index);
|
| + GenerateTailCall(masm(), stub.GetCode());
|
| return GetCode(kind(), Code::FAST, name);
|
| }
|
|
|
| @@ -917,7 +921,9 @@ void NamedLoadHandlerCompiler::GenerateLoadPostInterceptor(
|
| Register reg = Frontend(interceptor_reg, name);
|
|
|
| if (lookup->IsField()) {
|
| - GenerateLoadField(reg, lookup->GetFieldIndex(), lookup->representation());
|
| + __ Move(receiver(), reg);
|
| + LoadFieldStub stub(isolate(), lookup->GetFieldIndex());
|
| + GenerateTailCall(masm(), stub.GetCode());
|
| } else {
|
| DCHECK(lookup->type() == CALLBACKS);
|
| Handle<ExecutableAccessorInfo> callback(
|
|
|