mirror of
https://github.com/oxc-project/oxc.git
synced 2026-11-04 10:29:58 +00:00
feat(ecmascript): handle pure call expression in chain expressions (#9480)
This commit is contained in:
2 files changed
+3
-1
No files matched your search
@@ -400,7 +400,7 @@ impl MayHaveSideEffects for ClassElement<'_> {
|
||||
impl MayHaveSideEffects for ChainElement<'_> {
|
||||
fn may_have_side_effects(&self, is_global_reference: &impl IsGlobalReference) -> bool {
|
||||
match self {
|
||||
ChainElement::CallExpression(_) => true,
|
||||
ChainElement::CallExpression(e) => e.may_have_side_effects(is_global_reference),
|
||||
ChainElement::TSNonNullExpression(e) => {
|
||||
e.expression.may_have_side_effects(is_global_reference)
|
||||
}
|
||||
|
||||
@@ -657,6 +657,8 @@ fn test_call_like_expressions() {
|
||||
test("/* #__PURE__ */ foo(...`${bar}`)", true);
|
||||
test("/* #__PURE__ */ foo(...`${bar()}`)", true);
|
||||
test("/* #__PURE__ */ (() => { foo() })()", false);
|
||||
test("foo?.()", true);
|
||||
test("/* #__PURE__ */ foo?.()", false);
|
||||
|
||||
test("new Foo()", true);
|
||||
test("/* #__PURE__ */ new Foo()", false);
|
||||
|
||||
Reference in new issue
Block a user