]> git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-shadow-restricted-names.js
bump version to 8.41.0-3
[pve-eslint.git] / eslint / tests / lib / rules / no-shadow-restricted-names.js
1 /**
2 * @fileoverview Disallow shadowing of NaN, undefined, and Infinity (ES5 section 15.1.1)
3 * @author Michael Ficarra
4 */
5
6 "use strict";
7
8 //------------------------------------------------------------------------------
9 // Requirements
10 //------------------------------------------------------------------------------
11
12 const rule = require("../../../lib/rules/no-shadow-restricted-names"),
13 { RuleTester } = require("../../../lib/rule-tester");
14
15 //------------------------------------------------------------------------------
16 // Tests
17 //------------------------------------------------------------------------------
18
19 const ruleTester = new RuleTester();
20
21 ruleTester.run("no-shadow-restricted-names", rule, {
22 valid: [
23 "function foo(bar){ var baz; }",
24 "!function foo(bar){ var baz; }",
25 "!function(bar){ var baz; }",
26 "try {} catch(e) {}",
27 { code: "export default function() {}", parserOptions: { ecmaVersion: 6, sourceType: "module" } },
28 {
29 code: "try {} catch {}",
30 parserOptions: { ecmaVersion: 2019 }
31 },
32 "var undefined;",
33 "var undefined; doSomething(undefined);",
34 "var undefined; var undefined;",
35 {
36 code: "let undefined",
37 parserOptions: { ecmaVersion: 2015 }
38 }
39 ],
40 invalid: [
41 {
42 code: "function NaN(NaN) { var NaN; !function NaN(NaN) { try {} catch(NaN) {} }; }",
43 errors: [
44 { messageId: "shadowingRestrictedName", data: { name: "NaN" }, type: "Identifier" },
45 { messageId: "shadowingRestrictedName", data: { name: "NaN" }, type: "Identifier" },
46 { messageId: "shadowingRestrictedName", data: { name: "NaN" }, type: "Identifier" },
47 { messageId: "shadowingRestrictedName", data: { name: "NaN" }, type: "Identifier" },
48 { messageId: "shadowingRestrictedName", data: { name: "NaN" }, type: "Identifier" },
49 { messageId: "shadowingRestrictedName", data: { name: "NaN" }, type: "Identifier" }
50 ]
51 },
52 {
53 code: "function undefined(undefined) { !function undefined(undefined) { try {} catch(undefined) {} }; }",
54 errors: [
55 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" },
56 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" },
57 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" },
58 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" },
59 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" }
60 ]
61 },
62 {
63 code: "function Infinity(Infinity) { var Infinity; !function Infinity(Infinity) { try {} catch(Infinity) {} }; }",
64 errors: [
65 { messageId: "shadowingRestrictedName", data: { name: "Infinity" }, type: "Identifier" },
66 { messageId: "shadowingRestrictedName", data: { name: "Infinity" }, type: "Identifier" },
67 { messageId: "shadowingRestrictedName", data: { name: "Infinity" }, type: "Identifier" },
68 { messageId: "shadowingRestrictedName", data: { name: "Infinity" }, type: "Identifier" },
69 { messageId: "shadowingRestrictedName", data: { name: "Infinity" }, type: "Identifier" },
70 { messageId: "shadowingRestrictedName", data: { name: "Infinity" }, type: "Identifier" }
71 ]
72 },
73 {
74 code: "function arguments(arguments) { var arguments; !function arguments(arguments) { try {} catch(arguments) {} }; }",
75 errors: [
76 { messageId: "shadowingRestrictedName", data: { name: "arguments" }, type: "Identifier" },
77 { messageId: "shadowingRestrictedName", data: { name: "arguments" }, type: "Identifier" },
78 { messageId: "shadowingRestrictedName", data: { name: "arguments" }, type: "Identifier" },
79 { messageId: "shadowingRestrictedName", data: { name: "arguments" }, type: "Identifier" },
80 { messageId: "shadowingRestrictedName", data: { name: "arguments" }, type: "Identifier" },
81 { messageId: "shadowingRestrictedName", data: { name: "arguments" }, type: "Identifier" }
82 ]
83 },
84 {
85 code: "function eval(eval) { var eval; !function eval(eval) { try {} catch(eval) {} }; }",
86 errors: [
87 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
88 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
89 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
90 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
91 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
92 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" }
93 ]
94 },
95 {
96 code: "var eval = (eval) => { var eval; !function eval(eval) { try {} catch(eval) {} }; }",
97 parserOptions: { ecmaVersion: 6 },
98 errors: [
99 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
100 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
101 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
102 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
103 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" },
104 { messageId: "shadowingRestrictedName", data: { name: "eval" }, type: "Identifier" }
105 ]
106 },
107 {
108 code: "var [undefined] = [1]",
109 parserOptions: { ecmaVersion: 6 },
110 errors: [
111 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" }
112 ]
113 },
114 {
115 code: "var {undefined} = obj; var {a: undefined} = obj; var {a: {b: {undefined}}} = obj; var {a, ...undefined} = obj;",
116 parserOptions: { ecmaVersion: 9 },
117 errors: [
118 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" },
119 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" },
120 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" },
121 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" }
122 ]
123 },
124 {
125 code: "var undefined; undefined = 5;",
126 errors: [
127 { messageId: "shadowingRestrictedName", data: { name: "undefined" }, type: "Identifier" }
128 ]
129 }
130 ]
131 });