diff --git a/src/transformers/CJSImportTransformer.ts b/src/transformers/CJSImportTransformer.ts index fa367ee2..075008ac 100644 --- a/src/transformers/CJSImportTransformer.ts +++ b/src/transformers/CJSImportTransformer.ts @@ -678,14 +678,16 @@ export default class CJSImportTransformer extends Transformer { * For example, this: * export const {x: [a = 2, b], c} = d; * becomes this: - * ({x: [exports.a = 2, exports.b], c: exports.c} = d;) + * ;({x: [exports.a = 2, exports.b], c: exports.c} = d;) */ private processComplexExportVar(): void { this.tokens.removeInitialToken(); this.tokens.removeToken(); const needsParens = this.tokens.matches1(tt.braceL); if (needsParens) { - this.tokens.appendCode("("); + this.tokens.appendCode(";("); + } else if (this.tokens.matches1(tt.bracketL)) { + this.tokens.appendCode(";"); } let depth = 0; diff --git a/test/imports-test.ts b/test/imports-test.ts index 4005c60f..a7640a22 100644 --- a/test/imports-test.ts +++ b/test/imports-test.ts @@ -1259,13 +1259,13 @@ module.exports = exports.default; export let {y}: Foo = z; `, `"use strict";${ESMODULE_PREFIX} - ( {a: exports.a = 2, b: [exports.c, exports.d], ...exports.e} = f); - [exports.g = 3, ...exports.h] = i; - ( {j: exports.j} = k); - ( {l: exports.l = () => {const m = 3;}} = {}); + ;( {a: exports.a = 2, b: [exports.c, exports.d], ...exports.e} = f); + ; [exports.g = 3, ...exports.h] = i; + ;( {j: exports.j} = k); + ;( {l: exports.l = () => {const m = 3;}} = {}); exports.x; exports.x = 2; - ( {y: exports.y} = z); + ;( {y: exports.y} = z); `, {transforms: ["imports", "typescript"]}, );