]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-shadow-restricted-names.js
2 * @fileoverview Disallow shadowing of NaN, undefined, and Infinity (ES5 section 15.1.1)
3 * @author Michael Ficarra
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/no-shadow-restricted-names"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 const ruleTester
= new RuleTester();
17 ruleTester
.run("no-shadow-restricted-names", rule
, {
19 "function foo(bar){ var baz; }",
20 "!function foo(bar){ var baz; }",
21 "!function(bar){ var baz; }",
23 { code
: "export default function() {}", parserOptions
: { ecmaVersion
: 6, sourceType
: "module" } },
25 code
: "try {} catch {}",
26 parserOptions
: { ecmaVersion
: 2019 }
29 "var undefined; doSomething(undefined);",
30 "var undefined; var undefined;",
32 code
: "let undefined",
33 parserOptions
: { ecmaVersion
: 2015 }
38 code
: "function NaN(NaN) { var NaN; !function NaN(NaN) { try {} catch(NaN) {} }; }",
40 { messageId
: "shadowingRestrictedName", data
: { name
: "NaN" }, type
: "Identifier" },
41 { messageId
: "shadowingRestrictedName", data
: { name
: "NaN" }, type
: "Identifier" },
42 { messageId
: "shadowingRestrictedName", data
: { name
: "NaN" }, type
: "Identifier" },
43 { messageId
: "shadowingRestrictedName", data
: { name
: "NaN" }, type
: "Identifier" },
44 { messageId
: "shadowingRestrictedName", data
: { name
: "NaN" }, type
: "Identifier" },
45 { messageId
: "shadowingRestrictedName", data
: { name
: "NaN" }, type
: "Identifier" }
49 code
: "function undefined(undefined) { !function undefined(undefined) { try {} catch(undefined) {} }; }",
51 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" },
52 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" },
53 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" },
54 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" },
55 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" }
59 code
: "function Infinity(Infinity) { var Infinity; !function Infinity(Infinity) { try {} catch(Infinity) {} }; }",
61 { messageId
: "shadowingRestrictedName", data
: { name
: "Infinity" }, type
: "Identifier" },
62 { messageId
: "shadowingRestrictedName", data
: { name
: "Infinity" }, type
: "Identifier" },
63 { messageId
: "shadowingRestrictedName", data
: { name
: "Infinity" }, type
: "Identifier" },
64 { messageId
: "shadowingRestrictedName", data
: { name
: "Infinity" }, type
: "Identifier" },
65 { messageId
: "shadowingRestrictedName", data
: { name
: "Infinity" }, type
: "Identifier" },
66 { messageId
: "shadowingRestrictedName", data
: { name
: "Infinity" }, type
: "Identifier" }
70 code
: "function arguments(arguments) { var arguments; !function arguments(arguments) { try {} catch(arguments) {} }; }",
72 { messageId
: "shadowingRestrictedName", data
: { name
: "arguments" }, type
: "Identifier" },
73 { messageId
: "shadowingRestrictedName", data
: { name
: "arguments" }, type
: "Identifier" },
74 { messageId
: "shadowingRestrictedName", data
: { name
: "arguments" }, type
: "Identifier" },
75 { messageId
: "shadowingRestrictedName", data
: { name
: "arguments" }, type
: "Identifier" },
76 { messageId
: "shadowingRestrictedName", data
: { name
: "arguments" }, type
: "Identifier" },
77 { messageId
: "shadowingRestrictedName", data
: { name
: "arguments" }, type
: "Identifier" }
81 code
: "function eval(eval) { var eval; !function eval(eval) { try {} catch(eval) {} }; }",
83 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
84 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
85 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
86 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
87 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
88 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" }
92 code
: "var eval = (eval) => { var eval; !function eval(eval) { try {} catch(eval) {} }; }",
93 parserOptions
: { ecmaVersion
: 6 },
95 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
96 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
97 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
98 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
99 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" },
100 { messageId
: "shadowingRestrictedName", data
: { name
: "eval" }, type
: "Identifier" }
104 code
: "var [undefined] = [1]",
105 parserOptions
: { ecmaVersion
: 6 },
107 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" }
111 code
: "var {undefined} = obj; var {a: undefined} = obj; var {a: {b: {undefined}}} = obj; var {a, ...undefined} = obj;",
112 parserOptions
: { ecmaVersion
: 9 },
114 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" },
115 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" },
116 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" },
117 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" }
121 code
: "var undefined; undefined = 5;",
123 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" }