140 const char*
const kMethodName =
"DisposableStack.prototype.adopt";
155 MessageTemplate::kDisposableStackIsDisposed,
156 isolate->factory()->NewStringFromAsciiChecked(kMethodName)));
160 if (!IsCallable(*on_dispose)) {
162 isolate, NewTypeError(MessageTemplate::kNotCallable, on_dispose));
184 const char*
const kMethodName =
"DisposableStack.prototype.defer";
198 MessageTemplate::kDisposableStackIsDisposed,
199 isolate->factory()->NewStringFromAsciiChecked(kMethodName)));
203 if (!IsCallable(*on_dispose)) {
205 isolate, NewTypeError(MessageTemplate::kNotCallable, on_dispose));
211 isolate->factory()->undefined_value(), on_dispose,
220 const char*
const kMethodName =
"DisposableStack.prototype.move";
233 MessageTemplate::kDisposableStackIsDisposed,
234 isolate->factory()->NewStringFromAsciiChecked(kMethodName)));
245 Context::JS_DISPOSABLE_STACK_FUNCTION_INDEX));
249 isolate->factory()->NewJSSyncDisposableStack(map);
253 new_disposable_stack->set_stack(disposable_stack->stack());
254 new_disposable_stack->set_length(disposable_stack->length());
256 new_disposable_stack->set_error(*(isolate->factory()->uninitialized_value()));
257 new_disposable_stack->set_error_message(
258 *(isolate->factory()->uninitialized_value()));
261 disposable_stack->set_stack(
ReadOnlyRoots(isolate).empty_fixed_array());
262 disposable_stack->set_length(0);
263 disposable_stack->set_error(*(isolate->factory()->uninitialized_value()));
264 disposable_stack->set_error_message(
265 *(isolate->factory()->uninitialized_value()));
271 return *new_disposable_stack;
static void Add(Isolate *isolate, DirectHandle< JSDisposableStackBase > disposable_stack, DirectHandle< Object > value, DirectHandle< Object > method, DisposeMethodCallType type, DisposeMethodHint hint)