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/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 | 276 |
277 if (state() == MONOMORPHIC) { | 277 if (state() == MONOMORPHIC) { |
278 int index = ic_holder_map->IndexInCodeCache(*name, *target()); | 278 int index = ic_holder_map->IndexInCodeCache(*name, *target()); |
279 if (index >= 0) { | 279 if (index >= 0) { |
280 ic_holder_map->RemoveFromCodeCache(*name, *target(), index); | 280 ic_holder_map->RemoveFromCodeCache(*name, *target(), index); |
281 } | 281 } |
282 } | 282 } |
283 | 283 |
284 if (receiver->IsGlobalObject()) { | 284 if (receiver->IsGlobalObject()) { |
285 Handle<GlobalObject> global = Handle<GlobalObject>::cast(receiver); | 285 Handle<GlobalObject> global = Handle<GlobalObject>::cast(receiver); |
286 LookupIterator it(global, name, LookupIterator::OWN_PROPERTY); | 286 LookupIterator it(global, name, LookupIterator::OWN_SKIP_INTERCEPTOR); |
| 287 if (it.state() == LookupIterator::ACCESS_CHECK) return false; |
287 if (!it.IsFound() || !it.HasProperty()) return false; | 288 if (!it.IsFound() || !it.HasProperty()) return false; |
288 Handle<PropertyCell> cell = it.GetPropertyCell(); | 289 Handle<PropertyCell> cell = it.GetPropertyCell(); |
289 return cell->type()->IsConstant(); | 290 return cell->type()->IsConstant(); |
290 } | 291 } |
291 | 292 |
292 return true; | 293 return true; |
293 } | 294 } |
294 | 295 |
295 | 296 |
296 bool IC::IsNameCompatibleWithPrototypeFailure(Handle<Object> name) { | 297 bool IC::IsNameCompatibleWithPrototypeFailure(Handle<Object> name) { |
(...skipping 2901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3198 static const Address IC_utilities[] = { | 3199 static const Address IC_utilities[] = { |
3199 #define ADDR(name) FUNCTION_ADDR(name), | 3200 #define ADDR(name) FUNCTION_ADDR(name), |
3200 IC_UTIL_LIST(ADDR) NULL | 3201 IC_UTIL_LIST(ADDR) NULL |
3201 #undef ADDR | 3202 #undef ADDR |
3202 }; | 3203 }; |
3203 | 3204 |
3204 | 3205 |
3205 Address IC::AddressFromUtilityId(IC::UtilityId id) { return IC_utilities[id]; } | 3206 Address IC::AddressFromUtilityId(IC::UtilityId id) { return IC_utilities[id]; } |
3206 } | 3207 } |
3207 } // namespace v8::internal | 3208 } // namespace v8::internal |
OLD | NEW |