summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibTest
diff options
context:
space:
mode:
authordavidot <davidot@serenityos.org>2022-01-18 19:39:36 +0100
committerLinus Groh <mail@linusgroh.de>2022-01-22 01:21:18 +0000
commit7cbf4b90e872776adcd05ac9150b6f745606aaae (patch)
tree6622fc7fef053fdf810fbc7d2d4a331c7c1bf435 /Userland/Libraries/LibTest
parent023968a489fdc281ec2bd7f1f04a8bc5a1065cbc (diff)
downloadserenity-7cbf4b90e872776adcd05ac9150b6f745606aaae.zip
LibJS: Implement ImportCall and HostImportModuleDynamically
This allows us to load modules from scripts. This can be dangerous as it can load arbitrary files. Because of that it fails and throws by default. Currently, only js and JavaScriptTestRunner enable the default hook. This also adds tests to test-js which test module code. Because we form a spec perspective can't "enter" a module this is the easiest way to run tests without having to modify test-js to have special cases for modules. To specify modules in test-js we use the extension '.mjs' this is to ensure the files are not executed. We do still want to lint these files so the prettier scripts have changed to look for '.mjs' files as well.
Diffstat (limited to 'Userland/Libraries/LibTest')
-rw-r--r--Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp b/Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp
index 6ed697ea8e..a4aa7f7e44 100644
--- a/Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp
+++ b/Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp
@@ -182,8 +182,10 @@ int main(int argc, char** argv)
if (g_main_hook)
g_main_hook();
- if (!g_vm)
+ if (!g_vm) {
g_vm = JS::VM::create();
+ g_vm->enable_default_host_import_module_dynamically_hook();
+ }
Test::JS::TestRunner test_runner(test_root, common_path, print_times, print_progress, print_json);
test_runner.run(test_glob);