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_PROPERTY_H_ | 5 #ifndef V8_PROPERTY_H_ |
6 #define V8_PROPERTY_H_ | 6 #define V8_PROPERTY_H_ |
7 | 7 |
| 8 #include <iosfwd> |
| 9 |
8 #include "src/factory.h" | 10 #include "src/factory.h" |
9 #include "src/field-index.h" | 11 #include "src/field-index.h" |
10 #include "src/field-index-inl.h" | 12 #include "src/field-index-inl.h" |
11 #include "src/isolate.h" | 13 #include "src/isolate.h" |
12 #include "src/types.h" | 14 #include "src/types.h" |
13 | 15 |
14 namespace v8 { | 16 namespace v8 { |
15 namespace internal { | 17 namespace internal { |
16 | 18 |
17 class OStream; | |
18 | |
19 // Abstraction for elements in instance-descriptor arrays. | 19 // Abstraction for elements in instance-descriptor arrays. |
20 // | 20 // |
21 // Each descriptor has a key, property attributes, property type, | 21 // Each descriptor has a key, property attributes, property type, |
22 // property index (in the actual instance-descriptor array) and | 22 // property index (in the actual instance-descriptor array) and |
23 // optionally a piece of data. | 23 // optionally a piece of data. |
24 class Descriptor BASE_EMBEDDED { | 24 class Descriptor BASE_EMBEDDED { |
25 public: | 25 public: |
26 void KeyToUniqueName() { | 26 void KeyToUniqueName() { |
27 if (!key_->IsUniqueName()) { | 27 if (!key_->IsUniqueName()) { |
28 key_ = key_->GetIsolate()->factory()->InternalizeString( | 28 key_ = key_->GetIsolate()->factory()->InternalizeString( |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 int field_index = 0) | 63 int field_index = 0) |
64 : key_(key), | 64 : key_(key), |
65 value_(value), | 65 value_(value), |
66 details_(attributes, type, representation, field_index) { } | 66 details_(attributes, type, representation, field_index) { } |
67 | 67 |
68 friend class DescriptorArray; | 68 friend class DescriptorArray; |
69 friend class Map; | 69 friend class Map; |
70 }; | 70 }; |
71 | 71 |
72 | 72 |
73 OStream& operator<<(OStream& os, const Descriptor& d); | 73 std::ostream& operator<<(std::ostream& os, const Descriptor& d); |
74 | 74 |
75 | 75 |
76 class FieldDescriptor FINAL : public Descriptor { | 76 class FieldDescriptor FINAL : public Descriptor { |
77 public: | 77 public: |
78 FieldDescriptor(Handle<Name> key, | 78 FieldDescriptor(Handle<Name> key, |
79 int field_index, | 79 int field_index, |
80 PropertyAttributes attributes, | 80 PropertyAttributes attributes, |
81 Representation representation) | 81 Representation representation) |
82 : Descriptor(key, HeapType::Any(key->GetIsolate()), attributes, | 82 : Descriptor(key, HeapType::Any(key->GetIsolate()), attributes, |
83 FIELD, representation, field_index) {} | 83 FIELD, representation, field_index) {} |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 // Where did we find the result; | 242 // Where did we find the result; |
243 enum { NOT_FOUND, DESCRIPTOR_TYPE, TRANSITION_TYPE } lookup_type_; | 243 enum { NOT_FOUND, DESCRIPTOR_TYPE, TRANSITION_TYPE } lookup_type_; |
244 | 244 |
245 JSReceiver* holder_; | 245 JSReceiver* holder_; |
246 Map* transition_; | 246 Map* transition_; |
247 int number_; | 247 int number_; |
248 PropertyDetails details_; | 248 PropertyDetails details_; |
249 }; | 249 }; |
250 | 250 |
251 | 251 |
252 OStream& operator<<(OStream& os, const LookupResult& r); | 252 std::ostream& operator<<(std::ostream& os, const LookupResult& r); |
253 } } // namespace v8::internal | 253 } } // namespace v8::internal |
254 | 254 |
255 #endif // V8_PROPERTY_H_ | 255 #endif // V8_PROPERTY_H_ |
OLD | NEW |