mirror of
https://github.com/denoland/deno.git
synced 2024-12-23 15:49:44 -05:00
fix: respect unstable "temporal" configuration in config file (#22134)
Actual fix happened in https://github.com/denoland/deno/pull/22782, but this commit adds additional tests and cleans up V8 flags passed on init. Closes https://github.com/denoland/deno/issues/22123 Closes https://github.com/denoland/deno/issues/22560 Closes https://github.com/denoland/deno/issues/22557
This commit is contained in:
parent
2d5b19277b
commit
2ed984ba3a
6 changed files with 52 additions and 21 deletions
13
cli/main.rs
13
cli/main.rs
|
@ -372,18 +372,7 @@ pub fn main() {
|
|||
// 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()],
|
||||
_ => {
|
||||
if flags.unstable_config.legacy_flag_enabled
|
||||
|| flags
|
||||
.unstable_config
|
||||
.features
|
||||
.contains(&"temporal".to_string())
|
||||
{
|
||||
vec!["--harmony-temporal".to_string()]
|
||||
} else {
|
||||
vec![]
|
||||
}
|
||||
}
|
||||
_ => vec![],
|
||||
};
|
||||
init_v8_flags(&default_v8_flags, &flags.v8_flags, get_v8_flags_from_env());
|
||||
deno_core::JsRuntime::init_platform(None);
|
||||
|
|
|
@ -87,12 +87,7 @@ pub static UNSTABLE_GRANULAR_FLAGS: &[(
|
|||
"Enable unstable net APIs",
|
||||
7,
|
||||
),
|
||||
(
|
||||
"temporal",
|
||||
"Enable unstable Temporal API",
|
||||
// Not used in JS
|
||||
8,
|
||||
),
|
||||
("temporal", "Enable unstable Temporal API", 8),
|
||||
(
|
||||
"unsafe-proto",
|
||||
"Enable unsafe __proto__ support. This is a security risk.",
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||
|
||||
use deno_core::serde_json;
|
||||
use test_util as util;
|
||||
use util::assert_contains;
|
||||
use util::assert_not_contains;
|
||||
|
@ -1140,6 +1141,7 @@ fn granular_unstable_features() {
|
|||
"--output",
|
||||
&exe.to_string_lossy(),
|
||||
"--unstable-kv",
|
||||
"--unstable-temporal",
|
||||
"./compile/unstable_features.ts",
|
||||
])
|
||||
.run();
|
||||
|
@ -1147,7 +1149,41 @@ fn granular_unstable_features() {
|
|||
output.skip_output_check();
|
||||
let output = context.new_command().name(&exe).run();
|
||||
output.assert_exit_code(0);
|
||||
output.assert_matches_text("Kv {}\n");
|
||||
output.assert_matches_text("Kv {}\nObject [Temporal] {}\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn granular_unstable_features_config_file() {
|
||||
let context = TestContextBuilder::new().build();
|
||||
let dir = context.temp_dir();
|
||||
let exe = if cfg!(windows) {
|
||||
dir.path().join("app.exe")
|
||||
} else {
|
||||
dir.path().join("app")
|
||||
};
|
||||
dir.write(
|
||||
"deno.json",
|
||||
serde_json::to_string_pretty(&serde_json::json!({
|
||||
"unstable": ["kv", "temporal"]
|
||||
}))
|
||||
.unwrap(),
|
||||
);
|
||||
let output = context
|
||||
.new_command()
|
||||
.args_vec([
|
||||
"compile",
|
||||
"--config",
|
||||
&dir.path().join("deno.json").to_string(),
|
||||
"--output",
|
||||
&exe.to_string_lossy(),
|
||||
"./compile/unstable_features.ts",
|
||||
])
|
||||
.run();
|
||||
output.assert_exit_code(0);
|
||||
output.skip_output_check();
|
||||
let output = context.new_command().name(&exe).run();
|
||||
output.assert_exit_code(0);
|
||||
output.assert_matches_text("Kv {}\nObject [Temporal] {}\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -5060,14 +5060,21 @@ Warning Sloppy module resolution (hint: specify path to index.tsx file in direct
|
|||
}
|
||||
|
||||
itest!(unstable_temporal_api {
|
||||
args: "run --unstable-temporal --check run/unstable_temporal_api/main.ts",
|
||||
args: "run --no-config --unstable-temporal --check run/unstable_temporal_api/main.ts",
|
||||
output: "run/unstable_temporal_api/main.out",
|
||||
http_server: false,
|
||||
exit_code: 0,
|
||||
});
|
||||
|
||||
itest!(unstable_temporal_api_config_file {
|
||||
args: "run --check run/unstable_temporal_api/main.ts",
|
||||
output: "run/unstable_temporal_api/main.out",
|
||||
http_server: false,
|
||||
exit_code: 0,
|
||||
});
|
||||
|
||||
itest!(unstable_temporal_api_missing_flag {
|
||||
args: "run run/unstable_temporal_api/missing_flag.js",
|
||||
args: "run --no-config run/unstable_temporal_api/missing_flag.js",
|
||||
output: "run/unstable_temporal_api/missing_flag.out",
|
||||
http_server: false,
|
||||
exit_code: 1,
|
||||
|
|
1
tests/testdata/compile/unstable_features.ts
vendored
1
tests/testdata/compile/unstable_features.ts
vendored
|
@ -1,2 +1,3 @@
|
|||
const db = await Deno.openKv();
|
||||
console.log(db);
|
||||
console.log(Temporal);
|
||||
|
|
3
tests/testdata/run/unstable_temporal_api/deno.json
vendored
Normal file
3
tests/testdata/run/unstable_temporal_api/deno.json
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"unstable": ["temporal"]
|
||||
}
|
Loading…
Reference in a new issue