OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 1651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1662 | 1662 |
1663 | 1663 |
1664 // HeapObject is the superclass for all classes describing heap allocated | 1664 // HeapObject is the superclass for all classes describing heap allocated |
1665 // objects. | 1665 // objects. |
1666 class HeapObject: public Object { | 1666 class HeapObject: public Object { |
1667 public: | 1667 public: |
1668 // [map]: Contains a map which contains the object's reflective | 1668 // [map]: Contains a map which contains the object's reflective |
1669 // information. | 1669 // information. |
1670 inline Map* map() const; | 1670 inline Map* map() const; |
1671 inline void set_map(Map* value); | 1671 inline void set_map(Map* value); |
| 1672 |
| 1673 inline HeapObject** map_slot(); |
| 1674 |
1672 // The no-write-barrier version. This is OK if the object is white and in | 1675 // The no-write-barrier version. This is OK if the object is white and in |
1673 // new space, or if the value is an immortal immutable object, like the maps | 1676 // new space, or if the value is an immortal immutable object, like the maps |
1674 // of primitive (non-JS) objects like strings, heap numbers etc. | 1677 // of primitive (non-JS) objects like strings, heap numbers etc. |
1675 inline void set_map_no_write_barrier(Map* value); | 1678 inline void set_map_no_write_barrier(Map* value); |
1676 | 1679 |
1677 // Get the map using acquire load. | 1680 // Get the map using acquire load. |
1678 inline Map* synchronized_map(); | 1681 inline Map* synchronized_map(); |
1679 inline MapWord synchronized_map_word() const; | 1682 inline MapWord synchronized_map_word() const; |
1680 | 1683 |
1681 // Set the map using release store | 1684 // Set the map using release store |
(...skipping 8545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10227 } | 10230 } |
10228 }; | 10231 }; |
10229 | 10232 |
10230 | 10233 |
10231 } // NOLINT, false-positive due to second-order macros. | 10234 } // NOLINT, false-positive due to second-order macros. |
10232 } // NOLINT, false-positive due to second-order macros. | 10235 } // NOLINT, false-positive due to second-order macros. |
10233 | 10236 |
10234 #include "src/objects/object-macros-undef.h" | 10237 #include "src/objects/object-macros-undef.h" |
10235 | 10238 |
10236 #endif // V8_OBJECTS_H_ | 10239 #endif // V8_OBJECTS_H_ |
OLD | NEW |