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]
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();