webpack/test/cases/parsing/harmony-destructuring-assig.../index.js

56 lines
1.6 KiB
JavaScript

import * as C from "./reexport-namespace";
import { counter } from "./reexport-namespace";
import { exportsInfo } from "./counter";
import { exportsInfo as exportsInfo2 } from "./counter2";
import * as counter3 from "./counter3";
import * as counter4 from "./counter4";
it("expect tree-shake unused exports #1", () => {
const { D } = C;
expect(D).toBe(1);
expect(C.exportsInfo.D).toBe(true);
expect(C.exportsInfo.E).toBe(false);
});
it("expect tree-shake unused exports #2", () => {
const { d, c } = C.counter;
const { ['d']: d1 } = counter;
expect(d).toBe(1);
expect(c).toBe(1);
expect(d1).toBe(1);
expect(exportsInfo.d).toBe(true);
expect(exportsInfo.c).toBe(true);
expect(exportsInfo.counter).toBe(false);
});
it("expect multiple assignment work correctly", () => {
const { e, d: d1 } = counter4;
let c1;
const { f, d: d2 } = { c: c1 } = counter4;
expect(c1).toBe(1);
expect(d1).toBe(1);
expect(d2).toBe(1);
expect(e).toBe(1);
expect(f).toBe(1);
expect(counter4.exportsInfo.c).toBe(true);
expect(counter4.exportsInfo.d).toBe(true);
expect(counter4.exportsInfo.e).toBe(true);
expect(counter4.exportsInfo.f).toBe(true);
expect(counter4.exportsInfo.g).toBe(false);
expect(counter4.exportsInfo.counter).toBe(false);
});
it("expect tree-shake bailout when rest element is used", () => {
const { d, ...rest } = counter3;
expect(d).toBe(1);
expect(rest.exportsInfo.d).toBe(true);
expect(rest.exportsInfo.counter).toBe(true);
});
it("expect support of \"deep\" tree-shaking", () => {
const { counter2: { d } } = C;
expect(d).toBe(1);
expect(exportsInfo2.d).toBe(true);
expect(exportsInfo2.counter).toBe(false);
});