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 5561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5572 // Builtins::kJSConstructStubGeneric stub. | 5572 // Builtins::kJSConstructStubGeneric stub. |
5573 // This counter is used for in-object slack tracking and for map aging. | 5573 // This counter is used for in-object slack tracking and for map aging. |
5574 // The in-object slack tracking is considered enabled when the counter is | 5574 // The in-object slack tracking is considered enabled when the counter is |
5575 // in the range [kSlackTrackingCounterStart, kSlackTrackingCounterEnd]. | 5575 // in the range [kSlackTrackingCounterStart, kSlackTrackingCounterEnd]. |
5576 class Counter : public BitField<int, 28, 4> {}; | 5576 class Counter : public BitField<int, 28, 4> {}; |
5577 static const int kSlackTrackingCounterStart = 14; | 5577 static const int kSlackTrackingCounterStart = 14; |
5578 static const int kSlackTrackingCounterEnd = 8; | 5578 static const int kSlackTrackingCounterEnd = 8; |
5579 static const int kRetainingCounterStart = kSlackTrackingCounterEnd - 1; | 5579 static const int kRetainingCounterStart = kSlackTrackingCounterEnd - 1; |
5580 static const int kRetainingCounterEnd = 0; | 5580 static const int kRetainingCounterEnd = 0; |
5581 | 5581 |
| 5582 // Completes inobject slack tracking for the transition tree starting at this |
| 5583 // initial map. |
| 5584 void CompleteInobjectSlackTracking(); |
| 5585 |
5582 // Tells whether the object in the prototype property will be used | 5586 // Tells whether the object in the prototype property will be used |
5583 // for instances created from this function. If the prototype | 5587 // for instances created from this function. If the prototype |
5584 // property is set to a value that is not a JSObject, the prototype | 5588 // property is set to a value that is not a JSObject, the prototype |
5585 // property will not be used to create instances of the function. | 5589 // property will not be used to create instances of the function. |
5586 // See ECMA-262, 13.2.2. | 5590 // See ECMA-262, 13.2.2. |
5587 inline void set_non_instance_prototype(bool value); | 5591 inline void set_non_instance_prototype(bool value); |
5588 inline bool has_non_instance_prototype(); | 5592 inline bool has_non_instance_prototype(); |
5589 | 5593 |
5590 // Tells whether the instance has a [[Construct]] internal method. | 5594 // Tells whether the instance has a [[Construct]] internal method. |
5591 // This property is implemented according to ES6, section 7.2.4. | 5595 // This property is implemented according to ES6, section 7.2.4. |
(...skipping 5168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10760 } | 10764 } |
10761 return value; | 10765 return value; |
10762 } | 10766 } |
10763 }; | 10767 }; |
10764 | 10768 |
10765 | 10769 |
10766 } // NOLINT, false-positive due to second-order macros. | 10770 } // NOLINT, false-positive due to second-order macros. |
10767 } // NOLINT, false-positive due to second-order macros. | 10771 } // NOLINT, false-positive due to second-order macros. |
10768 | 10772 |
10769 #endif // V8_OBJECTS_H_ | 10773 #endif // V8_OBJECTS_H_ |
OLD | NEW |