50 DCHECK(!IsUndefined(disposable_stack->stack()));
59 int length = disposable_stack->length();
79 auto stack_type_case =
static_cast<int>(
Cast<Smi>(stack_type).value());
90 disposable_stack->needs_await() ==
true &&
91 disposable_stack->has_awaited() ==
false) {
94 disposable_stack->set_needs_await(
false);
97 isolate, isolate->factory()->undefined_value());
101 if (!IsUndefined(*
method)) {
108 isolate->factory()->undefined_value(),
116 if (
result.ToHandle(&result_handle)) {
119 disposable_stack->set_length(length);
121 disposable_stack->set_has_awaited(
true);
126 if (resolved_promise.
is_null()) {
141 return resolved_promise;
154 disposable_stack->set_length(length);
155 disposable_stack->set_needs_await(
true);
161 if (disposable_stack->needs_await() ==
true &&
162 disposable_stack->has_awaited() ==
false) {
163 disposable_stack->set_length(length);
164 disposable_stack->set_has_awaited(
true);
167 isolate, isolate->factory()->undefined_value());
174 disposable_stack->set_stack(
ReadOnlyRoots(isolate).empty_fixed_array());
175 disposable_stack->set_length(0);
177 Handle<Object> existing_error_handle(disposable_stack->error(), isolate);
179 disposable_stack->error_message(), isolate);
180 disposable_stack->set_error(*(isolate->factory()->uninitialized_value()));
181 disposable_stack->set_error_message(
182 *(isolate->factory()->uninitialized_value()));
185 if (!IsUninitialized(*existing_error_handle)) {
186 if (disposable_stack->suppressed_error_created() ==
true) {
189 isolate->Throw(*existing_error_handle);
191 isolate->ReThrow(*existing_error_handle, *existing_error_message_handle);
195 return isolate->factory()->true_value();
225 result = DisposeResources(isolate, async_disposable_stack,
230 if (
result.ToHandle(&result_handle)) {
231 if (!IsTrue(*result_handle)) {
233 isolate->factory()->NewBuiltinContext(
234 isolate->native_context(),
238 async_disposable_stack_context->set(
240 AsyncDisposableStackContextSlots::kStack),
241 *async_disposable_stack);
242 async_disposable_stack_context->set(
252 ->async_disposable_stack_on_fulfilled_shared_fun(),
253 async_disposable_stack_context}
260 ->async_disposable_stack_on_rejected_shared_fun(),
261 async_disposable_stack_context}
277 isolate->factory()->undefined_value())
287 if (!isolate->is_catchable_by_javascript(*exception)) {
290 isolate->clear_internal_exception();
291 isolate->clear_pending_message();
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeHandle< Object > Call(Isolate *isolate, DirectHandle< Object > callable, DirectHandle< Object > receiver, base::Vector< const DirectHandle< Object > > args)