UNPKG

1.29 kBJavaScriptView Raw
1/**
2 * @fileoverview Rule to flag usage of __iterator__ property
3 * @author Ian Christian Myers
4 */
5
6"use strict";
7
8//------------------------------------------------------------------------------
9// Requirements
10//------------------------------------------------------------------------------
11
12const { getStaticPropertyName } = require("./utils/ast-utils");
13
14//------------------------------------------------------------------------------
15// Rule Definition
16//------------------------------------------------------------------------------
17
18module.exports = {
19 meta: {
20 type: "suggestion",
21
22 docs: {
23 description: "disallow the use of the `__iterator__` property",
24 category: "Best Practices",
25 recommended: false,
26 url: "https://eslint.org/docs/rules/no-iterator"
27 },
28
29 schema: [],
30
31 messages: {
32 noIterator: "Reserved name '__iterator__'."
33 }
34 },
35
36 create(context) {
37
38 return {
39
40 MemberExpression(node) {
41
42 if (getStaticPropertyName(node) === "__iterator__") {
43 context.report({
44 node,
45 messageId: "noIterator"
46 });
47 }
48 }
49 };
50
51 }
52};