59  DCHECK(isolate->is_catchable_by_javascript(*rejection_error));
 
 
  104    if (!isolate->is_catchable_by_javascript(exception)) {
 
 
  118  const char kMethodName[] = 
"AsyncDisposableStack";
 
  123  if (!IsJSReceiver(*
args.new_target(), isolate)) {
 
  125        isolate, NewTypeError(MessageTemplate::kConstructorNotFunction,
 
  126                              isolate->factory()->NewStringFromAsciiChecked(
 
  138            target->native_context()->js_async_disposable_stack_function());
 
  144      isolate->factory()->NewJSAsyncDisposableStack(map);
 
  149      isolate, async_disposable_stack);
 
  151  return *async_disposable_stack;
 
 
  156  const char kMethodName[] = 
"AsyncDisposableStack.prototype.use";
 
  171            MessageTemplate::kDisposableStackIsDisposed,
 
  172            isolate->factory()->NewStringFromAsciiChecked(kMethodName)));
 
  185      isolate, async_disposable_stack,
 
 
  196BUILTIN(AsyncDisposableStackPrototypeDisposeAsync) {
 
  207  if (!IsJSAsyncDisposableStack(*
receiver)) {
 
  211                      isolate->factory()->NewTypeError(
 
  212                          MessageTemplate::kNotAnAsyncDisposableStack));
 
  243                   isolate, async_disposable_stack, promise),
 
 
  249BUILTIN(AsyncDisposableStackPrototypeGetDisposed) {
 
  250  const char kMethodName[] = 
"get AsyncDisposableStack.prototype.disposed";
 
  261  return *(isolate->factory()->ToBoolean(async_disposable_stack->state() ==
 
 
  267  const char kMethodName[] = 
"AsyncDisposableStack.prototype.adopt";
 
  283            MessageTemplate::kDisposableStackIsDisposed,
 
  284            isolate->factory()->NewStringFromAsciiChecked(kMethodName)));
 
  288  if (!IsCallable(*on_dispose_async)) {
 
  290        isolate, NewTypeError(MessageTemplate::kNotCallable, on_dispose_async));
 
 
  314  const char kMethodName[] = 
"AsyncDisposableStack.prototype.defer";
 
  329            MessageTemplate::kDisposableStackIsDisposed,
 
  330            isolate->factory()->NewStringFromAsciiChecked(kMethodName)));
 
  334  if (!IsCallable(*on_dispose_async)) {
 
  336        isolate, NewTypeError(MessageTemplate::kNotCallable, on_dispose_async));
 
  343      isolate, async_disposable_stack, isolate->factory()->undefined_value(),
 
 
  353  const char kMethodName[] = 
"AsyncDisposableStack.prototype.move";
 
  367            MessageTemplate::kDisposableStackIsDisposed,
 
  368            isolate->factory()->NewStringFromAsciiChecked(kMethodName)));
 
  379          Context::JS_ASYNC_DISPOSABLE_STACK_FUNCTION_INDEX));
 
  383      isolate->factory()->NewJSAsyncDisposableStack(map);
 
  387  new_async_disposable_stack->set_stack(async_disposable_stack->stack());
 
  388  new_async_disposable_stack->set_length(async_disposable_stack->length());
 
  390  new_async_disposable_stack->set_error(
 
  391      *(isolate->factory()->uninitialized_value()));
 
  395  async_disposable_stack->set_stack(
ReadOnlyRoots(isolate).empty_fixed_array());
 
  396  async_disposable_stack->set_length(0);
 
  397  async_disposable_stack->set_error(
 
  398      *(isolate->factory()->uninitialized_value()));
 
  404  return *new_async_disposable_stack;
 
 
#define CHECK_RECEIVER(Type, name, method)
@ kExplicitResourceManagement
void SetVerbose(bool value)
void SetCaptureMessage(bool value)
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)
static Maybe< bool > NextDisposeAsyncIteration(Isolate *isolate, DirectHandle< JSDisposableStackBase > async_disposable_stack, DirectHandle< JSPromise > outer_promise)
static void InitializeJSDisposableStackBase(Isolate *isolate, DirectHandle< JSDisposableStackBase > stack)
static void HandleErrorInDisposal(Isolate *isolate, DirectHandle< JSDisposableStackBase > disposable_stack, DirectHandle< Object > current_error, DirectHandle< Object > current_error_message)
AsyncDisposableStackContextSlots
static void Add(Isolate *isolate, DirectHandle< JSDisposableStackBase > disposable_stack, DirectHandle< Object > value, DirectHandle< Object > method, DisposeMethodCallType type, DisposeMethodHint hint)
static MaybeDirectHandle< Object > CheckValueAndGetDisposeMethod(Isolate *isolate, DirectHandle< JSAny > value, DisposeMethodHint hint)
AsyncDisposeFromSyncDisposeContextSlots
static V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT MaybeHandle< Map > GetDerivedMap(Isolate *isolate, DirectHandle< JSFunction > constructor, DirectHandle< JSReceiver > new_target)
static Handle< Object > Reject(DirectHandle< JSPromise > promise, DirectHandle< Object > reason, bool debug_event=true)
static V8_WARN_UNUSED_RESULT MaybeHandle< Object > Resolve(DirectHandle< JSPromise > promise, DirectHandle< Object > resolution)
#define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)
#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call)
#define MAYBE_RETURN(call, value)
base::Vector< const DirectHandle< Object > > args
DirectHandle< Object > new_target
ZoneVector< RpoNumber > & result
ZoneStack< RpoNumber > & stack
V8_INLINE DirectHandle< T > direct_handle(Tagged< T > object, Isolate *isolate)
bool IsNullOrUndefined(Tagged< Object > obj, Isolate *isolate)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)