Skip to content
This repository has been archived by the owner on Mar 23, 2024. It is now read-only.

Commit

Permalink
[Perf] Remove getNodeByRange
Browse files Browse the repository at this point in the history
  • Loading branch information
mdevils committed Apr 12, 2016
1 parent c2f6112 commit c2c4d5d
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 62 deletions.
19 changes: 0 additions & 19 deletions lib/js-file.js
Original file line number Diff line number Diff line change
Expand Up @@ -295,25 +295,6 @@ JsFile.prototype = {
return treeIterator.iterate(tree || this._program, cb);
},

/**
* Returns node by its range position
*
* @returns {Object}
*/
getNodeByRange: function(number) {
var result = {};

this.iterate(function(node) {
if (number >= node.getRange()[0] && number < node.getRange()[1]) {
result = node;
}
if (number < node.getRange()[0]) {
return false;
}
});
return result;
},

/**
* Returns nodes by type(s) from earlier built index.
*
Expand Down
43 changes: 0 additions & 43 deletions test/specs/js-file.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,49 +60,6 @@ describe('js-file', function() {
});
});

describe('getNodeByRange', function() {
it('should get node by range for function declaration', function() {
expect(createJsFile('function foo(a,b) {}').getNodeByRange(16).type).to.equal('FunctionDeclaration');
});

it('should get node by range for identifier', function() {
expect(createJsFile('foo(a,b)').getNodeByRange(0).type).to.equal('Identifier');
});

it('should get node by range for function expression', function() {
expect(createJsFile('foo(a,b)').getNodeByRange(7).type).to.equal('CallExpression');
});

it('should get node by range for "if" statement', function() {
expect(createJsFile('if(true){foo(a,b)}').getNodeByRange(0).type).to.equal('IfStatement');
});

it('should get node by range for identifier inside "if" statement', function() {
expect(createJsFile('if(true){foo(a,b)}').getNodeByRange(9).type).to.equal('Identifier');
});

it('should get node by range for function expression inside "if" statement', function() {
expect(createJsFile('if(true){foo(a,b)}').getNodeByRange(16).type).to.equal('CallExpression');
});

it('should get node by range for function expression with additional parentheses', function() {
expect(createJsFile('foo(1,(2))').getNodeByRange(9).type).to.equal('CallExpression');
});

it('should return empty object', function() {
expect(createJsFile('foo(1,2)').getNodeByRange(20).type).to.equal(undefined);
});

it('should not throw on regexp', function() {
var file = createJsFile('/^/');
try {
file.getNodeByRange(1);
} catch (e) {
throw new Error();
}
});
});

describe('findNextToken', function() {
var file;

Expand Down

0 comments on commit c2c4d5d

Please sign in to comment.