Serenity Operating System
1/*
2 * Copyright (c) 2022, David Tuin <davidot@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <LibJS/Runtime/NativeFunction.h>
10
11namespace JS {
12
13class DisposableStackConstructor final : public NativeFunction {
14 JS_OBJECT(DisposableStackConstructor, NativeFunction);
15
16public:
17 virtual ThrowCompletionOr<void> initialize(Realm&) override;
18 virtual ~DisposableStackConstructor() override = default;
19
20 virtual ThrowCompletionOr<Value> call() override;
21 virtual ThrowCompletionOr<NonnullGCPtr<Object>> construct(FunctionObject&) override;
22
23private:
24 explicit DisposableStackConstructor(Realm&);
25
26 virtual bool has_constructor() const override { return true; }
27};
28
29}