1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:48:11 +00:00

LibWeb: Add support for accessing exported wasm table instances

This commit is contained in:
Ali Mohammad Pur 2022-11-20 06:51:24 +03:30 committed by Ali Mohammad Pur
parent 0d1471e72f
commit af511a64cd
3 changed files with 13 additions and 0 deletions

View file

@ -14,6 +14,7 @@
#include <LibWeb/WebAssembly/WebAssemblyInstanceObject.h>
#include <LibWeb/WebAssembly/WebAssemblyMemoryPrototype.h>
#include <LibWeb/WebAssembly/WebAssemblyObject.h>
#include <LibWeb/WebAssembly/WebAssemblyTableObject.h>
namespace Web::Bindings {
@ -51,6 +52,14 @@ void WebAssemblyInstanceObject::initialize(JS::Realm& realm)
}
m_exports_object->define_direct_property(export_.name(), *object, JS::default_attributes);
},
[&](Wasm::TableAddress const& address) {
Optional<WebAssemblyTableObject*> object = cache.table_instances.get(address);
if (!object.has_value()) {
object = heap().allocate<Web::Bindings::WebAssemblyTableObject>(realm, realm, address);
cache.table_instances.set(address, *object);
}
m_exports_object->define_direct_property(export_.name(), *object, JS::default_attributes);
},
[&](auto const&) {
// FIXME: Implement other exports!
});