diff options
Diffstat (limited to 'tools/eslint-rules/no-definegetter-definesetter.js')
-rw-r--r-- | tools/eslint-rules/no-definegetter-definesetter.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tools/eslint-rules/no-definegetter-definesetter.js b/tools/eslint-rules/no-definegetter-definesetter.js new file mode 100644 index 0000000000..3de010f47f --- /dev/null +++ b/tools/eslint-rules/no-definegetter-definesetter.js @@ -0,0 +1,32 @@ +/** + * @fileoverview Rule to flag usage of __defineGetter__ and __defineSetter__ + * @author Rich Trott + */ + +'use strict'; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +module.exports = { + create: function(context) { + const disallowed = ['__defineGetter__', '__defineSetter__']; + + return { + MemberExpression: function(node) { + var prop; + if (node.property) { + if (node.property.type === 'Identifier' && !node.computed) { + prop = node.property.name; + } else if (node.property.type === 'Literal') { + prop = node.property.value; + } + if (disallowed.includes(prop)) { + context.report(node, `The ${prop} property is deprecated.`); + } + } + } + }; + } +}; |