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/isolate.h" | 9 #include "src/isolate.h" |
10 #include "src/objects.h" | 10 #include "src/objects.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 enum PropertyKind { | 46 enum PropertyKind { |
47 DATA, | 47 DATA, |
48 ACCESSOR | 48 ACCESSOR |
49 }; | 49 }; |
50 | 50 |
51 enum PropertyEncoding { | 51 enum PropertyEncoding { |
52 DICTIONARY, | 52 DICTIONARY, |
53 DESCRIPTOR | 53 DESCRIPTOR |
54 }; | 54 }; |
55 | 55 |
56 explicit LookupIterator(const LookupIterator* other) | |
57 : configuration_(other->configuration_), | |
58 state_(other->state_), | |
59 property_kind_(other->property_kind_), | |
60 property_encoding_(other->property_encoding_), | |
61 property_details_(other->property_details_), | |
62 isolate_(other->isolate_), | |
63 name_(other->name_), | |
64 holder_map_(other->holder_map_), | |
65 maybe_receiver_(other->maybe_receiver_), | |
66 maybe_holder_(other->maybe_holder_) {} | |
67 | |
68 LookupIterator(Handle<Object> receiver, Handle<Name> name, | 56 LookupIterator(Handle<Object> receiver, Handle<Name> name, |
69 Configuration configuration = CHECK_DERIVED) | 57 Configuration configuration = CHECK_DERIVED) |
70 : configuration_(ComputeConfiguration(configuration, name)), | 58 : configuration_(ComputeConfiguration(configuration, name)), |
71 state_(NOT_FOUND), | 59 state_(NOT_FOUND), |
72 property_kind_(DATA), | 60 property_kind_(DATA), |
73 property_encoding_(DESCRIPTOR), | 61 property_encoding_(DESCRIPTOR), |
74 property_details_(NONE, NORMAL, Representation::None()), | 62 property_details_(NONE, NORMAL, Representation::None()), |
75 isolate_(name->GetIsolate()), | 63 isolate_(name->GetIsolate()), |
76 name_(name), | 64 name_(name), |
77 maybe_receiver_(receiver), | 65 maybe_receiver_(receiver), |
78 number_(DescriptorArray::kNotFound) { | 66 number_(DescriptorArray::kNotFound) { |
79 Handle<JSReceiver> root = GetRoot(); | 67 Handle<JSReceiver> root = GetRoot(); |
80 holder_map_ = handle(root->map()); | 68 holder_map_ = handle(root->map(), isolate_); |
81 maybe_holder_ = root; | 69 maybe_holder_ = root; |
82 Next(); | 70 Next(); |
83 } | 71 } |
84 | 72 |
85 LookupIterator(Handle<Object> receiver, Handle<Name> name, | 73 LookupIterator(Handle<Object> receiver, Handle<Name> name, |
86 Handle<JSReceiver> holder, | 74 Handle<JSReceiver> holder, |
87 Configuration configuration = CHECK_DERIVED) | 75 Configuration configuration = CHECK_DERIVED) |
88 : configuration_(ComputeConfiguration(configuration, name)), | 76 : configuration_(ComputeConfiguration(configuration, name)), |
89 state_(NOT_FOUND), | 77 state_(NOT_FOUND), |
90 property_kind_(DATA), | 78 property_kind_(DATA), |
91 property_encoding_(DESCRIPTOR), | 79 property_encoding_(DESCRIPTOR), |
92 property_details_(NONE, NORMAL, Representation::None()), | 80 property_details_(NONE, NORMAL, Representation::None()), |
93 isolate_(name->GetIsolate()), | 81 isolate_(name->GetIsolate()), |
94 name_(name), | 82 name_(name), |
95 holder_map_(holder->map()), | 83 holder_map_(holder->map(), isolate_), |
96 maybe_receiver_(receiver), | 84 maybe_receiver_(receiver), |
97 maybe_holder_(holder), | 85 maybe_holder_(holder), |
98 number_(DescriptorArray::kNotFound) { | 86 number_(DescriptorArray::kNotFound) { |
99 Next(); | 87 Next(); |
100 } | 88 } |
101 | 89 |
102 Isolate* isolate() const { return isolate_; } | 90 Isolate* isolate() const { return isolate_; } |
103 State state() const { return state_; } | 91 State state() const { return state_; } |
104 Handle<Name> name() const { return name_; } | 92 Handle<Name> name() const { return name_; } |
105 | 93 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 MaybeHandle<Object> maybe_receiver_; | 238 MaybeHandle<Object> maybe_receiver_; |
251 MaybeHandle<JSReceiver> maybe_holder_; | 239 MaybeHandle<JSReceiver> maybe_holder_; |
252 | 240 |
253 int number_; | 241 int number_; |
254 }; | 242 }; |
255 | 243 |
256 | 244 |
257 } } // namespace v8::internal | 245 } } // namespace v8::internal |
258 | 246 |
259 #endif // V8_LOOKUP_H_ | 247 #endif // V8_LOOKUP_H_ |
OLD | NEW |