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

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: update MakeTypeError calls 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
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 9479 matching lines...) Expand 10 before | Expand all | Expand 10 after
10250 10257
10251 inline bool should_be_freed(); 10258 inline bool should_be_freed();
10252 inline void set_should_be_freed(bool value); 10259 inline void set_should_be_freed(bool value);
10253 10260
10254 inline bool is_neuterable(); 10261 inline bool is_neuterable();
10255 inline void set_is_neuterable(bool value); 10262 inline void set_is_neuterable(bool value);
10256 10263
10257 inline bool was_neutered(); 10264 inline bool was_neutered();
10258 inline void set_was_neutered(bool value); 10265 inline void set_was_neutered(bool value);
10259 10266
10267 inline SharedFlag is_shared();
jochen (gone - plz use gerrit) 2015/04/28 18:31:46 why is that not just a bool like the other bits?
binji 2015/04/29 18:27:22 Done.
10268
10260 // [weak_next]: linked list of array buffers. 10269 // [weak_next]: linked list of array buffers.
10261 DECL_ACCESSORS(weak_next, Object) 10270 DECL_ACCESSORS(weak_next, Object)
10262 10271
10263 DECLARE_CAST(JSArrayBuffer) 10272 DECLARE_CAST(JSArrayBuffer)
10264 10273
10265 void Neuter(); 10274 void Neuter();
10266 10275
10267 // Dispatched behavior. 10276 // Dispatched behavior.
10268 DECLARE_PRINTER(JSArrayBuffer) 10277 DECLARE_PRINTER(JSArrayBuffer)
10269 DECLARE_VERIFIER(JSArrayBuffer) 10278 DECLARE_VERIFIER(JSArrayBuffer)
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
10318 10327
10319 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBufferView); 10328 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBufferView);
10320 }; 10329 };
10321 10330
10322 10331
10323 class JSTypedArray: public JSArrayBufferView { 10332 class JSTypedArray: public JSArrayBufferView {
10324 public: 10333 public:
10325 // [length]: length of typed array in elements. 10334 // [length]: length of typed array in elements.
10326 DECL_ACCESSORS(length, Object) 10335 DECL_ACCESSORS(length, Object)
10327 10336
10337 // [is_shared]
10338 inline SharedFlag is_shared() const;
10339
10328 DECLARE_CAST(JSTypedArray) 10340 DECLARE_CAST(JSTypedArray)
10329 10341
10330 ExternalArrayType type(); 10342 ExternalArrayType type();
10331 size_t element_size(); 10343 size_t element_size();
10332 10344
10333 Handle<JSArrayBuffer> GetBuffer(); 10345 Handle<JSArrayBuffer> GetBuffer();
10334 10346
10335 // Dispatched behavior. 10347 // Dispatched behavior.
10336 DECLARE_PRINTER(JSTypedArray) 10348 DECLARE_PRINTER(JSTypedArray)
10337 DECLARE_VERIFIER(JSTypedArray) 10349 DECLARE_VERIFIER(JSTypedArray)
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
11103 } else { 11115 } else {
11104 value &= ~(1 << bit_position); 11116 value &= ~(1 << bit_position);
11105 } 11117 }
11106 return value; 11118 return value;
11107 } 11119 }
11108 }; 11120 };
11109 11121
11110 } } // namespace v8::internal 11122 } } // namespace v8::internal
11111 11123
11112 #endif // V8_OBJECTS_H_ 11124 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698