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

Side by Side Diff: src/objects.h

Issue 2645313003: [async-iteration] implement Async-from-Sync Iterator (Closed)
Patch Set: cleanmerge Created 3 years, 10 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/interpreter/interpreter-intrinsics.cc ('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 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 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 V(JS_SET_TYPE) \ 391 V(JS_SET_TYPE) \
392 V(JS_MAP_TYPE) \ 392 V(JS_MAP_TYPE) \
393 V(JS_SET_ITERATOR_TYPE) \ 393 V(JS_SET_ITERATOR_TYPE) \
394 V(JS_MAP_ITERATOR_TYPE) \ 394 V(JS_MAP_ITERATOR_TYPE) \
395 V(JS_WEAK_MAP_TYPE) \ 395 V(JS_WEAK_MAP_TYPE) \
396 V(JS_WEAK_SET_TYPE) \ 396 V(JS_WEAK_SET_TYPE) \
397 V(JS_PROMISE_CAPABILITY_TYPE) \ 397 V(JS_PROMISE_CAPABILITY_TYPE) \
398 V(JS_PROMISE_TYPE) \ 398 V(JS_PROMISE_TYPE) \
399 V(JS_REGEXP_TYPE) \ 399 V(JS_REGEXP_TYPE) \
400 V(JS_ERROR_TYPE) \ 400 V(JS_ERROR_TYPE) \
401 V(JS_ASYNC_FROM_SYNC_ITERATOR_TYPE) \
401 V(JS_STRING_ITERATOR_TYPE) \ 402 V(JS_STRING_ITERATOR_TYPE) \
402 \ 403 \
403 V(JS_TYPED_ARRAY_KEY_ITERATOR_TYPE) \ 404 V(JS_TYPED_ARRAY_KEY_ITERATOR_TYPE) \
404 V(JS_FAST_ARRAY_KEY_ITERATOR_TYPE) \ 405 V(JS_FAST_ARRAY_KEY_ITERATOR_TYPE) \
405 V(JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE) \ 406 V(JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE) \
406 \ 407 \
407 V(JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ 408 V(JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \
408 V(JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ 409 V(JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE) \
409 V(JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ 410 V(JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \
410 V(JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \ 411 V(JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE) \
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 JS_SET_TYPE, 737 JS_SET_TYPE,
737 JS_MAP_TYPE, 738 JS_MAP_TYPE,
738 JS_SET_ITERATOR_TYPE, 739 JS_SET_ITERATOR_TYPE,
739 JS_MAP_ITERATOR_TYPE, 740 JS_MAP_ITERATOR_TYPE,
740 JS_WEAK_MAP_TYPE, 741 JS_WEAK_MAP_TYPE,
741 JS_WEAK_SET_TYPE, 742 JS_WEAK_SET_TYPE,
742 JS_PROMISE_CAPABILITY_TYPE, 743 JS_PROMISE_CAPABILITY_TYPE,
743 JS_PROMISE_TYPE, 744 JS_PROMISE_TYPE,
744 JS_REGEXP_TYPE, 745 JS_REGEXP_TYPE,
745 JS_ERROR_TYPE, 746 JS_ERROR_TYPE,
747 JS_ASYNC_FROM_SYNC_ITERATOR_TYPE,
746 JS_STRING_ITERATOR_TYPE, 748 JS_STRING_ITERATOR_TYPE,
747 749
748 JS_TYPED_ARRAY_KEY_ITERATOR_TYPE, 750 JS_TYPED_ARRAY_KEY_ITERATOR_TYPE,
749 JS_FAST_ARRAY_KEY_ITERATOR_TYPE, 751 JS_FAST_ARRAY_KEY_ITERATOR_TYPE,
750 JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE, 752 JS_GENERIC_ARRAY_KEY_ITERATOR_TYPE,
751 753
752 JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, 754 JS_UINT8_ARRAY_KEY_VALUE_ITERATOR_TYPE,
753 JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE, 755 JS_INT8_ARRAY_KEY_VALUE_ITERATOR_TYPE,
754 JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE, 756 JS_UINT16_ARRAY_KEY_VALUE_ITERATOR_TYPE,
755 JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE, 757 JS_INT16_ARRAY_KEY_VALUE_ITERATOR_TYPE,
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 V(SharedFunctionInfo) \ 1034 V(SharedFunctionInfo) \
1033 V(JSValue) \ 1035 V(JSValue) \
1034 V(JSDate) \ 1036 V(JSDate) \
1035 V(JSMessageObject) \ 1037 V(JSMessageObject) \
1036 V(StringWrapper) \ 1038 V(StringWrapper) \
1037 V(Foreign) \ 1039 V(Foreign) \
1038 V(Boolean) \ 1040 V(Boolean) \
1039 V(JSArray) \ 1041 V(JSArray) \
1040 V(JSArrayBuffer) \ 1042 V(JSArrayBuffer) \
1041 V(JSArrayBufferView) \ 1043 V(JSArrayBufferView) \
1044 V(JSAsyncFromSyncIterator) \
1042 V(JSCollection) \ 1045 V(JSCollection) \
1043 V(JSTypedArray) \ 1046 V(JSTypedArray) \
1044 V(JSArrayIterator) \ 1047 V(JSArrayIterator) \
1045 V(JSDataView) \ 1048 V(JSDataView) \
1046 V(JSProxy) \ 1049 V(JSProxy) \
1047 V(JSError) \ 1050 V(JSError) \
1048 V(JSPromiseCapability) \ 1051 V(JSPromiseCapability) \
1049 V(JSPromise) \ 1052 V(JSPromise) \
1050 V(JSStringIterator) \ 1053 V(JSStringIterator) \
1051 V(JSSet) \ 1054 V(JSSet) \
(...skipping 9378 matching lines...) Expand 10 before | Expand all | Expand 10 after
10430 10433
10431 static const int kIteratedObjectOffset = JSObject::kHeaderSize; 10434 static const int kIteratedObjectOffset = JSObject::kHeaderSize;
10432 static const int kNextIndexOffset = kIteratedObjectOffset + kPointerSize; 10435 static const int kNextIndexOffset = kIteratedObjectOffset + kPointerSize;
10433 static const int kIteratedObjectMapOffset = kNextIndexOffset + kPointerSize; 10436 static const int kIteratedObjectMapOffset = kNextIndexOffset + kPointerSize;
10434 static const int kSize = kIteratedObjectMapOffset + kPointerSize; 10437 static const int kSize = kIteratedObjectMapOffset + kPointerSize;
10435 10438
10436 private: 10439 private:
10437 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayIterator); 10440 DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayIterator);
10438 }; 10441 };
10439 10442
10443 // The [Async-from-Sync Iterator] object
10444 // (proposal-async-iteration/#sec-async-from-sync-iterator-objects)
10445 // An object which wraps an ordinary Iterator and converts it to behave
10446 // according to the Async Iterator protocol.
10447 // (See https://tc39.github.io/proposal-async-iteration/#sec-iteration)
10448 class JSAsyncFromSyncIterator : public JSObject {
10449 public:
10450 DECLARE_CAST(JSAsyncFromSyncIterator)
10451 DECLARE_PRINTER(JSAsyncFromSyncIterator)
10452 DECLARE_VERIFIER(JSAsyncFromSyncIterator)
10453
10454 // Async-from-Sync Iterator instances are ordinary objects that inherit
10455 // properties from the %AsyncFromSyncIteratorPrototype% intrinsic object.
10456 // Async-from-Sync Iterator instances are initially created with the internal
10457 // slots listed in Table 4.
10458 // (proposal-async-iteration/#table-async-from-sync-iterator-internal-slots)
10459 DECL_ACCESSORS(sync_iterator, JSReceiver)
10460
10461 // Offsets of object fields.
10462 static const int kSyncIteratorOffset = JSObject::kHeaderSize;
10463 static const int kSize = kSyncIteratorOffset + kPointerSize;
10464
10465 private:
10466 DISALLOW_IMPLICIT_CONSTRUCTORS(JSAsyncFromSyncIterator);
10467 };
10468
10440 class JSStringIterator : public JSObject { 10469 class JSStringIterator : public JSObject {
10441 public: 10470 public:
10442 // Dispatched behavior. 10471 // Dispatched behavior.
10443 DECLARE_PRINTER(JSStringIterator) 10472 DECLARE_PRINTER(JSStringIterator)
10444 DECLARE_VERIFIER(JSStringIterator) 10473 DECLARE_VERIFIER(JSStringIterator)
10445 10474
10446 DECLARE_CAST(JSStringIterator) 10475 DECLARE_CAST(JSStringIterator)
10447 10476
10448 // [string]: the [[IteratedString]] internal field. 10477 // [string]: the [[IteratedString]] internal field.
10449 DECL_ACCESSORS(string, String) 10478 DECL_ACCESSORS(string, String)
(...skipping 1079 matching lines...) Expand 10 before | Expand all | Expand 10 after
11529 } 11558 }
11530 }; 11559 };
11531 11560
11532 11561
11533 } // NOLINT, false-positive due to second-order macros. 11562 } // NOLINT, false-positive due to second-order macros.
11534 } // NOLINT, false-positive due to second-order macros. 11563 } // NOLINT, false-positive due to second-order macros.
11535 11564
11536 #include "src/objects/object-macros-undef.h" 11565 #include "src/objects/object-macros-undef.h"
11537 11566
11538 #endif // V8_OBJECTS_H_ 11567 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/interpreter/interpreter-intrinsics.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698