OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef V8_LOOKUP_H_ | 5 #ifndef V8_LOOKUP_H_ |
6 #define V8_LOOKUP_H_ | 6 #define V8_LOOKUP_H_ |
7 | 7 |
8 #include "src/factory.h" | 8 #include "src/factory.h" |
9 #include "src/globals.h" | 9 #include "src/globals.h" |
10 #include "src/isolate.h" | 10 #include "src/isolate.h" |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 Handle<Map> GetReceiverMap() const; | 281 Handle<Map> GetReceiverMap() const; |
282 | 282 |
283 MUST_USE_RESULT inline JSReceiver* NextHolder(Map* map); | 283 MUST_USE_RESULT inline JSReceiver* NextHolder(Map* map); |
284 | 284 |
285 template <bool is_element> | 285 template <bool is_element> |
286 V8_EXPORT_PRIVATE void Start(); | 286 V8_EXPORT_PRIVATE void Start(); |
287 template <bool is_element> | 287 template <bool is_element> |
288 void NextInternal(Map* map, JSReceiver* holder); | 288 void NextInternal(Map* map, JSReceiver* holder); |
289 template <bool is_element> | 289 template <bool is_element> |
290 inline State LookupInHolder(Map* map, JSReceiver* holder) { | 290 inline State LookupInHolder(Map* map, JSReceiver* holder) { |
291 return map->instance_type() <= LAST_SPECIAL_RECEIVER_TYPE | 291 return map->IsSpecialReceiverMap() |
292 ? LookupInSpecialHolder<is_element>(map, holder) | 292 ? LookupInSpecialHolder<is_element>(map, holder) |
293 : LookupInRegularHolder<is_element>(map, holder); | 293 : LookupInRegularHolder<is_element>(map, holder); |
294 } | 294 } |
295 template <bool is_element> | 295 template <bool is_element> |
296 State LookupInRegularHolder(Map* map, JSReceiver* holder); | 296 State LookupInRegularHolder(Map* map, JSReceiver* holder); |
297 template <bool is_element> | 297 template <bool is_element> |
298 State LookupInSpecialHolder(Map* map, JSReceiver* holder); | 298 State LookupInSpecialHolder(Map* map, JSReceiver* holder); |
299 template <bool is_element> | 299 template <bool is_element> |
300 void RestartLookupForNonMaskingInterceptors() { | 300 void RestartLookupForNonMaskingInterceptors() { |
301 RestartInternal<is_element>(InterceptorState::kProcessNonMasking); | 301 RestartInternal<is_element>(InterceptorState::kProcessNonMasking); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 const Handle<JSReceiver> initial_holder_; | 361 const Handle<JSReceiver> initial_holder_; |
362 const uint32_t index_; | 362 const uint32_t index_; |
363 uint32_t number_; | 363 uint32_t number_; |
364 }; | 364 }; |
365 | 365 |
366 | 366 |
367 } // namespace internal | 367 } // namespace internal |
368 } // namespace v8 | 368 } // namespace v8 |
369 | 369 |
370 #endif // V8_LOOKUP_H_ | 370 #endif // V8_LOOKUP_H_ |
OLD | NEW |