Skip to content

console?.log('') not dropped during minify #9757

@hikerpig

Description

@hikerpig

Describe the bug

When console is followed by optional chaining symbol ?, it will not be dropped during minify process.

Terser will remove it correctly.

Input code

console?.log('hello')


### Config

```json
{
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": false
    },
    "target": "es2015",

    "loose": true,
    "minify": {
      "compress": {
        "arguments": false,
        "arrows": true,
        "booleans": true,
        "booleans_as_integers": false,
        "collapse_vars": true,
        "comparisons": true,
        "computed_props": true,
        "conditionals": true,
        "dead_code": true,
        "directives": true,
        "drop_console": true,
        "drop_debugger": true,
        "evaluate": true,
        "expression": false,
        "hoist_funs": false,
        "hoist_props": true,
        "hoist_vars": true,
        "if_return": true,
        "join_vars": true,
        "keep_classnames": false,
        "keep_fargs": true,
        "keep_fnames": false,
        "keep_infinity": false,
        "loops": true,
        "negate_iife": true,
        "properties": true,
        "reduce_funcs": false,
        "reduce_vars": false,
        "side_effects": true,
        "switches": true,
        "typeofs": true,
        "unsafe": false,
        "unsafe_arrows": false,
        "unsafe_comps": false,
        "unsafe_Function": false,
        "unsafe_math": false,
        "unsafe_symbols": false,
        "unsafe_methods": false,
        "unsafe_proto": false,
        "unsafe_regexp": false,
        "unsafe_undefined": false,
        "unused": true,
        "const_to_let": true,
        "pristine_globals": true
      },
      "mangle": false
      
    },
  },
  "module": {
    "type": "es6"
  },
  "minify": true,
  "isModule": true
}

Playground link (or link to the minimal reproduction)

https://play.swc.rs/?version=1.9.3&code=H4sIAAAAAAAAA0vOzyvOz0m118vJT9dQz0jNyclX1%2BQCAGlpgzUWAAAA&config=H4sIAAAAAAAAA32US47bMAxA9z1F4PUs2gLtogformcQFItyNJVFQ6QyMQa5e2nZTtKE9iaI%2Bfgnxc8vh0PzTm3z6%2FApf%2BVjsJkg375FQmNiexFJw%2BMA1OYwcPO2UqYJeRsJqug6k4Zt7oAnK6DvX7%2F9EIsZREQCkXMusOj2IQU%2FPsZssR8yED3IRCouSw%2BJaY349sgyftB%2Ffqv8iBjBph1iLJmQGDrImuMWY7QDgTnbrHiZMrU5EGohJlgYnBkyDipPLnDAJDFfqQPrTIsOFBQytBzOoJlJLDFLJOVtUAfH0nV1zE8YzjYWy4ohXOpEJFmlSScMxMaXpHVwhhstmKHe2%2BBNBi45vaJ3DGnD6i%2BA1B8tUbI9aAlVDS%2FbtGXtdy1D8rKwPCpcllsrMkEnPTUheKWxU2Mgc9BmmcGVFqbGtlo6C1768EwpODDgvWyK4po%2BArcnLej0zNErQMZrawXPkWZgbm9wg0%2FPYQf%2FlipZ369Fo7d82qY09keMOwF64BO6HQUZBeM2znIjLsM2L8mBrAY4VaVQBa8nQPaf0cR6LV92Q16HeDRdxOP9SCwK19sV7m3q4m0yi%2FR%2Bj%2BtP06MrVWk59dOc5wP9s7krrbd4zaQJ9Gc1rLGv%2FwAQOon3NQYAAA%3D%3D

SWC Info output

No response

Expected behavior

It should be dropped.

Actual behavior

var _console;null==(_console=console)||_console.log("hello");

Version

1.9.3

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions