summaryrefslogtreecommitdiff
path: root/chromium/v8/src/builtins/builtins-async-generator-gen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/v8/src/builtins/builtins-async-generator-gen.cc')
-rw-r--r--chromium/v8/src/builtins/builtins-async-generator-gen.cc71
1 files changed, 38 insertions, 33 deletions
diff --git a/chromium/v8/src/builtins/builtins-async-generator-gen.cc b/chromium/v8/src/builtins/builtins-async-generator-gen.cc
index d14e811db8d..8053cf0dc8b 100644
--- a/chromium/v8/src/builtins/builtins-async-generator-gen.cc
+++ b/chromium/v8/src/builtins/builtins-async-generator-gen.cc
@@ -25,12 +25,12 @@ class AsyncGeneratorBuiltinsAssembler : public AsyncBuiltinsAssembler {
inline Node* TaggedIsAsyncGenerator(Node* tagged_object) {
TNode<BoolT> if_notsmi = TaggedIsNotSmi(tagged_object);
- return Select<BoolT>(if_notsmi,
- [=] {
- return HasInstanceType(
- tagged_object, JS_ASYNC_GENERATOR_OBJECT_TYPE);
- },
- [=] { return if_notsmi; });
+ return Select<BoolT>(
+ if_notsmi,
+ [=] {
+ return HasInstanceType(tagged_object, JS_ASYNC_GENERATOR_OBJECT_TYPE);
+ },
+ [=] { return if_notsmi; });
}
inline Node* LoadGeneratorState(Node* const generator) {
return LoadObjectField(generator, JSGeneratorObject::kContinuationOffset);
@@ -68,7 +68,7 @@ class AsyncGeneratorBuiltinsAssembler : public AsyncBuiltinsAssembler {
inline TNode<BoolT> IsGeneratorAwaiting(Node* const generator) {
TNode<Object> is_generator_awaiting =
LoadObjectField(generator, JSAsyncGeneratorObject::kIsAwaitingOffset);
- return WordEqual(is_generator_awaiting, SmiConstant(1));
+ return TaggedEqual(is_generator_awaiting, SmiConstant(1));
}
inline void SetGeneratorAwaiting(Node* const generator) {
@@ -93,8 +93,8 @@ class AsyncGeneratorBuiltinsAssembler : public AsyncBuiltinsAssembler {
inline Node* IsFastJSIterResult(Node* const value, Node* const context) {
CSA_ASSERT(this, TaggedIsNotSmi(value));
- Node* const native_context = LoadNativeContext(context);
- return WordEqual(
+ TNode<NativeContext> const native_context = LoadNativeContext(context);
+ return TaggedEqual(
LoadMap(value),
LoadContextElement(native_context, Context::ITERATOR_RESULT_MAP_INDEX));
}
@@ -200,7 +200,7 @@ Node* AsyncGeneratorBuiltinsAssembler::AllocateAsyncGeneratorRequest(
JSAsyncGeneratorObject::ResumeMode resume_mode, Node* resume_value,
Node* promise) {
CSA_SLOW_ASSERT(this, HasInstanceType(promise, JS_PROMISE_TYPE));
- Node* request = Allocate(AsyncGeneratorRequest::kSize);
+ TNode<HeapObject> request = Allocate(AsyncGeneratorRequest::kSize);
StoreMapNoWriteBarrier(request, RootIndex::kAsyncGeneratorRequestMap);
StoreObjectFieldNoWriteBarrier(request, AsyncGeneratorRequest::kNextOffset,
UndefinedConstant());
@@ -219,7 +219,8 @@ Node* AsyncGeneratorBuiltinsAssembler::AllocateAsyncGeneratorRequest(
void AsyncGeneratorBuiltinsAssembler::AsyncGeneratorAwaitResumeClosure(
Node* context, Node* value,
JSAsyncGeneratorObject::ResumeMode resume_mode) {
- Node* const generator = LoadContextElement(context, Context::EXTENSION_INDEX);
+ TNode<Object> const generator =
+ LoadContextElement(context, Context::EXTENSION_INDEX);
CSA_SLOW_ASSERT(this, TaggedIsAsyncGenerator(generator));
SetGeneratorNotAwaiting(generator);
@@ -276,7 +277,8 @@ void AsyncGeneratorBuiltinsAssembler::AddAsyncGeneratorRequestToQueue(
{
Label loop_next(this), next_empty(this);
Node* current = var_current.value();
- Node* next = LoadObjectField(current, AsyncGeneratorRequest::kNextOffset);
+ TNode<Object> next =
+ LoadObjectField(current, AsyncGeneratorRequest::kNextOffset);
Branch(IsUndefined(next), &next_empty, &loop_next);
BIND(&next_empty);
@@ -299,11 +301,11 @@ Node* AsyncGeneratorBuiltinsAssembler::TakeFirstAsyncGeneratorRequestFromQueue(
// Removes and returns the first AsyncGeneratorRequest from a
// JSAsyncGeneratorObject's queue. Asserts that the queue is not empty.
CSA_ASSERT(this, TaggedIsAsyncGenerator(generator));
- Node* request =
- LoadObjectField(generator, JSAsyncGeneratorObject::kQueueOffset);
- CSA_ASSERT(this, IsNotUndefined(request));
+ TNode<AsyncGeneratorRequest> request =
+ CAST(LoadObjectField(generator, JSAsyncGeneratorObject::kQueueOffset));
- Node* next = LoadObjectField(request, AsyncGeneratorRequest::kNextOffset);
+ TNode<Object> next =
+ LoadObjectField(request, AsyncGeneratorRequest::kNextOffset);
StoreObjectField(generator, JSAsyncGeneratorObject::kQueueOffset, next);
return request;
@@ -315,12 +317,12 @@ Node* AsyncGeneratorBuiltinsAssembler::TakeFirstAsyncGeneratorRequestFromQueue(
TF_BUILTIN(AsyncGeneratorPrototypeNext, AsyncGeneratorBuiltinsAssembler) {
const int kValueArg = 0;
- Node* argc =
+ TNode<IntPtrT> argc =
ChangeInt32ToIntPtr(Parameter(Descriptor::kJSActualArgumentsCount));
CodeStubArguments args(this, argc);
- Node* generator = args.GetReceiver();
- Node* value = args.GetOptionalArgumentValue(kValueArg);
+ TNode<Object> generator = args.GetReceiver();
+ TNode<Object> value = args.GetOptionalArgumentValue(kValueArg);
Node* context = Parameter(Descriptor::kContext);
AsyncGeneratorEnqueue(&args, context, generator, value,
@@ -333,12 +335,12 @@ TF_BUILTIN(AsyncGeneratorPrototypeNext, AsyncGeneratorBuiltinsAssembler) {
TF_BUILTIN(AsyncGeneratorPrototypeReturn, AsyncGeneratorBuiltinsAssembler) {
const int kValueArg = 0;
- Node* argc =
+ TNode<IntPtrT> argc =
ChangeInt32ToIntPtr(Parameter(Descriptor::kJSActualArgumentsCount));
CodeStubArguments args(this, argc);
- Node* generator = args.GetReceiver();
- Node* value = args.GetOptionalArgumentValue(kValueArg);
+ TNode<Object> generator = args.GetReceiver();
+ TNode<Object> value = args.GetOptionalArgumentValue(kValueArg);
Node* context = Parameter(Descriptor::kContext);
AsyncGeneratorEnqueue(&args, context, generator, value,
@@ -351,12 +353,12 @@ TF_BUILTIN(AsyncGeneratorPrototypeReturn, AsyncGeneratorBuiltinsAssembler) {
TF_BUILTIN(AsyncGeneratorPrototypeThrow, AsyncGeneratorBuiltinsAssembler) {
const int kValueArg = 0;
- Node* argc =
+ TNode<IntPtrT> argc =
ChangeInt32ToIntPtr(Parameter(Descriptor::kJSActualArgumentsCount));
CodeStubArguments args(this, argc);
- Node* generator = args.GetReceiver();
- Node* value = args.GetOptionalArgumentValue(kValueArg);
+ TNode<Object> generator = args.GetReceiver();
+ TNode<Object> value = args.GetOptionalArgumentValue(kValueArg);
Node* context = Parameter(Descriptor::kContext);
AsyncGeneratorEnqueue(&args, context, generator, value,
@@ -446,8 +448,8 @@ TF_BUILTIN(AsyncGeneratorResumeNext, AsyncGeneratorBuiltinsAssembler) {
// generator is not closed, resume the generator with a "throw" completion.
// If the generator was closed, perform AsyncGeneratorReject(thrownValue).
// In all cases, the last step is to call AsyncGeneratorResumeNext.
- Node* is_caught = CallRuntime(Runtime::kAsyncGeneratorHasCatchHandlerForPC,
- context, generator);
+ TNode<Object> is_caught = CallRuntime(
+ Runtime::kAsyncGeneratorHasCatchHandlerForPC, context, generator);
TailCallBuiltin(Builtins::kAsyncGeneratorReturn, context, generator,
next_value, is_caught);
@@ -501,10 +503,10 @@ TF_BUILTIN(AsyncGeneratorResolve, AsyncGeneratorBuiltinsAssembler) {
Node* const promise = LoadPromiseFromAsyncGeneratorRequest(next);
// Let iteratorResult be CreateIterResultObject(value, done).
- Node* const iter_result = Allocate(JSIteratorResult::kSize);
+ TNode<HeapObject> const iter_result = Allocate(JSIteratorResult::kSize);
{
- Node* map = LoadContextElement(LoadNativeContext(context),
- Context::ITERATOR_RESULT_MAP_INDEX);
+ TNode<Object> map = LoadContextElement(LoadNativeContext(context),
+ Context::ITERATOR_RESULT_MAP_INDEX);
StoreMapNoWriteBarrier(iter_result, map);
StoreObjectFieldRoot(iter_result, JSIteratorResult::kPropertiesOrHashOffset,
RootIndex::kEmptyFixedArray);
@@ -585,7 +587,8 @@ TF_BUILTIN(AsyncGeneratorYield, AsyncGeneratorBuiltinsAssembler) {
TF_BUILTIN(AsyncGeneratorYieldResolveClosure, AsyncGeneratorBuiltinsAssembler) {
Node* const context = Parameter(Descriptor::kContext);
Node* const value = Parameter(Descriptor::kValue);
- Node* const generator = LoadContextElement(context, Context::EXTENSION_INDEX);
+ TNode<Object> const generator =
+ LoadContextElement(context, Context::EXTENSION_INDEX);
SetGeneratorNotAwaiting(generator);
@@ -665,7 +668,8 @@ TF_BUILTIN(AsyncGeneratorReturnClosedResolveClosure,
AsyncGeneratorBuiltinsAssembler) {
Node* const context = Parameter(Descriptor::kContext);
Node* const value = Parameter(Descriptor::kValue);
- Node* const generator = LoadContextElement(context, Context::EXTENSION_INDEX);
+ TNode<Object> const generator =
+ LoadContextElement(context, Context::EXTENSION_INDEX);
SetGeneratorNotAwaiting(generator);
@@ -682,7 +686,8 @@ TF_BUILTIN(AsyncGeneratorReturnClosedRejectClosure,
AsyncGeneratorBuiltinsAssembler) {
Node* const context = Parameter(Descriptor::kContext);
Node* const value = Parameter(Descriptor::kValue);
- Node* const generator = LoadContextElement(context, Context::EXTENSION_INDEX);
+ TNode<Object> const generator =
+ LoadContextElement(context, Context::EXTENSION_INDEX);
SetGeneratorNotAwaiting(generator);