Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index edb7903cc24582fe4b631bb530a6bdaf232376eb..bd8a9ca54e4a342ac4674906dcd764e66c4b042d 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1811,11 +1811,28 @@ 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. |
Hannes Payer (out of office)
2014/03/31 09:42:27
We could templetize the getters and setters. I thi
|
+ 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 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(); |
inline void set_map_word(MapWord map_word); |
+ |
// The Heap the object was allocated in. Used also to access Isolate. |
inline Heap* GetHeap(); |
@@ -2995,6 +3012,11 @@ 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 +8779,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 |