Chromium Code Reviews| Index: src/ic/handler-compiler.cc |
| diff --git a/src/ic/handler-compiler.cc b/src/ic/handler-compiler.cc |
| index 9915ed11dcb302c238104f6b23883edf30c0d90c..fe451fd6c22d62378275808fdd182d412aeedc22 100644 |
| --- a/src/ic/handler-compiler.cc |
| +++ b/src/ic/handler-compiler.cc |
| @@ -330,7 +330,7 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreTransition( |
| } |
| int descriptor = transition->LastAdded(); |
| - DescriptorArray* descriptors = transition->instance_descriptors(); |
| + Handle<DescriptorArray> descriptors(transition->instance_descriptors()); |
|
ulan
2014/12/09 17:30:37
This is the only diff from the original CL. We nee
|
| PropertyDetails details = descriptors->GetDetails(descriptor); |
| Representation representation = details.representation(); |
| DCHECK(!representation.IsNone()); |
| @@ -340,9 +340,10 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreTransition( |
| // Call to respective StoreTransitionStub. |
| if (details.type() == CONSTANT) { |
| - GenerateConstantCheck(descriptors->GetValue(descriptor), value(), &miss); |
| - |
| GenerateRestoreMap(transition, scratch2(), &miss); |
| + DCHECK(descriptors->GetValue(descriptor)->IsJSFunction()); |
| + Register map_reg = StoreTransitionDescriptor::MapRegister(); |
| + GenerateConstantCheck(map_reg, descriptor, value(), scratch2(), &miss); |
| GenerateRestoreName(name); |
| StoreTransitionStub stub(isolate()); |
| GenerateTailCall(masm(), stub.GetCode()); |