add test for --reduce-test (#3712)
This commit is contained in:
18
test/input/reduce/input.js
Normal file
18
test/input/reduce/input.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
var _calls_ = 10, a = 100, b = 10, c = 0;
|
||||||
|
|
||||||
|
function f0(b_1, a, undefined_2) {
|
||||||
|
a++ + ++b;
|
||||||
|
{
|
||||||
|
var expr2 = (b + 1 - .1 - .1 - .1 || a || 3).toString();
|
||||||
|
L20778: for (var key2 in expr2) {
|
||||||
|
(c = c + 1) + [ --b + b_1, typeof f0 == "function" && --_calls_ >= 0 && f0(--b + typeof (undefined_2 = 1 === 1 ? a : b), --b + {
|
||||||
|
c: (c = c + 1) + null
|
||||||
|
}, a++ + (typeof f0 == "function" && --_calls_ >= 0 && f0(typeof (c = 1 + c, 3 / "a" * ("c" >>> 23..toString()) >= (b_1 && (b_1[(c = c + 1) + a--] = (- -0,
|
||||||
|
true + {})))), 3, 25))), 1 === 1 ? a : b ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var a_1 = f0([ , 0 ].length === 2);
|
||||||
|
|
||||||
|
console.log(null, a, b, c, Infinity, NaN, undefined);
|
||||||
15
test/input/reduce/output.js
Normal file
15
test/input/reduce/output.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
var b = 0;
|
||||||
|
|
||||||
|
function f0() {
|
||||||
|
var expr2 = (0 - 1 - .1 - .1).toString();
|
||||||
|
for (var key2 in expr2) {
|
||||||
|
--b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var a_1 = f0();
|
||||||
|
|
||||||
|
console.log(b);
|
||||||
|
// output: -19
|
||||||
|
// minify: -4
|
||||||
|
// options: {"compress":{"unsafe_math":true},"mangle":false}
|
||||||
@@ -1,8 +1,26 @@
|
|||||||
var assert = require("assert");
|
var assert = require("assert");
|
||||||
var exec = require("child_process").exec;
|
var exec = require("child_process").exec;
|
||||||
|
var fs = require("fs");
|
||||||
var reduce_test = require("../reduce");
|
var reduce_test = require("../reduce");
|
||||||
|
|
||||||
|
function read(path) {
|
||||||
|
return fs.readFileSync(path, "utf8");
|
||||||
|
}
|
||||||
|
|
||||||
describe("test/reduce.js", function() {
|
describe("test/reduce.js", function() {
|
||||||
|
it("Should reduce test case", function() {
|
||||||
|
this.timeout(30000);
|
||||||
|
var result = reduce_test(read("test/input/reduce/input.js"), {
|
||||||
|
compress: {
|
||||||
|
unsafe_math: true,
|
||||||
|
},
|
||||||
|
mangle: false,
|
||||||
|
}, {
|
||||||
|
verbose: false,
|
||||||
|
});
|
||||||
|
if (result.error) throw result.error;
|
||||||
|
assert.strictEqual(result.code, read("test/input/reduce/output.js"));
|
||||||
|
});
|
||||||
it("Should handle test cases with --toplevel", function() {
|
it("Should handle test cases with --toplevel", function() {
|
||||||
var result = reduce_test([
|
var result = reduce_test([
|
||||||
"var Infinity = 42;",
|
"var Infinity = 42;",
|
||||||
|
|||||||
Reference in New Issue
Block a user