diff options
Diffstat (limited to 'chromium/v8/src/builtins/builtins-async-generator-gen.cc')
-rw-r--r-- | chromium/v8/src/builtins/builtins-async-generator-gen.cc | 71 |
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); |