fix(oxc_transform): oxc dot define is postfix of some MemberExpr (#7640)

Closed https://github.com/oxc-project/oxc/issues/7598
This commit is contained in:
IWANABETHATGUY 2024-12-04 19:18:19 +08:00 committed by GitHub
parent 0ce7ce7ff4
commit 64f92e9cb4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 1 deletions

View file

@ -538,7 +538,7 @@ impl<'a> ReplaceGlobalDefines<'a> {
}; };
} }
true current_part_member_expression.is_none()
} }
} }

View file

@ -71,6 +71,20 @@ fn dot_with_overlap() {
test("import.meta.env.NODE_ENV", "import.meta.env.NODE_ENV", config.clone()); 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] #[test]
fn dot_nested() { fn dot_nested() {
let config = ReplaceGlobalDefinesConfig::new(&[("process", "production")]).unwrap(); let config = ReplaceGlobalDefinesConfig::new(&[("process", "production")]).unwrap();