Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index edb7903cc24582fe4b631bb530a6bdaf232376eb..95129f0a5f2f738e6ced346523fbe43140f0feef 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1811,6 +1811,22 @@ class HeapObject: public Object { |
// of primitive (non-JS) objects like strings, heap numbers etc. |
inline void set_map_no_write_barrier(Map* value); |
+ // Get the map using acquire load. |
+ inline Map* synchronized_map(); |
+ inline MapWord synchronized_map_word(); |
+ |
+ // Set the map using release store |
+ inline void synchronized_set_map(Map* value); |
+ inline void synchronized_set_map_word(MapWord map_word); |
+ |
+ // Get the map using no barrier load. |
+ inline Map* no_barrier_map(); |
+ inline MapWord no_barrier_map_word(); |
+ |
+ // Set the map using no barrier store. |
+ inline void no_barrier_set_map(Map* value); |
+ inline void no_barrier_set_map_word(MapWord map_word); |
+ |
// During garbage collection, the map word of a heap object does not |
// necessarily contain a map pointer. |
inline MapWord map_word(); |
@@ -2995,6 +3011,10 @@ class FixedArrayBase: public HeapObject { |
inline int length(); |
inline void set_length(int value); |
+ // Get and set the length using acquire loads and release stores. |
+ inline int synchronized_length(); |
+ inline void synchronized_set_length(int value); |
+ |
inline static FixedArrayBase* cast(Object* object); |
// Layout description. |
@@ -8757,6 +8777,11 @@ class String: public Name { |
inline int length(); |
inline void set_length(int value); |
+ // Get and set the length of the string using acquire loads and release |
+ // stores. |
+ inline int synchronized_length(); |
+ inline void synchronized_set_length(int value); |
+ |
// Returns whether this string has only ASCII chars, i.e. all of them can |
// be ASCII encoded. This might be the case even if the string is |
// two-byte. Such strings may appear when the embedder prefers |