| 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 |