swc/ecmascript/minifier/tests/terser/compress/dead-code/throw_assignment/input.js
강동윤 c6b22c57f8
feat(es/minifier): Implement minifier partially (#1302)
Co-authored-by: Fábio Santos <fabiosantosart@gmail.com>
2021-05-20 13:51:30 +09:00

75 lines
1.2 KiB
JavaScript

function f1() {
throw (a = x());
}
function f2(a) {
throw (a = x());
}
function f3() {
var a;
throw (a = x());
}
function f4() {
try {
throw (a = x());
} catch (b) {
console.log(a);
}
}
function f5(a) {
try {
throw (a = x());
} catch (b) {
console.log(a);
}
}
function f6() {
var a;
try {
throw (a = x());
} catch (b) {
console.log(a);
}
}
function f7() {
try {
throw (a = x());
} finally {
console.log(a);
}
}
function f8(a) {
try {
throw (a = x());
} finally {
console.log(a);
}
}
function f9() {
var a;
try {
throw (a = x());
} finally {
console.log(a);
}
}
function test(inc) {
var counter = 0;
x = function () {
counter += inc;
if (inc < 0) throw counter;
return counter;
};
[f1, f2, f3, f4, f5, f6, f7, f8, f9].forEach(function (f, i) {
a = null;
try {
f(10 * (1 + i));
} catch (x) {
console.log("caught " + x);
}
if (null !== a) console.log("a: " + a);
});
}
var x, a;
test(1);
test(-1);