diff --git a/cli/tests/testdata/compiler_api_test.ts b/cli/tests/testdata/compiler_api_test.ts index 168d70ce65..81f049ac13 100644 --- a/cli/tests/testdata/compiler_api_test.ts +++ b/cli/tests/testdata/compiler_api_test.ts @@ -45,6 +45,22 @@ Deno.test({ }, }); +Deno.test({ + name: "Deno.emit() - data url", + async fn() { + const data = + "data:application/javascript;base64,Y29uc29sZS5sb2coImhlbGxvIHdvcmxkIik7"; + const { diagnostics, files, ignoredOptions, stats } = await Deno.emit(data); + assertEquals(diagnostics.length, 0); + assert(!ignoredOptions); + assertEquals(stats.length, 0); + const keys = Object.keys(files); + assertEquals(keys.length, 1); + assertEquals(keys[0], data); + assertStringIncludes(files[keys[0]], 'console.log("hello world");'); + }, +}); + Deno.test({ name: "Deno.emit() - compiler options effects emit", async fn() { diff --git a/runtime/js/40_compiler_api.js b/runtime/js/40_compiler_api.js index 011373eb0e..bd787ef74e 100644 --- a/runtime/js/40_compiler_api.js +++ b/runtime/js/40_compiler_api.js @@ -54,7 +54,7 @@ function checkRelative(specifier) { return StringPrototypeMatch( specifier, - /^([\.\/\\]|https?:\/{2}|file:\/{2})/, + /^([\.\/\\]|https?:\/{2}|file:\/{2}|data:)/, ) ? specifier : `./${specifier}`;