reject non-toplevel import/export (#2128)

fixes #2124
This commit is contained in:
Alex Lam S.L
2017-06-21 03:18:48 +08:00
committed by GitHub
parent 62d1fbf645
commit 11923e3ae8
5 changed files with 45 additions and 28 deletions

View File

@@ -533,6 +533,36 @@ describe("bin/uglifyjs", function () {
done();
});
});
it("Should throw syntax error (block-level export)", function(done) {
var command = uglifyjscmd + ' test/input/invalid/export.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",
" export var V = 1;",
" ^",
"ERROR: Export statement may only appear at top level"
].join("\n"));
done();
});
});
it("Should throw syntax error (block-level import)", function(done) {
var command = uglifyjscmd + ' test/input/invalid/import.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/import.js:2,4",
' import A from "B";',
" ^",
"ERROR: Import statement may only appear at top level"
].join("\n"));
done();
});
});
it("Should handle literal string as source map input", function(done) {
var command = [
uglifyjscmd,