UNPKG

1.58 kBJavaScriptView Raw
1var __extends = (this && this.__extends) || function (d, b) {
2 for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
3 function __() { this.constructor = d; }
4 __.prototype = b.prototype;
5 d.prototype = new __();
6};
7var SyntaxKind = require('./utils/SyntaxKind');
8var ErrorTolerantWalker = require('./utils/ErrorTolerantWalker');
9var Rule = (function (_super) {
10 __extends(Rule, _super);
11 function Rule() {
12 _super.apply(this, arguments);
13 }
14 Rule.prototype.apply = function (sourceFile) {
15 return this.applyWithWalker(new UseIsnanRuleWalker(sourceFile, this.getOptions()));
16 };
17 Rule.FAILURE_STRING = 'Found an invalid comparison for NaN: ';
18 return Rule;
19})(Lint.Rules.AbstractRule);
20exports.Rule = Rule;
21var UseIsnanRuleWalker = (function (_super) {
22 __extends(UseIsnanRuleWalker, _super);
23 function UseIsnanRuleWalker() {
24 _super.apply(this, arguments);
25 }
26 UseIsnanRuleWalker.prototype.visitBinaryExpression = function (node) {
27 if (this.isExpressionNaN(node.left) || this.isExpressionNaN(node.right)) {
28 this.addFailure(this.createFailure(node.getStart(), node.getWidth(), Rule.FAILURE_STRING + node.getText()));
29 }
30 _super.prototype.visitBinaryExpression.call(this, node);
31 };
32 UseIsnanRuleWalker.prototype.isExpressionNaN = function (node) {
33 return node.kind === SyntaxKind.current().Identifier && node.getText() === 'NaN';
34 };
35 return UseIsnanRuleWalker;
36})(ErrorTolerantWalker);
37//# sourceMappingURL=useIsnanRule.js.map
\No newline at end of file