1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -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:
Bartek Iwańczuk 2024-03-08 00:32:11 +00:00 committed by GitHub
parent 2d5b19277b
commit 2ed984ba3a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 52 additions and 21 deletions

View file

@ -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);

View file

@ -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.",

View file

@ -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]

View file

@ -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,

View file

@ -1,2 +1,3 @@
const db = await Deno.openKv();
console.log(db);
console.log(Temporal);

View file

@ -0,0 +1,3 @@
{
"unstable": ["temporal"]
}