aboutsummaryrefslogtreecommitdiff
path: root/test/sourcemaps.js
blob: 7db4672e09ae9467405bafc30662032786af025b (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var UglifyJS = require("..");
var ok = require("assert");

module.exports = function () {
    console.log("--- Sourcemaps tests");

    var basic = source_map([
        'var x = 1 + 1;'
    ].join('\n'));

    ok.equal(basic.version, 3);
    ok.deepEqual(basic.names, ['x']);

    var issue836 = source_map([
        "({",
        "    get enabled() {",
        "        return 3;",
        "    },",
        "    set enabled(x) {",
        "        ;",
        "    }",
        "});",
    ].join("\n"));

    ok.deepEqual(issue836.names, ['enabled', 'x']);
}

function source_map(js) {
    var source_map = UglifyJS.SourceMap();
    var stream = UglifyJS.OutputStream({ source_map: source_map });
    var parsed = UglifyJS.parse(js);
    parsed.print(stream);
    return JSON.parse(source_map.toString());
}

// Run standalone
if (module.parent === null) {
    module.exports();
}

\n}\n'; var result = UglifyJS.minify(js, options); assert.strictEqual(result.code, expected_code); }); it("Should parse CR/LF line endings", function() { var js = '/*!one\r\n2\r\n3*///comment\r\nfunction f(x) {\r\n if (x)\r\n//comment\r\n return 3;\r\n}\r\n'; var result = UglifyJS.minify(js, options); assert.strictEqual(result.code, expected_code); }); it("Should parse CR line endings", function() { var js = '/*!one\r2\r3*///comment\rfunction f(x) {\r if (x)\r//comment\r return 3;\r}\r'; var result = UglifyJS.minify(js, options); assert.strictEqual(result.code, expected_code); }); it("Should not allow line terminators in regexp", function() { var inputs = [ "/\n/", "/\r/", "/\u2028/", "/\u2029/", "/\\\n/", "/\\\r/", "/\\\u2028/", "/\\\u2029/", "/someRandomTextLike[]()*AndThen\n/" ] var test = function(input) { return function() { UglifyJS.parse(input); } } var fail = function(e) { return e instanceof UglifyJS.JS_Parse_Error && e.message === "Unexpected line terminator"; } for (var i = 0; i < inputs.length; i++) { assert.throws(test(inputs[i]), fail); } }); });