mirror of
https://github.com/hanzoai/esbuild.git
synced 2026-10-30 14:46:14 +00:00
7468 lines
159 KiB
Plaintext
7468 lines
159 KiB
Plaintext
TestAmbiguousReexportMsg
|
|
---------- /out/entry.js ----------
|
|
// a.js
|
|
var a = 1;
|
|
|
|
// b.js
|
|
var b = 3;
|
|
|
|
// c.js
|
|
var c = 4;
|
|
export {
|
|
a,
|
|
b,
|
|
c
|
|
};
|
|
|
|
================================================================================
|
|
TestArgumentDefaultValueScopeNoBundle
|
|
---------- /out.js ----------
|
|
export function a(o = foo) {
|
|
var r;
|
|
return o;
|
|
}
|
|
export class b {
|
|
fn(r = foo) {
|
|
var f;
|
|
return r;
|
|
}
|
|
}
|
|
export let c = [
|
|
function(o = foo) {
|
|
var r;
|
|
return o;
|
|
},
|
|
(o = foo) => {
|
|
var r;
|
|
return o;
|
|
},
|
|
{ fn(o = foo) {
|
|
var r;
|
|
return o;
|
|
} },
|
|
class {
|
|
fn(o = foo) {
|
|
var r;
|
|
return o;
|
|
}
|
|
}
|
|
];
|
|
|
|
================================================================================
|
|
TestArgumentsSpecialCaseNoBundle
|
|
---------- /out.js ----------
|
|
/* @__PURE__ */ (() => {
|
|
var r;
|
|
function t(n = arguments) {
|
|
return arguments;
|
|
}
|
|
(function(n = arguments) {
|
|
return arguments;
|
|
});
|
|
({ foo(n = arguments) {
|
|
return arguments;
|
|
} });
|
|
class u {
|
|
foo(e = arguments) {
|
|
return arguments;
|
|
}
|
|
}
|
|
(class {
|
|
foo(n = arguments) {
|
|
return arguments;
|
|
}
|
|
});
|
|
function t(n = arguments) {
|
|
var arguments;
|
|
return arguments;
|
|
}
|
|
(function(n = arguments) {
|
|
var arguments;
|
|
return arguments;
|
|
});
|
|
({ foo(n = arguments) {
|
|
var arguments;
|
|
return arguments;
|
|
} });
|
|
((n) => r);
|
|
(() => r);
|
|
(async () => r);
|
|
((n = r) => r);
|
|
(async (n = r) => r);
|
|
(n) => r;
|
|
() => r;
|
|
async () => r;
|
|
(n = r) => r;
|
|
async (n = r) => r;
|
|
((n) => {
|
|
return r;
|
|
});
|
|
(() => {
|
|
return r;
|
|
});
|
|
(async () => {
|
|
return r;
|
|
});
|
|
((n = r) => {
|
|
return r;
|
|
});
|
|
(async (n = r) => {
|
|
return r;
|
|
});
|
|
(n) => {
|
|
return r;
|
|
};
|
|
() => {
|
|
return r;
|
|
};
|
|
async () => {
|
|
return r;
|
|
};
|
|
(n = r) => {
|
|
return r;
|
|
};
|
|
async (n = r) => {
|
|
return r;
|
|
};
|
|
})();
|
|
|
|
================================================================================
|
|
TestArrowFnScope
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
tests = {
|
|
0: ((s = (e) => s + e, t) => s + t),
|
|
1: ((s, t = (e) => t + e) => t + s),
|
|
2: ((s = (a = (c) => s + a + c, b) => s + a + b, t, e) => s + t + e),
|
|
3: ((s, t, e = (a, b = (c) => e + b + c) => e + b + a) => e + s + t),
|
|
4: (x = (s) => x + s, y, x + y),
|
|
5: (y, x = (s) => x + s, x + y),
|
|
6: (x = (s = (e) => x + s + e, t) => x + s + t, y, z, x + y + z),
|
|
7: (y, z, x = (s, t = (e) => x + t + e) => x + t + s, x + y + z)
|
|
};
|
|
|
|
================================================================================
|
|
TestAutoExternal
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
import "http://example.com/code.js";
|
|
import "https://example.com/code.js";
|
|
import "//example.com/code.js";
|
|
import "data:application/javascript;base64,ZXhwb3J0IGRlZmF1bHQgMTIz";
|
|
|
|
================================================================================
|
|
TestAutoExternalNode
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
import fs from "node:fs/promises";
|
|
import "node:what-is-this";
|
|
fs.readFile();
|
|
|
|
================================================================================
|
|
TestAvoidTDZ
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var Foo = class _Foo {
|
|
static foo = new _Foo();
|
|
};
|
|
var foo = Foo.foo;
|
|
console.log(foo);
|
|
var Bar = class {
|
|
};
|
|
var bar = 123;
|
|
export {
|
|
Bar,
|
|
bar
|
|
};
|
|
|
|
================================================================================
|
|
TestAvoidTDZNoBundle
|
|
---------- /out.js ----------
|
|
class Foo {
|
|
static foo = new Foo();
|
|
}
|
|
let foo = Foo.foo;
|
|
console.log(foo);
|
|
export class Bar {
|
|
}
|
|
export let bar = 123;
|
|
|
|
================================================================================
|
|
TestAwaitImportInsideTry
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
async function main(name) {
|
|
try {
|
|
return await import(name);
|
|
} catch {
|
|
}
|
|
}
|
|
main("fs");
|
|
|
|
================================================================================
|
|
TestBuiltInNodeModulePrecedence
|
|
---------- /out/entry.js ----------
|
|
// node_modules/fs/abc.js
|
|
var require_abc = __commonJS({
|
|
"node_modules/fs/abc.js"() {
|
|
console.log("include this");
|
|
}
|
|
});
|
|
|
|
// node_modules/fs/index.js
|
|
var require_fs = __commonJS({
|
|
"node_modules/fs/index.js"() {
|
|
console.log("include this too");
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
console.log([
|
|
// These are node core modules
|
|
require("fs"),
|
|
require("fs/promises"),
|
|
require("node:foo"),
|
|
// These are not node core modules
|
|
require_abc(),
|
|
require_fs()
|
|
]);
|
|
|
|
================================================================================
|
|
TestBundlingFilesOutsideOfOutbase
|
|
---------- /out/_.._/_.._/_.._/src/entry.js ----------
|
|
// src/entry.js
|
|
console.log("test");
|
|
|
|
================================================================================
|
|
TestCallImportNamespaceWarning
|
|
---------- /out/js.js ----------
|
|
import * as a from "a";
|
|
import { b } from "b";
|
|
import c from "c";
|
|
a();
|
|
b();
|
|
c();
|
|
new a();
|
|
new b();
|
|
new c();
|
|
|
|
---------- /out/ts.js ----------
|
|
import * as a from "a";
|
|
import { b } from "b";
|
|
import c from "c";
|
|
a();
|
|
b();
|
|
c();
|
|
new a();
|
|
new b();
|
|
new c();
|
|
|
|
---------- /out/jsx-components.js ----------
|
|
import * as A from "a";
|
|
import { B } from "b";
|
|
import C from "c";
|
|
/* @__PURE__ */ React.createElement(A, null);
|
|
/* @__PURE__ */ React.createElement(B, null);
|
|
/* @__PURE__ */ React.createElement(C, null);
|
|
|
|
---------- /out/jsx-a.js ----------
|
|
import * as a from "a";
|
|
/* @__PURE__ */ a("div", null);
|
|
|
|
---------- /out/jsx-b.js ----------
|
|
import { b } from "b";
|
|
/* @__PURE__ */ b("div", null);
|
|
|
|
---------- /out/jsx-c.js ----------
|
|
import c from "c";
|
|
/* @__PURE__ */ c("div", null);
|
|
|
|
================================================================================
|
|
TestCharFreqIgnoreComments
|
|
---------- /out/a.js ----------
|
|
// a.js
|
|
function u(e, t, n, r) {
|
|
return "the argument names must be the same";
|
|
}
|
|
export {
|
|
u as default
|
|
};
|
|
|
|
---------- /out/b.js ----------
|
|
// b.js
|
|
function u(e, t, n, r) {
|
|
return "the argument names must be the same";
|
|
}
|
|
export {
|
|
u as default
|
|
};
|
|
|
|
================================================================================
|
|
TestCommentPreservation
|
|
---------- /out/entry.js ----------
|
|
console.log(
|
|
import(
|
|
/* before */
|
|
foo
|
|
),
|
|
import(
|
|
/* before */
|
|
"foo"
|
|
),
|
|
import(
|
|
foo
|
|
/* after */
|
|
),
|
|
import(
|
|
"foo"
|
|
/* after */
|
|
)
|
|
);
|
|
console.log(
|
|
import(
|
|
"foo",
|
|
/* before */
|
|
{ assert: { type: "json" } }
|
|
),
|
|
import("foo", {
|
|
/* before */
|
|
assert: { type: "json" }
|
|
}),
|
|
import("foo", {
|
|
assert:
|
|
/* before */
|
|
{ type: "json" }
|
|
}),
|
|
import("foo", { assert: {
|
|
/* before */
|
|
type: "json"
|
|
} }),
|
|
import("foo", { assert: {
|
|
type:
|
|
/* before */
|
|
"json"
|
|
} }),
|
|
import("foo", { assert: {
|
|
type: "json"
|
|
/* before */
|
|
} }),
|
|
import("foo", {
|
|
assert: { type: "json" }
|
|
/* before */
|
|
}),
|
|
import(
|
|
"foo",
|
|
{ assert: { type: "json" } }
|
|
/* before */
|
|
)
|
|
);
|
|
console.log(
|
|
require(
|
|
/* before */
|
|
foo
|
|
),
|
|
require(
|
|
/* before */
|
|
"foo"
|
|
),
|
|
require(
|
|
foo
|
|
/* after */
|
|
),
|
|
require(
|
|
"foo"
|
|
/* after */
|
|
)
|
|
);
|
|
console.log(
|
|
require.resolve(
|
|
/* before */
|
|
foo
|
|
),
|
|
require.resolve(
|
|
/* before */
|
|
"foo"
|
|
),
|
|
require.resolve(
|
|
foo
|
|
/* after */
|
|
),
|
|
require.resolve(
|
|
"foo"
|
|
/* after */
|
|
)
|
|
);
|
|
let [
|
|
/* foo */
|
|
] = [
|
|
/* bar */
|
|
];
|
|
let [
|
|
// foo
|
|
] = [
|
|
// bar
|
|
];
|
|
let [
|
|
/*before*/
|
|
...s
|
|
] = [
|
|
/*before*/
|
|
...s
|
|
];
|
|
let [.../*before*/
|
|
s2] = [.../*before*/
|
|
s2];
|
|
let {
|
|
/* foo */
|
|
} = {
|
|
/* bar */
|
|
};
|
|
let {
|
|
// foo
|
|
} = {
|
|
// bar
|
|
};
|
|
let {
|
|
/*before*/
|
|
...s3
|
|
} = {
|
|
/*before*/
|
|
...s3
|
|
};
|
|
let { .../*before*/
|
|
s4 } = { .../*before*/
|
|
s4 };
|
|
let [
|
|
/* before */
|
|
x
|
|
] = [
|
|
/* before */
|
|
x
|
|
];
|
|
let [
|
|
/* before */
|
|
x2
|
|
/* after */
|
|
] = [
|
|
/* before */
|
|
x2
|
|
/* after */
|
|
];
|
|
let [
|
|
// before
|
|
x3
|
|
// after
|
|
] = [
|
|
// before
|
|
x3
|
|
// after
|
|
];
|
|
let {
|
|
/* before */
|
|
y
|
|
} = {
|
|
/* before */
|
|
y
|
|
};
|
|
let {
|
|
/* before */
|
|
y2
|
|
/* after */
|
|
} = {
|
|
/* before */
|
|
y2
|
|
/* after */
|
|
};
|
|
let {
|
|
// before
|
|
y3
|
|
// after
|
|
} = {
|
|
// before
|
|
y3
|
|
// after
|
|
};
|
|
let {
|
|
/* before */
|
|
[y4]: y4
|
|
} = {
|
|
/* before */
|
|
[y4]: y4
|
|
};
|
|
let { [
|
|
/* before */
|
|
y5
|
|
]: y5 } = { [
|
|
/* before */
|
|
y5
|
|
]: y5 };
|
|
let { [
|
|
y6
|
|
/* after */
|
|
]: y6 } = { [
|
|
y6
|
|
/* after */
|
|
]: y6 };
|
|
foo[
|
|
/* before */
|
|
x
|
|
] = foo[
|
|
/* before */
|
|
x
|
|
];
|
|
foo[
|
|
x
|
|
/* after */
|
|
] = foo[
|
|
x
|
|
/* after */
|
|
];
|
|
console.log(
|
|
// before
|
|
foo,
|
|
/* comment before */
|
|
bar
|
|
// comment after
|
|
);
|
|
console.log([
|
|
// before
|
|
foo,
|
|
/* comment before */
|
|
bar
|
|
// comment after
|
|
]);
|
|
console.log({
|
|
// before
|
|
foo,
|
|
/* comment before */
|
|
bar
|
|
// comment after
|
|
});
|
|
console.log(class {
|
|
// before
|
|
foo;
|
|
/* comment before */
|
|
bar;
|
|
// comment after
|
|
});
|
|
console.log(
|
|
() => {
|
|
return (
|
|
/* foo */
|
|
null
|
|
);
|
|
},
|
|
() => {
|
|
throw (
|
|
/* foo */
|
|
null
|
|
);
|
|
},
|
|
() => {
|
|
return (
|
|
/* foo */
|
|
null + 1
|
|
);
|
|
},
|
|
() => {
|
|
throw (
|
|
/* foo */
|
|
null + 1
|
|
);
|
|
},
|
|
() => {
|
|
return (
|
|
// foo
|
|
null + 1
|
|
);
|
|
},
|
|
() => {
|
|
throw (
|
|
// foo
|
|
null + 1
|
|
);
|
|
}
|
|
);
|
|
console.log(
|
|
/*a*/
|
|
a ? (
|
|
/*b*/
|
|
b
|
|
) : (
|
|
/*c*/
|
|
c
|
|
),
|
|
a ? b : c
|
|
);
|
|
for (
|
|
/*foo*/
|
|
a;
|
|
;
|
|
) ;
|
|
for (
|
|
;
|
|
/*foo*/
|
|
a;
|
|
) ;
|
|
for (
|
|
;
|
|
;
|
|
/*foo*/
|
|
a
|
|
) ;
|
|
for (
|
|
/*foo*/
|
|
a in b
|
|
) ;
|
|
for (
|
|
a in
|
|
/*foo*/
|
|
b
|
|
) ;
|
|
for (
|
|
/*foo*/
|
|
a of b
|
|
) ;
|
|
for (
|
|
a of
|
|
/*foo*/
|
|
b
|
|
) ;
|
|
if (
|
|
/*foo*/
|
|
a
|
|
) ;
|
|
with (
|
|
/*foo*/
|
|
a
|
|
) ;
|
|
while (
|
|
/*foo*/
|
|
a
|
|
) ;
|
|
do {
|
|
} while (
|
|
/*foo*/
|
|
a
|
|
);
|
|
switch (
|
|
/*foo*/
|
|
a
|
|
) {
|
|
}
|
|
|
|
================================================================================
|
|
TestCommentPreservationImportAssertions
|
|
---------- /out/entry.js ----------
|
|
// entry.jsx
|
|
import "foo" assert { type: "json" };
|
|
import "foo" assert { type: "json" };
|
|
import "foo" assert {
|
|
/* before */
|
|
type: "json"
|
|
};
|
|
import "foo" assert {
|
|
type:
|
|
/* before */
|
|
"json"
|
|
};
|
|
import "foo" assert {
|
|
type: "json"
|
|
/* before */
|
|
};
|
|
|
|
================================================================================
|
|
TestCommentPreservationPreserveJSX
|
|
---------- /out/entry.js ----------
|
|
// entry.jsx
|
|
console.log(
|
|
<div x={
|
|
/*before*/
|
|
x
|
|
} />,
|
|
<div x={
|
|
/*before*/
|
|
"y"
|
|
} />,
|
|
<div x={
|
|
/*before*/
|
|
true
|
|
} />,
|
|
<div {
|
|
/*before*/
|
|
...x
|
|
} />,
|
|
<div>{
|
|
/*before*/
|
|
x
|
|
}</div>,
|
|
<>{
|
|
/*before*/
|
|
x
|
|
}</>,
|
|
// Comments on absent AST nodes
|
|
<div>before{}after</div>,
|
|
<div>before{
|
|
/* comment 1 */
|
|
/* comment 2 */
|
|
}after</div>,
|
|
<div>before{
|
|
// comment 1
|
|
// comment 2
|
|
}after</div>,
|
|
<>before{}after</>,
|
|
<>before{
|
|
/* comment 1 */
|
|
/* comment 2 */
|
|
}after</>,
|
|
<>before{
|
|
// comment 1
|
|
// comment 2
|
|
}after</>
|
|
);
|
|
|
|
================================================================================
|
|
TestCommentPreservationTransformJSX
|
|
---------- /out/entry.js ----------
|
|
// entry.jsx
|
|
console.log(
|
|
/* @__PURE__ */ React.createElement("div", { x: (
|
|
/*before*/
|
|
x
|
|
) }),
|
|
/* @__PURE__ */ React.createElement("div", { x: (
|
|
/*before*/
|
|
"y"
|
|
) }),
|
|
/* @__PURE__ */ React.createElement("div", { x: (
|
|
/*before*/
|
|
true
|
|
) }),
|
|
/* @__PURE__ */ React.createElement("div", {
|
|
/*before*/
|
|
...x
|
|
}),
|
|
/* @__PURE__ */ React.createElement(
|
|
"div",
|
|
null,
|
|
/*before*/
|
|
x
|
|
),
|
|
/* @__PURE__ */ React.createElement(
|
|
React.Fragment,
|
|
null,
|
|
/*before*/
|
|
x
|
|
),
|
|
// Comments on absent AST nodes
|
|
/* @__PURE__ */ React.createElement("div", null, "before", "after"),
|
|
/* @__PURE__ */ React.createElement("div", null, "before", "after"),
|
|
/* @__PURE__ */ React.createElement("div", null, "before", "after"),
|
|
/* @__PURE__ */ React.createElement(React.Fragment, null, "before", "after"),
|
|
/* @__PURE__ */ React.createElement(React.Fragment, null, "before", "after"),
|
|
/* @__PURE__ */ React.createElement(React.Fragment, null, "before", "after")
|
|
);
|
|
|
|
================================================================================
|
|
TestCommonJSFromES6
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var foo_exports = {};
|
|
__export(foo_exports, {
|
|
foo: () => foo
|
|
});
|
|
function foo() {
|
|
return "foo";
|
|
}
|
|
var init_foo = __esm({
|
|
"foo.js"() {
|
|
}
|
|
});
|
|
|
|
// bar.js
|
|
var bar_exports = {};
|
|
__export(bar_exports, {
|
|
bar: () => bar
|
|
});
|
|
function bar() {
|
|
return "bar";
|
|
}
|
|
var init_bar = __esm({
|
|
"bar.js"() {
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var { foo: foo2 } = (init_foo(), __toCommonJS(foo_exports));
|
|
console.log(foo2(), bar2());
|
|
var { bar: bar2 } = (init_bar(), __toCommonJS(bar_exports));
|
|
|
|
================================================================================
|
|
TestConditionalImport
|
|
---------- /out/a.js ----------
|
|
// import.js
|
|
var require_import = __commonJS({
|
|
"import.js"(exports) {
|
|
exports.foo = 213;
|
|
}
|
|
});
|
|
|
|
// a.js
|
|
x ? import("a") : y ? Promise.resolve().then(() => __toESM(require_import())) : import("c");
|
|
|
|
---------- /out/b.js ----------
|
|
// import.js
|
|
var require_import = __commonJS({
|
|
"import.js"(exports) {
|
|
exports.foo = 213;
|
|
}
|
|
});
|
|
|
|
// b.js
|
|
x ? y ? import("a") : Promise.resolve().then(() => __toESM(require_import())) : import(c);
|
|
|
|
================================================================================
|
|
TestConditionalRequire
|
|
---------- /out.js ----------
|
|
// b.js
|
|
var require_b = __commonJS({
|
|
"b.js"(exports) {
|
|
exports.foo = 213;
|
|
}
|
|
});
|
|
|
|
// a.js
|
|
x ? __require("a") : y ? require_b() : __require("c");
|
|
x ? y ? __require("a") : require_b() : __require(c);
|
|
|
|
================================================================================
|
|
TestConditionalRequireResolve
|
|
---------- /out.js ----------
|
|
// a.js
|
|
x ? require.resolve("a") : y ? require.resolve("b") : require.resolve("c");
|
|
x ? y ? require.resolve("a") : require.resolve("b") : require.resolve(c);
|
|
|
|
================================================================================
|
|
TestConstWithLet
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
console.log(1);
|
|
console.log(2);
|
|
unknownFn(3);
|
|
for (let c = x; ; ) console.log(c);
|
|
for (let d in x) console.log(d);
|
|
for (let e of x) console.log(e);
|
|
|
|
================================================================================
|
|
TestConstWithLetNoBundle
|
|
---------- /out.js ----------
|
|
const a = 1;
|
|
console.log(1), console.log(2), unknownFn(3);
|
|
for (const c = x; ; ) console.log(c);
|
|
for (const d in x) console.log(d);
|
|
for (const e of x) console.log(e);
|
|
|
|
================================================================================
|
|
TestConstWithLetNoMangle
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var a = 1;
|
|
console.log(a);
|
|
if (true) {
|
|
const b = 2;
|
|
console.log(b);
|
|
}
|
|
for (const c = x; ; ) console.log(c);
|
|
for (const d in x) console.log(d);
|
|
for (const e of x) console.log(e);
|
|
|
|
================================================================================
|
|
TestDecoratorPrintingCJS
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var import_somewhere = require("somewhere");
|
|
_ = class {
|
|
#bar;
|
|
classes = [
|
|
class {
|
|
@import_somewhere.imported @((0, import_somewhere.imported)()) imported;
|
|
},
|
|
class {
|
|
@unbound @unbound() unbound;
|
|
},
|
|
class {
|
|
@(123) @(123()) constant;
|
|
},
|
|
class {
|
|
@(void 0) @((void 0)()) undef;
|
|
},
|
|
class {
|
|
@(element[access]) indexed;
|
|
},
|
|
class {
|
|
@foo.#bar private;
|
|
},
|
|
class {
|
|
@(foo["ヿ"]) unicode;
|
|
},
|
|
class {
|
|
@(() => {
|
|
}) arrow;
|
|
}
|
|
];
|
|
};
|
|
|
|
================================================================================
|
|
TestDecoratorPrintingESM
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import { imported } from "somewhere";
|
|
_ = class {
|
|
#bar;
|
|
classes = [
|
|
class {
|
|
@imported @imported() imported;
|
|
},
|
|
class {
|
|
@unbound @unbound() unbound;
|
|
},
|
|
class {
|
|
@(123) @(123()) constant;
|
|
},
|
|
class {
|
|
@(void 0) @((void 0)()) undef;
|
|
},
|
|
class {
|
|
@(element[access]) indexed;
|
|
},
|
|
class {
|
|
@foo.#bar private;
|
|
},
|
|
class {
|
|
@(foo["ヿ"]) unicode;
|
|
},
|
|
class {
|
|
@(() => {
|
|
}) arrow;
|
|
}
|
|
];
|
|
};
|
|
|
|
================================================================================
|
|
TestDefineAssignWarning
|
|
---------- /out/read.js ----------
|
|
// read.js
|
|
console.log(
|
|
[null, null, null],
|
|
[ident, ident, ident],
|
|
[dot.chain, dot.chain, dot.chain]
|
|
);
|
|
|
|
---------- /out/write.js ----------
|
|
// write.js
|
|
console.log(
|
|
[a = 0, b.c = 0, b["c"] = 0],
|
|
[ident = 0, ident = 0, ident = 0],
|
|
[dot.chain = 0, dot.chain = 0, dot.chain = 0]
|
|
);
|
|
|
|
================================================================================
|
|
TestDefineImportMeta
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
console.log(
|
|
// These should be fully substituted
|
|
1,
|
|
2,
|
|
3,
|
|
// Should just substitute "import.meta.foo"
|
|
2 .baz,
|
|
// This should not be substituted
|
|
1 .bar
|
|
);
|
|
|
|
================================================================================
|
|
TestDefineImportMetaES5
|
|
---------- /out/replaced.js ----------
|
|
// replaced.js
|
|
console.log(1);
|
|
|
|
---------- /out/kept.js ----------
|
|
// kept.js
|
|
var import_meta = {};
|
|
console.log(import_meta.y);
|
|
|
|
---------- /out/dead-code.js ----------
|
|
|
|
================================================================================
|
|
TestDefineInfiniteLoopIssue2407
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
b.c();
|
|
y();
|
|
|
|
================================================================================
|
|
TestDefineOptionalChain
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
console.log([
|
|
1,
|
|
1,
|
|
1
|
|
], [
|
|
1,
|
|
1,
|
|
1
|
|
], [
|
|
a[b][c],
|
|
a?.[b][c],
|
|
a[b]?.[c]
|
|
]);
|
|
|
|
================================================================================
|
|
TestDefineOptionalChainLowered
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var _a;
|
|
console.log([
|
|
1,
|
|
1,
|
|
1
|
|
], [
|
|
1,
|
|
1,
|
|
1
|
|
], [
|
|
a[b][c],
|
|
a == null ? void 0 : a[b][c],
|
|
(_a = a[b]) == null ? void 0 : _a[c]
|
|
]);
|
|
|
|
================================================================================
|
|
TestDefineOptionalChainPanicIssue3551
|
|
---------- /out/id-define.js ----------
|
|
// id-define.js
|
|
1?.y.z;
|
|
(1?.y).z;
|
|
1?.y["z"];
|
|
(1?.y)["z"];
|
|
1?.y();
|
|
(1?.y)();
|
|
1?.y.z();
|
|
(1?.y).z();
|
|
1?.y["z"]();
|
|
(1?.y)["z"]();
|
|
delete 1?.y.z;
|
|
delete (1?.y).z;
|
|
delete 1?.y["z"];
|
|
delete (1?.y)["z"];
|
|
|
|
---------- /out/dot-define.js ----------
|
|
// dot-define.js
|
|
1 .c;
|
|
1 .c;
|
|
1["c"];
|
|
1["c"];
|
|
1();
|
|
1();
|
|
1 .c();
|
|
1 .c();
|
|
1["c"]();
|
|
1["c"]();
|
|
delete 1 .c;
|
|
delete 1 .c;
|
|
delete 1["c"];
|
|
delete 1["c"];
|
|
|
|
================================================================================
|
|
TestDefineThis
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
ok(
|
|
// These should be fully substituted
|
|
1,
|
|
2,
|
|
3,
|
|
// Should just substitute "this.foo"
|
|
2 .baz,
|
|
// This should not be substituted
|
|
1 .bar
|
|
);
|
|
(() => {
|
|
ok(
|
|
1,
|
|
2,
|
|
3,
|
|
2 .baz,
|
|
1 .bar
|
|
);
|
|
})();
|
|
(function() {
|
|
doNotSubstitute(
|
|
this,
|
|
this.foo,
|
|
this.foo.bar,
|
|
this.foo.baz,
|
|
this.bar
|
|
);
|
|
})();
|
|
|
|
================================================================================
|
|
TestDirectEvalTaintingNoBundle
|
|
---------- /out.js ----------
|
|
function test1() {
|
|
function add(n, t) {
|
|
return n + t;
|
|
}
|
|
eval("add(1, 2)");
|
|
}
|
|
function test2() {
|
|
function n(t, e) {
|
|
return t + e;
|
|
}
|
|
(0, eval)("add(1, 2)");
|
|
}
|
|
function test3() {
|
|
function n(t, e) {
|
|
return t + e;
|
|
}
|
|
}
|
|
function test4(eval) {
|
|
function add(n, t) {
|
|
return n + t;
|
|
}
|
|
eval("add(1, 2)");
|
|
}
|
|
function test5() {
|
|
function containsDirectEval() {
|
|
eval();
|
|
}
|
|
if (true) {
|
|
var shouldNotBeRenamed;
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestDotImport
|
|
---------- /out.js ----------
|
|
// index.js
|
|
var require_index = __commonJS({
|
|
"index.js"(exports) {
|
|
exports.x = 123;
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var import__ = __toESM(require_index());
|
|
console.log(import__.x);
|
|
|
|
================================================================================
|
|
TestDuplicatePropertyWarning
|
|
---------- /out/entry.js ----------
|
|
// outside-node-modules/index.jsx
|
|
console.log({ a: 1, a: 2 }, /* @__PURE__ */ React.createElement("div", { a2: true, a2: 3 }));
|
|
|
|
// node_modules/inside-node-modules/index.jsx
|
|
console.log({ c: 1, c: 2 }, /* @__PURE__ */ React.createElement("div", { c2: true, c2: 3 }));
|
|
|
|
================================================================================
|
|
TestDynamicImportWithExpressionCJS
|
|
---------- /out.js ----------
|
|
import("foo");
|
|
import(foo());
|
|
|
|
================================================================================
|
|
TestDynamicImportWithTemplateIIFE
|
|
---------- /out.js ----------
|
|
(() => {
|
|
// b.js
|
|
var require_b = __commonJS({
|
|
"b.js"(exports) {
|
|
exports.x = 123;
|
|
}
|
|
});
|
|
|
|
// a.js
|
|
Promise.resolve().then(() => __toESM(require_b())).then((ns) => console.log(ns));
|
|
Promise.resolve().then(() => __toESM(require_b())).then((ns) => console.log(ns));
|
|
})();
|
|
|
|
================================================================================
|
|
TestES6FromCommonJS
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"(exports) {
|
|
exports.foo = function() {
|
|
return "foo";
|
|
};
|
|
}
|
|
});
|
|
|
|
// bar.js
|
|
var require_bar = __commonJS({
|
|
"bar.js"(exports) {
|
|
exports.bar = function() {
|
|
return "bar";
|
|
};
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var import_foo = __toESM(require_foo());
|
|
var import_bar = __toESM(require_bar());
|
|
console.log((0, import_foo.foo)(), (0, import_bar.bar)());
|
|
|
|
================================================================================
|
|
TestEmptyExportClauseBundleAsCommonJSIssue910
|
|
---------- /out.js ----------
|
|
// types.mjs
|
|
var types_exports = {};
|
|
var init_types = __esm({
|
|
"types.mjs"() {
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
console.log((init_types(), __toCommonJS(types_exports)));
|
|
|
|
================================================================================
|
|
TestEntryNamesChunkNamesExtPlaceholder
|
|
---------- /out/main/js/entry1-4X3SO762.js ----------
|
|
import "../../common/js/chunk-XHGYOYUR.js";
|
|
|
|
// src/entries/entry1.js
|
|
console.log("entry1");
|
|
|
|
---------- /out/main/js/entry2-URQRHZS5.js ----------
|
|
import "../../common/js/chunk-XHGYOYUR.js";
|
|
|
|
// src/entries/entry2.js
|
|
console.log("entry2");
|
|
|
|
---------- /out/common/js/chunk-XHGYOYUR.js ----------
|
|
// src/lib/shared.js
|
|
console.log("shared");
|
|
|
|
---------- /out/main/css/entry1-3JZGIUSL.css ----------
|
|
/* src/entries/entry1.css */
|
|
a:after {
|
|
content: "entry1";
|
|
}
|
|
|
|
---------- /out/main/css/entry2-NXZBPPIA.css ----------
|
|
/* src/entries/entry2.css */
|
|
a:after {
|
|
content: "entry2";
|
|
}
|
|
|
|
================================================================================
|
|
TestEntryNamesNoSlashAfterDir
|
|
---------- /out/app1-main.js ----------
|
|
console.log(1);
|
|
|
|
---------- /out/app2-main.js ----------
|
|
console.log(2);
|
|
|
|
---------- /out/-customPath.js ----------
|
|
console.log(3);
|
|
|
|
================================================================================
|
|
TestEntryNamesNonPortableCharacter
|
|
---------- /out/entry1-_.js ----------
|
|
console.log(1);
|
|
|
|
---------- /out/entry2-*.js ----------
|
|
console.log(2);
|
|
|
|
================================================================================
|
|
TestExportChain
|
|
---------- /out.js ----------
|
|
// bar.js
|
|
var c = 123;
|
|
export {
|
|
c as a
|
|
};
|
|
|
|
================================================================================
|
|
TestExportFSNode
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import * as fs from "fs";
|
|
import { readFileSync } from "fs";
|
|
export {
|
|
fs,
|
|
readFileSync
|
|
};
|
|
|
|
================================================================================
|
|
TestExportFSNodeInCommonJSModule
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import * as fs from "fs";
|
|
import { readFileSync } from "fs";
|
|
var require_entry = __commonJS({
|
|
"entry.js"(exports) {
|
|
exports.fs = fs;
|
|
exports.readFileSync = readFileSync;
|
|
exports.foo = 123;
|
|
}
|
|
});
|
|
export default require_entry();
|
|
|
|
================================================================================
|
|
TestExportFormsCommonJS
|
|
---------- /out.js ----------
|
|
// a.js
|
|
var abc;
|
|
var init_a = __esm({
|
|
"a.js"() {
|
|
abc = void 0;
|
|
}
|
|
});
|
|
|
|
// b.js
|
|
var b_exports = {};
|
|
__export(b_exports, {
|
|
xyz: () => xyz
|
|
});
|
|
var xyz;
|
|
var init_b = __esm({
|
|
"b.js"() {
|
|
xyz = null;
|
|
}
|
|
});
|
|
|
|
// commonjs.js
|
|
var commonjs_exports = {};
|
|
__export(commonjs_exports, {
|
|
C: () => Class,
|
|
Class: () => Class,
|
|
Fn: () => Fn,
|
|
abc: () => abc,
|
|
b: () => b_exports,
|
|
c: () => c,
|
|
default: () => commonjs_default,
|
|
l: () => l,
|
|
v: () => v
|
|
});
|
|
function Fn() {
|
|
}
|
|
var commonjs_default, v, l, c, Class;
|
|
var init_commonjs = __esm({
|
|
"commonjs.js"() {
|
|
init_a();
|
|
init_b();
|
|
commonjs_default = 123;
|
|
v = 234;
|
|
l = 234;
|
|
c = 234;
|
|
Class = class {
|
|
};
|
|
}
|
|
});
|
|
|
|
// c.js
|
|
var c_exports = {};
|
|
__export(c_exports, {
|
|
default: () => c_default
|
|
});
|
|
var c_default;
|
|
var init_c = __esm({
|
|
"c.js"() {
|
|
c_default = class {
|
|
};
|
|
}
|
|
});
|
|
|
|
// d.js
|
|
var d_exports = {};
|
|
__export(d_exports, {
|
|
default: () => Foo
|
|
});
|
|
var Foo;
|
|
var init_d = __esm({
|
|
"d.js"() {
|
|
Foo = class {
|
|
};
|
|
Foo.prop = 123;
|
|
}
|
|
});
|
|
|
|
// e.js
|
|
var e_exports = {};
|
|
__export(e_exports, {
|
|
default: () => e_default
|
|
});
|
|
function e_default() {
|
|
}
|
|
var init_e = __esm({
|
|
"e.js"() {
|
|
}
|
|
});
|
|
|
|
// f.js
|
|
var f_exports = {};
|
|
__export(f_exports, {
|
|
default: () => foo
|
|
});
|
|
function foo() {
|
|
}
|
|
var init_f = __esm({
|
|
"f.js"() {
|
|
foo.prop = 123;
|
|
}
|
|
});
|
|
|
|
// g.js
|
|
var g_exports = {};
|
|
__export(g_exports, {
|
|
default: () => g_default
|
|
});
|
|
async function g_default() {
|
|
}
|
|
var init_g = __esm({
|
|
"g.js"() {
|
|
}
|
|
});
|
|
|
|
// h.js
|
|
var h_exports = {};
|
|
__export(h_exports, {
|
|
default: () => foo2
|
|
});
|
|
async function foo2() {
|
|
}
|
|
var init_h = __esm({
|
|
"h.js"() {
|
|
foo2.prop = 123;
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
init_commonjs();
|
|
init_c();
|
|
init_d();
|
|
init_e();
|
|
init_f();
|
|
init_g();
|
|
init_h();
|
|
|
|
================================================================================
|
|
TestExportFormsES6
|
|
---------- /out.js ----------
|
|
// a.js
|
|
var abc = void 0;
|
|
|
|
// b.js
|
|
var b_exports = {};
|
|
__export(b_exports, {
|
|
xyz: () => xyz
|
|
});
|
|
var xyz = null;
|
|
|
|
// entry.js
|
|
var entry_default = 123;
|
|
var v = 234;
|
|
var l = 234;
|
|
var c = 234;
|
|
function Fn() {
|
|
}
|
|
var Class = class {
|
|
};
|
|
export {
|
|
Class as C,
|
|
Class,
|
|
Fn,
|
|
abc,
|
|
b_exports as b,
|
|
c,
|
|
entry_default as default,
|
|
l,
|
|
v
|
|
};
|
|
|
|
================================================================================
|
|
TestExportFormsIIFE
|
|
---------- /out.js ----------
|
|
var globalName = (() => {
|
|
// entry.js
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
C: () => Class,
|
|
Class: () => Class,
|
|
Fn: () => Fn,
|
|
abc: () => abc,
|
|
b: () => b_exports,
|
|
c: () => c,
|
|
default: () => entry_default,
|
|
l: () => l,
|
|
v: () => v
|
|
});
|
|
|
|
// a.js
|
|
var abc = void 0;
|
|
|
|
// b.js
|
|
var b_exports = {};
|
|
__export(b_exports, {
|
|
xyz: () => xyz
|
|
});
|
|
var xyz = null;
|
|
|
|
// entry.js
|
|
var entry_default = 123;
|
|
var v = 234;
|
|
var l = 234;
|
|
var c = 234;
|
|
function Fn() {
|
|
}
|
|
var Class = class {
|
|
};
|
|
return __toCommonJS(entry_exports);
|
|
})();
|
|
|
|
================================================================================
|
|
TestExportFormsWithMinifyIdentifiersAndNoBundle
|
|
---------- /out/a.js ----------
|
|
export default 123;
|
|
export var varName = 234;
|
|
export let letName = 234;
|
|
export const constName = 234;
|
|
function s() {
|
|
}
|
|
class t {
|
|
}
|
|
export { Class as Cls, s as Fn2, t as Cls2 };
|
|
export function Func() {
|
|
}
|
|
export class Class {
|
|
}
|
|
export * from "./a";
|
|
export * as fromB from "./b";
|
|
|
|
---------- /out/b.js ----------
|
|
export default function() {
|
|
}
|
|
|
|
---------- /out/c.js ----------
|
|
export default function o() {
|
|
}
|
|
|
|
---------- /out/d.js ----------
|
|
export default class {
|
|
}
|
|
|
|
---------- /out/e.js ----------
|
|
export default class o {
|
|
}
|
|
|
|
================================================================================
|
|
TestExportSpecialName
|
|
---------- /out.js ----------
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
["__proto__"]: () => __proto__
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
const __proto__ = 123;
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
0 && (module.exports = {
|
|
__proto__
|
|
});
|
|
|
|
================================================================================
|
|
TestExportSpecialNameBundle
|
|
---------- /out.js ----------
|
|
// lib.mjs
|
|
var lib_exports = {};
|
|
__export(lib_exports, {
|
|
["__proto__"]: () => __proto__
|
|
});
|
|
var __proto__;
|
|
var init_lib = __esm({
|
|
"lib.mjs"() {
|
|
__proto__ = 123;
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var lib = (init_lib(), __toCommonJS(lib_exports));
|
|
console.log(lib.__proto__);
|
|
|
|
================================================================================
|
|
TestExportWildcardFSNodeCommonJS
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
foo: () => foo
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
__reExport(entry_exports, require("fs"), module.exports);
|
|
|
|
// internal.js
|
|
var foo = 123;
|
|
|
|
// entry.js
|
|
__reExport(entry_exports, require("./external"), module.exports);
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
0 && (module.exports = {
|
|
foo,
|
|
...require("fs"),
|
|
...require("./external")
|
|
});
|
|
|
|
================================================================================
|
|
TestExportWildcardFSNodeES6
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
export * from "fs";
|
|
|
|
// internal.js
|
|
var foo = 123;
|
|
|
|
// entry.js
|
|
export * from "./external";
|
|
export {
|
|
foo
|
|
};
|
|
|
|
================================================================================
|
|
TestExportsAndModuleFormatCommonJS
|
|
---------- /out.js ----------
|
|
// foo/test.js
|
|
var test_exports = {};
|
|
__export(test_exports, {
|
|
foo: () => foo
|
|
});
|
|
var foo = 123;
|
|
|
|
// bar/test.js
|
|
var test_exports2 = {};
|
|
__export(test_exports2, {
|
|
bar: () => bar
|
|
});
|
|
var bar = 123;
|
|
|
|
// entry.js
|
|
console.log(exports, module.exports, test_exports, test_exports2);
|
|
|
|
================================================================================
|
|
TestExternalES6ConvertedToCommonJS
|
|
---------- /out.js ----------
|
|
// a.js
|
|
var a_exports = {};
|
|
__export(a_exports, {
|
|
ns: () => ns
|
|
});
|
|
import * as ns from "x";
|
|
var init_a = __esm({
|
|
"a.js"() {
|
|
}
|
|
});
|
|
|
|
// b.js
|
|
var b_exports = {};
|
|
__export(b_exports, {
|
|
ns: () => ns2
|
|
});
|
|
import * as ns2 from "x";
|
|
var init_b = __esm({
|
|
"b.js"() {
|
|
}
|
|
});
|
|
|
|
// c.js
|
|
var c_exports = {};
|
|
__export(c_exports, {
|
|
ns: () => ns3
|
|
});
|
|
import * as ns3 from "x";
|
|
var init_c = __esm({
|
|
"c.js"() {
|
|
}
|
|
});
|
|
|
|
// d.js
|
|
var d_exports = {};
|
|
__export(d_exports, {
|
|
ns: () => ns4
|
|
});
|
|
import { ns as ns4 } from "x";
|
|
var init_d = __esm({
|
|
"d.js"() {
|
|
}
|
|
});
|
|
|
|
// e.js
|
|
var e_exports = {};
|
|
import * as x_star from "x";
|
|
var init_e = __esm({
|
|
"e.js"() {
|
|
__reExport(e_exports, x_star);
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
init_a();
|
|
init_b();
|
|
init_c();
|
|
init_d();
|
|
init_e();
|
|
|
|
================================================================================
|
|
TestExternalModuleExclusionPackage
|
|
---------- /out.js ----------
|
|
// index.js
|
|
import { S3 } from "aws-sdk";
|
|
import { DocumentClient } from "aws-sdk/clients/dynamodb";
|
|
var s3 = new S3();
|
|
var dynamodb = new DocumentClient();
|
|
export {
|
|
dynamodb,
|
|
s3
|
|
};
|
|
|
|
================================================================================
|
|
TestExternalModuleExclusionRelativePath
|
|
---------- /Users/user/project/out/index.js ----------
|
|
// Users/user/project/src/nested/folder/test.js
|
|
import foo from "../src/nested/folder/foo.js";
|
|
import out from "./in-out-dir.js";
|
|
import sha256 from "../src/sha256.min.js";
|
|
import config from "/api/config?a=1&b=2";
|
|
console.log(foo, out, sha256, config);
|
|
|
|
================================================================================
|
|
TestExternalPackages
|
|
---------- /out.js ----------
|
|
// project/entry.js
|
|
import "pkg1";
|
|
|
|
// project/file.js
|
|
console.log("file");
|
|
|
|
// project/node_modules/pkg2/index.js
|
|
console.log("pkg2");
|
|
|
|
// project/libs/pkg3.js
|
|
console.log("pkg3");
|
|
|
|
================================================================================
|
|
TestExternalWildcardDoesNotMatchEntryPoint
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import "foo";
|
|
|
|
================================================================================
|
|
TestFalseRequire
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
((require2) => require2("/test.txt"))();
|
|
|
|
================================================================================
|
|
TestHashbangBannerUseStrictOrder
|
|
---------- /out.js ----------
|
|
#! in file
|
|
#! from banner
|
|
"use strict";
|
|
(() => {
|
|
// entry.js
|
|
foo();
|
|
})();
|
|
|
|
================================================================================
|
|
TestHashbangBundle
|
|
---------- /out.js ----------
|
|
#!/usr/bin/env a
|
|
|
|
// code.js
|
|
var code = 0;
|
|
|
|
// entry.js
|
|
process.exit(code);
|
|
|
|
================================================================================
|
|
TestHashbangNoBundle
|
|
---------- /out.js ----------
|
|
#!/usr/bin/env node
|
|
process.exit(0);
|
|
|
|
================================================================================
|
|
TestIIFE_ES5
|
|
---------- /out.js ----------
|
|
(function() {
|
|
// entry.js
|
|
console.log("test");
|
|
})();
|
|
|
|
================================================================================
|
|
TestImportAbsPathAsDir
|
|
---------- /out/entry.js ----------
|
|
// Users/user/project/node_modules/pkg/index.js
|
|
var pkg_default = 123;
|
|
|
|
// Users/user/project/entry.js
|
|
console.log(pkg_default);
|
|
|
|
================================================================================
|
|
TestImportAbsPathAsFile
|
|
---------- /out/entry.js ----------
|
|
// Users/user/project/node_modules/pkg/index.js
|
|
var pkg_default = 123;
|
|
|
|
// Users/user/project/entry.js
|
|
console.log(pkg_default);
|
|
|
|
================================================================================
|
|
TestImportAbsPathWithQueryParameter
|
|
---------- /out/entry.js ----------
|
|
// Users/user/project/file.txt?foo
|
|
var file_default = "This is some text";
|
|
|
|
// Users/user/project/file.txt#bar
|
|
var file_default2 = "This is some text";
|
|
|
|
// Users/user/project/entry.js
|
|
console.log(file_default, file_default2);
|
|
|
|
================================================================================
|
|
TestImportFSNodeCommonJS
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var fs = __toESM(require("fs"));
|
|
var import_fs = __toESM(require("fs"));
|
|
var import_fs2 = require("fs");
|
|
console.log(fs, import_fs2.readFileSync, import_fs.default);
|
|
|
|
================================================================================
|
|
TestImportFSNodeES6
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import * as fs from "fs";
|
|
import defaultValue from "fs";
|
|
import { readFileSync } from "fs";
|
|
console.log(fs, readFileSync, defaultValue);
|
|
|
|
================================================================================
|
|
TestImportFormsWithMinifyIdentifiersAndNoBundle
|
|
---------- /out.js ----------
|
|
import "foo";
|
|
import {} from "foo";
|
|
import * as o from "foo";
|
|
import { a as r, b as m } from "foo";
|
|
import t from "foo";
|
|
import f, * as i from "foo";
|
|
import p, { a2 as s, b as n } from "foo";
|
|
const a = [
|
|
import("foo"),
|
|
function() {
|
|
return import("foo");
|
|
}
|
|
];
|
|
console.log(o, r, m, t, f, i, p, s, n, a);
|
|
|
|
================================================================================
|
|
TestImportFormsWithNoBundle
|
|
---------- /out.js ----------
|
|
import "foo";
|
|
import {} from "foo";
|
|
import * as ns from "foo";
|
|
import { a, b as c } from "foo";
|
|
import def from "foo";
|
|
import def2, * as ns2 from "foo";
|
|
import def3, { a2, b as c3 } from "foo";
|
|
const imp = [
|
|
import("foo"),
|
|
function nested() {
|
|
return import("foo");
|
|
}
|
|
];
|
|
console.log(ns, a, c, def, def2, ns2, def3, a2, c3, imp);
|
|
|
|
================================================================================
|
|
TestImportMetaCommonJS
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var import_meta = {};
|
|
console.log(import_meta.url, import_meta.path);
|
|
|
|
================================================================================
|
|
TestImportMetaES6
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
console.log(import.meta.url, import.meta.path);
|
|
|
|
================================================================================
|
|
TestImportMetaNoBundle
|
|
---------- /out.js ----------
|
|
console.log(import.meta.url, import.meta.path);
|
|
|
|
================================================================================
|
|
TestImportMissingCommonJS
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"(exports) {
|
|
exports.x = 123;
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var import_foo = __toESM(require_foo());
|
|
console.log((0, import_foo.default)(import_foo.x, import_foo.y));
|
|
|
|
================================================================================
|
|
TestImportMissingNeitherES6NorCommonJS
|
|
---------- /out/named.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"() {
|
|
console.log("no exports here");
|
|
}
|
|
});
|
|
|
|
// named.js
|
|
var import_foo = __toESM(require_foo());
|
|
console.log((0, import_foo.default)(void 0, void 0));
|
|
|
|
---------- /out/star.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"() {
|
|
console.log("no exports here");
|
|
}
|
|
});
|
|
|
|
// star.js
|
|
var ns = __toESM(require_foo());
|
|
console.log(ns.default(void 0, void 0));
|
|
|
|
---------- /out/star-capture.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"() {
|
|
console.log("no exports here");
|
|
}
|
|
});
|
|
|
|
// star-capture.js
|
|
var ns = __toESM(require_foo());
|
|
console.log(ns);
|
|
|
|
---------- /out/bare.js ----------
|
|
// foo.js
|
|
console.log("no exports here");
|
|
|
|
---------- /out/require.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"() {
|
|
console.log("no exports here");
|
|
}
|
|
});
|
|
|
|
// require.js
|
|
console.log(require_foo());
|
|
|
|
---------- /out/import.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"() {
|
|
console.log("no exports here");
|
|
}
|
|
});
|
|
|
|
// import.js
|
|
console.log(Promise.resolve().then(() => __toESM(require_foo())));
|
|
|
|
================================================================================
|
|
TestImportNamespaceThisValue
|
|
---------- /out/a.js ----------
|
|
// a.js
|
|
var ns = __toESM(require("external"));
|
|
console.log(ns[foo](), new ns[foo]());
|
|
|
|
---------- /out/b.js ----------
|
|
// b.js
|
|
var ns = __toESM(require("external"));
|
|
console.log(ns.foo(), new ns.foo());
|
|
|
|
---------- /out/c.js ----------
|
|
// c.js
|
|
var import_external = __toESM(require("external"));
|
|
console.log((0, import_external.default)(), (0, import_external.foo)());
|
|
console.log(new import_external.default(), new import_external.foo());
|
|
|
|
================================================================================
|
|
TestImportReExportES6Issue149
|
|
---------- /out.js ----------
|
|
// import.js
|
|
import { h, render } from "preact";
|
|
var p = "p";
|
|
|
|
// in2.jsx
|
|
var Internal = () => /* @__PURE__ */ h(p, null, " Test 2 ");
|
|
|
|
// app.jsx
|
|
var App = () => /* @__PURE__ */ h(p, null, " ", /* @__PURE__ */ h(Internal, null), " T ");
|
|
render(/* @__PURE__ */ h(App, null), document.getElementById("app"));
|
|
|
|
================================================================================
|
|
TestImportThenCatch
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import(name).then(pass, fail);
|
|
import(name).then(pass).catch(fail);
|
|
import(name).catch(fail);
|
|
|
|
================================================================================
|
|
TestImportWithHashInPath
|
|
---------- /out/entry.js ----------
|
|
// file#foo.txt
|
|
var file_foo_default = "foo";
|
|
|
|
// file#bar.txt
|
|
var file_bar_default = "bar";
|
|
|
|
// entry.js
|
|
console.log(file_foo_default, file_bar_default);
|
|
|
|
================================================================================
|
|
TestImportWithHashParameter
|
|
---------- /out/entry.js ----------
|
|
// file.txt#foo
|
|
var file_default = "This is some text";
|
|
|
|
// file.txt#bar
|
|
var file_default2 = "This is some text";
|
|
|
|
// entry.js
|
|
console.log(file_default, file_default2);
|
|
|
|
================================================================================
|
|
TestImportWithQueryParameter
|
|
---------- /out/entry.js ----------
|
|
// file.txt?foo
|
|
var file_default = "This is some text";
|
|
|
|
// file.txt?bar
|
|
var file_default2 = "This is some text";
|
|
|
|
// entry.js
|
|
console.log(file_default, file_default2);
|
|
|
|
================================================================================
|
|
TestIndirectRequireMessage
|
|
---------- /out/array.js ----------
|
|
|
|
---------- /out/assign.js ----------
|
|
// assign.js
|
|
__require = x;
|
|
|
|
---------- /out/dot.js ----------
|
|
// dot.js
|
|
var x = __require.cache;
|
|
|
|
---------- /out/ident.js ----------
|
|
|
|
---------- /out/index.js ----------
|
|
// index.js
|
|
var x = __require[cache];
|
|
|
|
================================================================================
|
|
TestInject
|
|
---------- /out.js ----------
|
|
// inject.js
|
|
var obj = {};
|
|
var sideEffects = console.log("side effects");
|
|
|
|
// node_modules/unused/index.js
|
|
console.log("This is unused but still has side effects");
|
|
|
|
// replacement.js
|
|
var replace = {
|
|
test() {
|
|
}
|
|
};
|
|
var replace2 = {
|
|
test() {
|
|
}
|
|
};
|
|
|
|
// re-export.js
|
|
var import_external_pkg = require("external-pkg");
|
|
var import_external_pkg2 = require("external-pkg2");
|
|
|
|
// entry.js
|
|
var sideEffects2 = console.log("this should be renamed");
|
|
var collide = 123;
|
|
console.log(obj.prop);
|
|
console.log("defined");
|
|
console.log("should be used");
|
|
console.log("should be used");
|
|
console.log(replace.test);
|
|
console.log(replace2.test);
|
|
console.log(collide);
|
|
console.log(import_external_pkg.re_export);
|
|
console.log(re_export2);
|
|
|
|
================================================================================
|
|
TestInjectDuplicate
|
|
---------- /out.js ----------
|
|
// inject.js
|
|
console.log("injected");
|
|
|
|
================================================================================
|
|
TestInjectImportMeta
|
|
---------- /out.js ----------
|
|
// inject.js
|
|
var foo = 1;
|
|
var bar = 2;
|
|
var baz = 3;
|
|
|
|
// entry.js
|
|
console.log(
|
|
// These should be fully substituted
|
|
foo,
|
|
bar,
|
|
baz,
|
|
// Should just substitute "import.meta.foo"
|
|
bar.baz,
|
|
// This should not be substituted
|
|
foo.bar
|
|
);
|
|
|
|
================================================================================
|
|
TestInjectImportOrder
|
|
---------- /out.js ----------
|
|
// inject-1.js
|
|
import "first";
|
|
console.log("first");
|
|
|
|
// inject-2.js
|
|
import "second";
|
|
console.log("second");
|
|
|
|
// entry.ts
|
|
import "third";
|
|
console.log("third");
|
|
|
|
================================================================================
|
|
TestInjectImportTS
|
|
---------- /out.js ----------
|
|
console.log("must be present");
|
|
console.log("here");
|
|
|
|
================================================================================
|
|
TestInjectJSX
|
|
---------- /out.js ----------
|
|
// inject.js
|
|
function el() {
|
|
}
|
|
function frag() {
|
|
}
|
|
|
|
// entry.jsx
|
|
console.log(/* @__PURE__ */ el(frag, null, /* @__PURE__ */ el("div", null)));
|
|
|
|
================================================================================
|
|
TestInjectJSXDotNames
|
|
---------- /out.js ----------
|
|
// inject.js
|
|
function el() {
|
|
}
|
|
function frag() {
|
|
}
|
|
|
|
// entry.jsx
|
|
console.log(/* @__PURE__ */ el(frag, null, /* @__PURE__ */ el("div", null)));
|
|
|
|
================================================================================
|
|
TestInjectNoBundle
|
|
---------- /out.js ----------
|
|
var obj2 = {};
|
|
var sideEffects2 = console.log("this should be renamed");
|
|
console.log("This is unused but still has side effects");
|
|
var replace2 = {
|
|
test() {
|
|
}
|
|
};
|
|
var replaceDot = {
|
|
test() {
|
|
}
|
|
};
|
|
import { re_export as re_export2 } from "external-pkg";
|
|
import { "reexpo.rt" as reexpo_rt } from "external-pkg2";
|
|
let sideEffects = console.log("side effects");
|
|
let collide = 123;
|
|
console.log(obj2.prop);
|
|
console.log("defined");
|
|
console.log("should be used");
|
|
console.log("should be used");
|
|
console.log(replace2.test);
|
|
console.log(replaceDot.test);
|
|
console.log(collide);
|
|
console.log(re_export2);
|
|
console.log(reexpo_rt);
|
|
|
|
================================================================================
|
|
TestInjectWithDefine
|
|
---------- /out.js ----------
|
|
// inject.js
|
|
var second = "success (identifier)";
|
|
var second2 = "success (dot name)";
|
|
|
|
// entry.js
|
|
console.log(
|
|
// define wins over inject
|
|
true,
|
|
true,
|
|
// define forwards to inject
|
|
second === "success (identifier)",
|
|
second2 === "success (dot name)"
|
|
);
|
|
|
|
================================================================================
|
|
TestInjectWithStringExportNameBundle
|
|
---------- /out.js ----------
|
|
// inject.js
|
|
var old = console.log;
|
|
var fn = (...args) => old.apply(console, ["log:"].concat(args));
|
|
|
|
// entry.js
|
|
fn(test);
|
|
fn(test);
|
|
fn(test);
|
|
|
|
================================================================================
|
|
TestInjectWithStringExportNameNoBundle
|
|
---------- /out.js ----------
|
|
var old = console.log;
|
|
var fn = (...args) => old.apply(console, ["log:"].concat(args));
|
|
fn(test);
|
|
|
|
================================================================================
|
|
TestInjectWithStringReExportNameNoBundle
|
|
---------- /out.js ----------
|
|
import { fn } from "pkg";
|
|
fn(test);
|
|
|
|
================================================================================
|
|
TestJSXAutomaticImportsCommonJS
|
|
---------- /out.js ----------
|
|
// custom-react.js
|
|
var require_custom_react = __commonJS({
|
|
"custom-react.js"(exports, module) {
|
|
module.exports = {};
|
|
}
|
|
});
|
|
|
|
// entry.jsx
|
|
var import_custom_react = __toESM(require_custom_react());
|
|
import { Fragment as Fragment2, jsx as jsx2 } from "react/jsx-runtime";
|
|
console.log(/* @__PURE__ */ jsx2("div", { jsx: import_custom_react.jsx }), /* @__PURE__ */ jsx2(Fragment2, { children: /* @__PURE__ */ jsx2(import_custom_react.Fragment, {}) }));
|
|
|
|
================================================================================
|
|
TestJSXAutomaticImportsES6
|
|
---------- /out.js ----------
|
|
// custom-react.js
|
|
function jsx() {
|
|
}
|
|
function Fragment() {
|
|
}
|
|
|
|
// entry.jsx
|
|
import { Fragment as Fragment2, jsx as jsx2 } from "react/jsx-runtime";
|
|
console.log(/* @__PURE__ */ jsx2("div", { jsx }), /* @__PURE__ */ jsx2(Fragment2, { children: /* @__PURE__ */ jsx2(Fragment, {}) }));
|
|
|
|
================================================================================
|
|
TestJSXConstantFragments
|
|
---------- /out.js ----------
|
|
// default.jsx
|
|
console.log(/* @__PURE__ */ React.createElement("]", null));
|
|
|
|
// null.jsx
|
|
console.log(/* @__PURE__ */ React.createElement(null, null));
|
|
|
|
// boolean.jsx
|
|
console.log(/* @__PURE__ */ React.createElement(true, null));
|
|
|
|
// number.jsx
|
|
console.log(/* @__PURE__ */ React.createElement(123, null));
|
|
|
|
// string-single-empty.jsx
|
|
console.log(/* @__PURE__ */ React.createElement("", null));
|
|
|
|
// string-double-empty.jsx
|
|
console.log(/* @__PURE__ */ React.createElement("", null));
|
|
|
|
// string-single-punctuation.jsx
|
|
console.log(/* @__PURE__ */ React.createElement("[", null));
|
|
|
|
// string-double-punctuation.jsx
|
|
console.log(/* @__PURE__ */ React.createElement("[", null));
|
|
|
|
// string-template.jsx
|
|
console.log(/* @__PURE__ */ React.createElement("]", null));
|
|
|
|
================================================================================
|
|
TestJSXDevSelfEdgeCases
|
|
---------- /out/class-this.js ----------
|
|
// class-this.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = class {
|
|
foo() {
|
|
return /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "class-this.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 35
|
|
}, this);
|
|
}
|
|
};
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/derived-constructor-arg.js ----------
|
|
// derived-constructor-arg.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = class extends Object {
|
|
constructor(foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "derived-constructor-arg.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 53
|
|
})) {
|
|
super();
|
|
}
|
|
};
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/derived-constructor-field.js ----------
|
|
// derived-constructor-field.tsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = class extends Object {
|
|
constructor() {
|
|
super(...arguments);
|
|
this.foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "derived-constructor-field.tsx",
|
|
lineNumber: 1,
|
|
columnNumber: 41
|
|
}, this);
|
|
}
|
|
};
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/derived-constructor.js ----------
|
|
// derived-constructor.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = class extends Object {
|
|
constructor() {
|
|
super(/* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "derived-constructor.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 57
|
|
}));
|
|
this.foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "derived-constructor.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 77
|
|
});
|
|
}
|
|
};
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/function-this.js ----------
|
|
// function-this.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
function Foo() {
|
|
return /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "function-this.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 32
|
|
}, this);
|
|
}
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/normal-constructor-arg.js ----------
|
|
// normal-constructor-arg.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = class {
|
|
constructor(foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "normal-constructor-arg.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 38
|
|
}, this)) {
|
|
}
|
|
};
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/normal-constructor-field.js ----------
|
|
// normal-constructor-field.tsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = class {
|
|
constructor() {
|
|
this.foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "normal-constructor-field.tsx",
|
|
lineNumber: 1,
|
|
columnNumber: 26
|
|
}, this);
|
|
}
|
|
};
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/normal-constructor.js ----------
|
|
// normal-constructor.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = class {
|
|
constructor() {
|
|
this.foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "normal-constructor.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 47
|
|
}, this);
|
|
}
|
|
};
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/static-field.js ----------
|
|
// static-field.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var _Foo = class _Foo {
|
|
};
|
|
__publicField(_Foo, "foo", /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "static-field.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 33
|
|
}, _Foo));
|
|
var Foo = _Foo;
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/top-level-this-cjs.js ----------
|
|
// top-level-this-cjs.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var require_top_level_this_cjs = __commonJS({
|
|
"top-level-this-cjs.jsx"(exports) {
|
|
exports.foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "top-level-this-cjs.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 15
|
|
});
|
|
}
|
|
});
|
|
export default require_top_level_this_cjs();
|
|
|
|
---------- /out/top-level-this-esm.js ----------
|
|
// top-level-this-esm.jsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "top-level-this-esm.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 18
|
|
});
|
|
if (Foo) {
|
|
foo = /* @__PURE__ */ jsxDEV(Foo, { children: "nested top-level this" }, void 0, false, {
|
|
fileName: "top-level-this-esm.jsx",
|
|
lineNumber: 1,
|
|
columnNumber: 43
|
|
});
|
|
}
|
|
export {
|
|
foo
|
|
};
|
|
|
|
---------- /out/tsconfig.js ----------
|
|
// tsconfig.json
|
|
var compilerOptions = { useDefineForClassFields: false };
|
|
var tsconfig_default = { compilerOptions };
|
|
export {
|
|
compilerOptions,
|
|
tsconfig_default as default
|
|
};
|
|
|
|
---------- /out/typescript-enum.js ----------
|
|
// typescript-enum.tsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo = /* @__PURE__ */ ((Foo2) => {
|
|
Foo2[Foo2["foo"] = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "typescript-enum.tsx",
|
|
lineNumber: 1,
|
|
columnNumber: 25
|
|
})] = "foo";
|
|
return Foo2;
|
|
})(Foo || {});
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
---------- /out/typescript-namespace.js ----------
|
|
// typescript-namespace.tsx
|
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
var Foo;
|
|
((Foo2) => {
|
|
Foo2.foo = /* @__PURE__ */ jsxDEV("div", {}, void 0, false, {
|
|
fileName: "typescript-namespace.tsx",
|
|
lineNumber: 1,
|
|
columnNumber: 41
|
|
});
|
|
})(Foo || (Foo = {}));
|
|
export {
|
|
Foo
|
|
};
|
|
|
|
================================================================================
|
|
TestJSXImportMetaProperty
|
|
---------- /out/factory.js ----------
|
|
// factory.jsx
|
|
var import_meta = {};
|
|
console.log([
|
|
/* @__PURE__ */ import_meta.factory("x", null),
|
|
/* @__PURE__ */ import_meta.factory("x", null)
|
|
]);
|
|
f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ import_meta.factory("y", null),
|
|
/* @__PURE__ */ import_meta.factory("y", null)
|
|
]);
|
|
};
|
|
|
|
---------- /out/fragment.js ----------
|
|
// fragment.jsx
|
|
var import_meta = {};
|
|
console.log([
|
|
/* @__PURE__ */ import_meta.factory(import_meta.fragment, null, "x"),
|
|
/* @__PURE__ */ import_meta.factory(import_meta.fragment, null, "x")
|
|
]), f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ import_meta.factory(import_meta.fragment, null, "y"),
|
|
/* @__PURE__ */ import_meta.factory(import_meta.fragment, null, "y")
|
|
]);
|
|
};
|
|
|
|
================================================================================
|
|
TestJSXImportMetaValue
|
|
---------- /out/factory.js ----------
|
|
// factory.jsx
|
|
var import_meta = {};
|
|
console.log([
|
|
/* @__PURE__ */ import_meta("x", null),
|
|
/* @__PURE__ */ import_meta("x", null)
|
|
]);
|
|
f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ import_meta("y", null),
|
|
/* @__PURE__ */ import_meta("y", null)
|
|
]);
|
|
};
|
|
|
|
---------- /out/fragment.js ----------
|
|
// fragment.jsx
|
|
var import_meta = {};
|
|
console.log([
|
|
/* @__PURE__ */ import_meta(import_meta, null, "x"),
|
|
/* @__PURE__ */ import_meta(import_meta, null, "x")
|
|
]), f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ import_meta(import_meta, null, "y"),
|
|
/* @__PURE__ */ import_meta(import_meta, null, "y")
|
|
]);
|
|
};
|
|
|
|
================================================================================
|
|
TestJSXImportsCommonJS
|
|
---------- /out.js ----------
|
|
// custom-react.js
|
|
var require_custom_react = __commonJS({
|
|
"custom-react.js"(exports, module) {
|
|
module.exports = {};
|
|
}
|
|
});
|
|
|
|
// entry.jsx
|
|
var import_custom_react = __toESM(require_custom_react());
|
|
console.log(/* @__PURE__ */ (0, import_custom_react.elem)("div", null), /* @__PURE__ */ (0, import_custom_react.elem)(import_custom_react.frag, null, "fragment"));
|
|
|
|
================================================================================
|
|
TestJSXImportsES6
|
|
---------- /out.js ----------
|
|
// custom-react.js
|
|
function elem() {
|
|
}
|
|
function frag() {
|
|
}
|
|
|
|
// entry.jsx
|
|
console.log(/* @__PURE__ */ elem("div", null), /* @__PURE__ */ elem(frag, null, "fragment"));
|
|
|
|
================================================================================
|
|
TestJSXThisPropertyCommonJS
|
|
---------- /out/factory.js ----------
|
|
// factory.jsx
|
|
var require_factory = __commonJS({
|
|
"factory.jsx"(exports) {
|
|
console.log([
|
|
/* @__PURE__ */ exports.factory("x", null),
|
|
/* @__PURE__ */ exports.factory("x", null)
|
|
]);
|
|
f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this.factory("y", null),
|
|
/* @__PURE__ */ this.factory("y", null)
|
|
]);
|
|
};
|
|
}
|
|
});
|
|
export default require_factory();
|
|
|
|
---------- /out/fragment.js ----------
|
|
// fragment.jsx
|
|
var require_fragment = __commonJS({
|
|
"fragment.jsx"(exports) {
|
|
console.log([
|
|
/* @__PURE__ */ exports.factory(exports.fragment, null, "x"),
|
|
/* @__PURE__ */ exports.factory(exports.fragment, null, "x")
|
|
]), f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this.factory(this.fragment, null, "y"),
|
|
/* @__PURE__ */ this.factory(this.fragment, null, "y")
|
|
]);
|
|
};
|
|
}
|
|
});
|
|
export default require_fragment();
|
|
|
|
================================================================================
|
|
TestJSXThisPropertyESM
|
|
---------- /out/factory.js ----------
|
|
// factory.jsx
|
|
console.log([
|
|
/* @__PURE__ */ (void 0).factory("x", null),
|
|
/* @__PURE__ */ (void 0).factory("x", null)
|
|
]);
|
|
f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this.factory("y", null),
|
|
/* @__PURE__ */ this.factory("y", null)
|
|
]);
|
|
};
|
|
|
|
---------- /out/fragment.js ----------
|
|
// fragment.jsx
|
|
console.log([
|
|
/* @__PURE__ */ (void 0).factory((void 0).fragment, null, "x"),
|
|
/* @__PURE__ */ (void 0).factory((void 0).fragment, null, "x")
|
|
]), f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this.factory(this.fragment, null, "y"),
|
|
/* @__PURE__ */ this.factory(this.fragment, null, "y")
|
|
]);
|
|
};
|
|
|
|
================================================================================
|
|
TestJSXThisValueCommonJS
|
|
---------- /out/factory.js ----------
|
|
// factory.jsx
|
|
var require_factory = __commonJS({
|
|
"factory.jsx"(exports) {
|
|
console.log([
|
|
/* @__PURE__ */ exports("x", null),
|
|
/* @__PURE__ */ exports("x", null)
|
|
]);
|
|
f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this("y", null),
|
|
/* @__PURE__ */ this("y", null)
|
|
]);
|
|
};
|
|
}
|
|
});
|
|
export default require_factory();
|
|
|
|
---------- /out/fragment.js ----------
|
|
// fragment.jsx
|
|
var require_fragment = __commonJS({
|
|
"fragment.jsx"(exports) {
|
|
console.log([
|
|
/* @__PURE__ */ exports(exports, null, "x"),
|
|
/* @__PURE__ */ exports(exports, null, "x")
|
|
]), f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this(this, null, "y"),
|
|
/* @__PURE__ */ this(this, null, "y")
|
|
]);
|
|
};
|
|
}
|
|
});
|
|
export default require_fragment();
|
|
|
|
================================================================================
|
|
TestJSXThisValueESM
|
|
---------- /out/factory.js ----------
|
|
// factory.jsx
|
|
console.log([
|
|
/* @__PURE__ */ (void 0)("x", null),
|
|
/* @__PURE__ */ (void 0)("x", null)
|
|
]);
|
|
f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this("y", null),
|
|
/* @__PURE__ */ this("y", null)
|
|
]);
|
|
};
|
|
|
|
---------- /out/fragment.js ----------
|
|
// fragment.jsx
|
|
console.log([
|
|
/* @__PURE__ */ (void 0)(void 0, null, "x"),
|
|
/* @__PURE__ */ (void 0)(void 0, null, "x")
|
|
]), f = function() {
|
|
console.log([
|
|
/* @__PURE__ */ this(this, null, "y"),
|
|
/* @__PURE__ */ this(this, null, "y")
|
|
]);
|
|
};
|
|
|
|
================================================================================
|
|
TestKeepNamesAllForms
|
|
---------- /out/keep.js ----------
|
|
function fn() {
|
|
}
|
|
__name(fn, "fn");
|
|
function foo(fn2 = function() {
|
|
}) {
|
|
}
|
|
__name(foo, "foo");
|
|
var fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn");
|
|
var obj = { "f n": /* @__PURE__ */ __name(function() {
|
|
}, "f n") };
|
|
class Foo0 {
|
|
static {
|
|
__name(this, "Foo0");
|
|
}
|
|
"f n" = /* @__PURE__ */ __name(function() {
|
|
}, "f n");
|
|
}
|
|
class Foo1 {
|
|
static {
|
|
__name(this, "Foo1");
|
|
}
|
|
static "f n" = /* @__PURE__ */ __name(function() {
|
|
}, "f n");
|
|
}
|
|
class Foo2 {
|
|
static {
|
|
__name(this, "Foo2");
|
|
}
|
|
accessor "f n" = /* @__PURE__ */ __name(function() {
|
|
}, "f n");
|
|
}
|
|
class Foo3 {
|
|
static {
|
|
__name(this, "Foo3");
|
|
}
|
|
static accessor "f n" = /* @__PURE__ */ __name(function() {
|
|
}, "f n");
|
|
}
|
|
class Foo4 {
|
|
static {
|
|
__name(this, "Foo4");
|
|
}
|
|
#fn = /* @__PURE__ */ __name(function() {
|
|
}, "#fn");
|
|
}
|
|
class Foo5 {
|
|
static {
|
|
__name(this, "Foo5");
|
|
}
|
|
static #fn = /* @__PURE__ */ __name(function() {
|
|
}, "#fn");
|
|
}
|
|
class Foo6 {
|
|
static {
|
|
__name(this, "Foo6");
|
|
}
|
|
accessor #fn = /* @__PURE__ */ __name(function() {
|
|
}, "#fn");
|
|
}
|
|
class Foo7 {
|
|
static {
|
|
__name(this, "Foo7");
|
|
}
|
|
static accessor #fn = /* @__PURE__ */ __name(function() {
|
|
}, "#fn");
|
|
}
|
|
fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn");
|
|
fn ||= /* @__PURE__ */ __name(function() {
|
|
}, "fn");
|
|
fn &&= /* @__PURE__ */ __name(function() {
|
|
}, "fn");
|
|
fn ??= /* @__PURE__ */ __name(function() {
|
|
}, "fn");
|
|
var [fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn")] = [];
|
|
var { fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn") } = {};
|
|
for (var [fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn")] = []; ; ) ;
|
|
for (var { fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn") } = {}; ; ) ;
|
|
for (var [fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn")] in obj) ;
|
|
for (var { fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn") } in obj) ;
|
|
for (var [fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn")] of obj) ;
|
|
for (var { fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn") } of obj) ;
|
|
function foo([fn2 = /* @__PURE__ */ __name(function() {
|
|
}, "fn")]) {
|
|
}
|
|
__name(foo, "foo");
|
|
function foo({ fn: fn2 = /* @__PURE__ */ __name(function() {
|
|
}, "fn") }) {
|
|
}
|
|
__name(foo, "foo");
|
|
[fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn")] = [];
|
|
({ fn = /* @__PURE__ */ __name(function() {
|
|
}, "fn") } = {});
|
|
|
|
---------- /out/do-not-keep.js ----------
|
|
class Foo0 {
|
|
static {
|
|
__name(this, "Foo0");
|
|
}
|
|
fn() {
|
|
}
|
|
}
|
|
class Foo1 {
|
|
static {
|
|
__name(this, "Foo1");
|
|
}
|
|
*fn() {
|
|
}
|
|
}
|
|
class Foo2 {
|
|
static {
|
|
__name(this, "Foo2");
|
|
}
|
|
get fn() {
|
|
}
|
|
}
|
|
class Foo3 {
|
|
static {
|
|
__name(this, "Foo3");
|
|
}
|
|
set fn(_) {
|
|
}
|
|
}
|
|
class Foo4 {
|
|
static {
|
|
__name(this, "Foo4");
|
|
}
|
|
async fn() {
|
|
}
|
|
}
|
|
class Foo5 {
|
|
static {
|
|
__name(this, "Foo5");
|
|
}
|
|
static fn() {
|
|
}
|
|
}
|
|
class Foo6 {
|
|
static {
|
|
__name(this, "Foo6");
|
|
}
|
|
static *fn() {
|
|
}
|
|
}
|
|
class Foo7 {
|
|
static {
|
|
__name(this, "Foo7");
|
|
}
|
|
static get fn() {
|
|
}
|
|
}
|
|
class Foo8 {
|
|
static {
|
|
__name(this, "Foo8");
|
|
}
|
|
static set fn(_) {
|
|
}
|
|
}
|
|
class Foo9 {
|
|
static {
|
|
__name(this, "Foo9");
|
|
}
|
|
static async fn() {
|
|
}
|
|
}
|
|
class Bar0 {
|
|
static {
|
|
__name(this, "Bar0");
|
|
}
|
|
#fn() {
|
|
}
|
|
}
|
|
class Bar1 {
|
|
static {
|
|
__name(this, "Bar1");
|
|
}
|
|
*#fn() {
|
|
}
|
|
}
|
|
class Bar2 {
|
|
static {
|
|
__name(this, "Bar2");
|
|
}
|
|
get #fn() {
|
|
}
|
|
}
|
|
class Bar3 {
|
|
static {
|
|
__name(this, "Bar3");
|
|
}
|
|
set #fn(_) {
|
|
}
|
|
}
|
|
class Bar4 {
|
|
static {
|
|
__name(this, "Bar4");
|
|
}
|
|
async #fn() {
|
|
}
|
|
}
|
|
class Bar5 {
|
|
static {
|
|
__name(this, "Bar5");
|
|
}
|
|
static #fn() {
|
|
}
|
|
}
|
|
class Bar6 {
|
|
static {
|
|
__name(this, "Bar6");
|
|
}
|
|
static *#fn() {
|
|
}
|
|
}
|
|
class Bar7 {
|
|
static {
|
|
__name(this, "Bar7");
|
|
}
|
|
static get #fn() {
|
|
}
|
|
}
|
|
class Bar8 {
|
|
static {
|
|
__name(this, "Bar8");
|
|
}
|
|
static set #fn(_) {
|
|
}
|
|
}
|
|
class Bar9 {
|
|
static {
|
|
__name(this, "Bar9");
|
|
}
|
|
static async #fn(_) {
|
|
}
|
|
}
|
|
const Baz0 = { fn() {
|
|
} };
|
|
const Baz1 = { *fn() {
|
|
} };
|
|
const Baz2 = { get fn() {
|
|
} };
|
|
const Baz3 = { set fn(_) {
|
|
} };
|
|
const Baz4 = { async fn() {
|
|
} };
|
|
|
|
================================================================================
|
|
TestKeepNamesClassStaticName
|
|
---------- /out.js ----------
|
|
class A {
|
|
static {
|
|
__name(this, "A");
|
|
}
|
|
static foo;
|
|
}
|
|
class B {
|
|
static name;
|
|
}
|
|
class C {
|
|
static name() {
|
|
}
|
|
}
|
|
class D {
|
|
static get name() {
|
|
}
|
|
}
|
|
class E {
|
|
static set name(x) {
|
|
}
|
|
}
|
|
class F {
|
|
static ["name"] = 0;
|
|
}
|
|
let a = class a3 {
|
|
static {
|
|
__name(this, "a");
|
|
}
|
|
static foo;
|
|
};
|
|
let b = class b3 {
|
|
static name;
|
|
};
|
|
let c = class c3 {
|
|
static name() {
|
|
}
|
|
};
|
|
let d = class d3 {
|
|
static get name() {
|
|
}
|
|
};
|
|
let e = class e3 {
|
|
static set name(x) {
|
|
}
|
|
};
|
|
let f = class f3 {
|
|
static ["name"] = 0;
|
|
};
|
|
let a2 = class {
|
|
static {
|
|
__name(this, "a2");
|
|
}
|
|
static foo;
|
|
};
|
|
let b2 = class {
|
|
static name;
|
|
};
|
|
let c2 = class {
|
|
static name() {
|
|
}
|
|
};
|
|
let d2 = class {
|
|
static get name() {
|
|
}
|
|
};
|
|
let e2 = class {
|
|
static set name(x) {
|
|
}
|
|
};
|
|
let f2 = class {
|
|
static ["name"] = 0;
|
|
};
|
|
|
|
================================================================================
|
|
TestKeepNamesTreeShaking
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
function fnStmtKeep() {
|
|
}
|
|
__name(fnStmtKeep, "fnStmtKeep");
|
|
x = fnStmtKeep;
|
|
var fnExprKeep = /* @__PURE__ */ __name(function() {
|
|
}, "keep");
|
|
x = fnExprKeep;
|
|
var clsStmtKeep = class {
|
|
static {
|
|
__name(this, "clsStmtKeep");
|
|
}
|
|
};
|
|
new clsStmtKeep();
|
|
var clsExprKeep = class {
|
|
static {
|
|
__name(this, "keep");
|
|
}
|
|
};
|
|
new clsExprKeep();
|
|
|
|
================================================================================
|
|
TestLegalCommentsAvoidSlashTagEndOfFile
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
var x;
|
|
export {
|
|
x
|
|
};
|
|
//! <script>foo<\/script>
|
|
|
|
---------- /out/entry.css ----------
|
|
/* entry.css */
|
|
x {
|
|
y: z;
|
|
}
|
|
/*! <style>foo<\/style> */
|
|
|
|
================================================================================
|
|
TestLegalCommentsAvoidSlashTagExternal
|
|
---------- /out/entry.js.LEGAL.txt ----------
|
|
//! <script>foo</script>
|
|
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
var x;
|
|
export {
|
|
x
|
|
};
|
|
|
|
---------- /out/entry.css.LEGAL.txt ----------
|
|
/*! <style>foo</style> */
|
|
|
|
---------- /out/entry.css ----------
|
|
/* entry.css */
|
|
x {
|
|
y: z;
|
|
}
|
|
|
|
================================================================================
|
|
TestLegalCommentsAvoidSlashTagInline
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
//! <script>foo<\/script>
|
|
var x;
|
|
export {
|
|
x
|
|
};
|
|
|
|
---------- /out/entry.css ----------
|
|
/* entry.css */
|
|
/*! <style>foo<\/style> */
|
|
x {
|
|
y: z;
|
|
}
|
|
|
|
================================================================================
|
|
TestLegalCommentsEndOfFile
|
|
---------- /out/entry.js ----------
|
|
// a.js
|
|
console.log("in a");
|
|
|
|
// b.js
|
|
console.log("in b");
|
|
|
|
// c.js
|
|
console.log("in c");
|
|
//! Copyright notice 1
|
|
//! Copyright notice 2
|
|
|
|
---------- /out/entry.css ----------
|
|
/* a.css */
|
|
a {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* b.css */
|
|
b {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* c.css */
|
|
c {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* entry.css */
|
|
/*! Copyright notice 1 */
|
|
/*! Copyright notice 2 */
|
|
|
|
---------- /out/empty.js ----------
|
|
|
|
---------- /out/empty.css ----------
|
|
/* empty.css */
|
|
|
|
================================================================================
|
|
TestLegalCommentsEscapeSlashScriptAndStyleEndOfFile
|
|
---------- /out/entry.js ----------
|
|
x;a;
|
|
/*! <\/script> */
|
|
/*! Bundled license information:
|
|
|
|
js-pkg/index.js:
|
|
(*! <\/script> *)
|
|
*/
|
|
|
|
---------- /out/entry.css ----------
|
|
x{y:z}a{b:c}
|
|
/*! <\/style> */
|
|
/*! Bundled license information:
|
|
|
|
css-pkg/index.css:
|
|
(*! <\/style> *)
|
|
*/
|
|
|
|
================================================================================
|
|
TestLegalCommentsEscapeSlashScriptAndStyleExternal
|
|
---------- /out/entry.js.LEGAL.txt ----------
|
|
/*! </script> */
|
|
|
|
Bundled license information:
|
|
|
|
js-pkg/index.js:
|
|
/*! </script> */
|
|
|
|
---------- /out/entry.js ----------
|
|
x;a;
|
|
|
|
---------- /out/entry.css.LEGAL.txt ----------
|
|
/*! </style> */
|
|
|
|
Bundled license information:
|
|
|
|
css-pkg/index.css:
|
|
/*! </style> */
|
|
|
|
---------- /out/entry.css ----------
|
|
x{y:z}a{b:c}
|
|
|
|
================================================================================
|
|
TestLegalCommentsExternal
|
|
---------- /out/entry.js.LEGAL.txt ----------
|
|
//! Copyright notice 1
|
|
//! Copyright notice 2
|
|
|
|
---------- /out/entry.js ----------
|
|
// a.js
|
|
console.log("in a");
|
|
|
|
// b.js
|
|
console.log("in b");
|
|
|
|
// c.js
|
|
console.log("in c");
|
|
|
|
---------- /out/entry.css.LEGAL.txt ----------
|
|
/*! Copyright notice 1 */
|
|
/*! Copyright notice 2 */
|
|
|
|
---------- /out/entry.css ----------
|
|
/* a.css */
|
|
a {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* b.css */
|
|
b {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* c.css */
|
|
c {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* entry.css */
|
|
|
|
---------- /out/empty.js ----------
|
|
|
|
---------- /out/empty.css ----------
|
|
/* empty.css */
|
|
|
|
================================================================================
|
|
TestLegalCommentsInline
|
|
---------- /out/entry.js ----------
|
|
// a.js
|
|
console.log("in a");
|
|
//! Copyright notice 1
|
|
|
|
// b.js
|
|
console.log("in b");
|
|
//! Copyright notice 1
|
|
|
|
// c.js
|
|
console.log("in c");
|
|
//! Copyright notice 2
|
|
|
|
---------- /out/entry.css ----------
|
|
/* a.css */
|
|
a {
|
|
zoom: 2;
|
|
}
|
|
/*! Copyright notice 1 */
|
|
|
|
/* b.css */
|
|
b {
|
|
zoom: 2;
|
|
}
|
|
/*! Copyright notice 1 */
|
|
|
|
/* c.css */
|
|
c {
|
|
zoom: 2;
|
|
}
|
|
/*! Copyright notice 2 */
|
|
|
|
/* entry.css */
|
|
|
|
---------- /out/empty.js ----------
|
|
|
|
---------- /out/empty.css ----------
|
|
/* empty.css */
|
|
|
|
================================================================================
|
|
TestLegalCommentsLinked
|
|
---------- /out/entry.js.LEGAL.txt ----------
|
|
//! Copyright notice 1
|
|
//! Copyright notice 2
|
|
|
|
---------- /out/entry.js ----------
|
|
// a.js
|
|
console.log("in a");
|
|
|
|
// b.js
|
|
console.log("in b");
|
|
|
|
// c.js
|
|
console.log("in c");
|
|
/*! For license information please see entry.js.LEGAL.txt */
|
|
|
|
---------- /out/entry.css.LEGAL.txt ----------
|
|
/*! Copyright notice 1 */
|
|
/*! Copyright notice 2 */
|
|
|
|
---------- /out/entry.css ----------
|
|
/* a.css */
|
|
a {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* b.css */
|
|
b {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* c.css */
|
|
c {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* entry.css */
|
|
/*! For license information please see entry.css.LEGAL.txt */
|
|
|
|
---------- /out/empty.js ----------
|
|
|
|
---------- /out/empty.css ----------
|
|
/* empty.css */
|
|
|
|
================================================================================
|
|
TestLegalCommentsManyEndOfFile
|
|
---------- /out/entry.js ----------
|
|
console.log("in a");console.log("in b");function foo(){console.log("in c");}foo();function bar(){console.log("some-other-pkg")}bar();
|
|
//! Copyright notice 1
|
|
//! Duplicate comment
|
|
/*
|
|
* @license
|
|
* Copyright notice 2
|
|
*/
|
|
// @preserve This is another comment
|
|
/*! Bundled license information:
|
|
|
|
some-other-pkg/js/index.js:
|
|
(*
|
|
* @preserve
|
|
* (c) Evil Software Corp
|
|
*)
|
|
(*! Duplicate third-party comment *)
|
|
|
|
some-pkg/js/index.js:
|
|
(*! (c) Good Software Corp *)
|
|
(*! Duplicate third-party comment *)
|
|
*/
|
|
|
|
---------- /out/entry.css ----------
|
|
a{zoom:2}b{zoom:2}c{zoom:2}.some-other-pkg{zoom:2}
|
|
/*! Copyright notice 1 */
|
|
/*! Duplicate comment */
|
|
/*
|
|
* @license
|
|
* Copyright notice 2
|
|
*/
|
|
/* @preserve This is another comment */
|
|
/*! Bundled license information:
|
|
|
|
some-other-pkg/css/index.css:
|
|
(*! Duplicate third-party comment *)
|
|
(** @preserve
|
|
* (c) Evil Software Corp
|
|
*)
|
|
|
|
some-pkg/css/index.css:
|
|
(*! (c) Good Software Corp *)
|
|
(*! Duplicate third-party comment *)
|
|
*/
|
|
|
|
================================================================================
|
|
TestLegalCommentsManyLinked
|
|
---------- /out/entry.js.LEGAL.txt ----------
|
|
//! Copyright notice 1
|
|
/*
|
|
* @license
|
|
* Copyright notice 2
|
|
*/
|
|
// @preserve This is another comment
|
|
|
|
Bundled license information:
|
|
|
|
some-other-pkg/js/index.js:
|
|
/*
|
|
* @preserve
|
|
* (c) Evil Software Corp
|
|
*/
|
|
|
|
some-pkg/js/index.js:
|
|
//! (c) Good Software Corp
|
|
|
|
---------- /out/entry.js ----------
|
|
console.log("in a");console.log("in b");function foo(){console.log("in c");}foo();function bar(){console.log("some-other-pkg")}bar();
|
|
/*! For license information please see entry.js.LEGAL.txt */
|
|
|
|
---------- /out/entry.css.LEGAL.txt ----------
|
|
/*! Copyright notice 1 */
|
|
/*
|
|
* @license
|
|
* Copyright notice 2
|
|
*/
|
|
/* @preserve This is another comment */
|
|
|
|
Bundled license information:
|
|
|
|
some-other-pkg/css/index.css:
|
|
/** @preserve
|
|
* (c) Evil Software Corp
|
|
*/
|
|
|
|
some-pkg/css/index.css:
|
|
/*! (c) Good Software Corp */
|
|
|
|
---------- /out/entry.css ----------
|
|
a{zoom:2}b{zoom:2}c{zoom:2}.some-other-pkg{zoom:2}
|
|
/*! For license information please see entry.css.LEGAL.txt */
|
|
|
|
================================================================================
|
|
TestLegalCommentsMergeDuplicatesIssue4139
|
|
---------- /out.js ----------
|
|
/*! Bundled license information:
|
|
|
|
pkg/a.js:
|
|
pkg/b.js:
|
|
pkg/d.js:
|
|
(*!-----------------------------------------------------------------------------
|
|
* Copyright (c) Example Corporation. All rights reserved.
|
|
* Version: 1.2.3
|
|
* Released under the MIT license
|
|
* https://example.com/LICENSE.txt
|
|
*-----------------------------------------------------------------------------*)
|
|
|
|
pkg/c.js:
|
|
(*! some other comment *)
|
|
(*!-----------------------------------------------------------------------------
|
|
* Copyright (c) Example Corporation. All rights reserved.
|
|
* Version: 1.2.3
|
|
* Released under the MIT license
|
|
* https://example.com/LICENSE.txt
|
|
*-----------------------------------------------------------------------------*)
|
|
*/
|
|
|
|
================================================================================
|
|
TestLegalCommentsModifyIndent
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
var entry_default = () => {
|
|
/**
|
|
* @preserve
|
|
*/
|
|
};
|
|
export {
|
|
entry_default as default
|
|
};
|
|
|
|
---------- /out/entry.css ----------
|
|
/* entry.css */
|
|
@media (x: y) {
|
|
/**
|
|
* @preserve
|
|
*/
|
|
z {
|
|
zoom: 2;
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestLegalCommentsNoEscapeSlashScriptEndOfFile
|
|
---------- /out/entry.js ----------
|
|
x;a;
|
|
/*! </script> */
|
|
/*! Bundled license information:
|
|
|
|
js-pkg/index.js:
|
|
(*! </script> *)
|
|
*/
|
|
|
|
---------- /out/entry.css ----------
|
|
x{y:z}a{b:c}
|
|
/*! <\/style> */
|
|
/*! Bundled license information:
|
|
|
|
css-pkg/index.css:
|
|
(*! <\/style> *)
|
|
*/
|
|
|
|
================================================================================
|
|
TestLegalCommentsNoEscapeSlashStyleEndOfFile
|
|
---------- /out/entry.js ----------
|
|
x;a;
|
|
/*! <\/script> */
|
|
/*! Bundled license information:
|
|
|
|
js-pkg/index.js:
|
|
(*! <\/script> *)
|
|
*/
|
|
|
|
---------- /out/entry.css ----------
|
|
x{y:z}a{b:c}
|
|
/*! </style> */
|
|
/*! Bundled license information:
|
|
|
|
css-pkg/index.css:
|
|
(*! </style> *)
|
|
*/
|
|
|
|
================================================================================
|
|
TestLegalCommentsNone
|
|
---------- /out/entry.js ----------
|
|
// a.js
|
|
console.log("in a");
|
|
|
|
// b.js
|
|
console.log("in b");
|
|
|
|
// c.js
|
|
console.log("in c");
|
|
|
|
---------- /out/entry.css ----------
|
|
/* a.css */
|
|
a {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* b.css */
|
|
b {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* c.css */
|
|
c {
|
|
zoom: 2;
|
|
}
|
|
|
|
/* entry.css */
|
|
|
|
---------- /out/empty.js ----------
|
|
|
|
---------- /out/empty.css ----------
|
|
/* empty.css */
|
|
|
|
================================================================================
|
|
TestLineLimitMinified
|
|
---------- /out/script.js ----------
|
|
export const SignUpForm=props=>{
|
|
return React.createElement("p",{
|
|
class:"signup"},React.createElement(
|
|
"label",null,"Username: ",React.
|
|
createElement("input",{class:"us\
|
|
ername",type:"text"})),React.createElement(
|
|
"label",null,"Password: ",React.
|
|
createElement("input",{class:"pa\
|
|
ssword",type:"password"})),React.
|
|
createElement("div",{class:"prim\
|
|
ary disabled"},props.buttonText),
|
|
React.createElement("small",null,
|
|
"By signing up, you are agreeing\
|
|
to our ",React.createElement("a",
|
|
{href:"/tos/"},"terms of service"),
|
|
"."))};
|
|
|
|
---------- /out/style.css ----------
|
|
body.light-mode.new-user-segment:not(.logged-in)
|
|
.signup,body.light-mode.new-user-segment:not(.logged-in)
|
|
.login{font:10px/12px "Font 1","\
|
|
Font 2","Font 3","Font 4",sans-serif;
|
|
user-select:none;color:var(--fg,
|
|
rgba(11, 22, 33, 0.5));background:url("\
|
|
data:image/svg+xml;base64,PHN2Zy\
|
|
B3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMC\
|
|
IgeG1sbnM9Imh0dHA6Ly93d3cudzMub3\
|
|
JnLzIwMDAvc3ZnIj4KICA8Y2lyY2xlIG\
|
|
N4PSIxMDAiIGN5PSIxMDAiIHI9IjEwMC\
|
|
IgZmlsbD0iI0ZGQ0YwMCIvPgogIDxwYX\
|
|
RoIGQ9Ik00Ny41IDUyLjVMOTUgMTAwbC\
|
|
00Ny41IDQ3LjVtNjAtOTVMMTU1IDEwMG\
|
|
wtNDcuNSA0Ny41IiBmaWxsPSJub25lIi\
|
|
BzdHJva2U9IiMxOTE5MTkiIHN0cm9rZS\
|
|
13aWR0aD0iMjQiLz4KPC9zdmc+Cg==")}
|
|
|
|
================================================================================
|
|
TestLineLimitNotMinified
|
|
---------- /out/x-TZ25B4WH.file ----------
|
|
...file...
|
|
---------- /out/x-UF3O47Y3.copy ----------
|
|
...copy...
|
|
---------- /out/script.js ----------
|
|
// x.file
|
|
var x_default = "./x-TZ25B4WH.file";
|
|
|
|
// script.jsx
|
|
import copyURL from "./x-UF3O47Y3.copy";
|
|
|
|
// x.data
|
|
var x_default2 = "data:text/plai\
|
|
n;charset=utf-8,...lots of long \
|
|
data...lots of long data...";
|
|
|
|
// script.jsx
|
|
var SignUpForm = (props) => {
|
|
return /* @__PURE__ */ React.createElement(
|
|
"p", { class: "signup" }, /* @__PURE__ */ React.
|
|
createElement("label", null, "\
|
|
Username: ", /* @__PURE__ */ React.
|
|
createElement("input", { class: "\
|
|
username", type: "text" })), /* @__PURE__ */ React.
|
|
createElement("label", null, "\
|
|
Password: ", /* @__PURE__ */ React.
|
|
createElement("input", { class: "\
|
|
password", type: "password" })),
|
|
/* @__PURE__ */ React.createElement(
|
|
"div", { class: "primary disab\
|
|
led" }, props.buttonText), /* @__PURE__ */ React.
|
|
createElement("small", null, "\
|
|
By signing up, you are agreeing \
|
|
to our ", /* @__PURE__ */ React.
|
|
createElement("a", { href: "/t\
|
|
os/" }, "terms of service"), "."),
|
|
/* @__PURE__ */ React.createElement(
|
|
"img", { src: x_default }), /* @__PURE__ */ React.
|
|
createElement("img", { src: copyURL }),
|
|
/* @__PURE__ */ React.createElement(
|
|
"img", { src: x_default2 }));
|
|
};
|
|
export {
|
|
SignUpForm
|
|
};
|
|
|
|
---------- /out/style.css ----------
|
|
/* style.css */
|
|
body.light-mode.new-user-segment:not(.logged-in)
|
|
.signup,
|
|
body.light-mode.new-user-segment:not(.logged-in)
|
|
.login {
|
|
font:
|
|
10px/12px "Font 1",
|
|
"Font 2",
|
|
"Font 3",
|
|
"Font 4",
|
|
sans-serif;
|
|
user-select: none;
|
|
color: var(--fg, rgba(11, 22, 33,
|
|
0.5));
|
|
background: url("data:image/sv\
|
|
g+xml;base64,PHN2ZyB3aWR0aD0iMjA\
|
|
wIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh\
|
|
0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Z\
|
|
nIj4KICA8Y2lyY2xlIGN4PSIxMDAiIGN\
|
|
5PSIxMDAiIHI9IjEwMCIgZmlsbD0iI0Z\
|
|
GQ0YwMCIvPgogIDxwYXRoIGQ9Ik00Ny4\
|
|
1IDUyLjVMOTUgMTAwbC00Ny41IDQ3LjV\
|
|
tNjAtOTVMMTU1IDEwMGwtNDcuNSA0Ny4\
|
|
1IiBmaWxsPSJub25lIiBzdHJva2U9IiM\
|
|
xOTE5MTkiIHN0cm9rZS13aWR0aD0iMjQ\
|
|
iLz4KPC9zdmc+Cg==");
|
|
cursor: url("./x-TZ25B4WH.file");
|
|
cursor: url("./x-UF3O47Y3.copy");
|
|
cursor: url("data:text/plain;c\
|
|
harset=utf-8,...lots of long dat\
|
|
a...lots of long data...");
|
|
}
|
|
|
|
================================================================================
|
|
TestMangleNoQuotedProps
|
|
---------- /out/entry.js ----------
|
|
x["_doNotMangleThis"];
|
|
x?.["_doNotMangleThis"];
|
|
x[y ? "_doNotMangleThis" : z];
|
|
x?.[y ? "_doNotMangleThis" : z];
|
|
x[y ? z : "_doNotMangleThis"];
|
|
x?.[y ? z : "_doNotMangleThis"];
|
|
({ "_doNotMangleThis": x });
|
|
(class {
|
|
"_doNotMangleThis" = x;
|
|
});
|
|
var { "_doNotMangleThis": x } = y;
|
|
"_doNotMangleThis" in x;
|
|
(y ? "_doNotMangleThis" : z) in x;
|
|
(y ? z : "_doNotMangleThis") in x;
|
|
|
|
================================================================================
|
|
TestMangleNoQuotedPropsMinifySyntax
|
|
---------- /out/entry.js ----------
|
|
x._doNotMangleThis, x?._doNotMangleThis, x[y ? "_doNotMangleThis" : z], x?.[y ? "_doNotMangleThis" : z], x[y ? z : "_doNotMangleThis"], x?.[y ? z : "_doNotMangleThis"];
|
|
var { _doNotMangleThis: x } = y;
|
|
"_doNotMangleThis" in x, (y ? "_doNotMangleThis" : z) in x, (y ? z : "_doNotMangleThis") in x;
|
|
|
|
================================================================================
|
|
TestMangleProps
|
|
---------- /out/entry1.js ----------
|
|
export function shouldMangle() {
|
|
let foo = {
|
|
a: 0,
|
|
b() {
|
|
}
|
|
};
|
|
let { a: bar_ } = foo;
|
|
({ a: bar_ } = foo);
|
|
class foo_ {
|
|
a = 0;
|
|
b() {
|
|
}
|
|
static a = 0;
|
|
static b() {
|
|
}
|
|
}
|
|
return { a: bar_, c: foo_ };
|
|
}
|
|
export function shouldNotMangle() {
|
|
let foo = {
|
|
"bar_": 0,
|
|
"baz_"() {
|
|
}
|
|
};
|
|
let { "bar_": bar_ } = foo;
|
|
({ "bar_": bar_ } = foo);
|
|
class foo_ {
|
|
"bar_" = 0;
|
|
"baz_"() {
|
|
}
|
|
static "bar_" = 0;
|
|
static "baz_"() {
|
|
}
|
|
}
|
|
return { "bar_": bar_, "foo_": foo_ };
|
|
}
|
|
|
|
---------- /out/entry2.js ----------
|
|
export default {
|
|
a: 0,
|
|
"baz_": 1
|
|
};
|
|
|
|
================================================================================
|
|
TestManglePropsAvoidCollisions
|
|
---------- /out.js ----------
|
|
export default {
|
|
c: 0,
|
|
// Must not be named "a"
|
|
d: 1,
|
|
// Must not be named "b"
|
|
a: 2,
|
|
b: 3,
|
|
__proto__: {}
|
|
// Always avoid mangling this
|
|
};
|
|
|
|
================================================================================
|
|
TestManglePropsImportExport
|
|
---------- /out/esm.js ----------
|
|
export let foo_ = 123;
|
|
import { bar_ } from "xyz";
|
|
|
|
---------- /out/cjs.js ----------
|
|
exports.a = 123;
|
|
let bar_ = require("xyz").b;
|
|
|
|
================================================================================
|
|
TestManglePropsImportExportBundled
|
|
---------- /out/entry-esm.js ----------
|
|
// cjs.js
|
|
var require_cjs = __commonJS({
|
|
"cjs.js"(exports) {
|
|
exports.a = "foo";
|
|
}
|
|
});
|
|
|
|
// esm.js
|
|
var esm_exports = {};
|
|
__export(esm_exports, {
|
|
esm_foo_: () => esm_foo_
|
|
});
|
|
var esm_foo_ = "foo";
|
|
|
|
// entry-esm.js
|
|
var import_cjs = __toESM(require_cjs());
|
|
var cjs = __toESM(require_cjs());
|
|
var bar_ = [
|
|
esm_foo_,
|
|
import_cjs.cjs_foo_,
|
|
esm_exports.b,
|
|
cjs.a
|
|
];
|
|
export {
|
|
bar_
|
|
};
|
|
|
|
---------- /out/entry-cjs.js ----------
|
|
// esm.js
|
|
var esm_exports = {};
|
|
__export(esm_exports, {
|
|
esm_foo_: () => esm_foo_
|
|
});
|
|
var esm_foo_;
|
|
var init_esm = __esm({
|
|
"esm.js"() {
|
|
esm_foo_ = "foo";
|
|
}
|
|
});
|
|
|
|
// cjs.js
|
|
var require_cjs = __commonJS({
|
|
"cjs.js"(exports) {
|
|
exports.a = "foo";
|
|
}
|
|
});
|
|
|
|
// entry-cjs.js
|
|
var require_entry_cjs = __commonJS({
|
|
"entry-cjs.js"(exports) {
|
|
var { b: esm_foo_2 } = (init_esm(), __toCommonJS(esm_exports));
|
|
var { a: cjs_foo_ } = require_cjs();
|
|
exports.c = [
|
|
esm_foo_2,
|
|
cjs_foo_
|
|
];
|
|
}
|
|
});
|
|
export default require_entry_cjs();
|
|
|
|
================================================================================
|
|
TestManglePropsJSXPreserve
|
|
---------- /out.jsx ----------
|
|
let Foo = {
|
|
a(props) {
|
|
return <>{props.b}</>;
|
|
},
|
|
c: "hello, world"
|
|
};
|
|
export default <Foo.a b={Foo.c} />;
|
|
|
|
================================================================================
|
|
TestManglePropsJSXTransform
|
|
---------- /out.js ----------
|
|
let Foo = {
|
|
b(props) {
|
|
return /* @__PURE__ */ Foo.a(Foo.d, null, props.c);
|
|
},
|
|
e: "hello, world",
|
|
a(...args) {
|
|
console.log("createElement", ...args);
|
|
},
|
|
d(...args) {
|
|
console.log("Fragment", ...args);
|
|
}
|
|
};
|
|
export default /* @__PURE__ */ Foo.a(Foo.b, { c: Foo.e });
|
|
|
|
================================================================================
|
|
TestManglePropsJSXTransformNamespace
|
|
---------- /out.js ----------
|
|
export default [
|
|
/* @__PURE__ */ React.createElement(KEEP_THIS_, null),
|
|
/* @__PURE__ */ React.createElement("KEEP:THIS_", null),
|
|
/* @__PURE__ */ React.createElement("foo", { "KEEP:THIS_": true })
|
|
];
|
|
|
|
================================================================================
|
|
TestManglePropsKeyComment
|
|
---------- /out/entry.js ----------
|
|
x(
|
|
/* __KEY__ */
|
|
"_doNotMangleThis",
|
|
/* __KEY__ */
|
|
`_doNotMangleThis`
|
|
);
|
|
x.a(/* @__KEY__ */ "a", /* @__KEY__ */ "a");
|
|
x.b(/* @__KEY__ */ "b", /* @__KEY__ */ "b");
|
|
x.c = /* @__KEY__ */ "c" in y;
|
|
x([
|
|
`foo.${/* @__KEY__ */ "a"} = bar.${/* @__KEY__ */ "b"}`,
|
|
`foo.${/* @__KEY__ */ "notMangled"} = bar.${/* @__KEY__ */ "notMangledEither"}`
|
|
]);
|
|
|
|
================================================================================
|
|
TestManglePropsKeyCommentMinify
|
|
---------- /out/entry.js ----------
|
|
x = class {
|
|
a = 1;
|
|
b = 2;
|
|
_doNotMangleThis = 3;
|
|
}, x = {
|
|
a: 1,
|
|
b: 2,
|
|
_doNotMangleThis: 3
|
|
}, x.a = 1, x.b = 2, x._doNotMangleThis = 3, x([
|
|
`${foo}.a = bar.b`,
|
|
`${foo}.notMangled = bar.notMangledEither`
|
|
]);
|
|
|
|
================================================================================
|
|
TestManglePropsKeywordPropertyMinify
|
|
---------- /out/entry.js ----------
|
|
class Foo{static t={get s(){return 123}}}
|
|
|
|
================================================================================
|
|
TestManglePropsLoweredClassFields
|
|
---------- /out.js ----------
|
|
class Foo {
|
|
constructor() {
|
|
__publicField(this, /* @__KEY__ */ "a", 123);
|
|
}
|
|
}
|
|
__publicField(Foo, /* @__KEY__ */ "b", 234);
|
|
Foo.b = new Foo().a;
|
|
|
|
================================================================================
|
|
TestManglePropsLoweredOptionalChain
|
|
---------- /out.js ----------
|
|
export default function(x) {
|
|
var _a;
|
|
x.a;
|
|
(_a = x.a) == null ? void 0 : _a.call(x);
|
|
x == null ? void 0 : x.a;
|
|
x == null ? void 0 : x.a();
|
|
x == null ? void 0 : x.a.b;
|
|
x == null ? void 0 : x.a.b();
|
|
x == null ? void 0 : x["foo_"].b;
|
|
x == null ? void 0 : x.a["bar_"];
|
|
}
|
|
|
|
================================================================================
|
|
TestManglePropsMinify
|
|
---------- /out/entry1.js ----------
|
|
export function shouldMangle_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX() {
|
|
let X = {
|
|
X: 0,
|
|
Y() {
|
|
}
|
|
}, { X: Y } = X;
|
|
({ X: Y } = X);
|
|
class t {
|
|
X = 0;
|
|
Y() {
|
|
}
|
|
static X = 0;
|
|
static Y() {
|
|
}
|
|
}
|
|
return { X: Y, t };
|
|
}
|
|
export function shouldNotMangle_YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY() {
|
|
let X = {
|
|
bar_: 0,
|
|
baz_() {
|
|
}
|
|
}, { bar_: Y } = X;
|
|
({ bar_: Y } = X);
|
|
class t {
|
|
bar_ = 0;
|
|
baz_() {
|
|
}
|
|
static bar_ = 0;
|
|
static baz_() {
|
|
}
|
|
}
|
|
return { bar_: Y, foo_: t };
|
|
}
|
|
|
|
---------- /out/entry2.js ----------
|
|
export default {
|
|
a: 0,
|
|
baz_: 1
|
|
};
|
|
|
|
================================================================================
|
|
TestManglePropsNoShorthand
|
|
---------- /out.js ----------
|
|
export let yyyyy = ({ y }) => ({ y: y });
|
|
|
|
================================================================================
|
|
TestManglePropsOptionalChain
|
|
---------- /out.js ----------
|
|
export default function(x) {
|
|
x.a;
|
|
x.a?.();
|
|
x?.a;
|
|
x?.a();
|
|
x?.a.b;
|
|
x?.a.b();
|
|
x?.["foo_"].b;
|
|
x?.a["bar_"];
|
|
}
|
|
|
|
================================================================================
|
|
TestManglePropsShorthand
|
|
---------- /out.js ----------
|
|
export let yyyyy = ({ y }) => ({ y });
|
|
|
|
================================================================================
|
|
TestManglePropsSuperCall
|
|
---------- /out.js ----------
|
|
class Foo {
|
|
}
|
|
class Bar extends Foo {
|
|
constructor() {
|
|
super();
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestManglePropsTypeScriptFeatures
|
|
---------- /out/parameter-properties.js ----------
|
|
class Foo {
|
|
constructor(KEEP_FIELD, MANGLE_FIELD_) {
|
|
this.KEEP_FIELD = KEEP_FIELD;
|
|
this.a = MANGLE_FIELD_;
|
|
}
|
|
KEEP_FIELD;
|
|
MANGLE_FIELD_;
|
|
}
|
|
let foo = new Foo();
|
|
console.log(foo.KEEP_FIELD, foo.a);
|
|
|
|
---------- /out/namespace-exports.js ----------
|
|
var ns;
|
|
((ns2) => {
|
|
ns2.c = 1;
|
|
ns2.d = 2;
|
|
ns2.e = 3;
|
|
({ i: { a: ns2.a } } = 4);
|
|
function MANGLE_FUNCTION_() {
|
|
}
|
|
ns2.g = MANGLE_FUNCTION_;
|
|
class MANGLE_CLASS_ {
|
|
}
|
|
ns2.h = MANGLE_CLASS_;
|
|
let MANGLE_NAMESPACE_;
|
|
((MANGLE_NAMESPACE_2) => {
|
|
;
|
|
})(MANGLE_NAMESPACE_ = ns2.f || (ns2.f = {}));
|
|
let MANGLE_ENUM_;
|
|
((MANGLE_ENUM_2) => {
|
|
})(MANGLE_ENUM_ = ns2.b || (ns2.b = {}));
|
|
console.log({
|
|
VAR: ns2.c,
|
|
LET: ns2.d,
|
|
CONST: ns2.e,
|
|
DESTRUCTURING: ns2.a,
|
|
FUNCTION: MANGLE_FUNCTION_,
|
|
CLASS: MANGLE_CLASS_,
|
|
NAMESPACE: MANGLE_NAMESPACE_,
|
|
ENUM: MANGLE_ENUM_
|
|
});
|
|
})(ns || (ns = {}));
|
|
console.log({
|
|
VAR: ns.c,
|
|
LET: ns.d,
|
|
CONST: ns.e,
|
|
DESTRUCTURING: ns.a,
|
|
FUNCTION: ns.g,
|
|
CLASS: ns.h,
|
|
NAMESPACE: ns.f,
|
|
ENUM: ns.b
|
|
});
|
|
((ns2) => {
|
|
console.log({
|
|
VAR: ns2.c,
|
|
LET: ns2.d,
|
|
CONST: ns2.e,
|
|
DESTRUCTURING: ns2.a,
|
|
FUNCTION: ns2.g,
|
|
CLASS: ns2.h,
|
|
NAMESPACE: ns2.f,
|
|
ENUM: ns2.b
|
|
});
|
|
})(ns || (ns = {}));
|
|
|
|
---------- /out/enum-values.js ----------
|
|
var TopLevelNumber = /* @__PURE__ */ ((TopLevelNumber2) => {
|
|
TopLevelNumber2[TopLevelNumber2["foo_"] = 0] = "foo_";
|
|
return TopLevelNumber2;
|
|
})(TopLevelNumber || {});
|
|
var TopLevelString = /* @__PURE__ */ ((TopLevelString2) => {
|
|
TopLevelString2["bar_"] = "";
|
|
return TopLevelString2;
|
|
})(TopLevelString || {});
|
|
console.log({
|
|
foo: TopLevelNumber.a,
|
|
bar: TopLevelString.b
|
|
});
|
|
function fn() {
|
|
let NestedNumber;
|
|
((NestedNumber2) => {
|
|
NestedNumber2[NestedNumber2["foo_"] = 0] = "foo_";
|
|
})(NestedNumber || (NestedNumber = {}));
|
|
let NestedString;
|
|
((NestedString2) => {
|
|
NestedString2["bar_"] = "";
|
|
})(NestedString || (NestedString = {}));
|
|
console.log({
|
|
foo: TopLevelNumber.a,
|
|
bar: TopLevelString.b
|
|
});
|
|
}
|
|
|
|
================================================================================
|
|
TestMangleQuotedProps
|
|
---------- /out/keep.js ----------
|
|
foo("_keepThisProperty");
|
|
foo((x, "_keepThisProperty"));
|
|
foo(x ? "_keepThisProperty" : "_keepThisPropertyToo");
|
|
x[foo("_keepThisProperty")];
|
|
x?.[foo("_keepThisProperty")];
|
|
({ [foo("_keepThisProperty")]: x });
|
|
(class {
|
|
[foo("_keepThisProperty")] = x;
|
|
});
|
|
var { [foo("_keepThisProperty")]: x } = y;
|
|
foo("_keepThisProperty") in x;
|
|
|
|
---------- /out/mangle.js ----------
|
|
x.a;
|
|
x?.a;
|
|
x[y ? "a" : z];
|
|
x?.[y ? "a" : z];
|
|
x[y ? z : "a"];
|
|
x?.[y ? z : "a"];
|
|
x[y, "a"];
|
|
x?.[y, "a"];
|
|
({ a: x });
|
|
({ ["a"]: x });
|
|
({ [(y, "a")]: x });
|
|
(class {
|
|
a = x;
|
|
});
|
|
(class {
|
|
["a"] = x;
|
|
});
|
|
(class {
|
|
[(y, "a")] = x;
|
|
});
|
|
var { a: x } = y;
|
|
var { ["a"]: x } = y;
|
|
var { [(z, "a")]: x } = y;
|
|
"a" in x;
|
|
(y ? "a" : z) in x;
|
|
(y ? z : "a") in x;
|
|
(y, "a") in x;
|
|
|
|
================================================================================
|
|
TestMangleQuotedPropsMinifySyntax
|
|
---------- /out/keep.js ----------
|
|
foo("_keepThisProperty"), foo("_keepThisProperty"), foo(x ? "_keepThisProperty" : "_keepThisPropertyToo"), x[foo("_keepThisProperty")], x?.[foo("_keepThisProperty")], foo("_keepThisProperty") + "", class {
|
|
[foo("_keepThisProperty")] = x;
|
|
};
|
|
var { [foo("_keepThisProperty")]: x } = y;
|
|
foo("_keepThisProperty") in x;
|
|
|
|
---------- /out/mangle.js ----------
|
|
x.a, x?.a, x[y ? "a" : z], x?.[y ? "a" : z], x[y ? z : "a"], x?.[y ? z : "a"], x[y, "a"], x?.[y, "a"], (y, "a") + "", class {
|
|
[(y, "a")] = x;
|
|
};
|
|
var { a: x } = y, { ["a"]: x } = y, { [(z, "a")]: x } = y;
|
|
"a" in x, (y ? "a" : z) in x, (y ? z : "a") in x, y, "a" in x;
|
|
|
|
================================================================================
|
|
TestManyEntryPoints
|
|
---------- /out/e00.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e00.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e01.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e01.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e02.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e02.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e03.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e03.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e04.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e04.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e05.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e05.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e06.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e06.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e07.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e07.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e08.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e08.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e09.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e09.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e10.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e10.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e11.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e11.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e12.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e12.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e13.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e13.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e14.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e14.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e15.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e15.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e16.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e16.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e17.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e17.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e18.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e18.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e19.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e19.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e20.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e20.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e21.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e21.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e22.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e22.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e23.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e23.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e24.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e24.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e25.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e25.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e26.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e26.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e27.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e27.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e28.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e28.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e29.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e29.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e30.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e30.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e31.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e31.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e32.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e32.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e33.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e33.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e34.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e34.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e35.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e35.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e36.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e36.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e37.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e37.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e38.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e38.js
|
|
console.log(shared_default);
|
|
|
|
---------- /out/e39.js ----------
|
|
// shared.js
|
|
var shared_default = 123;
|
|
|
|
// e39.js
|
|
console.log(shared_default);
|
|
|
|
================================================================================
|
|
TestMetafileImportWithTypeJSON
|
|
---------- /out/entry.js ----------
|
|
// project/data.json
|
|
var data_default = { some: "data" };
|
|
|
|
// project/data.json with { type: 'json' }
|
|
var data_default2 = { some: "data" };
|
|
|
|
// project/entry.js
|
|
x = [data_default, data_default, data_default2];
|
|
---------- metafile.json ----------
|
|
{
|
|
"inputs": {
|
|
"project/data.json": {
|
|
"bytes": 16,
|
|
"imports": []
|
|
},
|
|
"project/data.json with { type: 'json' }": {
|
|
"bytes": 16,
|
|
"imports": [],
|
|
"format": "esm",
|
|
"with": {
|
|
"type": "json"
|
|
}
|
|
},
|
|
"project/entry.js": {
|
|
"bytes": 164,
|
|
"imports": [
|
|
{
|
|
"path": "project/data.json",
|
|
"kind": "import-statement",
|
|
"original": "./data.json"
|
|
},
|
|
{
|
|
"path": "project/data.json",
|
|
"kind": "import-statement",
|
|
"original": "./data.json"
|
|
},
|
|
{
|
|
"path": "project/data.json with { type: 'json' }",
|
|
"kind": "import-statement",
|
|
"original": "./data.json",
|
|
"with": {
|
|
"type": "json"
|
|
}
|
|
}
|
|
],
|
|
"format": "esm"
|
|
}
|
|
},
|
|
"outputs": {
|
|
"out/entry.js": {
|
|
"imports": [],
|
|
"exports": [],
|
|
"entryPoint": "project/entry.js",
|
|
"inputs": {
|
|
"project/data.json": {
|
|
"bytesInOutput": 37
|
|
},
|
|
"project/data.json with { type: 'json' }": {
|
|
"bytesInOutput": 38
|
|
},
|
|
"project/entry.js": {
|
|
"bytesInOutput": 49
|
|
}
|
|
},
|
|
"bytes": 210
|
|
}
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestMetafileNoBundle
|
|
---------- /out/entry.js ----------
|
|
import a from "pkg";
|
|
import b from "./file";
|
|
console.log(
|
|
a,
|
|
b,
|
|
require("pkg2"),
|
|
require("./file2"),
|
|
import("./dynamic")
|
|
);
|
|
let exported;
|
|
|
|
---------- /out/entry.css ----------
|
|
@import "pkg";
|
|
@import "./file";
|
|
a {
|
|
background: url(pkg2);
|
|
}
|
|
a {
|
|
background: url(./file2);
|
|
}
|
|
---------- metafile.json ----------
|
|
{
|
|
"inputs": {
|
|
"project/entry.js": {
|
|
"bytes": 191,
|
|
"imports": [],
|
|
"format": "esm"
|
|
},
|
|
"project/entry.css": {
|
|
"bytes": 112,
|
|
"imports": []
|
|
}
|
|
},
|
|
"outputs": {
|
|
"out/entry.js": {
|
|
"imports": [
|
|
{
|
|
"path": "pkg",
|
|
"kind": "import-statement",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "./file",
|
|
"kind": "import-statement",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "pkg2",
|
|
"kind": "require-call",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "./file2",
|
|
"kind": "require-call",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "./dynamic",
|
|
"kind": "dynamic-import",
|
|
"external": true
|
|
}
|
|
],
|
|
"exports": [
|
|
"exported"
|
|
],
|
|
"entryPoint": "project/entry.js",
|
|
"inputs": {
|
|
"project/entry.js": {
|
|
"bytesInOutput": 148
|
|
}
|
|
},
|
|
"bytes": 148
|
|
},
|
|
"out/entry.css": {
|
|
"imports": [
|
|
{
|
|
"path": "pkg",
|
|
"kind": "import-rule",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "./file",
|
|
"kind": "import-rule",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "pkg2",
|
|
"kind": "url-token",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "./file2",
|
|
"kind": "url-token",
|
|
"external": true
|
|
}
|
|
],
|
|
"entryPoint": "project/entry.css",
|
|
"inputs": {
|
|
"project/entry.css": {
|
|
"bytesInOutput": 65
|
|
}
|
|
},
|
|
"bytes": 98
|
|
}
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestMetafileVariousCases
|
|
---------- /out/file-NVISQQTV.file ----------
|
|
file
|
|
---------- /out/copy-O3Y5SCJE.copy ----------
|
|
copy
|
|
---------- /out/entry.js ----------
|
|
import {
|
|
__commonJS,
|
|
__require
|
|
} from "./chunk-MQN2VSL5.js";
|
|
|
|
// project/cjs.js
|
|
var require_cjs = __commonJS({
|
|
"project/cjs.js"(exports, module) {
|
|
module.exports = 4;
|
|
}
|
|
});
|
|
|
|
// project/entry.js
|
|
import a from "extern-esm";
|
|
|
|
// project/esm.js
|
|
var esm_default = 1;
|
|
|
|
// <data:application/json,2>
|
|
var json_2_default = 2;
|
|
|
|
// project/file.file
|
|
var file_default = "./file-NVISQQTV.file";
|
|
|
|
// project/entry.js
|
|
import e from "./copy-O3Y5SCJE.copy";
|
|
console.log(
|
|
a,
|
|
esm_default,
|
|
json_2_default,
|
|
file_default,
|
|
e,
|
|
__require("extern-cjs"),
|
|
require_cjs(),
|
|
import("./dynamic-Q2DWDUFV.js")
|
|
);
|
|
var exported;
|
|
export {
|
|
exported
|
|
};
|
|
|
|
---------- /out/dynamic-Q2DWDUFV.js ----------
|
|
import "./chunk-MQN2VSL5.js";
|
|
|
|
// project/dynamic.js
|
|
var dynamic_default = 5;
|
|
export {
|
|
dynamic_default as default
|
|
};
|
|
|
|
---------- /out/chunk-MQN2VSL5.js ----------
|
|
export {
|
|
__require,
|
|
__commonJS
|
|
};
|
|
|
|
---------- /out/entry.css ----------
|
|
@import "extern.css";
|
|
|
|
/* project/entry.css */
|
|
a {
|
|
background: url(data:image/svg+xml,<svg/>);
|
|
}
|
|
b {
|
|
background: url("./file-NVISQQTV.file");
|
|
}
|
|
c {
|
|
background: url("./copy-O3Y5SCJE.copy");
|
|
}
|
|
d {
|
|
background: url(extern.png);
|
|
}
|
|
---------- metafile.json ----------
|
|
{
|
|
"inputs": {
|
|
"project/esm.js": {
|
|
"bytes": 16,
|
|
"imports": [],
|
|
"format": "esm"
|
|
},
|
|
"<data:application/json,2>": {
|
|
"bytes": 1,
|
|
"imports": []
|
|
},
|
|
"project/file.file": {
|
|
"bytes": 4,
|
|
"imports": []
|
|
},
|
|
"project/copy.copy": {
|
|
"bytes": 4,
|
|
"imports": []
|
|
},
|
|
"project/cjs.js": {
|
|
"bytes": 18,
|
|
"imports": [],
|
|
"format": "cjs"
|
|
},
|
|
"project/dynamic.js": {
|
|
"bytes": 16,
|
|
"imports": [],
|
|
"format": "esm"
|
|
},
|
|
"project/entry.js": {
|
|
"bytes": 333,
|
|
"imports": [
|
|
{
|
|
"path": "extern-esm",
|
|
"kind": "import-statement",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "project/esm.js",
|
|
"kind": "import-statement",
|
|
"original": "./esm"
|
|
},
|
|
{
|
|
"path": "<data:application/json,2>",
|
|
"kind": "import-statement",
|
|
"original": "data:application/json,2"
|
|
},
|
|
{
|
|
"path": "project/file.file",
|
|
"kind": "import-statement",
|
|
"original": "./file.file"
|
|
},
|
|
{
|
|
"path": "project/copy.copy",
|
|
"kind": "import-statement",
|
|
"original": "./copy.copy"
|
|
},
|
|
{
|
|
"path": "extern-cjs",
|
|
"kind": "require-call",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "project/cjs.js",
|
|
"kind": "require-call",
|
|
"original": "./cjs"
|
|
},
|
|
{
|
|
"path": "project/dynamic.js",
|
|
"kind": "dynamic-import",
|
|
"original": "./dynamic"
|
|
}
|
|
],
|
|
"format": "esm"
|
|
},
|
|
"project/inline.svg": {
|
|
"bytes": 6,
|
|
"imports": []
|
|
},
|
|
"project/entry.css": {
|
|
"bytes": 180,
|
|
"imports": [
|
|
{
|
|
"path": "extern.css",
|
|
"kind": "import-rule",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "project/inline.svg",
|
|
"kind": "url-token",
|
|
"original": "inline.svg"
|
|
},
|
|
{
|
|
"path": "project/file.file",
|
|
"kind": "url-token",
|
|
"original": "file.file"
|
|
},
|
|
{
|
|
"path": "project/copy.copy",
|
|
"kind": "url-token",
|
|
"original": "copy.copy"
|
|
},
|
|
{
|
|
"path": "extern.png",
|
|
"kind": "url-token",
|
|
"external": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"outputs": {
|
|
"out/file-NVISQQTV.file": {
|
|
"imports": [],
|
|
"exports": [],
|
|
"inputs": {
|
|
"project/file.file": {
|
|
"bytesInOutput": 4
|
|
}
|
|
},
|
|
"bytes": 4
|
|
},
|
|
"out/copy-O3Y5SCJE.copy": {
|
|
"imports": [],
|
|
"exports": [],
|
|
"inputs": {
|
|
"project/copy.copy": {
|
|
"bytesInOutput": 4
|
|
}
|
|
},
|
|
"bytes": 4
|
|
},
|
|
"out/entry.js": {
|
|
"imports": [
|
|
{
|
|
"path": "out/chunk-MQN2VSL5.js",
|
|
"kind": "import-statement"
|
|
},
|
|
{
|
|
"path": "extern-esm",
|
|
"kind": "import-statement",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "out/file-NVISQQTV.file",
|
|
"kind": "file-loader"
|
|
},
|
|
{
|
|
"path": "out/copy-O3Y5SCJE.copy",
|
|
"kind": "import-statement"
|
|
},
|
|
{
|
|
"path": "extern-cjs",
|
|
"kind": "require-call",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "out/dynamic-Q2DWDUFV.js",
|
|
"kind": "dynamic-import"
|
|
}
|
|
],
|
|
"exports": [
|
|
"exported"
|
|
],
|
|
"entryPoint": "project/entry.js",
|
|
"inputs": {
|
|
"project/cjs.js": {
|
|
"bytesInOutput": 101
|
|
},
|
|
"project/entry.js": {
|
|
"bytesInOutput": 233
|
|
},
|
|
"project/esm.js": {
|
|
"bytesInOutput": 21
|
|
},
|
|
"<data:application/json,2>": {
|
|
"bytesInOutput": 24
|
|
},
|
|
"project/file.file": {
|
|
"bytesInOutput": 43
|
|
}
|
|
},
|
|
"bytes": 642
|
|
},
|
|
"out/dynamic-Q2DWDUFV.js": {
|
|
"imports": [
|
|
{
|
|
"path": "out/chunk-MQN2VSL5.js",
|
|
"kind": "import-statement"
|
|
}
|
|
],
|
|
"exports": [
|
|
"default"
|
|
],
|
|
"entryPoint": "project/dynamic.js",
|
|
"inputs": {
|
|
"project/dynamic.js": {
|
|
"bytesInOutput": 25
|
|
}
|
|
},
|
|
"bytes": 119
|
|
},
|
|
"out/chunk-MQN2VSL5.js": {
|
|
"imports": [],
|
|
"exports": [
|
|
"__commonJS",
|
|
"__require"
|
|
],
|
|
"inputs": {},
|
|
"bytes": 38
|
|
},
|
|
"out/entry.css": {
|
|
"imports": [
|
|
{
|
|
"path": "extern.css",
|
|
"kind": "import-rule",
|
|
"external": true
|
|
},
|
|
{
|
|
"path": "data:image/svg+xml,<svg/>",
|
|
"kind": "url-token"
|
|
},
|
|
{
|
|
"path": "out/file-NVISQQTV.file",
|
|
"kind": "url-token"
|
|
},
|
|
{
|
|
"path": "out/copy-O3Y5SCJE.copy",
|
|
"kind": "url-token"
|
|
},
|
|
{
|
|
"path": "extern.png",
|
|
"kind": "url-token",
|
|
"external": true
|
|
}
|
|
],
|
|
"entryPoint": "project/entry.css",
|
|
"inputs": {
|
|
"project/entry.css": {
|
|
"bytesInOutput": 187
|
|
}
|
|
},
|
|
"bytes": 234
|
|
}
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestMetafileVeryLongExternalPaths
|
|
---------- /out/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-55DNWN2R.file ----------
|
|
|
|
---------- /out/bytesInOutput should be at least 99 (1).js ----------
|
|
// project/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.file
|
|
var __default = "./111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-55DNWN2R.file";
|
|
|
|
// project/bytesInOutput should be at least 99 (1).js
|
|
console.log(__default);
|
|
|
|
---------- /out/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-55DNWN2R.copy ----------
|
|
|
|
---------- /out/bytesInOutput should be at least 99 (2).js ----------
|
|
// project/bytesInOutput should be at least 99 (2).js
|
|
import a from "./222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-55DNWN2R.copy";
|
|
console.log(a);
|
|
|
|
---------- /out/bytesInOutput should be at least 99 (3).js ----------
|
|
// project/bytesInOutput should be at least 99 (3).js
|
|
import("./333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333-DH3FVEAA.js").then(console.log);
|
|
|
|
---------- /out/333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333-DH3FVEAA.js ----------
|
|
|
|
---------- /out/444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444-55DNWN2R.file ----------
|
|
|
|
---------- /out/bytesInOutput should be at least 99.css ----------
|
|
/* project/bytesInOutput should be at least 99.css */
|
|
a {
|
|
background: url("./444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444-55DNWN2R.file");
|
|
}
|
|
---------- metafile.json ----------
|
|
{
|
|
"inputs": {
|
|
"project/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.file": {
|
|
"bytes": 0,
|
|
"imports": []
|
|
},
|
|
"project/bytesInOutput should be at least 99 (1).js": {
|
|
"bytes": 150,
|
|
"imports": [
|
|
{
|
|
"path": "project/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.file",
|
|
"kind": "import-statement",
|
|
"original": "./111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.file"
|
|
}
|
|
],
|
|
"format": "esm"
|
|
},
|
|
"project/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.copy": {
|
|
"bytes": 0,
|
|
"imports": []
|
|
},
|
|
"project/bytesInOutput should be at least 99 (2).js": {
|
|
"bytes": 150,
|
|
"imports": [
|
|
{
|
|
"path": "project/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.copy",
|
|
"kind": "import-statement",
|
|
"original": "./222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.copy"
|
|
}
|
|
],
|
|
"format": "esm"
|
|
},
|
|
"project/333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.js": {
|
|
"bytes": 0,
|
|
"imports": []
|
|
},
|
|
"project/bytesInOutput should be at least 99 (3).js": {
|
|
"bytes": 141,
|
|
"imports": [
|
|
{
|
|
"path": "project/333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.js",
|
|
"kind": "dynamic-import",
|
|
"original": "./333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.js"
|
|
}
|
|
]
|
|
},
|
|
"project/444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.file": {
|
|
"bytes": 0,
|
|
"imports": []
|
|
},
|
|
"project/bytesInOutput should be at least 99.css": {
|
|
"bytes": 136,
|
|
"imports": [
|
|
{
|
|
"path": "project/444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.file",
|
|
"kind": "url-token",
|
|
"original": "444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.file"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"outputs": {
|
|
"out/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-55DNWN2R.file": {
|
|
"imports": [],
|
|
"exports": [],
|
|
"inputs": {
|
|
"project/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.file": {
|
|
"bytesInOutput": 0
|
|
}
|
|
},
|
|
"bytes": 0
|
|
},
|
|
"out/bytesInOutput should be at least 99 (1).js": {
|
|
"imports": [
|
|
{
|
|
"path": "out/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-55DNWN2R.file",
|
|
"kind": "file-loader"
|
|
}
|
|
],
|
|
"exports": [],
|
|
"entryPoint": "project/bytesInOutput should be at least 99 (1).js",
|
|
"inputs": {
|
|
"project/111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.file": {
|
|
"bytesInOutput": 135
|
|
},
|
|
"project/bytesInOutput should be at least 99 (1).js": {
|
|
"bytesInOutput": 24
|
|
}
|
|
},
|
|
"bytes": 330
|
|
},
|
|
"out/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-55DNWN2R.copy": {
|
|
"imports": [],
|
|
"exports": [],
|
|
"inputs": {
|
|
"project/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.copy": {
|
|
"bytesInOutput": 0
|
|
}
|
|
},
|
|
"bytes": 0
|
|
},
|
|
"out/bytesInOutput should be at least 99 (2).js": {
|
|
"imports": [
|
|
{
|
|
"path": "out/222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-55DNWN2R.copy",
|
|
"kind": "import-statement"
|
|
}
|
|
],
|
|
"exports": [],
|
|
"entryPoint": "project/bytesInOutput should be at least 99 (2).js",
|
|
"inputs": {
|
|
"project/bytesInOutput should be at least 99 (2).js": {
|
|
"bytesInOutput": 149
|
|
}
|
|
},
|
|
"bytes": 203
|
|
},
|
|
"out/bytesInOutput should be at least 99 (3).js": {
|
|
"imports": [
|
|
{
|
|
"path": "out/333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333-DH3FVEAA.js",
|
|
"kind": "dynamic-import"
|
|
}
|
|
],
|
|
"exports": [],
|
|
"entryPoint": "project/bytesInOutput should be at least 99 (3).js",
|
|
"inputs": {
|
|
"project/bytesInOutput should be at least 99 (3).js": {
|
|
"bytesInOutput": 143
|
|
}
|
|
},
|
|
"bytes": 197
|
|
},
|
|
"out/333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333-DH3FVEAA.js": {
|
|
"imports": [],
|
|
"exports": [],
|
|
"entryPoint": "project/333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.js",
|
|
"inputs": {
|
|
"project/333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333.js": {
|
|
"bytesInOutput": 0
|
|
}
|
|
},
|
|
"bytes": 0
|
|
},
|
|
"out/444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444-55DNWN2R.file": {
|
|
"imports": [],
|
|
"exports": [],
|
|
"inputs": {
|
|
"project/444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.file": {
|
|
"bytesInOutput": 0
|
|
}
|
|
},
|
|
"bytes": 0
|
|
},
|
|
"out/bytesInOutput should be at least 99.css": {
|
|
"imports": [
|
|
{
|
|
"path": "out/444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444-55DNWN2R.file",
|
|
"kind": "url-token"
|
|
}
|
|
],
|
|
"entryPoint": "project/bytesInOutput should be at least 99.css",
|
|
"inputs": {
|
|
"project/bytesInOutput should be at least 99.css": {
|
|
"bytesInOutput": 144
|
|
}
|
|
},
|
|
"bytes": 198
|
|
}
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestMinifiedBundleCommonJS
|
|
---------- /out.js ----------
|
|
var t=e(r=>{r.foo=function(){return 123}});var n=e((q,f)=>{f.exports={test:!0}});var{foo:i}=t();console.log(i(),n());
|
|
|
|
================================================================================
|
|
TestMinifiedBundleES6
|
|
---------- /out.js ----------
|
|
function o(){return 123}o();console.log(o());
|
|
|
|
================================================================================
|
|
TestMinifiedBundleEndingWithImportantSemicolon
|
|
---------- /out.js ----------
|
|
(()=>{while(foo());})();
|
|
|
|
================================================================================
|
|
TestMinifiedDynamicImportWithExpressionCJS
|
|
---------- /out.js ----------
|
|
import("foo");import(foo());
|
|
|
|
================================================================================
|
|
TestMinifiedExportsAndModuleFormatCommonJS
|
|
---------- /out.js ----------
|
|
// foo/test.js
|
|
var o = {};
|
|
p(o, {
|
|
foo: () => l
|
|
});
|
|
var l = 123;
|
|
|
|
// bar/test.js
|
|
var r = {};
|
|
p(r, {
|
|
bar: () => m
|
|
});
|
|
var m = 123;
|
|
|
|
// entry.js
|
|
console.log(exports, module.exports, o, r);
|
|
|
|
================================================================================
|
|
TestMinifiedJSXPreserveWithObjectSpread
|
|
---------- /out.js ----------
|
|
// entry.jsx
|
|
var obj = {
|
|
before,
|
|
[key]: value,
|
|
key: value,
|
|
after
|
|
};
|
|
<Foo
|
|
before
|
|
{...{ [key]: value }}
|
|
key={value}
|
|
after
|
|
/>;
|
|
<Bar
|
|
a={a}
|
|
{...{ [b]: c }}
|
|
{...d}
|
|
e={e}
|
|
/>;
|
|
|
|
================================================================================
|
|
TestMinifyArguments
|
|
---------- /out.js ----------
|
|
(() => {
|
|
// entry.js
|
|
function e(n = arguments) {
|
|
let t;
|
|
}
|
|
function u(n = arguments) {
|
|
let t;
|
|
}
|
|
function a(n = arguments) {
|
|
let t;
|
|
}
|
|
e();
|
|
u();
|
|
a();
|
|
})();
|
|
|
|
================================================================================
|
|
TestMinifyIdentifiersImportPathFrequencyAnalysis
|
|
---------- /out/import.js ----------
|
|
var o=123;console.log(o,"no identifier in this file should be named W, X, Y, or Z");
|
|
|
|
---------- /out/require.js ----------
|
|
var i=s((d,e)=>{e.exports=123});var l=i();console.log(l,"no identifier in this file should be named A, B, C, or D");
|
|
|
|
================================================================================
|
|
TestMinifyNestedLabelsNoBundle
|
|
---------- /out.js ----------
|
|
l:n:a:b:c:d:e:f:g:h:i:j:k:m:o:p:{nl(`
|
|
`);q:r:s:t:u:v:w:x:y:z:A:B:C:D:E:F:{nl(`
|
|
`);G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:{nl(`
|
|
`);W:X:Y:Z:_:$:ll:nl:al:bl:cl:dl:el:fl:gl:hl:{nl(`
|
|
`);il:jl:kl:ml:ol:pl:ql:rl:sl:tl:ul:vl:wl:xl:yl:zl:{nl(`
|
|
`);Al:Bl:Cl:Dl:El:Fl:Gl:Hl:Il:Jl:Kl:Ll:Ml:Nl:Ol:Pl:{nl(`
|
|
`);Ql:Rl:Sl:Tl:Ul:Vl:Wl:Xl:Yl:Zl:_l:$l:ln:nn:an:bn:{nl(`
|
|
`);cn:dn:en:fn:gn:hn:jn:kn:mn:on:pn:qn:rn:sn:tn:un:{nl(`
|
|
`);vn:wn:xn:yn:zn:An:Bn:Cn:Dn:En:Fn:Gn:Hn:In:Jn:Kn:{nl(`
|
|
`);Ln:Mn:Nn:On:Pn:Qn:Rn:Sn:Tn:Un:Vn:Wn:Xn:Yn:Zn:_n:{nl(`
|
|
`);$n:la:na:aa:ba:ca:da:ea:fa:ga:ha:ia:ja:ka:ma:oa:{nl(`
|
|
`);pa:qa:ra:sa:ta:ua:va:wa:xa:ya:za:Aa:Ba:Ca:Da:Ea:{nl(`
|
|
`);Fa:Ga:Ha:Ia:Ja:Ka:La:Ma:Na:Oa:Pa:Qa:Ra:Sa:Ta:Ua:{nl(`
|
|
`);Va:Wa:Xa:Ya:Za:_a:$a:lb:nb:ab:bb:cb:db:eb:fb:gb:{nl(`
|
|
`);hb:ib:jb:kb:mb:ob:pb:qb:rb:sb:tb:ub:vb:wb:xb:yb:{nl(`
|
|
`);zb:Ab:Bb:Cb:Db:Eb:Fb:Gb:Hb:Ib:Jb:Kb:Lb:Mb:Nb:Ob:{nl(`
|
|
`);Pb:Qb:Rb:Sb:Tb:Ub:Vb:Wb:Xb:Yb:Zb:_b:$b:lc:nc:ac:{nl(`
|
|
`);bc:cc:dc:ec:fc:gc:hc:ic:jc:kc:mc:oc:pc:qc:rc:sc:{nl(`
|
|
`);tc:uc:vc:wc:xc:yc:zc:Ac:Bc:Cc:Dc:Ec:Fc:Gc:Hc:Ic:{nl(`
|
|
`);Jc:Kc:Lc:Mc:Nc:Oc:Pc:Qc:Rc:Sc:Tc:Uc:Vc:Wc:Xc:Yc:{nl(`
|
|
`);Zc:_c:$c:ld:nd:ad:bd:cd:dd:ed:fd:gd:hd:{}}}}}}}}}}}}}}}}}}nl(`
|
|
`)}}}
|
|
|
|
================================================================================
|
|
TestMinifyPrivateIdentifiersNoBundle
|
|
---------- /out.js ----------
|
|
class Foo {
|
|
#a;
|
|
foo = class {
|
|
#s;
|
|
#f;
|
|
#r;
|
|
};
|
|
get #o() {
|
|
}
|
|
set #o(a) {
|
|
}
|
|
}
|
|
class Bar {
|
|
#a;
|
|
foo = class {
|
|
#s;
|
|
#f;
|
|
#r;
|
|
};
|
|
get #o() {
|
|
}
|
|
set #o(a) {
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestMinifySiblingLabelsNoBundle
|
|
---------- /out.js ----------
|
|
a: {
|
|
b: {
|
|
if (x) break b;
|
|
break a;
|
|
}
|
|
}
|
|
a: {
|
|
b: {
|
|
if (x) break b;
|
|
break a;
|
|
}
|
|
}
|
|
a: {
|
|
b: {
|
|
if (x) break b;
|
|
break a;
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestMultipleEntryPointsSameNameCollision
|
|
---------- /out/a/entry.js ----------
|
|
// common.js
|
|
var foo = 123;
|
|
|
|
// a/entry.js
|
|
console.log(foo);
|
|
|
|
---------- /out/b/entry.js ----------
|
|
// common.js
|
|
var foo = 123;
|
|
|
|
// b/entry.js
|
|
console.log(foo);
|
|
|
|
================================================================================
|
|
TestNamedFunctionExpressionArgumentCollision
|
|
---------- /out/entry.js ----------
|
|
let x = function(foo) {
|
|
var foo;
|
|
return foo;
|
|
};
|
|
|
|
================================================================================
|
|
TestNestedCommonJS
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"(exports, module) {
|
|
module.exports = function() {
|
|
return 123;
|
|
};
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
function nestedScope() {
|
|
const fn = require_foo();
|
|
console.log(fn());
|
|
}
|
|
nestedScope();
|
|
|
|
================================================================================
|
|
TestNestedES6FromCommonJS
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"(exports) {
|
|
exports.fn = function() {
|
|
return 123;
|
|
};
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var import_foo = __toESM(require_foo());
|
|
(() => {
|
|
console.log((0, import_foo.fn)());
|
|
})();
|
|
|
|
================================================================================
|
|
TestNestedRequireWithoutCall
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
(() => {
|
|
const req = __require;
|
|
req("./entry");
|
|
})();
|
|
|
|
================================================================================
|
|
TestNestedScopeBug
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
(() => {
|
|
function a() {
|
|
b();
|
|
}
|
|
{
|
|
var b = () => {
|
|
};
|
|
}
|
|
a();
|
|
})();
|
|
|
|
================================================================================
|
|
TestNewExpressionCommonJS
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"(exports, module) {
|
|
var Foo = class {
|
|
};
|
|
module.exports = { Foo };
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
new (require_foo()).Foo();
|
|
|
|
================================================================================
|
|
TestNoWarnCommonJSExportsInESMPassThrough
|
|
---------- /out/cjs-in-esm.js ----------
|
|
export let foo = 1;
|
|
exports.foo = 2;
|
|
module.exports = 3;
|
|
|
|
---------- /out/import-in-cjs.js ----------
|
|
import { foo } from "bar";
|
|
exports.foo = foo;
|
|
module.exports = foo;
|
|
|
|
---------- /out/no-warnings-here.js ----------
|
|
console.log(module, exports);
|
|
|
|
================================================================================
|
|
TestNodeAnnotationFalsePositiveIssue3544
|
|
---------- /out.js ----------
|
|
// entry.mjs
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
confuseNode: () => confuseNode
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
function confuseNode(exports2) {
|
|
exports2.notAnExport = function() {
|
|
};
|
|
}
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
0 && (module.exports = {
|
|
confuseNode
|
|
});
|
|
|
|
================================================================================
|
|
TestNodeAnnotationInvalidIdentifierIssue4100
|
|
---------- /out.js ----------
|
|
// entry.mjs
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
"...": () => baz,
|
|
foo: () => foo,
|
|
if: () => bar
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
var foo;
|
|
var bar;
|
|
var baz;
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
0 && (module.exports = {
|
|
"...": null,
|
|
foo,
|
|
if: null
|
|
});
|
|
|
|
================================================================================
|
|
TestNodeModules
|
|
---------- /Users/user/project/out.js ----------
|
|
// Users/user/project/node_modules/demo-pkg/index.js
|
|
var require_demo_pkg = __commonJS({
|
|
"Users/user/project/node_modules/demo-pkg/index.js"(exports, module) {
|
|
module.exports = function() {
|
|
return 123;
|
|
};
|
|
}
|
|
});
|
|
|
|
// Users/user/project/src/entry.js
|
|
var import_demo_pkg = __toESM(require_demo_pkg());
|
|
console.log((0, import_demo_pkg.default)());
|
|
|
|
================================================================================
|
|
TestNonDeterminismIssue2537
|
|
---------- /out.js ----------
|
|
// entry.ts
|
|
function i(o, e) {
|
|
let r = "teun";
|
|
if (o) {
|
|
let u = function(n) {
|
|
return n * 2;
|
|
}, t = function(n) {
|
|
return n / 2;
|
|
};
|
|
var b = u, f = t;
|
|
r = u(e) + t(e);
|
|
}
|
|
return r;
|
|
}
|
|
export {
|
|
i as aap
|
|
};
|
|
|
|
================================================================================
|
|
TestObjectLiteralProtoSetterEdgeCases
|
|
---------- /out/import-normal.js ----------
|
|
import { __proto__, bar } from "foo";
|
|
function foo() {
|
|
console.log(
|
|
'this must not become "{ __proto__ }":',
|
|
{
|
|
__proto__: __proto__,
|
|
bar
|
|
}
|
|
);
|
|
}
|
|
|
|
---------- /out/import-shorthand.js ----------
|
|
import { __proto__, bar } from "foo";
|
|
function foo() {
|
|
console.log(
|
|
'this must not become "{ __proto__: ... }":',
|
|
{
|
|
__proto__,
|
|
bar
|
|
}
|
|
);
|
|
}
|
|
|
|
---------- /out/local-normal.js ----------
|
|
function foo(__proto__, bar) {
|
|
console.log(
|
|
'this must not become "{ __proto__ }":',
|
|
{
|
|
__proto__: __proto__,
|
|
bar
|
|
}
|
|
);
|
|
}
|
|
|
|
---------- /out/local-shorthand.js ----------
|
|
function foo(__proto__, bar) {
|
|
{
|
|
let __proto__2, bar2;
|
|
console.log(
|
|
'this must not become "{ __proto__: ... }":',
|
|
{
|
|
["__proto__"]: __proto__2,
|
|
bar: bar2
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestObjectLiteralProtoSetterEdgeCasesMinifySyntax
|
|
---------- /out/import-computed.js ----------
|
|
import { __proto__, bar } from "foo";
|
|
function foo() {
|
|
console.log(
|
|
'this must not become "{ __proto__: ... }":',
|
|
{
|
|
["__proto__"]: __proto__,
|
|
bar
|
|
}
|
|
);
|
|
}
|
|
|
|
---------- /out/import-normal.js ----------
|
|
import { __proto__, bar } from "foo";
|
|
function foo() {
|
|
console.log(
|
|
'this must not become "{ __proto__ }":',
|
|
{
|
|
__proto__: __proto__,
|
|
bar
|
|
}
|
|
);
|
|
}
|
|
|
|
---------- /out/local-computed.js ----------
|
|
function foo(__proto__, bar) {
|
|
{
|
|
let __proto__2, bar2;
|
|
console.log(
|
|
'this must not become "{ __proto__: ... }":',
|
|
{
|
|
["__proto__"]: __proto__2,
|
|
bar: bar2
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
---------- /out/local-normal.js ----------
|
|
function foo(__proto__, bar) {
|
|
console.log(
|
|
'this must not become "{ __proto__ }":',
|
|
{
|
|
__proto__: __proto__,
|
|
bar
|
|
}
|
|
);
|
|
}
|
|
|
|
================================================================================
|
|
TestOutbase
|
|
---------- /out/a/b/c.js ----------
|
|
// a/b/c.js
|
|
console.log("c");
|
|
|
|
---------- /out/a/b/d.js ----------
|
|
// a/b/d.js
|
|
console.log("d");
|
|
|
|
================================================================================
|
|
TestOutputExtensionRemappingDir
|
|
---------- /out/entry.notjs ----------
|
|
// entry.js
|
|
console.log("test");
|
|
|
|
================================================================================
|
|
TestOutputExtensionRemappingFile
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
console.log("test");
|
|
|
|
================================================================================
|
|
TestOutputForAssertTypeJSON
|
|
---------- /out/foo-FYKHFNL2.copy ----------
|
|
{}
|
|
---------- /out/js-entry.js ----------
|
|
// foo.json
|
|
var foo_default = {};
|
|
|
|
// js-entry.js
|
|
import copy from "./foo-FYKHFNL2.copy" assert { type: "json" };
|
|
use(foo_default, copy, foo_default, void 0);
|
|
export {
|
|
foo_default as default
|
|
};
|
|
|
|
---------- /out/ts-entry.js ----------
|
|
// foo.json
|
|
var foo_default = {};
|
|
|
|
// ts-entry.ts
|
|
import copy from "./foo-FYKHFNL2.copy" assert { type: "json" };
|
|
use(foo_default, copy, foo_default, void 0);
|
|
export {
|
|
foo_default as default
|
|
};
|
|
|
|
================================================================================
|
|
TestPackageAlias
|
|
---------- /out.js ----------
|
|
// node_modules/alias1/index.js
|
|
console.log(1);
|
|
|
|
// node_modules/alias2/foo.js
|
|
console.log(2);
|
|
|
|
// node_modules/alias3/index.js
|
|
console.log(3);
|
|
|
|
// node_modules/alias4/index.js
|
|
console.log(4);
|
|
|
|
// node_modules/alias5/foo.js
|
|
console.log(5);
|
|
|
|
// alias6/dir/index.js
|
|
console.log(6);
|
|
|
|
// alias7/dir/foo/index.js
|
|
console.log(7);
|
|
|
|
// alias8/dir/pkg8/index.js
|
|
console.log(8);
|
|
|
|
// alias9/some/file.js
|
|
console.log(9);
|
|
|
|
// node_modules/prefix-foo/index.js
|
|
console.log(10);
|
|
|
|
// node_modules/@scope/prefix-foo/index.js
|
|
console.log(11);
|
|
|
|
================================================================================
|
|
TestPackageAliasMatchLongest
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import "alias/pkg";
|
|
import "alias/pkg_foo";
|
|
import "alias/pkg_foo_bar";
|
|
import "alias/pkg_foo_bar/baz";
|
|
import "alias/pkg/bar/baz";
|
|
import "alias/pkg/baz";
|
|
|
|
================================================================================
|
|
TestPreserveKeyComment
|
|
---------- /out/entry.js ----------
|
|
x(
|
|
/* __KEY__ */
|
|
"notKey",
|
|
/* __KEY__ */
|
|
`notKey`
|
|
);
|
|
x(/* @__KEY__ */ "key", /* @__KEY__ */ `key`);
|
|
x(/* @__KEY__ */ "alsoKey", /* @__KEY__ */ `alsoKey`);
|
|
|
|
================================================================================
|
|
TestQuotedProperty
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
var ns = __toESM(require("ext"));
|
|
console.log(ns.mustBeUnquoted, ns["mustBeQuoted"]);
|
|
|
|
================================================================================
|
|
TestQuotedPropertyMangle
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
var ns = __toESM(require("ext"));
|
|
console.log(ns.mustBeUnquoted, ns.mustBeUnquoted2);
|
|
|
|
================================================================================
|
|
TestReExportCommonJSAsES6
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"(exports) {
|
|
exports.bar = 123;
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var import_foo = __toESM(require_foo());
|
|
var export_bar = import_foo.bar;
|
|
export {
|
|
export_bar as bar
|
|
};
|
|
|
|
================================================================================
|
|
TestReExportDefaultExternalCommonJS
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
bar: () => import_bar.default,
|
|
foo: () => import_foo.default
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
var import_foo = __toESM(require("foo"));
|
|
|
|
// bar.js
|
|
var import_bar = __toESM(require("bar"));
|
|
|
|
================================================================================
|
|
TestReExportDefaultExternalES6
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
import { default as default3 } from "foo";
|
|
|
|
// bar.js
|
|
import { default as default2 } from "bar";
|
|
export {
|
|
default2 as bar,
|
|
default3 as foo
|
|
};
|
|
|
|
================================================================================
|
|
TestReExportDefaultInternal
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var foo_default = "foo";
|
|
|
|
// bar.js
|
|
var bar_default = "bar";
|
|
export {
|
|
bar_default as bar,
|
|
foo_default as foo
|
|
};
|
|
|
|
================================================================================
|
|
TestReExportDefaultNoBundle
|
|
---------- /out.js ----------
|
|
export { default as foo } from "./foo";
|
|
export { default as bar } from "./bar";
|
|
|
|
================================================================================
|
|
TestReExportDefaultNoBundleCommonJS
|
|
---------- /out.js ----------
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
bar: () => import_bar.default,
|
|
foo: () => import_foo.default
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
var import_foo = __toESM(require("./foo"));
|
|
var import_bar = __toESM(require("./bar"));
|
|
|
|
================================================================================
|
|
TestReExportDefaultNoBundleES6
|
|
---------- /out.js ----------
|
|
import { default as default2 } from "./foo";
|
|
import { default as default3 } from "./bar";
|
|
export {
|
|
default3 as bar,
|
|
default2 as foo
|
|
};
|
|
|
|
================================================================================
|
|
TestReExportFSNode
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
import * as fs from "fs";
|
|
import { readFileSync } from "fs";
|
|
export {
|
|
fs as f,
|
|
readFileSync as rfs
|
|
};
|
|
|
|
================================================================================
|
|
TestRenameLabelsNoBundle
|
|
---------- /out.js ----------
|
|
foo: {
|
|
bar: {
|
|
if (x) break bar;
|
|
break foo;
|
|
}
|
|
}
|
|
foo2: {
|
|
bar2: {
|
|
if (x) break bar2;
|
|
break foo2;
|
|
}
|
|
}
|
|
foo: {
|
|
bar: {
|
|
if (x) break bar;
|
|
break foo;
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestRenameNestedVar
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
function foo(a, b) {
|
|
}
|
|
var topLevel = 0;
|
|
{
|
|
nested = 1;
|
|
}
|
|
var nested;
|
|
function fn() {
|
|
var inner = 2;
|
|
}
|
|
foo(topLevel, nested, fn);
|
|
|
|
// entry.js
|
|
var topLevel2 = 0;
|
|
{
|
|
nested2 = 1;
|
|
}
|
|
var nested2;
|
|
function fn2() {
|
|
var inner = 2;
|
|
}
|
|
foo(topLevel2, nested2, fn2);
|
|
|
|
================================================================================
|
|
TestRenamePrivateIdentifiersNoBundle
|
|
---------- /out.js ----------
|
|
class Foo {
|
|
#foo;
|
|
foo = class {
|
|
#foo2;
|
|
#foo22;
|
|
#bar2;
|
|
};
|
|
get #bar() {
|
|
}
|
|
set #bar(x) {
|
|
}
|
|
}
|
|
class Bar {
|
|
#foo;
|
|
foo = class {
|
|
#foo2;
|
|
#foo3;
|
|
#bar2;
|
|
};
|
|
get #bar() {
|
|
}
|
|
set #bar(x) {
|
|
}
|
|
}
|
|
|
|
================================================================================
|
|
TestRequireAndDynamicImportInvalidTemplate
|
|
---------- /out.js ----------
|
|
// require("./**/*") in entry.js
|
|
var globRequire;
|
|
var init_ = __esm({
|
|
'require("./**/*") in entry.js'() {
|
|
globRequire = __glob({
|
|
"./entry.js": () => require_entry()
|
|
});
|
|
}
|
|
});
|
|
|
|
// import("./**/*") in entry.js
|
|
var globImport;
|
|
var init_2 = __esm({
|
|
'import("./**/*") in entry.js'() {
|
|
globImport = __glob({
|
|
"./entry.js": () => Promise.resolve().then(() => __toESM(require_entry()))
|
|
});
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var require_entry = __commonJS({
|
|
"entry.js"() {
|
|
init_();
|
|
init_2();
|
|
__require(tag`./b`);
|
|
globRequire(`./${b}`);
|
|
try {
|
|
__require(tag`./b`);
|
|
globRequire(`./${b}`);
|
|
} catch {
|
|
}
|
|
(async () => {
|
|
import(tag`./b`);
|
|
globImport(`./${b}`);
|
|
await import(tag`./b`);
|
|
await globImport(`./${b}`);
|
|
try {
|
|
import(tag`./b`);
|
|
globImport(`./${b}`);
|
|
await import(tag`./b`);
|
|
await globImport(`./${b}`);
|
|
} catch {
|
|
}
|
|
})();
|
|
}
|
|
});
|
|
export default require_entry();
|
|
|
|
================================================================================
|
|
TestRequireBadArgumentCount
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
__require();
|
|
__require("a", "b");
|
|
try {
|
|
__require();
|
|
__require("a", "b");
|
|
} catch {
|
|
}
|
|
|
|
================================================================================
|
|
TestRequireChildDirCommonJS
|
|
---------- /out.js ----------
|
|
// Users/user/project/src/dir/index.js
|
|
var require_dir = __commonJS({
|
|
"Users/user/project/src/dir/index.js"(exports, module) {
|
|
module.exports = 123;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/src/entry.js
|
|
console.log(require_dir());
|
|
|
|
================================================================================
|
|
TestRequireChildDirES6
|
|
---------- /out.js ----------
|
|
// Users/user/project/src/dir/index.js
|
|
var dir_default = 123;
|
|
|
|
// Users/user/project/src/entry.js
|
|
console.log(dir_default);
|
|
|
|
================================================================================
|
|
TestRequireFSNode
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
return require("fs");
|
|
|
|
================================================================================
|
|
TestRequireFSNodeMinify
|
|
---------- /out.js ----------
|
|
return require("fs");
|
|
|
|
================================================================================
|
|
TestRequireJson
|
|
---------- /out.js ----------
|
|
// test.json
|
|
var require_test = __commonJS({
|
|
"test.json"(exports, module) {
|
|
module.exports = {
|
|
a: true,
|
|
b: 123,
|
|
c: [null]
|
|
};
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
console.log(require_test());
|
|
|
|
================================================================================
|
|
TestRequireMainCacheCommonJS
|
|
---------- /out.js ----------
|
|
// is-main.js
|
|
var require_is_main = __commonJS({
|
|
"is-main.js"(exports2, module2) {
|
|
module2.exports = require.main === module2;
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
console.log("is main:", require.main === module);
|
|
console.log(require_is_main());
|
|
console.log("cache:", require.cache);
|
|
|
|
================================================================================
|
|
TestRequireParentDirCommonJS
|
|
---------- /out.js ----------
|
|
// Users/user/project/src/index.js
|
|
var require_index = __commonJS({
|
|
"Users/user/project/src/index.js"(exports, module) {
|
|
module.exports = 123;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/src/dir/entry.js
|
|
console.log(require_index());
|
|
|
|
================================================================================
|
|
TestRequireParentDirES6
|
|
---------- /out.js ----------
|
|
// Users/user/project/src/index.js
|
|
var index_default = 123;
|
|
|
|
// Users/user/project/src/dir/entry.js
|
|
console.log(index_default);
|
|
|
|
================================================================================
|
|
TestRequirePropertyAccessCommonJS
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
console.log(Object.keys(require.cache));
|
|
console.log(Object.keys(require.extensions));
|
|
delete require.cache["fs"];
|
|
delete require.extensions[".json"];
|
|
|
|
================================================================================
|
|
TestRequireResolve
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
console.log(require.resolve);
|
|
console.log(require.resolve());
|
|
console.log(require.resolve(foo));
|
|
console.log(require.resolve("a", "b"));
|
|
console.log(require.resolve("./present-file"));
|
|
console.log(require.resolve("./missing-file"));
|
|
console.log(require.resolve("./external-file"));
|
|
console.log(require.resolve("missing-pkg"));
|
|
console.log(require.resolve("external-pkg"));
|
|
console.log(require.resolve("@scope/missing-pkg"));
|
|
console.log(require.resolve("@scope/external-pkg"));
|
|
try {
|
|
console.log(require.resolve("inside-try"));
|
|
} catch (e) {
|
|
}
|
|
if (false) {
|
|
console.log(null);
|
|
}
|
|
console.log(false ? null : 0);
|
|
console.log(true ? 0 : null);
|
|
console.log(false);
|
|
console.log(true);
|
|
console.log(true);
|
|
|
|
================================================================================
|
|
TestRequireShimSubstitution
|
|
---------- /out/entry.js ----------
|
|
// example.json
|
|
var require_example = __commonJS({
|
|
"example.json"(exports, module) {
|
|
module.exports = { works: true };
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
console.log([
|
|
__require,
|
|
typeof __require,
|
|
require_example(),
|
|
__require("./example.json", { type: "json" }),
|
|
__require(window.SOME_PATH),
|
|
require_example(),
|
|
__require("./example.json", { type: "json" }),
|
|
__require(window.SOME_PATH),
|
|
__require.resolve("some-path"),
|
|
__require.resolve(window.SOME_PATH),
|
|
Promise.resolve().then(() => __toESM(__require("some-path"))),
|
|
Promise.resolve().then(() => __toESM(__require(window.SOME_PATH)))
|
|
]);
|
|
|
|
================================================================================
|
|
TestRequireTxt
|
|
---------- /out.js ----------
|
|
// test.txt
|
|
var require_test = __commonJS({
|
|
"test.txt"(exports, module) {
|
|
module.exports = "This is a test.";
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
console.log(require_test());
|
|
|
|
================================================================================
|
|
TestRequireWithCallInsideTry
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var require_entry = __commonJS({
|
|
"entry.js"(exports) {
|
|
try {
|
|
const supportsColor = __require("supports-color");
|
|
if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
|
|
exports.colors = [];
|
|
}
|
|
} catch (error) {
|
|
}
|
|
}
|
|
});
|
|
export default require_entry();
|
|
|
|
================================================================================
|
|
TestRequireWithTemplate
|
|
---------- /out.js ----------
|
|
// b.js
|
|
var require_b = __commonJS({
|
|
"b.js"(exports) {
|
|
exports.x = 123;
|
|
}
|
|
});
|
|
|
|
// a.js
|
|
console.log(require_b());
|
|
console.log(require_b());
|
|
|
|
================================================================================
|
|
TestRequireWithoutCall
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var req = __require;
|
|
req("./entry");
|
|
|
|
================================================================================
|
|
TestRequireWithoutCallInsideTry
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
try {
|
|
oldLocale = globalLocale._abbr;
|
|
aliasedRequire = __require;
|
|
aliasedRequire("./locale/" + name);
|
|
getSetGlobalLocale(oldLocale);
|
|
} catch (e) {
|
|
}
|
|
var aliasedRequire;
|
|
|
|
================================================================================
|
|
TestReserveProps
|
|
---------- /out.js ----------
|
|
export default {
|
|
a: 0,
|
|
_bar_: 1
|
|
};
|
|
|
|
================================================================================
|
|
TestRuntimeNameCollisionNoBundle
|
|
---------- /out.js ----------
|
|
function __require() {
|
|
return 123;
|
|
}
|
|
console.log(__require());
|
|
|
|
================================================================================
|
|
TestScopedExternalModuleExclusion
|
|
---------- /out.js ----------
|
|
// index.js
|
|
import { Foo } from "@scope/foo";
|
|
import { Bar } from "@scope/foo/bar";
|
|
var foo = new Foo();
|
|
var bar = new Bar();
|
|
export {
|
|
bar,
|
|
foo
|
|
};
|
|
|
|
================================================================================
|
|
TestSimpleCommonJS
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
var require_foo = __commonJS({
|
|
"foo.js"(exports, module) {
|
|
module.exports = function() {
|
|
return 123;
|
|
};
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var fn = require_foo();
|
|
console.log(fn());
|
|
|
|
================================================================================
|
|
TestSimpleES6
|
|
---------- /out.js ----------
|
|
// foo.js
|
|
function fn() {
|
|
return 123;
|
|
}
|
|
|
|
// entry.js
|
|
console.log(fn());
|
|
|
|
================================================================================
|
|
TestSourceIdentifierNameIndexMultipleEntry
|
|
---------- /Users/user/project/out/home/index.js ----------
|
|
// Users/user/project/node_modules/pkg/index.js
|
|
var require_pkg = __commonJS({
|
|
"Users/user/project/node_modules/pkg/index.js"(exports) {
|
|
exports.pkg = true;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/common/index.js
|
|
var require_common = __commonJS({
|
|
"Users/user/project/common/index.js"(exports) {
|
|
exports.common = true;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/home/index.js
|
|
var require_home = __commonJS({
|
|
"Users/user/project/home/index.js"() {
|
|
require_home();
|
|
require_pkg();
|
|
require_common();
|
|
}
|
|
});
|
|
export default require_home();
|
|
|
|
---------- /Users/user/project/out/about/index.js ----------
|
|
// Users/user/project/node_modules/pkg/index.js
|
|
var require_pkg = __commonJS({
|
|
"Users/user/project/node_modules/pkg/index.js"(exports) {
|
|
exports.pkg = true;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/common/index.js
|
|
var require_common = __commonJS({
|
|
"Users/user/project/common/index.js"(exports) {
|
|
exports.common = true;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/about/index.js
|
|
var require_about = __commonJS({
|
|
"Users/user/project/about/index.js"() {
|
|
require_about();
|
|
require_pkg();
|
|
require_common();
|
|
}
|
|
});
|
|
export default require_about();
|
|
|
|
================================================================================
|
|
TestSourceIdentifierNameIndexSingleEntry
|
|
---------- /Users/user/project/out/index.js ----------
|
|
// Users/user/project/node_modules/pkg/index.js
|
|
var require_pkg = __commonJS({
|
|
"Users/user/project/node_modules/pkg/index.js"(exports) {
|
|
exports.pkg = true;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/nested/index.js
|
|
var require_nested = __commonJS({
|
|
"Users/user/project/nested/index.js"(exports) {
|
|
exports.nested = true;
|
|
}
|
|
});
|
|
|
|
// Users/user/project/index.js
|
|
var require_index = __commonJS({
|
|
"Users/user/project/index.js"() {
|
|
require_index();
|
|
require_pkg();
|
|
require_nested();
|
|
}
|
|
});
|
|
export default require_index();
|
|
|
|
================================================================================
|
|
TestSourceMap
|
|
---------- /Users/user/project/out.js.map ----------
|
|
{
|
|
"version": 3,
|
|
"sources": ["src/bar.js", "src/data.txt", "src/entry.js"],
|
|
"sourcesContent": ["\n\t\t\t\texport function bar() { throw new Error('test') }\n\t\t\t", "#2041", "\n\t\t\t\timport {bar} from './bar'\n\t\t\t\timport data from './data.txt'\n\t\t\t\tfunction foo() { bar() }\n\t\t\t\tfoo()\n\t\t\t\tconsole.log(data)\n\t\t\t"],
|
|
"mappings": ";AACW,SAAS,MAAM;AAAE,QAAM,IAAI,MAAM,MAAM;AAAE;;;ACDpD;;;ACGI,SAAS,MAAM;AAAE,MAAI;AAAE;AACvB,IAAI;AACJ,QAAQ,IAAI,YAAI;",
|
|
"names": []
|
|
}
|
|
|
|
---------- /Users/user/project/out.js ----------
|
|
// Users/user/project/src/bar.js
|
|
function bar() {
|
|
throw new Error("test");
|
|
}
|
|
|
|
// Users/user/project/src/data.txt
|
|
var data_default = "#2041";
|
|
|
|
// Users/user/project/src/entry.js
|
|
function foo() {
|
|
bar();
|
|
}
|
|
foo();
|
|
console.log(data_default);
|
|
//# sourceMappingURL=out.js.map
|
|
|
|
================================================================================
|
|
TestStrictModeNestedFnDeclKeepNamesVariableInliningIssue1552
|
|
---------- /out/entry.js ----------
|
|
export function outer() {
|
|
{
|
|
let inner = function() {
|
|
return Math.random();
|
|
};
|
|
__name(inner, "inner");
|
|
const x = inner();
|
|
console.log(x);
|
|
}
|
|
}
|
|
__name(outer, "outer"), outer();
|
|
|
|
================================================================================
|
|
TestStringExportNamesCommonJS
|
|
---------- /out.js ----------
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
"all the stuff": () => all_the_stuff,
|
|
"some export": () => import_foo["some import"]
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
var import_foo = require("./foo");
|
|
var all_the_stuff = __toESM(require("./foo"));
|
|
|
|
================================================================================
|
|
TestStringExportNamesIIFE
|
|
---------- /out.js ----------
|
|
var global;
|
|
(global ||= {}).name = (() => {
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
"all the stuff": () => all_the_stuff,
|
|
"some export": () => import_foo["some import"]
|
|
});
|
|
var import_foo = require("./foo");
|
|
var all_the_stuff = __toESM(require("./foo"));
|
|
return __toCommonJS(entry_exports);
|
|
})();
|
|
|
|
================================================================================
|
|
TestSwitchScopeNoBundle
|
|
---------- /out.js ----------
|
|
switch (foo) {
|
|
default:
|
|
var foo;
|
|
}
|
|
switch (bar) {
|
|
default:
|
|
let a;
|
|
}
|
|
|
|
================================================================================
|
|
TestThisInsideFunction
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
function foo(x = this) {
|
|
console.log(this);
|
|
}
|
|
var objFoo = {
|
|
foo(x = this) {
|
|
console.log(this);
|
|
}
|
|
};
|
|
var Foo = class {
|
|
x = this;
|
|
static y = this.z;
|
|
foo(x = this) {
|
|
console.log(this);
|
|
}
|
|
static bar(x = this) {
|
|
console.log(this);
|
|
}
|
|
};
|
|
new Foo(foo(objFoo));
|
|
if (nested) {
|
|
let bar2 = function(x = this) {
|
|
console.log(this);
|
|
};
|
|
bar = bar2;
|
|
const objBar = {
|
|
foo(x = this) {
|
|
console.log(this);
|
|
}
|
|
};
|
|
class Bar {
|
|
x = this;
|
|
static y = this.z;
|
|
foo(x = this) {
|
|
console.log(this);
|
|
}
|
|
static bar(x = this) {
|
|
console.log(this);
|
|
}
|
|
}
|
|
new Bar(bar2(objBar));
|
|
}
|
|
var bar;
|
|
|
|
================================================================================
|
|
TestThisOutsideFunction
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var require_entry = __commonJS({
|
|
"entry.js"(exports) {
|
|
if (shouldBeExportsNotThis) {
|
|
console.log(exports);
|
|
console.log((x = exports) => exports);
|
|
console.log({ x: exports });
|
|
console.log(class extends exports.foo {
|
|
});
|
|
console.log(class {
|
|
[exports.foo];
|
|
});
|
|
console.log(class {
|
|
[exports.foo]() {
|
|
}
|
|
});
|
|
console.log(class {
|
|
static [exports.foo];
|
|
});
|
|
console.log(class {
|
|
static [exports.foo]() {
|
|
}
|
|
});
|
|
}
|
|
if (shouldBeThisNotExports) {
|
|
console.log(class {
|
|
foo = this;
|
|
});
|
|
console.log(class {
|
|
foo() {
|
|
this;
|
|
}
|
|
});
|
|
console.log(class {
|
|
static foo = this;
|
|
});
|
|
console.log(class {
|
|
static foo() {
|
|
this;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
export default require_entry();
|
|
|
|
================================================================================
|
|
TestThisUndefinedWarningESM
|
|
---------- /out/entry.js ----------
|
|
// file1.js
|
|
var file1_default = [void 0, void 0];
|
|
|
|
// node_modules/pkg/file2.js
|
|
var file2_default = [void 0, void 0];
|
|
|
|
// entry.js
|
|
console.log(file1_default, file2_default);
|
|
|
|
================================================================================
|
|
TestThisWithES6Syntax
|
|
---------- /out.js ----------
|
|
// cjs.js
|
|
var require_cjs = __commonJS({
|
|
"cjs.js"(exports) {
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// dummy.js
|
|
var dummy_exports = {};
|
|
__export(dummy_exports, {
|
|
dummy: () => dummy
|
|
});
|
|
var dummy;
|
|
var init_dummy = __esm({
|
|
"dummy.js"() {
|
|
dummy = 123;
|
|
}
|
|
});
|
|
|
|
// es6-import-stmt.js
|
|
var require_es6_import_stmt = __commonJS({
|
|
"es6-import-stmt.js"(exports) {
|
|
init_dummy();
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-import-assign.ts
|
|
var require_es6_import_assign = __commonJS({
|
|
"es6-import-assign.ts"(exports) {
|
|
var x2 = (init_dummy(), __toCommonJS(dummy_exports));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-import-dynamic.js
|
|
var require_es6_import_dynamic = __commonJS({
|
|
"es6-import-dynamic.js"(exports) {
|
|
Promise.resolve().then(() => init_dummy());
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-expr-import-dynamic.js
|
|
var require_es6_expr_import_dynamic = __commonJS({
|
|
"es6-expr-import-dynamic.js"(exports) {
|
|
Promise.resolve().then(() => init_dummy());
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-export-assign.ts
|
|
var require_es6_export_assign = __commonJS({
|
|
"es6-export-assign.ts"(exports, module) {
|
|
console.log(exports);
|
|
module.exports = 123;
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-variable.ts
|
|
var require_es6_ns_export_variable = __commonJS({
|
|
"es6-ns-export-variable.ts"(exports) {
|
|
var ns;
|
|
((ns2) => {
|
|
ns2.foo = 123;
|
|
})(ns || (ns = {}));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-function.ts
|
|
var require_es6_ns_export_function = __commonJS({
|
|
"es6-ns-export-function.ts"(exports) {
|
|
var ns;
|
|
((ns2) => {
|
|
function foo() {
|
|
}
|
|
ns2.foo = foo;
|
|
})(ns || (ns = {}));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-async-function.ts
|
|
var require_es6_ns_export_async_function = __commonJS({
|
|
"es6-ns-export-async-function.ts"(exports) {
|
|
var ns;
|
|
((ns2) => {
|
|
async function foo() {
|
|
}
|
|
ns2.foo = foo;
|
|
})(ns || (ns = {}));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-enum.ts
|
|
var require_es6_ns_export_enum = __commonJS({
|
|
"es6-ns-export-enum.ts"(exports) {
|
|
var ns;
|
|
((ns2) => {
|
|
let Foo;
|
|
((Foo2) => {
|
|
})(Foo = ns2.Foo || (ns2.Foo = {}));
|
|
})(ns || (ns = {}));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-const-enum.ts
|
|
var require_es6_ns_export_const_enum = __commonJS({
|
|
"es6-ns-export-const-enum.ts"(exports) {
|
|
var ns;
|
|
((ns2) => {
|
|
let Foo;
|
|
((Foo2) => {
|
|
})(Foo = ns2.Foo || (ns2.Foo = {}));
|
|
})(ns || (ns = {}));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-module.ts
|
|
var require_es6_ns_export_module = __commonJS({
|
|
"es6-ns-export-module.ts"(exports) {
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-namespace.ts
|
|
var require_es6_ns_export_namespace = __commonJS({
|
|
"es6-ns-export-namespace.ts"(exports) {
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-class.ts
|
|
var require_es6_ns_export_class = __commonJS({
|
|
"es6-ns-export-class.ts"(exports) {
|
|
var ns;
|
|
((ns2) => {
|
|
class Foo {
|
|
}
|
|
ns2.Foo = Foo;
|
|
})(ns || (ns = {}));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// es6-ns-export-abstract-class.ts
|
|
var require_es6_ns_export_abstract_class = __commonJS({
|
|
"es6-ns-export-abstract-class.ts"(exports) {
|
|
var ns;
|
|
((ns2) => {
|
|
class Foo {
|
|
}
|
|
ns2.Foo = Foo;
|
|
})(ns || (ns = {}));
|
|
console.log(exports);
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var import_cjs = __toESM(require_cjs());
|
|
var import_es6_import_stmt = __toESM(require_es6_import_stmt());
|
|
var import_es6_import_assign = __toESM(require_es6_import_assign());
|
|
var import_es6_import_dynamic = __toESM(require_es6_import_dynamic());
|
|
|
|
// es6-import-meta.js
|
|
console.log(void 0);
|
|
|
|
// entry.js
|
|
var import_es6_expr_import_dynamic = __toESM(require_es6_expr_import_dynamic());
|
|
|
|
// es6-expr-import-meta.js
|
|
console.log(void 0);
|
|
|
|
// es6-export-variable.js
|
|
console.log(void 0);
|
|
|
|
// es6-export-function.js
|
|
console.log(void 0);
|
|
|
|
// es6-export-async-function.js
|
|
console.log(void 0);
|
|
|
|
// es6-export-enum.ts
|
|
console.log(void 0);
|
|
|
|
// es6-export-const-enum.ts
|
|
console.log(void 0);
|
|
|
|
// es6-export-module.ts
|
|
console.log(void 0);
|
|
|
|
// es6-export-namespace.ts
|
|
console.log(void 0);
|
|
|
|
// es6-export-class.js
|
|
console.log(void 0);
|
|
|
|
// es6-export-abstract-class.ts
|
|
console.log(void 0);
|
|
|
|
// es6-export-default.js
|
|
console.log(void 0);
|
|
|
|
// es6-export-clause.js
|
|
console.log(void 0);
|
|
|
|
// es6-export-clause-from.js
|
|
init_dummy();
|
|
console.log(void 0);
|
|
|
|
// es6-export-star.js
|
|
init_dummy();
|
|
console.log(void 0);
|
|
|
|
// es6-export-star-as.js
|
|
init_dummy();
|
|
console.log(void 0);
|
|
|
|
// entry.js
|
|
var import_es6_export_assign = __toESM(require_es6_export_assign());
|
|
|
|
// es6-export-import-assign.ts
|
|
var x = (init_dummy(), __toCommonJS(dummy_exports));
|
|
console.log(void 0);
|
|
|
|
// entry.js
|
|
var import_es6_ns_export_variable = __toESM(require_es6_ns_export_variable());
|
|
var import_es6_ns_export_function = __toESM(require_es6_ns_export_function());
|
|
var import_es6_ns_export_async_function = __toESM(require_es6_ns_export_async_function());
|
|
var import_es6_ns_export_enum = __toESM(require_es6_ns_export_enum());
|
|
var import_es6_ns_export_const_enum = __toESM(require_es6_ns_export_const_enum());
|
|
var import_es6_ns_export_module = __toESM(require_es6_ns_export_module());
|
|
var import_es6_ns_export_namespace = __toESM(require_es6_ns_export_namespace());
|
|
var import_es6_ns_export_class = __toESM(require_es6_ns_export_class());
|
|
var import_es6_ns_export_abstract_class = __toESM(require_es6_ns_export_abstract_class());
|
|
|
|
================================================================================
|
|
TestToESMWrapperOmission
|
|
---------- /out/entry.js ----------
|
|
var entry_exports = {};
|
|
module.exports = __toCommonJS(entry_exports);
|
|
var import_a_nowrap = require("a_nowrap");
|
|
var import_b_nowrap = require("b_nowrap");
|
|
__reExport(entry_exports, require("c_nowrap"), module.exports);
|
|
var d = __toESM(require("d_WRAP"));
|
|
var import_e_WRAP = __toESM(require("e_WRAP"));
|
|
var import_f_WRAP = __toESM(require("f_WRAP"));
|
|
var import_g_WRAP = __toESM(require("g_WRAP"));
|
|
var h = __toESM(require("h_WRAP"));
|
|
var i = __toESM(require("i_WRAP"));
|
|
var j = __toESM(require("j_WRAP"));
|
|
(0, import_b_nowrap.b)();
|
|
x = d.x;
|
|
(0, import_e_WRAP.default)();
|
|
(0, import_f_WRAP.default)();
|
|
(0, import_g_WRAP.__esModule)();
|
|
x = h;
|
|
i.x();
|
|
j.x``;
|
|
x = Promise.resolve().then(() => __toESM(require("k_WRAP")));
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitAllowedImportWithSplitting
|
|
---------- /out/entry.js ----------
|
|
// entry.js
|
|
import("./a-3BAWOBN3.js");
|
|
import("./b-2IGVSUS7.js");
|
|
import("./c-DMBKURS2.js");
|
|
require_entry();
|
|
await 0;
|
|
|
|
---------- /out/c-DMBKURS2.js ----------
|
|
import "./chunk-GETF6B5C.js";
|
|
|
|
---------- /out/b-2IGVSUS7.js ----------
|
|
import "./chunk-QJYGFXJG.js";
|
|
import "./chunk-GETF6B5C.js";
|
|
|
|
---------- /out/a-3BAWOBN3.js ----------
|
|
import "./chunk-QJYGFXJG.js";
|
|
import "./chunk-GETF6B5C.js";
|
|
|
|
---------- /out/chunk-QJYGFXJG.js ----------
|
|
|
|
---------- /out/chunk-GETF6B5C.js ----------
|
|
// c.js
|
|
await 0;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitAllowedImportWithoutSplitting
|
|
---------- /out.js ----------
|
|
// c.js
|
|
var c_exports = {};
|
|
var init_c = __esm({
|
|
async "c.js"() {
|
|
await 0;
|
|
}
|
|
});
|
|
|
|
// b.js
|
|
var b_exports = {};
|
|
var init_b = __esm({
|
|
async "b.js"() {
|
|
await init_c();
|
|
}
|
|
});
|
|
|
|
// a.js
|
|
var a_exports = {};
|
|
var init_a = __esm({
|
|
async "a.js"() {
|
|
await init_b();
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var entry_exports = {};
|
|
var init_entry = __esm({
|
|
async "entry.js"() {
|
|
init_a();
|
|
init_b();
|
|
init_c();
|
|
init_entry();
|
|
await 0;
|
|
}
|
|
});
|
|
await init_entry();
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitCJSDeadBranch
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
if (false) foo;
|
|
if (false) for (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitCyclicDependenciesIssue4498
|
|
---------- /out/entry.js ----------
|
|
// b.mjs
|
|
function b() {
|
|
return typeof a;
|
|
}
|
|
var init_b = __esm({
|
|
async "b.mjs"() {
|
|
await init_a();
|
|
}
|
|
});
|
|
|
|
// dep.mjs
|
|
var tla;
|
|
var init_dep = __esm({
|
|
async "dep.mjs"() {
|
|
tla = await Promise.resolve("x");
|
|
}
|
|
});
|
|
|
|
// a.mjs
|
|
function a() {
|
|
return b() + tla;
|
|
}
|
|
var init_a = __esm({
|
|
async "a.mjs"() {
|
|
await init_b();
|
|
await init_dep();
|
|
}
|
|
});
|
|
|
|
// main.mjs
|
|
var main_exports = {};
|
|
var init_main = __esm({
|
|
async "main.mjs"() {
|
|
await init_a();
|
|
console.log(a());
|
|
}
|
|
});
|
|
|
|
// entry.mjs
|
|
await init_main().then(() => main_exports);
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitESM
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
await foo;
|
|
for await (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitESMDeadBranch
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
if (false) await foo;
|
|
if (false) for await (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitForbiddenRequireDeadBranch
|
|
---------- /out.js ----------
|
|
(() => {
|
|
// c.js
|
|
var c_exports = {};
|
|
var init_c = __esm({
|
|
"c.js"() {
|
|
if (false) for (let x of y) ;
|
|
}
|
|
});
|
|
|
|
// b.js
|
|
var b_exports = {};
|
|
var init_b = __esm({
|
|
"b.js"() {
|
|
init_c();
|
|
}
|
|
});
|
|
|
|
// a.js
|
|
var a_exports = {};
|
|
var init_a = __esm({
|
|
"a.js"() {
|
|
init_b();
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
var entry_exports = {};
|
|
var init_entry = __esm({
|
|
"entry.js"() {
|
|
init_a();
|
|
init_b();
|
|
init_c();
|
|
init_entry();
|
|
if (false) for (let x of y) ;
|
|
}
|
|
});
|
|
init_entry();
|
|
})();
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitIIFEDeadBranch
|
|
---------- /out.js ----------
|
|
(() => {
|
|
// entry.js
|
|
if (false) foo;
|
|
if (false) for (foo of bar) ;
|
|
})();
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitNoBundle
|
|
---------- /out.js ----------
|
|
await foo;
|
|
for await (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitNoBundleCommonJSDeadBranch
|
|
---------- /out.js ----------
|
|
if (false) foo;
|
|
if (false) for (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitNoBundleDeadBranch
|
|
---------- /out.js ----------
|
|
if (false) await foo;
|
|
if (false) for await (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitNoBundleESM
|
|
---------- /out.js ----------
|
|
await foo;
|
|
for await (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitNoBundleESMDeadBranch
|
|
---------- /out.js ----------
|
|
if (false) await foo;
|
|
if (false) for await (foo of bar) ;
|
|
|
|
================================================================================
|
|
TestTopLevelAwaitNoBundleIIFEDeadBranch
|
|
---------- /out.js ----------
|
|
(() => {
|
|
if (false) foo;
|
|
if (false) for (foo of bar) ;
|
|
})();
|
|
|
|
================================================================================
|
|
TestUseStrictDirectiveBundleCJSIssue2264
|
|
---------- /out.js ----------
|
|
"use strict";
|
|
|
|
// entry.js
|
|
var entry_exports = {};
|
|
__export(entry_exports, {
|
|
a: () => a
|
|
});
|
|
module.exports = __toCommonJS(entry_exports);
|
|
var a = 1;
|
|
|
|
================================================================================
|
|
TestUseStrictDirectiveBundleESMIssue2264
|
|
---------- /out.js ----------
|
|
// entry.js
|
|
var a = 1;
|
|
export {
|
|
a
|
|
};
|
|
|
|
================================================================================
|
|
TestUseStrictDirectiveBundleIIFEIssue2264
|
|
---------- /out.js ----------
|
|
"use strict";
|
|
(() => {
|
|
// entry.js
|
|
var a = 1;
|
|
})();
|
|
|
|
================================================================================
|
|
TestUseStrictDirectiveBundleIssue1837
|
|
---------- /out.js ----------
|
|
(() => {
|
|
// shims.js
|
|
var import_process;
|
|
var init_shims = __esm({
|
|
"shims.js"() {
|
|
import_process = __toESM(__require("process"));
|
|
}
|
|
});
|
|
|
|
// cjs.js
|
|
var require_cjs = __commonJS({
|
|
"cjs.js"(exports) {
|
|
"use strict";
|
|
init_shims();
|
|
exports.foo = import_process.default;
|
|
}
|
|
});
|
|
|
|
// entry.js
|
|
init_shims();
|
|
console.log(require_cjs());
|
|
})();
|
|
|
|
================================================================================
|
|
TestUseStrictDirectiveMinifyNoBundle
|
|
---------- /out.js ----------
|
|
"use strict";"use loose";a,b;
|
|
|
|
================================================================================
|
|
TestVarRelocatingBundle
|
|
---------- /out/top-level.js ----------
|
|
// top-level.js
|
|
for (; 0; ) ;
|
|
var b;
|
|
for ({ c, x: [d] } = {}; 0; ) ;
|
|
var c;
|
|
var d;
|
|
for (e of []) ;
|
|
var e;
|
|
for ({ f, x: [g] } of []) ;
|
|
var f;
|
|
var g;
|
|
for (h in {}) ;
|
|
var h;
|
|
i = 1;
|
|
for (i in {}) ;
|
|
var i;
|
|
for ({ j, x: [k] } in {}) ;
|
|
var j;
|
|
var k;
|
|
|
|
---------- /out/nested.js ----------
|
|
// nested.js
|
|
if (true) {
|
|
let l2 = function() {
|
|
};
|
|
l = l2;
|
|
for (; 0; ) ;
|
|
for ({ c, x: [d] } = {}; 0; ) ;
|
|
for (e of []) ;
|
|
for ({ f, x: [g] } of []) ;
|
|
for (h in {}) ;
|
|
i = 1;
|
|
for (i in {}) ;
|
|
for ({ j, x: [k] } in {}) ;
|
|
}
|
|
var a;
|
|
var b;
|
|
var c;
|
|
var d;
|
|
var e;
|
|
var f;
|
|
var g;
|
|
var h;
|
|
var i;
|
|
var j;
|
|
var k;
|
|
var l;
|
|
|
|
---------- /out/let.js ----------
|
|
// let.js
|
|
if (true) {
|
|
let a;
|
|
for (let b; 0; ) ;
|
|
for (let { c, x: [d] } = {}; 0; ) ;
|
|
for (let e of []) ;
|
|
for (let { f, x: [g] } of []) ;
|
|
for (let h in {}) ;
|
|
for (let { j, x: [k] } in {}) ;
|
|
}
|
|
|
|
---------- /out/function.js ----------
|
|
// function.js
|
|
function x() {
|
|
var a;
|
|
for (var b; 0; ) ;
|
|
for (var { c, x: [d] } = {}; 0; ) ;
|
|
for (var e of []) ;
|
|
for (var { f, x: [g] } of []) ;
|
|
for (var h in {}) ;
|
|
i = 1;
|
|
for (var i in {}) ;
|
|
for (var { j, x: [k] } in {}) ;
|
|
function l() {
|
|
}
|
|
}
|
|
x();
|
|
|
|
---------- /out/function-nested.js ----------
|
|
// function-nested.js
|
|
function x() {
|
|
if (true) {
|
|
let l2 = function() {
|
|
};
|
|
var l = l2;
|
|
var a;
|
|
for (var b; 0; ) ;
|
|
for (var { c, x: [d] } = {}; 0; ) ;
|
|
for (var e of []) ;
|
|
for (var { f, x: [g] } of []) ;
|
|
for (var h in {}) ;
|
|
i = 1;
|
|
for (var i in {}) ;
|
|
for (var { j, x: [k] } in {}) ;
|
|
}
|
|
}
|
|
x();
|
|
|
|
================================================================================
|
|
TestVarRelocatingNoBundle
|
|
---------- /out/top-level.js ----------
|
|
var a;
|
|
for (var b; 0; ) ;
|
|
for (var { c, x: [d] } = {}; 0; ) ;
|
|
for (var e of []) ;
|
|
for (var { f, x: [g] } of []) ;
|
|
for (var h in {}) ;
|
|
i = 1;
|
|
for (var i in {}) ;
|
|
for (var { j, x: [k] } in {}) ;
|
|
function l() {
|
|
}
|
|
|
|
---------- /out/nested.js ----------
|
|
if (true) {
|
|
let l2 = function() {
|
|
};
|
|
var l = l2;
|
|
var a;
|
|
for (var b; 0; ) ;
|
|
for (var { c, x: [d] } = {}; 0; ) ;
|
|
for (var e of []) ;
|
|
for (var { f, x: [g] } of []) ;
|
|
for (var h in {}) ;
|
|
i = 1;
|
|
for (var i in {}) ;
|
|
for (var { j, x: [k] } in {}) ;
|
|
}
|
|
|
|
---------- /out/let.js ----------
|
|
if (true) {
|
|
let a;
|
|
for (let b; 0; ) ;
|
|
for (let { c, x: [d] } = {}; 0; ) ;
|
|
for (let e of []) ;
|
|
for (let { f, x: [g] } of []) ;
|
|
for (let h in {}) ;
|
|
for (let { j, x: [k] } in {}) ;
|
|
}
|
|
|
|
---------- /out/function.js ----------
|
|
function x() {
|
|
var a;
|
|
for (var b; 0; ) ;
|
|
for (var { c, x: [d] } = {}; 0; ) ;
|
|
for (var e of []) ;
|
|
for (var { f, x: [g] } of []) ;
|
|
for (var h in {}) ;
|
|
i = 1;
|
|
for (var i in {}) ;
|
|
for (var { j, x: [k] } in {}) ;
|
|
function l() {
|
|
}
|
|
}
|
|
x();
|
|
|
|
---------- /out/function-nested.js ----------
|
|
function x() {
|
|
if (true) {
|
|
let l2 = function() {
|
|
};
|
|
var l = l2;
|
|
var a;
|
|
for (var b; 0; ) ;
|
|
for (var { c, x: [d] } = {}; 0; ) ;
|
|
for (var e of []) ;
|
|
for (var { f, x: [g] } of []) ;
|
|
for (var h in {}) ;
|
|
i = 1;
|
|
for (var i in {}) ;
|
|
for (var { j, x: [k] } in {}) ;
|
|
}
|
|
}
|
|
x();
|
|
|
|
================================================================================
|
|
TestWarnCommonJSExportsInESMBundle
|
|
---------- /out/cjs-in-esm.js ----------
|
|
// cjs-in-esm.js
|
|
var cjs_in_esm_exports = {};
|
|
__export(cjs_in_esm_exports, {
|
|
foo: () => foo
|
|
});
|
|
module.exports = __toCommonJS(cjs_in_esm_exports);
|
|
var foo = 1;
|
|
exports.foo = 2;
|
|
module.exports = 3;
|
|
|
|
---------- /out/import-in-cjs.js ----------
|
|
// import-in-cjs.js
|
|
var import_bar = require("bar");
|
|
exports.foo = import_bar.foo;
|
|
module.exports = import_bar.foo;
|
|
|
|
---------- /out/no-warnings-here.js ----------
|
|
// no-warnings-here.js
|
|
console.log(module, exports);
|
|
|
|
================================================================================
|
|
TestWarnCommonJSExportsInESMConvert
|
|
---------- /out/cjs-in-esm.js ----------
|
|
var cjs_in_esm_exports = {};
|
|
__export(cjs_in_esm_exports, {
|
|
foo: () => foo
|
|
});
|
|
module.exports = __toCommonJS(cjs_in_esm_exports);
|
|
let foo = 1;
|
|
exports.foo = 2;
|
|
module.exports = 3;
|
|
|
|
---------- /out/cjs-in-esm2.js ----------
|
|
var cjs_in_esm2_exports = {};
|
|
__export(cjs_in_esm2_exports, {
|
|
foo: () => foo
|
|
});
|
|
module.exports = __toCommonJS(cjs_in_esm2_exports);
|
|
let foo = 1;
|
|
module.exports.bar = 3;
|
|
|
|
---------- /out/import-in-cjs.js ----------
|
|
var import_bar = require("bar");
|
|
exports.foo = import_bar.foo;
|
|
module.exports = import_bar.foo;
|
|
module.exports.bar = import_bar.foo;
|
|
|
|
---------- /out/no-warnings-here.js ----------
|
|
console.log(module, exports);
|
|
|
|
================================================================================
|
|
TestWarningsInsideNodeModules
|
|
---------- /out.js ----------
|
|
// return-asi.js
|
|
var require_return_asi = __commonJS({
|
|
"return-asi.js"() {
|
|
return;
|
|
}
|
|
});
|
|
|
|
// node_modules/return-asi.js
|
|
var require_return_asi2 = __commonJS({
|
|
"node_modules/return-asi.js"() {
|
|
return;
|
|
}
|
|
});
|
|
|
|
// plugin-dir/node_modules/return-asi.js
|
|
var require_return_asi3 = __commonJS({
|
|
"plugin-dir/node_modules/return-asi.js"() {
|
|
return;
|
|
}
|
|
});
|
|
|
|
// dup-case.js
|
|
switch (x) {
|
|
case 0:
|
|
case 0:
|
|
}
|
|
|
|
// node_modules/dup-case.js
|
|
switch (x) {
|
|
case 0:
|
|
case 0:
|
|
}
|
|
|
|
// plugin-dir/node_modules/dup-case.js
|
|
switch (x) {
|
|
case 0:
|
|
case 0:
|
|
}
|
|
|
|
// not-in.js
|
|
!a in b;
|
|
|
|
// node_modules/not-in.js
|
|
!a in b;
|
|
|
|
// plugin-dir/node_modules/not-in.js
|
|
!a in b;
|
|
|
|
// not-instanceof.js
|
|
!a instanceof b;
|
|
|
|
// node_modules/not-instanceof.js
|
|
!a instanceof b;
|
|
|
|
// plugin-dir/node_modules/not-instanceof.js
|
|
!a instanceof b;
|
|
|
|
// entry.js
|
|
var import_return_asi = __toESM(require_return_asi());
|
|
var import_return_asi2 = __toESM(require_return_asi2());
|
|
var import_return_asi3 = __toESM(require_return_asi3());
|
|
|
|
// equals-neg-zero.js
|
|
x === -0;
|
|
|
|
// node_modules/equals-neg-zero.js
|
|
x === -0;
|
|
|
|
// plugin-dir/node_modules/equals-neg-zero.js
|
|
x === -0;
|
|
|
|
// equals-nan.js
|
|
x === NaN;
|
|
|
|
// node_modules/equals-nan.js
|
|
x === NaN;
|
|
|
|
// plugin-dir/node_modules/equals-nan.js
|
|
x === NaN;
|
|
|
|
// equals-object.js
|
|
x === [];
|
|
|
|
// node_modules/equals-object.js
|
|
x === [];
|
|
|
|
// plugin-dir/node_modules/equals-object.js
|
|
x === [];
|
|
|
|
// delete-super.js
|
|
var Foo = class extends Bar {
|
|
foo() {
|
|
delete super.foo;
|
|
}
|
|
};
|
|
|
|
// node_modules/delete-super.js
|
|
var Foo2 = class extends Bar {
|
|
foo() {
|
|
delete super.foo;
|
|
}
|
|
};
|
|
|
|
// plugin-dir/node_modules/delete-super.js
|
|
var Foo3 = class extends Bar {
|
|
foo() {
|
|
delete super.foo;
|
|
}
|
|
};
|
|
|
|
================================================================================
|
|
TestWithStatementTaintingNoBundle
|
|
---------- /out.js ----------
|
|
(() => {
|
|
let e = 1;
|
|
let outer = 2;
|
|
let outerDead = 3;
|
|
with ({}) {
|
|
var hoisted = 4;
|
|
let t = 5;
|
|
hoisted++;
|
|
t++;
|
|
if (1) outer++;
|
|
if (0) outerDead++;
|
|
}
|
|
if (1) {
|
|
hoisted++;
|
|
e++;
|
|
outer++;
|
|
outerDead++;
|
|
}
|
|
})();
|