summaryrefslogtreecommitdiff
path: root/scripts/test/node-esm-loader.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/test/node-esm-loader.mjs')
-rw-r--r--scripts/test/node-esm-loader.mjs51
1 files changed, 29 insertions, 22 deletions
diff --git a/scripts/test/node-esm-loader.mjs b/scripts/test/node-esm-loader.mjs
index 34649fd74..8a3b67d1c 100644
--- a/scripts/test/node-esm-loader.mjs
+++ b/scripts/test/node-esm-loader.mjs
@@ -2,34 +2,41 @@
import path from 'path';
import process from 'process';
-import Module from 'module';
-
-const builtins = Module.builtinModules;
const baseURL = new URL('file://');
const binaryen_root = path.dirname(path.dirname(process.cwd()));
baseURL.pathname = `${binaryen_root}/`;
-
-export function resolve(specifier, parentModuleURL = baseURL, defaultResolve) {
- if (builtins.includes(specifier)) {
- return {
- url: specifier,
- format: 'builtin'
- };
+const specialTestSuiteModules = {
+ 'spectest': {
+ url: new URL('scripts/test/spectest.js', baseURL).href,
+ format: 'module'
+ },
+ 'env': {
+ url: new URL('scripts/test/env.js', baseURL).href,
+ format: 'module'
+ },
+ 'mod.ule': {
+ url: new URL('scripts/test/mod.ule.js', baseURL).href,
+ format: 'module'
}
- // Resolve special modules used in our test suite.
- if (specifier == 'spectest' || specifier == 'env' || specifier == 'mod.ule') {
- const resolved = new URL('./scripts/test/' + specifier + '.js', baseURL);
- return {
- url: resolved.href,
- format: 'module'
- };
+};
+
+export async function resolve(specifier, context, defaultResolve) {
+ const specialModule = specialTestSuiteModules[specifier];
+ if (specialModule) {
+ return specialModule;
}
+ return defaultResolve(specifier, context, defaultResolve);
+}
- const resolved = new URL(specifier, parentModuleURL);
- return {
- url: resolved.href,
- format: 'module'
- };
+export async function getFormat(url, context, defaultGetFormat) {
+ const specifiers = Object.keys(specialTestSuiteModules);
+ for (let i = 0, k = specifiers.length; i < k; ++i) {
+ const specialModule = specialTestSuiteModules[specifiers[i]];
+ if (specialModule.url == url) {
+ return specialModule;
+ }
+ }
+ return defaultGetFormat(url, context, defaultGetFormat);
}