diff --git a/lib/parse.js b/lib/parse.js index febd79db..414a47ac 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -1160,7 +1160,7 @@ function parse($TEXT, options) { if (!is_token(peek(), "punc", "(")) { next(); var node = export_(); - semicolon(); + if (can_insert_semicolon()) semicolon(); return node; } } diff --git a/test/compress/export.js b/test/compress/export.js index 783fa80a..6fcc46b0 100644 --- a/test/compress/export.js +++ b/test/compress/export.js @@ -309,7 +309,7 @@ export_default_anonymous_generator: { yield foo(); } } - expect_exact: "export default function*(){yield foo()};" + expect_exact: "export default function*(){yield foo()}" } export_default_anonymous_async_function: { @@ -326,7 +326,7 @@ export_default_anonymous_async_function: { return await foo(); } } - expect_exact: "export default async function(){return await foo()};" + expect_exact: "export default async function(){return await foo()}" } export_default_async_arrow_function: { @@ -358,7 +358,7 @@ export_default_named_generator: { yield foo(); } } - expect_exact: "export default function*gen(){yield foo()};" + expect_exact: "export default function*gen(){yield foo()}" } export_default_named_async_function: { @@ -375,7 +375,7 @@ export_default_named_async_function: { return await foo(); } } - expect_exact: "export default async function bar(){return await foo()};" + expect_exact: "export default async function bar(){return await foo()}" } export_default_anonymous_class: { @@ -426,7 +426,7 @@ export_default_anonymous_generator_not_call: { export default function*(){}(foo); } // agrees with `acorn` and `babylon 7` - expect_exact: "export default function*(){};foo;" + expect_exact: "export default function*(){}foo;" } export_default_anonymous_async_function_not_call: { @@ -442,5 +442,5 @@ export_default_anonymous_async_function_not_call: { export default async function(){}(foo); } // agrees with `acorn` and `babylon 7` - expect_exact: "export default async function(){};foo;" + expect_exact: "export default async function(){}foo;" } diff --git a/test/compress/harmony.js b/test/compress/harmony.js index b85214ec..93025177 100644 --- a/test/compress/harmony.js +++ b/test/compress/harmony.js @@ -218,7 +218,7 @@ export_statement: { export function d() {}; export class e {}; } - expect_exact: "export default 3;export var a=4;export let b=6;export const c=6;export function d(){};export class e{};" + expect_exact: "export default 3;export var a=4;export let b=6;export const c=6;export function d(){}export class e{}" } export_default_object_expression: { @@ -680,7 +680,7 @@ export_default_function_decl: { export default function Foo() {}; export function Far() {}; } - expect_exact: "export default function Foo(){};export function Far(){};" + expect_exact: "export default function Foo(){}export function Far(){}" } export_default_class_decl: { @@ -694,7 +694,7 @@ export_default_class_decl: { export default class Car {}; export class Cab {}; } - expect_exact: "export default class Car{};export class Cab{};" + expect_exact: "export default class Car{}export class Cab{}" } object_rest_spread: { diff --git a/test/compress/issue-2001.js b/test/compress/issue-2001.js index f2c9504b..4196f6c3 100644 --- a/test/compress/issue-2001.js +++ b/test/compress/issue-2001.js @@ -5,9 +5,9 @@ export_func_1: { unused: true, } input: { - export function f(){}; + export function f(){} } - expect_exact: "export function f(){};" + expect_exact: "export function f(){}" } export_func_2: { @@ -20,7 +20,7 @@ export_func_2: { input: { export function f(){}(1); } - expect_exact: "export function f(){};1;" + expect_exact: "export function f(){}1;" } export_func_3: { @@ -33,7 +33,7 @@ export_func_3: { input: { export function f(){}(1); } - expect_exact: "export function f(){};" + expect_exact: "export function f(){}" } export_default_func_1: { @@ -43,9 +43,9 @@ export_default_func_1: { unused: true, } input: { - export default function f(){}; + export default function f(){} } - expect_exact: "export default function f(){};" + expect_exact: "export default function f(){}" } export_default_func_2: { @@ -58,7 +58,7 @@ export_default_func_2: { input: { export default function f(){}(1); } - expect_exact: "export default function f(){};1;" + expect_exact: "export default function f(){}1;" } export_default_func_3: { @@ -71,7 +71,7 @@ export_default_func_3: { input: { export default function f(){}(1); } - expect_exact: "export default function f(){};" + expect_exact: "export default function f(){}" } export_class_1: { @@ -83,7 +83,7 @@ export_class_1: { input: { export class C {}; } - expect_exact: "export class C{};" + expect_exact: "export class C{}" } export_class_2: { @@ -96,7 +96,7 @@ export_class_2: { input: { export class C {}(1); } - expect_exact: "export class C{};1;" + expect_exact: "export class C{}1;" } export_class_3: { @@ -109,7 +109,7 @@ export_class_3: { input: { export class C {}(1); } - expect_exact: "export class C{};" + expect_exact: "export class C{}" } export_default_class_1: { @@ -121,7 +121,7 @@ export_default_class_1: { input: { export default class C {}; } - expect_exact: "export default class C{};" + expect_exact: "export default class C{}" } export_default_class_2: { @@ -134,7 +134,7 @@ export_default_class_2: { input: { export default class C {}(1); } - expect_exact: "export default class C{};1;" + expect_exact: "export default class C{}1;" } export_default_class_3: { @@ -147,7 +147,7 @@ export_default_class_3: { input: { export default class C {}(1); } - expect_exact: "export default class C{};" + expect_exact: "export default class C{}" } export_mangle_1: { @@ -159,7 +159,7 @@ export_mangle_1: { return one - two; }; } - expect_exact: "export function foo(o,n){return o-n};" + expect_exact: "export function foo(o,n){return o-n}" } export_mangle_2: { @@ -171,7 +171,7 @@ export_mangle_2: { return one - two; }; } - expect_exact: "export default function foo(o,t){return o-t};" + expect_exact: "export default function foo(o,t){return o-t}" } export_mangle_3: { @@ -190,7 +190,7 @@ export_mangle_3: { } }; } - expect_exact: "export class C{go(r,e){return r-e+r}};" + expect_exact: "export class C{go(r,e){return r-e+r}}" } export_mangle_4: { @@ -209,7 +209,7 @@ export_mangle_4: { } }; } - expect_exact: "export default class C{go(e,r){return e-r+e}};" + expect_exact: "export default class C{go(e,r){return e-r+e}}" } export_mangle_5: { @@ -276,8 +276,8 @@ export_default_func_ref: { unused: true, } input: { - export default function f(){}; + export default function f(){} f(); } - expect_exact: "export default function f(){};f();" + expect_exact: "export default function f(){}f();" }