diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/args/mod.rs | 2 | ||||
-rw-r--r-- | cli/lsp/config.rs | 3 | ||||
-rw-r--r-- | cli/main.rs | 11 |
3 files changed, 13 insertions, 3 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 1d8b06f49..b77a8afdb 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -110,7 +110,7 @@ pub static DENO_DISABLE_PEDANTIC_NODE_WARNINGS: Lazy<bool> = Lazy::new(|| { .is_some() }); -static DENO_FUTURE: Lazy<bool> = +pub static DENO_FUTURE: Lazy<bool> = Lazy::new(|| std::env::var("DENO_FUTURE").ok().is_some()); pub fn jsr_url() -> &'static Url { diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 5ddc41cb2..e5703a21a 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -4,6 +4,7 @@ use super::logging::lsp_log; use crate::args::ConfigFile; use crate::args::FmtOptions; use crate::args::LintOptions; +use crate::args::DENO_FUTURE; use crate::cache::FastInsecureHasher; use crate::file_fetcher::FileFetcher; use crate::lsp::logging::lsp_warn; @@ -1324,7 +1325,7 @@ impl ConfigData { .as_ref() .map(|c| c.has_unstable("byonm")) .unwrap_or(false) - || (std::env::var("DENO_FUTURE").is_ok() + || (*DENO_FUTURE && package_json.is_some() && config_file .as_ref() diff --git a/cli/main.rs b/cli/main.rs index 142ae017c..3b103e780 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -29,6 +29,7 @@ mod worker; use crate::args::flags_from_vec; use crate::args::DenoSubcommand; use crate::args::Flags; +use crate::args::DENO_FUTURE; use crate::util::display; use crate::util::v8::get_v8_flags_from_env; use crate::util::v8::init_v8_flags; @@ -389,7 +390,15 @@ fn resolve_flags_and_init( // Using same default as VSCode: // https://github.com/microsoft/vscode/blob/48d4ba271686e8072fc6674137415bc80d936bc7/extensions/typescript-language-features/src/configuration/configuration.ts#L213-L214 DenoSubcommand::Lsp => vec!["--max-old-space-size=3072".to_string()], - _ => vec![], + _ => { + if *DENO_FUTURE { + // deno_ast removes TypeScript `assert` keywords, so this flag only affects JavaScript + // TODO(petamoriken): Need to check TypeScript `assert` keywords in deno_ast + vec!["--no-harmony-import-assertions".to_string()] + } else { + vec![] + } + } }; init_v8_flags(&default_v8_flags, &flags.v8_flags, get_v8_flags_from_env()); |