| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/v8.h" | 5 #include "src/v8.h" | 
| 6 | 6 | 
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" | 
| 8 #include "src/api.h" | 8 #include "src/api.h" | 
| 9 #include "src/arguments.h" | 9 #include "src/arguments.h" | 
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" | 
| (...skipping 1416 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1427 | 1427 | 
| 1428   Handle<JSObject> holder(lookup->holder()); | 1428   Handle<JSObject> holder(lookup->holder()); | 
| 1429   NamedStoreHandlerCompiler compiler(isolate(), receiver_type(), holder); | 1429   NamedStoreHandlerCompiler compiler(isolate(), receiver_type(), holder); | 
| 1430 | 1430 | 
| 1431   if (lookup->IsTransition()) { | 1431   if (lookup->IsTransition()) { | 
| 1432     // Explicitly pass in the receiver map since LookupForWrite may have | 1432     // Explicitly pass in the receiver map since LookupForWrite may have | 
| 1433     // stored something else than the receiver in the holder. | 1433     // stored something else than the receiver in the holder. | 
| 1434     Handle<Map> transition(lookup->GetTransitionTarget()); | 1434     Handle<Map> transition(lookup->GetTransitionTarget()); | 
| 1435     PropertyDetails details = lookup->GetPropertyDetails(); | 1435     PropertyDetails details = lookup->GetPropertyDetails(); | 
| 1436 | 1436 | 
| 1437     if (details.type() != CALLBACKS && details.attributes() == NONE) { | 1437     if (details.type() != CALLBACKS && details.attributes() == NONE && | 
|  | 1438         holder->HasFastProperties()) { | 
| 1438       return compiler.CompileStoreTransition(transition, name); | 1439       return compiler.CompileStoreTransition(transition, name); | 
| 1439     } | 1440     } | 
| 1440   } else { | 1441   } else { | 
| 1441     switch (lookup->type()) { | 1442     switch (lookup->type()) { | 
| 1442       case FIELD: | 1443       case FIELD: | 
| 1443         return compiler.CompileStoreField(lookup, name); | 1444         return compiler.CompileStoreField(lookup, name); | 
| 1444       case NORMAL: | 1445       case NORMAL: | 
| 1445         if (kind() == Code::KEYED_STORE_IC) break; | 1446         if (kind() == Code::KEYED_STORE_IC) break; | 
| 1446         if (receiver->IsJSGlobalProxy() || receiver->IsGlobalObject()) { | 1447         if (receiver->IsJSGlobalProxy() || receiver->IsGlobalObject()) { | 
| 1447           // The stub generated for the global object picks the value directly | 1448           // The stub generated for the global object picks the value directly | 
| (...skipping 1612 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3060 #undef ADDR | 3061 #undef ADDR | 
| 3061 }; | 3062 }; | 
| 3062 | 3063 | 
| 3063 | 3064 | 
| 3064 Address IC::AddressFromUtilityId(IC::UtilityId id) { | 3065 Address IC::AddressFromUtilityId(IC::UtilityId id) { | 
| 3065   return IC_utilities[id]; | 3066   return IC_utilities[id]; | 
| 3066 } | 3067 } | 
| 3067 | 3068 | 
| 3068 | 3069 | 
| 3069 } }  // namespace v8::internal | 3070 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|