esprima-ast-utils
Version:
collection for AST query/manipulation/transformation
108 lines (100 loc) • 3.34 kB
JavaScript
var tap = require("tap"),
test = tap.test,
utils = require("../index.js"),
object = require("object-enhancements");
test("replaceComment", function(t) {
var tree = utils.parseFile(__dirname + "/fixture-comments-01.js");
//console.log(require("util").inspect(tree, {depth: null, colors: true}));
//t.equal(tree.$code, '(function test() {\'use strict\';var WRAP_ME;}())', "valid code");
t.deepEqual(tree.body, [ { range: [ 0, 66 ],
type: 'FunctionDeclaration',
id:
{ range: [ 9, 14 ],
type: 'Identifier',
name: 'name2' },
params: [],
body:
{ range: [ 17, 66 ],
type: 'BlockStatement',
body:
[ { type: 'Line',
value: '0',
range: [ 23, 26 ] },
{ range: [ 27, 33 ],
type: 'VariableDeclaration',
declarations:
[ { range: [ 31, 32 ],
type: 'VariableDeclarator',
id:
{ range: [ 31, 32 ],
type: 'Identifier',
name: 'a' },
init: null } ],
kind: 'var' },
{ type: 'Line',
value: '2',
range: [ 38, 41 ] },
{ range: [ 42, 48 ],
type: 'VariableDeclaration',
declarations:
[ { range: [ 46, 47 ],
type: 'VariableDeclarator',
id:
{ range: [ 46, 47 ],
type: 'Identifier',
name: 'b' },
init: null } ],
kind: 'var' },
{ type: 'Line',
value: '4',
range: [ 53, 56 ] },
{ type: 'Line',
value: '5',
range: [ 61, 64 ] } ] },
generator: false,
expression: false },
{ range: [ 68, 98 ],
type: 'FunctionDeclaration',
id:
{ range: [ 77, 81 ],
type: 'Identifier',
name: 'name' },
params: [],
body:
{ range: [ 84, 98 ],
type: 'BlockStatement',
body:
[ { type: 'Line',
value: 'name',
range: [ 90, 96 ] } ] },
generator: false,
expression: false },
{ range: [ 100, 202 ],
type: 'FunctionDeclaration',
id:
{ range: [ 109, 114 ],
type: 'Identifier',
name: 'name3' },
params: [],
body:
{ range: [ 148, 202 ],
type: 'BlockStatement',
body:
[ { range: [ 154, 200 ],
type: 'ReturnStatement',
argument:
{ range: [ 161, 199 ],
type: 'BinaryExpression',
operator: '*',
left:
{ range: [ 161, 162 ],
type: 'Identifier',
name: 'a' },
right:
{ range: [ 198, 199 ],
type: 'Identifier',
name: 'b' } } } ] },
generator: false,
expression: false } ])
t.end();
});