492 lines
9.9 KiB
JavaScript
492 lines
9.9 KiB
JavaScript
refs: {
|
|
input: {
|
|
export {};
|
|
export { a, b as B, c as case, d as default };
|
|
}
|
|
expect_exact: "export{};export{a,b as B,c as case,d as default};"
|
|
}
|
|
|
|
var_defs: {
|
|
input: {
|
|
export const a = 1;
|
|
export let b = 2, c = 3;
|
|
export var { d, e: [] } = f;
|
|
}
|
|
expect_exact: "export const a=1;export let b=2,c=3;export var{d,e:[]}=f;"
|
|
}
|
|
|
|
defuns: {
|
|
input: {
|
|
export class A {}
|
|
export function e() {}
|
|
export function* f(a) {}
|
|
export async function g(b, c) {}
|
|
export async function* h({}, ...[]) {}
|
|
}
|
|
expect_exact: "export class A{}export function e(){}export function*f(a){}export async function g(b,c){}export async function*h({},...[]){}"
|
|
}
|
|
|
|
defaults: {
|
|
input: {
|
|
export default 42;
|
|
export default async;
|
|
export default (x, y) => x * x;
|
|
export default class {};
|
|
export default function*(a, b) {};
|
|
export default async function f({ c }, ...[ d ]) {};
|
|
}
|
|
expect_exact: "export default 42;export default async;export default(x,y)=>x*x;export default class{}export default function*(a,b){}export default async function f({c},...[d]){}"
|
|
}
|
|
|
|
defaults_parentheses_1: {
|
|
input: {
|
|
export default function() {
|
|
console.log("FAIL");
|
|
}(console.log("PASS"));
|
|
}
|
|
expect_exact: 'export default function(){console.log("FAIL")}console.log("PASS");'
|
|
}
|
|
|
|
defaults_parentheses_2: {
|
|
input: {
|
|
export default (async function() {
|
|
console.log("PASS");
|
|
})();
|
|
}
|
|
expect_exact: 'export default(async function(){console.log("PASS")})();'
|
|
}
|
|
|
|
defaults_parentheses_3: {
|
|
input: {
|
|
export default (42, "PASS");
|
|
}
|
|
expect_exact: 'export default(42,"PASS");'
|
|
}
|
|
|
|
defaults_parentheses_4: {
|
|
input: {
|
|
export default (function f() {});
|
|
}
|
|
expect_exact: "export default(function f(){});"
|
|
}
|
|
|
|
defaults_parentheses_5: {
|
|
input: {
|
|
export default (function(a) {
|
|
console.log(a[0]);
|
|
}`PASS`);
|
|
}
|
|
expect_exact: "export default(function(a){console.log(a[0])})`PASS`;"
|
|
}
|
|
|
|
defaults_parentheses_6: {
|
|
options = {
|
|
conditionals: true,
|
|
}
|
|
input: {
|
|
export default !function() {
|
|
while (!console);
|
|
}() ? "PASS" : "FAIL";
|
|
}
|
|
expect_exact: 'export default(function(){while(!console);})()?"FAIL":"PASS";'
|
|
}
|
|
|
|
foreign: {
|
|
input: {
|
|
export * from "foo";
|
|
export {} from "bar";
|
|
export * as a from "baz";
|
|
export { default } from "moo";
|
|
export { b, c as case, default as delete, d } from "moz";
|
|
}
|
|
expect_exact: 'export*from"foo";export{}from"bar";export*as a from"baz";export{default}from"moo";export{b,c as case,default as delete,d}from"moz";'
|
|
}
|
|
|
|
same_quotes: {
|
|
beautify = {
|
|
beautify: true,
|
|
quote_style: 3,
|
|
}
|
|
input: {
|
|
export * from 'foo';
|
|
export {} from "bar";
|
|
}
|
|
expect_exact: [
|
|
"export * from 'foo';",
|
|
"",
|
|
'export {} from "bar";',
|
|
]
|
|
}
|
|
|
|
drop_unused: {
|
|
options = {
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export default 42;
|
|
export default (x, y) => x * x;
|
|
export default class A extends B { get p() { h() } }
|
|
export default function*(a, b) {}
|
|
export default async function f({ c }, ...[ d ]) {}
|
|
export var e;
|
|
export function g(x, [ y ], ...z) {}
|
|
function h() {}
|
|
}
|
|
expect: {
|
|
export default 42;
|
|
export default (x, y) => x * x;
|
|
export default class extends B { get p() { h() } }
|
|
export default function*(a, b) {}
|
|
export default async function({}) {}
|
|
export var e;
|
|
export function g(x, []) {}
|
|
function h() {}
|
|
}
|
|
}
|
|
|
|
mangle: {
|
|
rename = false
|
|
mangle = {
|
|
toplevel: true,
|
|
}
|
|
input: {
|
|
const a = 42;
|
|
export let b, { foo: c } = a;
|
|
export function f(d, { [b]: e }) {
|
|
d(e, f);
|
|
}
|
|
export default a;
|
|
export default async function g(x, ...{ [c]: y }) {
|
|
(await x)(g, y);
|
|
}
|
|
}
|
|
expect: {
|
|
const t = 42;
|
|
export let b, { foo: c } = t;
|
|
export function f(t, { [b]: o }) {
|
|
t(o, f);
|
|
}
|
|
export default t;
|
|
export default async function e(t, ...{ [c]: o}) {
|
|
(await t)(e, o);
|
|
}
|
|
}
|
|
}
|
|
|
|
mangle_rename: {
|
|
rename = true
|
|
mangle = {
|
|
toplevel: true,
|
|
}
|
|
input: {
|
|
const a = 42;
|
|
export let b, { foo: c } = a;
|
|
export function f(d, { [b]: e }) {
|
|
d(e, f);
|
|
}
|
|
export default a;
|
|
export default async function g(x, ...{ [c]: y }) {
|
|
(await x)(g, y);
|
|
}
|
|
}
|
|
expect: {
|
|
const t = 42;
|
|
export let b, { foo: c } = t;
|
|
export function f(t, { [b]: o }) {
|
|
t(o, f);
|
|
}
|
|
export default t;
|
|
export default async function e(t, ...{ [c]: o}) {
|
|
(await t)(e, o);
|
|
}
|
|
}
|
|
}
|
|
|
|
hoist_exports_1: {
|
|
options = {
|
|
hoist_exports: true,
|
|
}
|
|
input: {
|
|
export { a };
|
|
export var b;
|
|
export function f() {}
|
|
}
|
|
expect: {
|
|
var b;
|
|
function f() {}
|
|
export { a, b, f };
|
|
}
|
|
}
|
|
|
|
hoist_exports_2: {
|
|
options = {
|
|
evaluate: true,
|
|
hoist_exports: true,
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
mangle = {
|
|
toplevel: true,
|
|
}
|
|
input: {
|
|
const a = 42;
|
|
export let bbb, { foo: ccc } = a;
|
|
export function fff(d, { [bbb]: e }) {
|
|
d(e, fff);
|
|
}
|
|
export default a;
|
|
export default async function g(x, ...{ [ccc]: y }) {
|
|
(await x)(g, y);
|
|
}
|
|
}
|
|
expect: {
|
|
let e, { foo: a } = 42;
|
|
function f(t, { [e]: o }) {
|
|
t(o, f);
|
|
}
|
|
export default 42;
|
|
export default async function n(t, ...{ [a]: o }) {
|
|
(await t)(n, o);
|
|
};
|
|
export { e as bbb, a as ccc, f as fff };
|
|
}
|
|
}
|
|
|
|
hoist_vars: {
|
|
options = {
|
|
hoist_vars: true,
|
|
}
|
|
input: {
|
|
var a;
|
|
export var b = 42;
|
|
}
|
|
expect: {
|
|
var a;
|
|
export var b = 42;
|
|
}
|
|
}
|
|
|
|
keep_return_values: {
|
|
options = {
|
|
booleans: true,
|
|
evaluate: true,
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
}
|
|
input: {
|
|
export default function() {
|
|
return [];
|
|
}
|
|
export default function f() {
|
|
return null;
|
|
}
|
|
}
|
|
expect: {
|
|
export default function() {
|
|
return [];
|
|
}
|
|
export default function f() {
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
in_use: {
|
|
options = {
|
|
pure_getters: "strict",
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export function f() {}
|
|
f.prototype.p = 42;
|
|
}
|
|
expect: {
|
|
export function f() {}
|
|
f.prototype.p = 42;
|
|
}
|
|
}
|
|
|
|
in_use_default: {
|
|
options = {
|
|
pure_getters: "strict",
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export default function f() {}
|
|
f.prototype.p = 42;
|
|
}
|
|
expect: {
|
|
export default function f() {}
|
|
f.prototype.p = 42;
|
|
}
|
|
}
|
|
|
|
single_use: {
|
|
options = {
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export function f() {
|
|
console.log("PASS");
|
|
}
|
|
f();
|
|
}
|
|
expect: {
|
|
export function f() {
|
|
console.log("PASS");
|
|
}
|
|
f();
|
|
}
|
|
}
|
|
|
|
single_use_default: {
|
|
options = {
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export default function f() {
|
|
console.log("PASS");
|
|
}
|
|
f();
|
|
}
|
|
expect: {
|
|
export default function f() {
|
|
console.log("PASS");
|
|
}
|
|
f();
|
|
}
|
|
}
|
|
|
|
single_use_class: {
|
|
options = {
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export class A {}
|
|
A.prototype.p = "PASS";
|
|
}
|
|
expect: {
|
|
export class A {}
|
|
A.prototype.p = "PASS";
|
|
}
|
|
}
|
|
|
|
single_use_class_default: {
|
|
options = {
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export default class A {}
|
|
A.prototype.p = "PASS";
|
|
}
|
|
expect: {
|
|
export default class A {}
|
|
A.prototype.p = "PASS";
|
|
}
|
|
}
|
|
|
|
hoist_funs: {
|
|
options = {
|
|
hoist_funs: true,
|
|
}
|
|
input: {
|
|
export function f() {}
|
|
export default async function* g() {}
|
|
}
|
|
expect_exact: "export function f(){}export default async function*g(){}"
|
|
}
|
|
|
|
issue_4742_join_vars_1: {
|
|
options = {
|
|
join_vars: true,
|
|
}
|
|
input: {
|
|
var a = 42;
|
|
export var a;
|
|
}
|
|
expect: {
|
|
var a = 42;
|
|
export var a;
|
|
}
|
|
}
|
|
|
|
issue_4742_join_vars_2: {
|
|
options = {
|
|
join_vars: true,
|
|
}
|
|
input: {
|
|
export var a = "foo";
|
|
var b;
|
|
b = "bar";
|
|
}
|
|
expect: {
|
|
export var a = "foo";
|
|
var b, b = "bar";
|
|
}
|
|
}
|
|
|
|
issue_4742_unused_1: {
|
|
options = {
|
|
unused: true,
|
|
}
|
|
input: {
|
|
var a = 42;
|
|
export var a;
|
|
}
|
|
expect: {
|
|
var a = 42;
|
|
export var a;
|
|
}
|
|
}
|
|
|
|
issue_4742_unused_2: {
|
|
options = {
|
|
reduce_vars: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
export var a = "foo";
|
|
var a = "bar";
|
|
}
|
|
expect: {
|
|
export var a = "foo";
|
|
a = "bar";
|
|
}
|
|
}
|
|
|
|
issue_4761: {
|
|
input: {
|
|
export default "function" == 42;
|
|
}
|
|
expect_exact: 'export default"function"==42;'
|
|
}
|
|
|
|
issue_4766: {
|
|
options = {
|
|
unused: true,
|
|
}
|
|
input: {
|
|
var a = "foo";
|
|
export var a = "bar";
|
|
}
|
|
expect: {
|
|
var a = "foo";
|
|
export var a = "bar";
|
|
}
|
|
}
|