Repository: swc-project/swc (rust)

Issue:
[Bug]: Postfix operator on property access of async arrow function
### Describe the bug

The input code is terminated normally but the running the output code results in `SyntaxError`.

### Input code

```typescript
( async x => 0 ) . x ++ ;
```


### Config

_No response_

### Playground link

https://play.swc.rs/?version=1.3.14&code=H4sIAAAAAAAAA9NQSCyuzEtWqFCwtVMwUNBU0AMytbUVrAEbruNDGQAAAA%3D%3D&config=H4sIAAAAAAAAA0WMTQrEIAxG75K1286id5hDBCctFv9IUhgR714tlu7C915ehUMsrBUyshCPS0pU%2FMMKZAOKZZcVTNf6tKEXagYUeScdiiyd%2BZSEJjUQXHRbGSWbQmYSeRHG3T9m66GQfucYKmjJdAc%2F0N7G%2FHPynaLySe0Cj9ke9LUAAAA%3D

### Expected behavior

The input code is terminated normally:
```console
$ node input.js # terminates without error

```

### Actual behavior

The output code throws `SyntaxError`:
```console
$ node output.js
output.js:125
function() {
^^^^^^^^

SyntaxError: Function statements require a function name
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1088:15)
    at Module._compile (node:internal/modules/cjs/loader:1123:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

Node.js v18.11.0
```

### Version

1.3.11 (default SWC playground)

### Additional context

_No response_

Pull request description:
fix(es/fixer): handle fn expr in postfix operator
<!-- Note: CI script will automatically rebase your PR so please do not rebase unless required -->

<!-- Thanks for submitting a pull request! Please provide enough information so that others can review your pull request. -->

**Description:**

<!-- Explain the **motivation** for making this change. What existing problem does the pull request solve? -->

**BREAKING CHANGE:**

<!--
If this PR introduces a breaking change, it must contain a notice for it to be included in the CHANGELOG. Add description or remove entirely if not breaking.

You may need to update `MIGRATION.md` for the breaking changes.
-->

**Related issue (if exists):**
- fix #6353 

Patch:
diff --git a/crates/swc_ecma_transforms_base/src/fixer.rs b/crates/swc_ecma_transforms_base/src/fixer.rs
index cadae2c0a1..f06daf3303 100644
--- a/crates/swc_ecma_transforms_base/src/fixer.rs
+++ b/crates/swc_ecma_transforms_base/src/fixer.rs
@@ -430,7 +430,9 @@ impl VisitMut for Fixer<'_> {
                 | Expr::Bin(_)
                 | Expr::Assign(_)
                 | Expr::Seq(_)
-                | Expr::Cond(_) => (),
+                | Expr::Cond(_)
+                | Expr::TaggedTpl(_)
+                | Expr::Update(UpdateExpr { prefix: false, .. }) => {}
                 _ => self.ctx = Context::FreeExpr,
             }
         }


Test patch:
diff --git a/crates/swc/tests/fixture/issues-6xxx/6353/input/.swcrc b/crates/swc/tests/fixture/issues-6xxx/6353/input/.swcrc
new file mode 100644
index 0000000000..1d664422ac
--- /dev/null
+++ b/crates/swc/tests/fixture/issues-6xxx/6353/input/.swcrc
@@ -0,0 +1,5 @@
+{
+    "jsc": {
+        "target": "es2016"
+    }
+}
\ No newline at end of file
diff --git a/crates/swc/tests/fixture/issues-6xxx/6353/input/input.js b/crates/swc/tests/fixture/issues-6xxx/6353/input/input.js
new file mode 100644
index 0000000000..92a76182f1
--- /dev/null
+++ b/crates/swc/tests/fixture/issues-6xxx/6353/input/input.js
@@ -0,0 +1,8 @@
+(async x => 0).x++;
+(async x => 0).x--;
+
+++(async x => 0).x;
+--(async x => 0).x;
+
+
+(async x => 0)`y`;
\ No newline at end of file
diff --git a/crates/swc/tests/fixture/issues-6xxx/6353/output/input.js b/crates/swc/tests/fixture/issues-6xxx/6353/output/input.js
new file mode 100644
index 0000000000..f696bee481
--- /dev/null
+++ b/crates/swc/tests/fixture/issues-6xxx/6353/output/input.js
@@ -0,0 +1,41 @@
+import _async_to_generator from "@swc/helpers/src/_async_to_generator.mjs";
+(function() {
+    var _ref = _async_to_generator(function*(x) {
+        return 0;
+    });
+    return function(x) {
+        return _ref.apply(this, arguments);
+    };
+})().x++;
+(function() {
+    var _ref = _async_to_generator(function*(x) {
+        return 0;
+    });
+    return function(x) {
+        return _ref.apply(this, arguments);
+    };
+})().x--;
+++function() {
+    var _ref = _async_to_generator(function*(x) {
+        return 0;
+    });
+    return function(x) {
+        return _ref.apply(this, arguments);
+    };
+}().x;
+--function() {
+    var _ref = _async_to_generator(function*(x) {
+        return 0;
+    });
+    return function(x) {
+        return _ref.apply(this, arguments);
+    };
+}().x;
+(function() {
+    var _ref = _async_to_generator(function*(x) {
+        return 0;
+    });
+    return function(x) {
+        return _ref.apply(this, arguments);
+    };
+})()`y`;