From 9def44979a0c3a03a7ada09f8359ea6b1d795d03 Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Sun, 16 Jan 2022 16:48:32 +0100 Subject: fix(cli): Don't strip shebangs from modules (#13220) Deno's module loader currently strips a shebang if a module file starts with one. However, this is no longer necessary, since there is a stage-3 TC39 that adds support for shebangs (or "hashbangs") to the language (https://github.com/tc39/proposal-hashbang), and V8, `tsc` and `swc` all support it. Furthermore, stripping shebangs causes a correctness bug with JSON modules, since a JSON file with a shebang should not parse as a JSON module, yet it does with this stripping. This change fixes this. --- cli/tests/integration/run_tests.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'cli/tests/integration') diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index f4793a969..bc137a7fd 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -1600,6 +1600,28 @@ itest!(jsx_import_source_error { exit_code: 1, }); +itest!(shebang_tsc { + args: "run --quiet shebang.ts", + output: "shebang.ts.out", +}); + +itest!(shebang_swc { + args: "run --quiet --no-check shebang.ts", + output: "shebang.ts.out", +}); + +itest!(shebang_with_json_imports_tsc { + args: "run --quiet import_assertions/json_with_shebang.ts", + output: "import_assertions/json_with_shebang.ts.out", + exit_code: 1, +}); + +itest!(shebang_with_json_imports_swc { + args: "run --quiet --no-check import_assertions/json_with_shebang.ts", + output: "import_assertions/json_with_shebang.ts.out", + exit_code: 1, +}); + #[test] fn no_validate_asm() { let output = util::deno_cmd() -- cgit v1.2.3