316 lines
6.0 KiB
JavaScript
316 lines
6.0 KiB
JavaScript
lambda_call_dot_assign: {
|
|
beautify = {
|
|
webkit: false,
|
|
}
|
|
input: {
|
|
console.log(function() {
|
|
return {};
|
|
}().a = 1);
|
|
}
|
|
expect_exact: "console.log(function(){return{}}().a=1);"
|
|
expect_stdout: "1"
|
|
}
|
|
|
|
lambda_call_dot_assign_webkit: {
|
|
beautify = {
|
|
webkit: true,
|
|
}
|
|
input: {
|
|
console.log(function() {
|
|
return {};
|
|
}().a = 1);
|
|
}
|
|
expect_exact: "console.log((function(){return{}}()).a=1);"
|
|
expect_stdout: "1"
|
|
}
|
|
|
|
lambda_dot_assign: {
|
|
beautify = {
|
|
webkit: false,
|
|
}
|
|
input: {
|
|
console.log(function() {
|
|
1 + 1;
|
|
}.a = 1);
|
|
}
|
|
expect_exact: "console.log(function(){1+1}.a=1);"
|
|
expect_stdout: "1"
|
|
}
|
|
|
|
lambda_dot_assign_webkit: {
|
|
beautify = {
|
|
webkit: true,
|
|
}
|
|
input: {
|
|
console.log(function() {
|
|
1 + 1;
|
|
}.a = 1);
|
|
}
|
|
expect_exact: "console.log((function(){1+1}).a=1);"
|
|
expect_stdout: "1"
|
|
}
|
|
|
|
lambda_name_mangle: {
|
|
mangle = {}
|
|
input: {
|
|
console.log(typeof function foo(bar) {});
|
|
}
|
|
expect_exact: "console.log(typeof function o(n){});"
|
|
expect_stdout: "function"
|
|
}
|
|
|
|
lambda_name_mangle_ie8: {
|
|
mangle = {
|
|
ie: true,
|
|
toplevel: true,
|
|
}
|
|
input: {
|
|
console.log(typeof function foo(bar) {});
|
|
}
|
|
expect_exact: "console.log(typeof function n(o){});"
|
|
expect_stdout: "function"
|
|
}
|
|
|
|
function_name_mangle: {
|
|
options = {
|
|
keep_fnames: true,
|
|
reduce_vars: true,
|
|
unused: true,
|
|
}
|
|
mangle = {}
|
|
input: {
|
|
(function() {
|
|
function foo(bar) {}
|
|
console.log(typeof foo);
|
|
})();
|
|
}
|
|
expect_exact: "(function(){console.log(typeof function o(n){})})();"
|
|
expect_stdout: "function"
|
|
}
|
|
|
|
function_name_mangle_ie8: {
|
|
options = {
|
|
keep_fnames: true,
|
|
reduce_vars: true,
|
|
unused: true,
|
|
}
|
|
mangle = {
|
|
ie: true,
|
|
toplevel: true,
|
|
}
|
|
input: {
|
|
(function() {
|
|
function foo(bar) {}
|
|
console.log(typeof foo);
|
|
})();
|
|
}
|
|
expect_exact: "(function(){console.log(typeof function n(o){})})();"
|
|
expect_stdout: "function"
|
|
}
|
|
|
|
issue_1753: {
|
|
mangle = {
|
|
toplevel: false,
|
|
webkit: true,
|
|
}
|
|
input: {
|
|
"use strict";
|
|
let l = null;
|
|
for (let i = 0; i < 1; i++)
|
|
console.log(i);
|
|
}
|
|
expect: {
|
|
"use strict";
|
|
let l = null;
|
|
for (let i = 0; i < 1; i++)
|
|
console.log(i);
|
|
}
|
|
expect_stdout: "0"
|
|
node_version: ">=4"
|
|
}
|
|
|
|
issue_1753_toplevel: {
|
|
mangle = {
|
|
toplevel: true,
|
|
webkit: true,
|
|
}
|
|
input: {
|
|
"use strict";
|
|
let l = null;
|
|
for (let i = 0; i < 1; i++)
|
|
console.log(i);
|
|
}
|
|
expect: {
|
|
"use strict";
|
|
let l = null;
|
|
for (let e = 0; e < 1; e++)
|
|
console.log(e);
|
|
}
|
|
expect_stdout: "0"
|
|
node_version: ">=4"
|
|
}
|
|
|
|
issue_5032_await: {
|
|
options = {
|
|
merge_vars: true,
|
|
webkit: false,
|
|
}
|
|
input: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
async function f(a) {
|
|
var b = log(a), c = b;
|
|
log(b);
|
|
log(c);
|
|
}
|
|
f("PASS");
|
|
}
|
|
expect: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
async function f(a) {
|
|
var a = log(a), c = a;
|
|
log(a);
|
|
log(c);
|
|
}
|
|
f("PASS");
|
|
}
|
|
expect_stdout: [
|
|
"PASS",
|
|
"PASS",
|
|
"PASS",
|
|
]
|
|
node_version: ">=8"
|
|
}
|
|
|
|
issue_5032_await_webkit: {
|
|
options = {
|
|
merge_vars: true,
|
|
webkit: true,
|
|
}
|
|
input: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
async function f(a) {
|
|
var b = log(a), c = b;
|
|
log(b);
|
|
log(c);
|
|
}
|
|
f("PASS");
|
|
}
|
|
expect: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
async function f(a) {
|
|
var b = log(a), c = b;
|
|
log(b);
|
|
log(c);
|
|
}
|
|
f("PASS");
|
|
}
|
|
expect_stdout: [
|
|
"PASS",
|
|
"PASS",
|
|
"PASS",
|
|
]
|
|
node_version: ">=8"
|
|
}
|
|
|
|
issue_5032_yield: {
|
|
options = {
|
|
merge_vars: true,
|
|
webkit: false,
|
|
}
|
|
input: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
function *f(a) {
|
|
var b = log(a), c = b;
|
|
log(b);
|
|
log(c);
|
|
}
|
|
f("PASS").next();
|
|
}
|
|
expect: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
function *f(a) {
|
|
var a = log(a), c = a;
|
|
log(a);
|
|
log(c);
|
|
}
|
|
f("PASS").next();
|
|
}
|
|
expect_stdout: [
|
|
"PASS",
|
|
"PASS",
|
|
"PASS",
|
|
]
|
|
node_version: ">=4"
|
|
}
|
|
|
|
issue_5032_yield_webkit: {
|
|
options = {
|
|
merge_vars: true,
|
|
webkit: true,
|
|
}
|
|
input: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
function *f(a) {
|
|
var b = log(a), c = b;
|
|
log(b);
|
|
log(c);
|
|
}
|
|
f("PASS").next();
|
|
}
|
|
expect: {
|
|
function log(value) {
|
|
console.log(value);
|
|
return value;
|
|
}
|
|
function *f(a) {
|
|
var b = log(a), c = b;
|
|
log(b);
|
|
log(c);
|
|
}
|
|
f("PASS").next();
|
|
}
|
|
expect_stdout: [
|
|
"PASS",
|
|
"PASS",
|
|
"PASS",
|
|
]
|
|
node_version: ">=4"
|
|
}
|
|
|
|
issue_5480: {
|
|
mangle = {
|
|
webkit: true,
|
|
}
|
|
input: {
|
|
"use strict";
|
|
L: for (let a in console.log("PASS"));
|
|
}
|
|
expect: {
|
|
"use strict";
|
|
o: for (let o in console.log("PASS"));
|
|
}
|
|
expect_stdout: "PASS"
|
|
node_version: ">=4"
|
|
}
|