tools: add number-isnan rule

PR-URL: https://github.com/nodejs/node/pull/17556
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
Jon Moss 2017-12-11 17:20:39 -05:00
parent 3b8da4cbe8
commit e554bc8f3f
3 changed files with 35 additions and 0 deletions

View File

@ -14,6 +14,7 @@ rules:
prefer-common-mustnotcall: error
crypto-check: error
inspector-check: error
number-isnan: error
## common module is mandatory in tests
required-modules: [error, common]

View File

@ -0,0 +1,20 @@
'use strict';
require('../common');
const RuleTester = require('../../tools/eslint').RuleTester;
const rule = require('../../tools/eslint-rules/number-isnan');
const message = 'Please use Number.isNaN instead of the global isNaN function';
new RuleTester().run('number-isnan', rule, {
valid: [
'Number.isNaN()'
],
invalid: [
{
code: 'isNaN()',
errors: [{ message }]
}
]
});

View File

@ -0,0 +1,14 @@
'use strict';
const astSelector = "CallExpression[callee.name='isNaN']";
const msg = 'Please use Number.isNaN instead of the global isNaN function';
module.exports = function(context) {
function report(node) {
context.report(node, msg);
}
return {
[astSelector]: report
};
};