UNPKG

1.23 kBJavaScriptView Raw
1/**
2 * @fileoverview Rule to flag usage of __proto__ property
3 * @author Ilya Volodin
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 `__proto__` property",
24 category: "Best Practices",
25 recommended: false,
26 url: "https://eslint.org/docs/rules/no-proto"
27 },
28
29 schema: [],
30
31 messages: {
32 unexpectedProto: "The '__proto__' property is deprecated."
33 }
34 },
35
36 create(context) {
37
38 return {
39
40 MemberExpression(node) {
41 if (getStaticPropertyName(node) === "__proto__") {
42 context.report({ node, messageId: "unexpectedProto" });
43 }
44 }
45 };
46
47 }
48};