2016-07-21 01:19:24 +00:00
|
|
|
var assert = require("assert");
|
2018-06-21 17:04:15 +00:00
|
|
|
var UglifyJS = require("../node");
|
2016-07-21 01:19:24 +00:00
|
|
|
|
2018-06-06 09:50:56 +00:00
|
|
|
describe("Number literals", function() {
|
2016-07-21 01:19:24 +00:00
|
|
|
it("Should not allow legacy octal literals in strict mode", function() {
|
|
|
|
|
var inputs = [
|
|
|
|
|
'"use strict";00;',
|
|
|
|
|
'"use strict"; var foo = 00;'
|
|
|
|
|
];
|
|
|
|
|
var test = function(input) {
|
|
|
|
|
return function() {
|
2018-06-21 17:04:15 +00:00
|
|
|
UglifyJS.parse(input);
|
2016-07-21 01:19:24 +00:00
|
|
|
}
|
2018-06-06 09:50:56 +00:00
|
|
|
};
|
2016-07-21 01:19:24 +00:00
|
|
|
var error = function(e) {
|
2018-06-21 17:04:15 +00:00
|
|
|
return e instanceof UglifyJS.JS_Parse_Error
|
2018-06-06 09:50:56 +00:00
|
|
|
&& e.message === "Legacy octal literals are not allowed in strict mode";
|
|
|
|
|
};
|
2016-07-21 01:19:24 +00:00
|
|
|
for (var i = 0; i < inputs.length; i++) {
|
|
|
|
|
assert.throws(test(inputs[i]), error, inputs[i]);
|
|
|
|
|
}
|
|
|
|
|
});
|
2018-06-06 09:50:56 +00:00
|
|
|
});
|