1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:37:35 +00:00

LibJS: Add ThrowCompletionOr versions of the JS native function macros

The old versions were renamed to JS_DECLARE_OLD_NATIVE_FUNCTION and
JS_DEFINE_OLD_NATIVE_FUNCTION, and will be eventually removed once all
native functions were converted to the new format.
This commit is contained in:
Idan Horowitz 2021-10-19 20:18:01 +03:00 committed by Linus Groh
parent 3355b52cca
commit 20163c0584
180 changed files with 1478 additions and 1472 deletions

View file

@ -16,7 +16,7 @@ void WebAssemblyInstancePrototype::initialize(JS::GlobalObject& global_object)
define_native_accessor("exports", exports_getter, {}, JS::Attribute::Enumerable | JS::Attribute::Configurable);
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyInstancePrototype::exports_getter)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyInstancePrototype::exports_getter)
{
auto this_value = vm.this_value(global_object);
auto* this_object = TRY_OR_DISCARD(this_value.to_object(global_object));

View file

@ -25,7 +25,7 @@ public:
virtual void initialize(JS::GlobalObject&) override;
private:
JS_DECLARE_NATIVE_FUNCTION(exports_getter);
JS_DECLARE_OLD_NATIVE_FUNCTION(exports_getter);
static JS::Handle<WebAssemblyInstancePrototype> s_instance;
};

View file

@ -17,7 +17,7 @@ void WebAssemblyMemoryPrototype::initialize(JS::GlobalObject& global_object)
define_native_function("grow", grow, 1, JS::Attribute::Writable | JS::Attribute::Enumerable | JS::Attribute::Configurable);
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyMemoryPrototype::grow)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyMemoryPrototype::grow)
{
auto page_count = TRY_OR_DISCARD(vm.argument(0).to_u32(global_object));
auto* this_object = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
@ -40,7 +40,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyMemoryPrototype::grow)
return JS::Value(static_cast<u32>(previous_size));
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyMemoryPrototype::buffer_getter)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyMemoryPrototype::buffer_getter)
{
auto* this_object = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
if (!is<WebAssemblyMemoryObject>(this_object)) {

View file

@ -27,8 +27,8 @@ public:
virtual void initialize(JS::GlobalObject&) override;
private:
JS_DECLARE_NATIVE_FUNCTION(grow);
JS_DECLARE_NATIVE_FUNCTION(buffer_getter);
JS_DECLARE_OLD_NATIVE_FUNCTION(grow);
JS_DECLARE_OLD_NATIVE_FUNCTION(buffer_getter);
};
}

View file

@ -87,7 +87,7 @@ void WebAssemblyObject::visit_edges(Visitor& visitor)
}
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyObject::validate)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyObject::validate)
{
// FIXME: Implement this once module validation is implemented in LibWasm.
dbgln("Hit WebAssemblyObject::validate() stub!");
@ -127,7 +127,7 @@ Result<size_t, JS::Value> parse_module(JS::GlobalObject& global_object, JS::Obje
return WebAssemblyObject::s_compiled_modules.size() - 1;
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyObject::compile)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyObject::compile)
{
// FIXME: This shouldn't block!
auto buffer_or_error = vm.argument(0).to_object(global_object);
@ -308,7 +308,7 @@ Result<size_t, JS::Value> WebAssemblyObject::instantiate_module(Wasm::Module con
return s_instantiated_modules.size() - 1;
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyObject::instantiate)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyObject::instantiate)
{
// FIXME: This shouldn't block!
auto buffer_or_error = vm.argument(0).to_object(global_object);

View file

@ -60,9 +60,9 @@ public:
static Wasm::AbstractMachine s_abstract_machine;
private:
JS_DECLARE_NATIVE_FUNCTION(validate);
JS_DECLARE_NATIVE_FUNCTION(compile);
JS_DECLARE_NATIVE_FUNCTION(instantiate);
JS_DECLARE_OLD_NATIVE_FUNCTION(validate);
JS_DECLARE_OLD_NATIVE_FUNCTION(compile);
JS_DECLARE_OLD_NATIVE_FUNCTION(instantiate);
};
class WebAssemblyMemoryObject final : public JS::Object {

View file

@ -19,7 +19,7 @@ void WebAssemblyTablePrototype::initialize(JS::GlobalObject& global_object)
define_native_function("set", set, 1, JS::Attribute::Writable | JS::Attribute::Enumerable | JS::Attribute::Configurable);
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::grow)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyTablePrototype::grow)
{
auto delta = TRY_OR_DISCARD(vm.argument(0).to_u32(global_object));
@ -56,7 +56,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::grow)
return JS::Value(static_cast<u32>(initial_size));
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::get)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyTablePrototype::get)
{
auto index = TRY_OR_DISCARD(vm.argument(0).to_u32(global_object));
@ -84,7 +84,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::get)
return to_js_value(wasm_value, global_object);
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::set)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyTablePrototype::set)
{
auto index = TRY_OR_DISCARD(vm.argument(0).to_u32(global_object));
@ -121,7 +121,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::set)
return JS::js_undefined();
}
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::length_getter)
JS_DEFINE_OLD_NATIVE_FUNCTION(WebAssemblyTablePrototype::length_getter)
{
auto* this_object = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
if (!is<WebAssemblyTableObject>(this_object)) {

View file

@ -27,10 +27,10 @@ public:
virtual void initialize(JS::GlobalObject& global_object) override;
private:
JS_DECLARE_NATIVE_FUNCTION(grow);
JS_DECLARE_NATIVE_FUNCTION(get);
JS_DECLARE_NATIVE_FUNCTION(set);
JS_DECLARE_NATIVE_FUNCTION(length_getter);
JS_DECLARE_OLD_NATIVE_FUNCTION(grow);
JS_DECLARE_OLD_NATIVE_FUNCTION(get);
JS_DECLARE_OLD_NATIVE_FUNCTION(set);
JS_DECLARE_OLD_NATIVE_FUNCTION(length_getter);
};
}