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 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 5724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5735 // deoptimized when the map is garbage collected. | 5735 // deoptimized when the map is garbage collected. |
5736 kWeakCodeGroup, | 5736 kWeakCodeGroup, |
5737 // Group of code that embed a transition to this map, and depend on being | 5737 // Group of code that embed a transition to this map, and depend on being |
5738 // deoptimized when the transition is replaced by a new version. | 5738 // deoptimized when the transition is replaced by a new version. |
5739 kTransitionGroup, | 5739 kTransitionGroup, |
5740 // Group of code that omit run-time prototype checks for prototypes | 5740 // Group of code that omit run-time prototype checks for prototypes |
5741 // described by this map. The group is deoptimized whenever an object | 5741 // described by this map. The group is deoptimized whenever an object |
5742 // described by this map changes shape (and transitions to a new map), | 5742 // described by this map changes shape (and transitions to a new map), |
5743 // possibly invalidating the assumptions embedded in the code. | 5743 // possibly invalidating the assumptions embedded in the code. |
5744 kPrototypeCheckGroup, | 5744 kPrototypeCheckGroup, |
5745 // Group of code that depends on elements not being added to objects with | |
5746 // this map. | |
5747 kElementsCantBeAddedGroup, | |
5748 // Group of code that depends on global property values in property cells | 5745 // Group of code that depends on global property values in property cells |
5749 // not being changed. | 5746 // not being changed. |
5750 kPropertyCellChangedGroup, | 5747 kPropertyCellChangedGroup, |
5751 // Group of code that omit run-time type checks for the field(s) introduced | 5748 // Group of code that omit run-time type checks for the field(s) introduced |
5752 // by this map. | 5749 // by this map. |
5753 kFieldTypeGroup, | 5750 kFieldTypeGroup, |
5754 // Group of code that omit run-time type checks for initial maps of | 5751 // Group of code that omit run-time type checks for initial maps of |
5755 // constructors. | 5752 // constructors. |
5756 kInitialMapChangedGroup, | 5753 kInitialMapChangedGroup, |
5757 // Group of code that depends on tenuring information in AllocationSites | 5754 // Group of code that depends on tenuring information in AllocationSites |
(...skipping 4064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9822 static PropertyCellType UpdatedType(Handle<PropertyCell> cell, | 9819 static PropertyCellType UpdatedType(Handle<PropertyCell> cell, |
9823 Handle<Object> value, | 9820 Handle<Object> value, |
9824 PropertyDetails details); | 9821 PropertyDetails details); |
9825 static Handle<Object> UpdateCell(Handle<NameDictionary> dictionary, int entry, | 9822 static Handle<Object> UpdateCell(Handle<NameDictionary> dictionary, int entry, |
9826 Handle<Object> value, | 9823 Handle<Object> value, |
9827 PropertyDetails details); | 9824 PropertyDetails details); |
9828 | 9825 |
9829 static Handle<PropertyCell> InvalidateEntry(Handle<NameDictionary> dictionary, | 9826 static Handle<PropertyCell> InvalidateEntry(Handle<NameDictionary> dictionary, |
9830 int entry); | 9827 int entry); |
9831 | 9828 |
| 9829 static void SetValueWithInvalidation(Handle<PropertyCell> cell, |
| 9830 Handle<Object> new_value); |
| 9831 |
9832 DECLARE_CAST(PropertyCell) | 9832 DECLARE_CAST(PropertyCell) |
9833 | 9833 |
9834 // Dispatched behavior. | 9834 // Dispatched behavior. |
9835 DECLARE_PRINTER(PropertyCell) | 9835 DECLARE_PRINTER(PropertyCell) |
9836 DECLARE_VERIFIER(PropertyCell) | 9836 DECLARE_VERIFIER(PropertyCell) |
9837 | 9837 |
9838 // Layout description. | 9838 // Layout description. |
9839 static const int kValueOffset = HeapObject::kHeaderSize; | 9839 static const int kValueOffset = HeapObject::kHeaderSize; |
9840 static const int kDependentCodeOffset = kValueOffset + kPointerSize; | 9840 static const int kDependentCodeOffset = kValueOffset + kPointerSize; |
9841 static const int kSize = kDependentCodeOffset + kPointerSize; | 9841 static const int kSize = kDependentCodeOffset + kPointerSize; |
(...skipping 1240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11082 } else { | 11082 } else { |
11083 value &= ~(1 << bit_position); | 11083 value &= ~(1 << bit_position); |
11084 } | 11084 } |
11085 return value; | 11085 return value; |
11086 } | 11086 } |
11087 }; | 11087 }; |
11088 | 11088 |
11089 } } // namespace v8::internal | 11089 } } // namespace v8::internal |
11090 | 11090 |
11091 #endif // V8_OBJECTS_H_ | 11091 #endif // V8_OBJECTS_H_ |
OLD | NEW |