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