2016-06-17 22:25:18 +00:00
|
|
|
var assert = require("assert");
|
2017-05-08 18:01:55 +00:00
|
|
|
var uglify = require("../node");
|
2016-06-17 22:25:18 +00:00
|
|
|
|
|
|
|
|
describe("Expression", function() {
|
|
|
|
|
it("Should not allow the first exponentiation operator to be prefixed with an unary operator", function() {
|
|
|
|
|
var tests = [
|
|
|
|
|
"+5 ** 3",
|
|
|
|
|
"-5 ** 3",
|
|
|
|
|
"~5 ** 3",
|
|
|
|
|
"!5 ** 3",
|
|
|
|
|
"void 5 ** 3",
|
|
|
|
|
"typeof 5 ** 3",
|
|
|
|
|
"delete 5 ** 3",
|
|
|
|
|
"var a = -(5) ** 3;"
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
var fail = function(e) {
|
|
|
|
|
return e instanceof uglify.JS_Parse_Error &&
|
2017-02-27 19:58:01 +00:00
|
|
|
/^Unexpected token: operator \((?:[!+~-]|void|typeof|delete)\)/.test(e.message);
|
2016-06-17 22:25:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var exec = function(test) {
|
|
|
|
|
return function() {
|
|
|
|
|
uglify.parse(test);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < tests.length; i++) {
|
|
|
|
|
assert.throws(exec(tests[i]), fail, tests[i]);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|