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/Object.h>
10#include <LibWasm/AbstractMachine/AbstractMachine.h>
11#include <LibWeb/Forward.h>
12#include <LibWeb/WebAssembly/WebAssemblyInstanceObjectPrototype.h>
13#include <LibWeb/WebAssembly/WebAssemblyObject.h>
14
15namespace Web::Bindings {
16
17class WebAssemblyModuleObject final : public JS::Object {
18 JS_OBJECT(WebAssemblyModuleObject, Object);
19
20public:
21 explicit WebAssemblyModuleObject(JS::Realm&, size_t index);
22 virtual ~WebAssemblyModuleObject() override = default;
23
24 size_t index() const { return m_index; }
25 Wasm::Module const& module() const { return WebAssemblyObject::s_compiled_modules.at(m_index)->module; }
26
27private:
28 size_t m_index { 0 };
29};
30
31}