30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
var assert = require("assert");
|
|
var uglify = require("../../");
|
|
|
|
describe("Function", function() {
|
|
it("Should not accept spread on non-last parameters", function() {
|
|
var tests = [
|
|
"var a = function(...a, b) { return a.join(b) }",
|
|
"var b = function(a, b, ...c, d) { return c.join(a + b) + d }",
|
|
"function foo(...a, b) { return a.join(b) }",
|
|
"function bar(a, b, ...c, d) { return c.join(a + b) + d }",
|
|
"var a = function*(...a, b) { return a.join(b) }",
|
|
"var b = function*(a, b, ...c, d) { return c.join(a + b) + d }",
|
|
"function* foo(...a, b) { return a.join(b) }",
|
|
"function* bar(a, b, ...c, d) { return c.join(a + b) + d }"
|
|
];
|
|
var test = function(code) {
|
|
return function() {
|
|
uglify.parse(code, {fromString: true});
|
|
}
|
|
}
|
|
var error = function(e) {
|
|
return e instanceof uglify.JS_Parse_Error &&
|
|
e.message === "Unexpected token: expand (...)";
|
|
}
|
|
|
|
for (var i = 0; i < tests.length; i++) {
|
|
assert.throws(test(tests[i]), error);
|
|
}
|
|
});
|
|
}); |