From 3ca323be83a3d57e9303eca54c67203673679b08 Mon Sep 17 00:00:00 2001 From: IWANABETHATGUY Date: Wed, 4 Dec 2024 16:56:03 +0800 Subject: [PATCH] fix: oxc_define --- .../src/plugins/replace_global_defines.rs | 2 +- .../integrations/plugins/replace_global_defines.rs | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/crates/oxc_transformer/src/plugins/replace_global_defines.rs b/crates/oxc_transformer/src/plugins/replace_global_defines.rs index d647bbdc6645c..6f3293f8acd4f 100644 --- a/crates/oxc_transformer/src/plugins/replace_global_defines.rs +++ b/crates/oxc_transformer/src/plugins/replace_global_defines.rs @@ -538,7 +538,7 @@ impl<'a> ReplaceGlobalDefines<'a> { }; } - true + current_part_member_expression.is_none() } } diff --git a/crates/oxc_transformer/tests/integrations/plugins/replace_global_defines.rs b/crates/oxc_transformer/tests/integrations/plugins/replace_global_defines.rs index f57edd9678247..f7ddd2c783088 100644 --- a/crates/oxc_transformer/tests/integrations/plugins/replace_global_defines.rs +++ b/crates/oxc_transformer/tests/integrations/plugins/replace_global_defines.rs @@ -71,6 +71,20 @@ fn dot_with_overlap() { test("import.meta.env.NODE_ENV", "import.meta.env.NODE_ENV", config.clone()); } +#[test] +fn dot_define_is_member_expr_postfix() { + let config = ReplaceGlobalDefinesConfig::new(&[ + ("__OBJ__", r#"{"process":{"env":{"SOMEVAR":"foo"}}}"#), + ("process.env.SOMEVAR", "\"SOMEVAR\""), + ]) + .unwrap(); + test( + "console.log(__OBJ__.process.env.SOMEVAR)", + "console.log({ 'process': { 'env': { 'SOMEVAR': 'foo' } } }.process.env.SOMEVAR);\n", + config.clone(), + ); +} + #[test] fn dot_nested() { let config = ReplaceGlobalDefinesConfig::new(&[("process", "production")]).unwrap();