diff options
| author | snek <snek@deno.com> | 2024-09-10 13:12:36 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-10 20:12:36 +0000 |
| commit | f9007d3386bbe9f709ce413ac0cf099b86d4c4bf (patch) | |
| tree | 3254119b37ef434062c431b2b4964d9317fb5f1a /tests/specs | |
| parent | ee3829a7787b337b2a7e98251b40d5937b2c255b (diff) | |
feat: require(esm) (#25501)
implement require(esm) using `op_import_sync` from deno_core.
possible future changes:
- cts and mts
- replace Deno.core.evalContext to optimize esm syntax detection
Fixes: https://github.com/denoland/deno/issues/25487
Diffstat (limited to 'tests/specs')
| -rw-r--r-- | tests/specs/run/require_esm/__test__.jsonc | 5 | ||||
| -rw-r--r-- | tests/specs/run/require_esm/async.js | 2 | ||||
| -rw-r--r-- | tests/specs/run/require_esm/main.cjs | 5 | ||||
| -rw-r--r-- | tests/specs/run/require_esm/main.out | 13 | ||||
| -rw-r--r-- | tests/specs/run/require_esm/sync.js | 1 | ||||
| -rw-r--r-- | tests/specs/run/require_esm/sync.mjs | 1 |
6 files changed, 27 insertions, 0 deletions
diff --git a/tests/specs/run/require_esm/__test__.jsonc b/tests/specs/run/require_esm/__test__.jsonc new file mode 100644 index 000000000..ee7d1eee9 --- /dev/null +++ b/tests/specs/run/require_esm/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "run -A main.cjs", + "output": "main.out", + "exitCode": 1 +} diff --git a/tests/specs/run/require_esm/async.js b/tests/specs/run/require_esm/async.js new file mode 100644 index 000000000..b116c66ac --- /dev/null +++ b/tests/specs/run/require_esm/async.js @@ -0,0 +1,2 @@ +export const async_js = 1; +await {}; diff --git a/tests/specs/run/require_esm/main.cjs b/tests/specs/run/require_esm/main.cjs new file mode 100644 index 000000000..b3418abe1 --- /dev/null +++ b/tests/specs/run/require_esm/main.cjs @@ -0,0 +1,5 @@ +"use strict"; + +console.log(require("./sync.js")); +console.log(require("./sync.mjs")); +require("./async.js"); diff --git a/tests/specs/run/require_esm/main.out b/tests/specs/run/require_esm/main.out new file mode 100644 index 000000000..57b842b34 --- /dev/null +++ b/tests/specs/run/require_esm/main.out @@ -0,0 +1,13 @@ +[Module: null prototype] { sync_js: 1 } +[Module: null prototype] { sync_mjs: 1 } +error: Uncaught (in promise) Error: Top-level await is not allowed in synchronous evaluation + at loadESMFromCJS (node:module:[WILDCARD]) + at Module._compile (node:module:[WILDCARD]) + at Object.Module._extensions..js (node:module:[WILDCARD]) + at Module.load (node:module:[WILDCARD]) + at Function.Module._load (node:module:[WILDCARD]) + at Module.require (node:module:[WILDCARD]) + at require (node:module:[WILDCARD]) + at Object.<anonymous> (file:[WILDCARD]/tests/specs/run/require_esm/main.cjs:[WILDCARD]) + at Object.<anonymous> (file:[WILDCARD]/tests/specs/run/require_esm/main.cjs:[WILDCARD]) + at Module._compile (node:module:[WILDCARD]) diff --git a/tests/specs/run/require_esm/sync.js b/tests/specs/run/require_esm/sync.js new file mode 100644 index 000000000..ca40d4eb7 --- /dev/null +++ b/tests/specs/run/require_esm/sync.js @@ -0,0 +1 @@ +export const sync_js = 1; diff --git a/tests/specs/run/require_esm/sync.mjs b/tests/specs/run/require_esm/sync.mjs new file mode 100644 index 000000000..7a3cc3e27 --- /dev/null +++ b/tests/specs/run/require_esm/sync.mjs @@ -0,0 +1 @@ +export const sync_mjs = 1; |
