Merge branch 'master' into harmony
This commit is contained in:
28
test/mocha/glob.js
Normal file
28
test/mocha/glob.js
Normal file
@@ -0,0 +1,28 @@
|
||||
var Uglify = require('../../');
|
||||
var assert = require("assert");
|
||||
|
||||
describe("minify() with input file globs", function() {
|
||||
it("minify() with one input file glob string.", function() {
|
||||
var result = Uglify.minify("test/input/issue-1242/foo.*", {
|
||||
compress: { collapse_vars: true }
|
||||
});
|
||||
assert.strictEqual(result.code, 'function foo(o){print("Foo:",2*o)}var print=console.log.bind(console);');
|
||||
});
|
||||
it("minify() with an array of one input file glob.", function() {
|
||||
var result = Uglify.minify([
|
||||
"test/input/issue-1242/b*.es5",
|
||||
], {
|
||||
compress: { collapse_vars: true }
|
||||
});
|
||||
assert.strictEqual(result.code, 'function bar(n){return 3*n}function baz(n){return n/2}');
|
||||
});
|
||||
it("minify() with an array of multiple input file globs.", function() {
|
||||
var result = Uglify.minify([
|
||||
"test/input/issue-1242/???.es5",
|
||||
"test/input/issue-1242/*.js",
|
||||
], {
|
||||
compress: { collapse_vars: true }
|
||||
});
|
||||
assert.strictEqual(result.code, 'function bar(n){return 3*n}function baz(n){return n/2}function foo(n){print("Foo:",2*n)}var print=console.log.bind(console);print("qux",bar(3),baz(12)),foo(11);');
|
||||
});
|
||||
});
|
||||
43
test/mocha/input-sourcemaps.js
Normal file
43
test/mocha/input-sourcemaps.js
Normal file
@@ -0,0 +1,43 @@
|
||||
var Uglify = require('../../');
|
||||
var assert = require("assert");
|
||||
var SourceMapConsumer = require("source-map").SourceMapConsumer;
|
||||
|
||||
describe("input sourcemaps", function() {
|
||||
var transpiled = '"use strict";\n\n' +
|
||||
'var foo = function foo(x) {\n return "foo " + x;\n};\n' +
|
||||
'console.log(foo("bar"));\n\n' +
|
||||
'//# sourceMappingURL=bundle.js.map';
|
||||
|
||||
var transpilemap = {
|
||||
"version": 3,
|
||||
"sources": ["index.js"],
|
||||
"names": [],
|
||||
"mappings": ";;AAAA,IAAI,MAAM,SAAN,GAAM;AAAA,SAAK,SAAS,CAAd;AAAA,CAAV;AACA,QAAQ,GAAR,CAAY,IAAI,KAAJ,CAAZ",
|
||||
"file": "bundle.js",
|
||||
"sourcesContent": ["let foo = x => \"foo \" + x;\nconsole.log(foo(\"bar\"));"]
|
||||
};
|
||||
|
||||
var result = Uglify.minify(transpiled, {
|
||||
fromString: true,
|
||||
inSourceMap: transpilemap,
|
||||
outSourceMap: true
|
||||
});
|
||||
var map = new SourceMapConsumer(result.map);
|
||||
|
||||
it("Should copy over original sourcesContent", function() {
|
||||
assert.equal(map.sourceContentFor("index.js"), transpilemap.sourcesContent[0]);
|
||||
});
|
||||
|
||||
it("Final sourcemap should not have invalid mappings from inputSourceMap (issue #882) ", function() {
|
||||
// The original source has only 2 lines, check that mappings don't have more lines
|
||||
|
||||
var msg = "Mapping should not have higher line number than the original file had";
|
||||
map.eachMapping(function(mapping) {
|
||||
assert.ok(mapping.originalLine <= 2, msg)
|
||||
});
|
||||
|
||||
map.allGeneratedPositionsFor({source: "index.js", line: 1, column: 1}).forEach(function(pos) {
|
||||
assert.ok(pos.line <= 2, msg);
|
||||
})
|
||||
});
|
||||
});
|
||||
@@ -59,4 +59,20 @@ describe("minify", function() {
|
||||
'a["foo"]="bar",a.a="red",x={"bar":10};');
|
||||
});
|
||||
});
|
||||
|
||||
describe("inSourceMap", function() {
|
||||
it("Should read the given string filename correctly when sourceMapIncludeSources is enabled (#1236)", function() {
|
||||
var result = Uglify.minify('./test/input/issue-1236/simple.js', {
|
||||
outSourceMap: "simple.js.min.map",
|
||||
inSourceMap: "./test/input/issue-1236/simple.js.map",
|
||||
sourceMapIncludeSources: true
|
||||
});
|
||||
|
||||
var map = JSON.parse(result.map);
|
||||
|
||||
assert.equal(map.sourcesContent.length, 1);
|
||||
assert.equal(map.sourcesContent[0],
|
||||
'let foo = x => "foo " + x;\nconsole.log(foo("bar"));');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
24
test/mocha/number-literal.js
Normal file
24
test/mocha/number-literal.js
Normal file
@@ -0,0 +1,24 @@
|
||||
var assert = require("assert");
|
||||
var uglify = require("../../");
|
||||
|
||||
describe("Number literals", function () {
|
||||
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() {
|
||||
uglify.parse(input);
|
||||
}
|
||||
}
|
||||
var error = function(e) {
|
||||
return e instanceof uglify.JS_Parse_Error &&
|
||||
e.message === "SyntaxError: Legacy octal literals are not allowed in strict mode";
|
||||
}
|
||||
for (var i = 0; i < inputs.length; i++) {
|
||||
assert.throws(test(inputs[i]), error, inputs[i]);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -49,7 +49,7 @@ describe("String literals", function() {
|
||||
|
||||
var error = function(e) {
|
||||
return e instanceof UglifyJS.JS_Parse_Error &&
|
||||
e.message === "SyntaxError: Octal literals are not allowed in strict mode";
|
||||
e.message === "SyntaxError: Legacy octal escape sequences are not allowed in strict mode";
|
||||
}
|
||||
|
||||
for (var input in inputs) {
|
||||
|
||||
@@ -2,7 +2,7 @@ var assert = require("assert");
|
||||
var uglify = require("../../");
|
||||
|
||||
describe("With", function() {
|
||||
it ("Should throw syntaxError when using with statement in strict mode", function() {
|
||||
it("Should throw syntaxError when using with statement in strict mode", function() {
|
||||
var code = '"use strict";\nthrow NotEarlyError;\nwith ({}) { }';
|
||||
var test = function() {
|
||||
uglify.parse(code);
|
||||
|
||||
Reference in New Issue
Block a user