1 | var acorn = require("acorn");
|
2 | var assert = require("assert");
|
3 | var coffee = require("coffee-script");
|
4 | var sourceMapToAst = require("../lib/sourcemap_to_ast");
|
5 |
|
6 | describe("sourceMapToAst", function() {
|
7 | it("works", function() {
|
8 | var compiled = coffee.compile("x =\n 1", { sourceMap: true });
|
9 | var ast = acorn.parse(compiled.js, { locations: true });
|
10 |
|
11 | assert.equal(
|
12 | compiled.js,
|
13 | "(function() {\n" +
|
14 | " var x;\n\n" +
|
15 | " x = 1;\n\n" +
|
16 | "}).call(this);\n"
|
17 | );
|
18 |
|
19 | var func = ast.body[0].expression.callee.object;
|
20 | var funcBody = func.body.body;
|
21 | var assignment = funcBody[1].expression;
|
22 |
|
23 | assert.deepEqual(assignment.loc.start, { line: 4, column: 2 });
|
24 | assert.deepEqual(assignment.loc.end, { line: 4, column: 7 });
|
25 |
|
26 | sourceMapToAst(ast, compiled.v3SourceMap);
|
27 |
|
28 | assert.deepEqual(assignment.loc.start, { line: 1, column: 0 });
|
29 | assert.deepEqual(assignment.right.loc.start, {
|
30 | line: 2,
|
31 | column: 1
|
32 | });
|
33 | });
|
34 | });
|