| // originally lifted from https://nodejs.org/api/esm.html | |
| import path from 'path'; | |
| import process from 'process'; | |
| const baseURL = new URL('file://'); | |
| const binaryen_root = path.dirname(path.dirname(process.cwd())); | |
| baseURL.pathname = `${binaryen_root}/`; | |
| 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' | |
| } | |
| }; | |
| export async function resolve(specifier, context, defaultResolve) { | |
| const specialModule = specialTestSuiteModules[specifier]; | |
| if (specialModule) { | |
| // This is needed for newer node versions. | |
| specialModule.shortCircuit = true; | |
| return specialModule; | |
| } | |
| return defaultResolve(specifier, context, defaultResolve); | |
| } | |
| 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); | |
| } |