| 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 1187 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1198   Handle<JSObject> holder = receiver; |  1198   Handle<JSObject> holder = receiver; | 
|  1199   receiver->Lookup(name, lookup); |  1199   receiver->Lookup(name, lookup); | 
|  1200   if (lookup->IsFound()) { |  1200   if (lookup->IsFound()) { | 
|  1201     if (lookup->IsInterceptor() && !HasInterceptorSetter(lookup->holder())) { |  1201     if (lookup->IsInterceptor() && !HasInterceptorSetter(lookup->holder())) { | 
|  1202       receiver->LookupOwnRealNamedProperty(name, lookup); |  1202       receiver->LookupOwnRealNamedProperty(name, lookup); | 
|  1203       if (!lookup->IsFound()) return false; |  1203       if (!lookup->IsFound()) return false; | 
|  1204     } |  1204     } | 
|  1205  |  1205  | 
|  1206     if (lookup->IsReadOnly() || !lookup->IsCacheable()) return false; |  1206     if (lookup->IsReadOnly() || !lookup->IsCacheable()) return false; | 
|  1207     if (lookup->holder() == *receiver) return lookup->CanHoldValue(value); |  1207     if (lookup->holder() == *receiver) return lookup->CanHoldValue(value); | 
|  1208     if (lookup->IsPropertyCallbacks()) return true; |  1208     if (lookup->IsPropertyCallbacks() && | 
 |  1209         !lookup->GetCallbackObject()->IsExecutableAccessorInfo()) return true; | 
|  1209     // JSGlobalProxy either stores on the global object in the prototype, or |  1210     // JSGlobalProxy either stores on the global object in the prototype, or | 
|  1210     // goes into the runtime if access checks are needed, so this is always |  1211     // goes into the runtime if access checks are needed, so this is always | 
|  1211     // safe. |  1212     // safe. | 
|  1212     if (receiver->IsJSGlobalProxy()) { |  1213     if (receiver->IsJSGlobalProxy()) { | 
|  1213       return lookup->holder() == receiver->GetPrototype(); |  1214       return lookup->holder() == receiver->GetPrototype(); | 
|  1214     } |  1215     } | 
|  1215     // Currently normal holders in the prototype chain are not supported. They |  1216     // Currently normal holders in the prototype chain are not supported. They | 
|  1216     // would require a runtime positive lookup and verification that the details |  1217     // would require a runtime positive lookup and verification that the details | 
|  1217     // have not changed. |  1218     // have not changed. | 
|  1218     if (lookup->IsInterceptor() || lookup->IsNormal()) return false; |  1219     if (lookup->IsInterceptor() || lookup->IsNormal()) return false; | 
| (...skipping 1860 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3079 #undef ADDR |  3080 #undef ADDR | 
|  3080 }; |  3081 }; | 
|  3081  |  3082  | 
|  3082  |  3083  | 
|  3083 Address IC::AddressFromUtilityId(IC::UtilityId id) { |  3084 Address IC::AddressFromUtilityId(IC::UtilityId id) { | 
|  3084   return IC_utilities[id]; |  3085   return IC_utilities[id]; | 
|  3085 } |  3086 } | 
|  3086  |  3087  | 
|  3087  |  3088  | 
|  3088 } }  // namespace v8::internal |  3089 } }  // namespace v8::internal | 
| OLD | NEW |