From 1afa6f3a8fae6a9a5f411714713f270438e1dccb Mon Sep 17 00:00:00 2001 From: magic-akari Date: Fri, 12 Jul 2024 10:43:09 +0800 Subject: [PATCH] fix(es/compat): Add support for destructuring with BigInts --- crates/swc/tests/fixture/issues-9xxx/9213/input/.swcrc | 5 +++++ .../tests/fixture/issues-9xxx/9213/input/destruct-bigint.js | 1 + .../tests/fixture/issues-9xxx/9213/output/destruct-bigint.js | 3 +++ crates/swc_ecma_compat_es2015/src/destructuring.rs | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 crates/swc/tests/fixture/issues-9xxx/9213/input/.swcrc create mode 100644 crates/swc/tests/fixture/issues-9xxx/9213/input/destruct-bigint.js create mode 100644 crates/swc/tests/fixture/issues-9xxx/9213/output/destruct-bigint.js 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 dff3ebf3ee56..3fadcd4033df 100644 --- a/crates/swc_ecma_compat_es2015/src/destructuring.rs +++ b/crates/swc_ecma_compat_es2015/src/destructuring.rs @@ -1152,7 +1152,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(..)); Expr::Member(MemberExpr { span: DUMMY_SP,