Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1859)

Side by Side Diff: src/objects.h

Issue 1069883002: WIP SharedArrayBuffer implementation (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: merge master Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/macros.py ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, 167 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE,
168 STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT, 168 STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT,
169 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_OBJECT, 169 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_OBJECT,
170 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE, 170 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE,
171 STORE_AND_GROW_TRANSITION_HOLEY_DOUBLE_TO_OBJECT, 171 STORE_AND_GROW_TRANSITION_HOLEY_DOUBLE_TO_OBJECT,
172 STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS, 172 STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS,
173 STORE_NO_TRANSITION_HANDLE_COW 173 STORE_NO_TRANSITION_HANDLE_COW
174 }; 174 };
175 175
176 176
177 enum SharedFlag { NOT_SHARED, SHARED };
178
179
177 enum ContextualMode { 180 enum ContextualMode {
178 NOT_CONTEXTUAL, 181 NOT_CONTEXTUAL,
179 CONTEXTUAL 182 CONTEXTUAL
180 }; 183 };
181 184
182 185
183 enum MutableMode { 186 enum MutableMode {
184 MUTABLE, 187 MUTABLE,
185 IMMUTABLE 188 IMMUTABLE
186 }; 189 };
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ 453 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \
451 V(JS_GENERATOR_OBJECT_TYPE) \ 454 V(JS_GENERATOR_OBJECT_TYPE) \
452 V(JS_MODULE_TYPE) \ 455 V(JS_MODULE_TYPE) \
453 V(JS_GLOBAL_OBJECT_TYPE) \ 456 V(JS_GLOBAL_OBJECT_TYPE) \
454 V(JS_BUILTINS_OBJECT_TYPE) \ 457 V(JS_BUILTINS_OBJECT_TYPE) \
455 V(JS_GLOBAL_PROXY_TYPE) \ 458 V(JS_GLOBAL_PROXY_TYPE) \
456 V(JS_ARRAY_TYPE) \ 459 V(JS_ARRAY_TYPE) \
457 V(JS_ARRAY_BUFFER_TYPE) \ 460 V(JS_ARRAY_BUFFER_TYPE) \
458 V(JS_TYPED_ARRAY_TYPE) \ 461 V(JS_TYPED_ARRAY_TYPE) \
459 V(JS_DATA_VIEW_TYPE) \ 462 V(JS_DATA_VIEW_TYPE) \
463 V(JS_SHARED_ARRAY_BUFFER_TYPE) \
464 V(JS_SHARED_TYPED_ARRAY_TYPE) \
460 V(JS_PROXY_TYPE) \ 465 V(JS_PROXY_TYPE) \
461 V(JS_SET_TYPE) \ 466 V(JS_SET_TYPE) \
462 V(JS_MAP_TYPE) \ 467 V(JS_MAP_TYPE) \
463 V(JS_SET_ITERATOR_TYPE) \ 468 V(JS_SET_ITERATOR_TYPE) \
464 V(JS_MAP_ITERATOR_TYPE) \ 469 V(JS_MAP_ITERATOR_TYPE) \
465 V(JS_WEAK_MAP_TYPE) \ 470 V(JS_WEAK_MAP_TYPE) \
466 V(JS_WEAK_SET_TYPE) \ 471 V(JS_WEAK_SET_TYPE) \
467 V(JS_REGEXP_TYPE) \ 472 V(JS_REGEXP_TYPE) \
468 \ 473 \
469 V(JS_FUNCTION_TYPE) \ 474 V(JS_FUNCTION_TYPE) \
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 JS_CONTEXT_EXTENSION_OBJECT_TYPE, 756 JS_CONTEXT_EXTENSION_OBJECT_TYPE,
752 JS_GENERATOR_OBJECT_TYPE, 757 JS_GENERATOR_OBJECT_TYPE,
753 JS_MODULE_TYPE, 758 JS_MODULE_TYPE,
754 JS_GLOBAL_OBJECT_TYPE, 759 JS_GLOBAL_OBJECT_TYPE,
755 JS_BUILTINS_OBJECT_TYPE, 760 JS_BUILTINS_OBJECT_TYPE,
756 JS_GLOBAL_PROXY_TYPE, 761 JS_GLOBAL_PROXY_TYPE,
757 JS_ARRAY_TYPE, 762 JS_ARRAY_TYPE,
758 JS_ARRAY_BUFFER_TYPE, 763 JS_ARRAY_BUFFER_TYPE,
759 JS_TYPED_ARRAY_TYPE, 764 JS_TYPED_ARRAY_TYPE,
760 JS_DATA_VIEW_TYPE, 765 JS_DATA_VIEW_TYPE,
766 JS_SHARED_ARRAY_BUFFER_TYPE,
767 JS_SHARED_TYPED_ARRAY_TYPE,
761 JS_SET_TYPE, 768 JS_SET_TYPE,
762 JS_MAP_TYPE, 769 JS_MAP_TYPE,
763 JS_SET_ITERATOR_TYPE, 770 JS_SET_ITERATOR_TYPE,
764 JS_MAP_ITERATOR_TYPE, 771 JS_MAP_ITERATOR_TYPE,
765 JS_WEAK_MAP_TYPE, 772 JS_WEAK_MAP_TYPE,
766 JS_WEAK_SET_TYPE, 773 JS_WEAK_SET_TYPE,
767 JS_REGEXP_TYPE, 774 JS_REGEXP_TYPE,
768 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE 775 JS_FUNCTION_TYPE, // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE
769 776
770 // Pseudo-types 777 // Pseudo-types
(...skipping 9487 matching lines...) Expand 10 before | Expand all | Expand 10 after
10258 10265
10259 inline bool is_external(); 10266 inline bool is_external();
10260 inline void set_is_external(bool value); 10267 inline void set_is_external(bool value);
10261 10268
10262 inline bool is_neuterable(); 10269 inline bool is_neuterable();
10263 inline void set_is_neuterable(bool value); 10270 inline void set_is_neuterable(bool value);
10264 10271
10265 inline bool was_neutered(); 10272 inline bool was_neutered();
10266 inline void set_was_neutered(bool value); 10273 inline void set_was_neutered(bool value);
10267 10274
10275 inline bool is_shared();
10276
10268 DECLARE_CAST(JSArrayBuffer) 10277 DECLARE_CAST(JSArrayBuffer)
10269 10278
10270 void Neuter(); 10279 void Neuter();
10271 10280
10272 // Dispatched behavior. 10281 // Dispatched behavior.
10273 DECLARE_PRINTER(JSArrayBuffer) 10282 DECLARE_PRINTER(JSArrayBuffer)
10274 DECLARE_VERIFIER(JSArrayBuffer) 10283 DECLARE_VERIFIER(JSArrayBuffer)
10275 10284
10276 static const int kBackingStoreOffset = JSObject::kHeaderSize; 10285 static const int kBackingStoreOffset = JSObject::kHeaderSize;
10277 static const int kByteLengthOffset = kBackingStoreOffset + kPointerSize; 10286 static const int kByteLengthOffset = kBackingStoreOffset + kPointerSize;
(...skipping 27 matching lines...) Expand all
10305 10314
10306 // [byte_length]: length of typed array in bytes. 10315 // [byte_length]: length of typed array in bytes.
10307 DECL_ACCESSORS(byte_length, Object) 10316 DECL_ACCESSORS(byte_length, Object)
10308 10317
10309 DECLARE_CAST(JSArrayBufferView) 10318 DECLARE_CAST(JSArrayBufferView)
10310 10319
10311 DECLARE_VERIFIER(JSArrayBufferView) 10320 DECLARE_VERIFIER(JSArrayBufferView)
10312 10321
10313 inline bool WasNeutered() const; 10322 inline bool WasNeutered() const;
10314 10323
10324 inline bool is_shared() const;
10325
10315 static const int kBufferOffset = JSObject::kHeaderSize; 10326 static const int kBufferOffset = JSObject::kHeaderSize;
10316 static const int kByteOffsetOffset = kBufferOffset + kPointerSize; 10327 static const int kByteOffsetOffset = kBufferOffset + kPointerSize;
10317 static const int kByteLengthOffset = kByteOffsetOffset + kPointerSize; 10328 static const int kByteLengthOffset = kByteOffsetOffset + kPointerSize;
10318 static const int kViewSize = kByteLengthOffset + kPointerSize; 10329 static const int kViewSize = kByteLengthOffset + kPointerSize;
10319 10330
10320 private: 10331 private:
10321 #ifdef VERIFY_HEAP 10332 #ifdef VERIFY_HEAP
10322 DECL_ACCESSORS(raw_byte_offset, Object) 10333 DECL_ACCESSORS(raw_byte_offset, Object)
10323 DECL_ACCESSORS(raw_byte_length, Object) 10334 DECL_ACCESSORS(raw_byte_length, Object)
10324 #endif 10335 #endif
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
11115 } else { 11126 } else {
11116 value &= ~(1 << bit_position); 11127 value &= ~(1 << bit_position);
11117 } 11128 }
11118 return value; 11129 return value;
11119 } 11130 }
11120 }; 11131 };
11121 11132
11122 } } // namespace v8::internal 11133 } } // namespace v8::internal
11123 11134
11124 #endif // V8_OBJECTS_H_ 11135 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/macros.py ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698