correctly parse export of function & class (#2135)
This commit is contained in:
@@ -107,3 +107,16 @@ issue_2129: {
|
||||
export const { keys } = Object;
|
||||
}
|
||||
}
|
||||
|
||||
async_func: {
|
||||
options = {
|
||||
keep_fargs: false,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
export async function Foo(x){};
|
||||
}
|
||||
expect: {
|
||||
export async function Foo(){};
|
||||
}
|
||||
}
|
||||
|
||||
1
test/input/invalid/export_2.js
Normal file
1
test/input/invalid/export_2.js
Normal file
@@ -0,0 +1 @@
|
||||
export class{};
|
||||
1
test/input/invalid/export_3.js
Normal file
1
test/input/invalid/export_3.js
Normal file
@@ -0,0 +1 @@
|
||||
export function(){};
|
||||
@@ -534,13 +534,13 @@ describe("bin/uglifyjs", function () {
|
||||
});
|
||||
});
|
||||
it("Should throw syntax error (block-level export)", function(done) {
|
||||
var command = uglifyjscmd + ' test/input/invalid/export.js -m';
|
||||
var command = uglifyjscmd + ' test/input/invalid/export_1.js -m';
|
||||
|
||||
exec(command, function (err, stdout, stderr) {
|
||||
assert.ok(err);
|
||||
assert.strictEqual(stdout, "");
|
||||
assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
|
||||
"Parse error at test/input/invalid/export.js:2,4",
|
||||
"Parse error at test/input/invalid/export_1.js:2,4",
|
||||
" export var V = 1;",
|
||||
" ^",
|
||||
"ERROR: Export statement may only appear at top level"
|
||||
@@ -563,6 +563,36 @@ describe("bin/uglifyjs", function () {
|
||||
done();
|
||||
});
|
||||
});
|
||||
it("Should throw syntax error (anonymous class)", function(done) {
|
||||
var command = uglifyjscmd + ' test/input/invalid/export_2.js';
|
||||
|
||||
exec(command, function (err, stdout, stderr) {
|
||||
assert.ok(err);
|
||||
assert.strictEqual(stdout, "");
|
||||
assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
|
||||
"Parse error at test/input/invalid/export_2.js:1,12",
|
||||
"export class{};",
|
||||
" ^",
|
||||
"ERROR: Unexpected token: punc ({)"
|
||||
].join("\n"));
|
||||
done();
|
||||
});
|
||||
});
|
||||
it("Should throw syntax error (anonymous function)", function(done) {
|
||||
var command = uglifyjscmd + ' test/input/invalid/export_3.js';
|
||||
|
||||
exec(command, function (err, stdout, stderr) {
|
||||
assert.ok(err);
|
||||
assert.strictEqual(stdout, "");
|
||||
assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
|
||||
"Parse error at test/input/invalid/export_3.js:1,15",
|
||||
"export function(){};",
|
||||
" ^",
|
||||
"ERROR: Unexpected token: punc (()"
|
||||
].join("\n"));
|
||||
done();
|
||||
});
|
||||
});
|
||||
it("Should handle literal string as source map input", function(done) {
|
||||
var command = [
|
||||
uglifyjscmd,
|
||||
|
||||
Reference in New Issue
Block a user