From 21b53fe0125caaf16025f2b90624a882f49375f0 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 15 May 2016 10:01:44 -0700 Subject: tools: disallow deprecated define getter/setter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/6774 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Johan Bergström Refs: https://github.com/nodejs/node/pull/6768 --- tools/eslint-rules/no-definegetter-definesetter.js | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tools/eslint-rules/no-definegetter-definesetter.js (limited to 'tools/eslint-rules') 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.`); + } + } + } + }; + } +}; -- cgit v1.2.3