From 3324d7203e8d00bb39cfae104e0aec61ba954e9b Mon Sep 17 00:00:00 2001 From: HasanAlrimawi <141642411+HasanAlrimawi@users.noreply.github.com> Date: Wed, 3 Jul 2024 02:15:10 +0300 Subject: fix(compile): prevent setting unstable feature twice (#24381) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prevent panic when enabling a feature that is already enabled by removing duplicate features. Closes #22015 --------- Co-authored-by: Bartek IwaƄczuk --- cli/args/mod.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'cli') diff --git a/cli/args/mod.rs b/cli/args/mod.rs index e1e6f9510..bf52c460f 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -1773,14 +1773,28 @@ impl CliOptions { .map(|c| c.json.unstable.clone()) .unwrap_or_default(); - from_config_file.extend_from_slice(&self.flags.unstable_config.features); + self + .flags + .unstable_config + .features + .iter() + .for_each(|feature| { + if !from_config_file.contains(feature) { + from_config_file.push(feature.to_string()); + } + }); if *DENO_FUTURE { - from_config_file.extend_from_slice(&[ + let future_features = [ deno_runtime::deno_ffi::UNSTABLE_FEATURE_NAME.to_string(), deno_runtime::deno_fs::UNSTABLE_FEATURE_NAME.to_string(), deno_runtime::deno_webgpu::UNSTABLE_FEATURE_NAME.to_string(), - ]); + ]; + future_features.iter().for_each(|future_feature| { + if !from_config_file.contains(future_feature) { + from_config_file.push(future_feature.to_string()); + } + }); } from_config_file -- cgit v1.2.3