diff --git a/crates/swc/tests/fixture/issues-9xxx/9213/input/.swcrc b/crates/swc/tests/fixture/issues-9xxx/9213/input/.swcrc new file mode 100644 index 000000000000..088bc6e52178 --- /dev/null +++ b/crates/swc/tests/fixture/issues-9xxx/9213/input/.swcrc @@ -0,0 +1,5 @@ +{ + "jsc": { + "target": "es5" + } +} \ No newline at end of file diff --git a/crates/swc/tests/fixture/issues-9xxx/9213/input/destruct-bigint.js b/crates/swc/tests/fixture/issues-9xxx/9213/input/destruct-bigint.js new file mode 100644 index 000000000000..bd9ffbb75b96 --- /dev/null +++ b/crates/swc/tests/fixture/issues-9xxx/9213/input/destruct-bigint.js @@ -0,0 +1 @@ +var { 9007199254740991n: it } = { 9007199254740991n: 1 }; \ No newline at end of file diff --git a/crates/swc/tests/fixture/issues-9xxx/9213/output/destruct-bigint.js b/crates/swc/tests/fixture/issues-9xxx/9213/output/destruct-bigint.js new file mode 100644 index 000000000000..bf696f9862bf --- /dev/null +++ b/crates/swc/tests/fixture/issues-9xxx/9213/output/destruct-bigint.js @@ -0,0 +1,3 @@ +var _ref = { + 9007199254740991n: 1 +}, it = _ref[9007199254740991n]; diff --git a/crates/swc_ecma_compat_es2015/src/destructuring.rs b/crates/swc_ecma_compat_es2015/src/destructuring.rs index 08f0c3c6012c..3b84cae376fb 100644 --- a/crates/swc_ecma_compat_es2015/src/destructuring.rs +++ b/crates/swc_ecma_compat_es2015/src/destructuring.rs @@ -1205,7 +1205,7 @@ fn make_ref_ident_for_array( } fn make_ref_prop_expr(ref_ident: &Ident, prop: Box, mut computed: bool) -> Expr { - computed |= matches!(*prop, Expr::Lit(Lit::Num(..)) | Expr::Lit(Lit::Str(..))); + computed |= !matches!(*prop, Expr::Ident(..)); MemberExpr { span: DUMMY_SP,