Gazebo_simulation-Frontend/node_modules/eslint/lib/rules/no-shadow-restricted-names.js

47 lines
1.4 KiB
JavaScript
Raw Normal View History

2020-12-21 11:29:31 -04:00
/**
* @fileoverview Disallow shadowing of NaN, undefined, and Infinity (ES5 section 15.1.1)
* @author Michael Ficarra
*/
"use strict";
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
module.exports = {
meta: {
type: "suggestion",
docs: {
description: "disallow identifiers from shadowing restricted names",
category: "Variables",
recommended: false,
url: "https://eslint.org/docs/rules/no-shadow-restricted-names"
},
schema: []
},
create(context) {
const RESTRICTED = ["undefined", "NaN", "Infinity", "arguments", "eval"];
return {
"VariableDeclaration, :function, CatchClause"(node) {
for (const variable of context.getDeclaredVariables(node)) {
if (variable.defs.length > 0 && RESTRICTED.includes(variable.name)) {
context.report({
node: variable.defs[0].name,
message: "Shadowing of global property '{{idName}}'.",
data: {
idName: variable.name
}
});
}
}
}
};
}
};