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

FuzzilliJS: Convert native functions to ThrowCompletionOr

This commit is contained in:
Idan Horowitz 2021-10-31 17:02:59 +02:00
parent bcf168f771
commit ae510db72c

View file

@ -125,7 +125,7 @@ public:
virtual void initialize_global_object() override; virtual void initialize_global_object() override;
private: private:
JS_DECLARE_OLD_NATIVE_FUNCTION(fuzzilli); JS_DECLARE_NATIVE_FUNCTION(fuzzilli);
}; };
TestRunnerGlobalObject::TestRunnerGlobalObject() TestRunnerGlobalObject::TestRunnerGlobalObject()
@ -136,14 +136,14 @@ TestRunnerGlobalObject::~TestRunnerGlobalObject()
{ {
} }
JS_DEFINE_OLD_NATIVE_FUNCTION(TestRunnerGlobalObject::fuzzilli) JS_DEFINE_NATIVE_FUNCTION(TestRunnerGlobalObject::fuzzilli)
{ {
if (!vm.argument_count()) if (!vm.argument_count())
return JS::js_undefined(); return JS::js_undefined();
auto operation = TRY_OR_DISCARD(vm.argument(0).to_string(global_object)); auto operation = TRY(vm.argument(0).to_string(global_object));
if (operation == "FUZZILLI_CRASH") { if (operation == "FUZZILLI_CRASH") {
auto type = TRY_OR_DISCARD(vm.argument(1).to_i32(global_object)); auto type = TRY(vm.argument(1).to_i32(global_object));
switch (type) { switch (type) {
case 0: case 0:
*((int*)0x41414141) = 0x1337; *((int*)0x41414141) = 0x1337;
@ -159,7 +159,7 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(TestRunnerGlobalObject::fuzzilli)
fzliout = stdout; fzliout = stdout;
} }
auto string = TRY_OR_DISCARD(vm.argument(1).to_string(global_object)); auto string = TRY(vm.argument(1).to_string(global_object));
fprintf(fzliout, "%s\n", string.characters()); fprintf(fzliout, "%s\n", string.characters());
fflush(fzliout); fflush(fzliout);
} }
@ -171,7 +171,7 @@ void TestRunnerGlobalObject::initialize_global_object()
{ {
Base::initialize_global_object(); Base::initialize_global_object();
define_direct_property("global", this, JS::Attribute::Enumerable); define_direct_property("global", this, JS::Attribute::Enumerable);
define_old_native_function("fuzzilli", fuzzilli, 2, JS::default_attributes); define_native_function("fuzzilli", fuzzilli, 2, JS::default_attributes);
} }
int main(int, char**) int main(int, char**)