]>
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 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("no-shadow-restricted-names", rule
, {
23 "function foo(bar){ var baz; }",
24 "!function foo(bar){ var baz; }",
25 "!function(bar){ var baz; }",
27 { code
: "export default function() {}", parserOptions
: { ecmaVersion
: 6, sourceType
: "module" } },
29 code
: "try {} catch {}",
30 parserOptions
: { ecmaVersion
: 2019 }
33 "var undefined; doSomething(undefined);",
34 "var undefined; var undefined;",
36 code
: "let undefined",
37 parserOptions
: { ecmaVersion
: 2015 }
42 code
: "function NaN(NaN) { var NaN; !function NaN(NaN) { try {} catch(NaN) {} }; }",
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" }
53 code
: "function undefined(undefined) { !function undefined(undefined) { try {} catch(undefined) {} }; }",
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" }
63 code
: "function Infinity(Infinity) { var Infinity; !function Infinity(Infinity) { try {} catch(Infinity) {} }; }",
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" }
74 code
: "function arguments(arguments) { var arguments; !function arguments(arguments) { try {} catch(arguments) {} }; }",
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" }
85 code
: "function eval(eval) { var eval; !function eval(eval) { try {} catch(eval) {} }; }",
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" }
96 code
: "var eval = (eval) => { var eval; !function eval(eval) { try {} catch(eval) {} }; }",
97 parserOptions
: { ecmaVersion
: 6 },
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" }
108 code
: "var [undefined] = [1]",
109 parserOptions
: { ecmaVersion
: 6 },
111 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" }
115 code
: "var {undefined} = obj; var {a: undefined} = obj; var {a: {b: {undefined}}} = obj; var {a, ...undefined} = obj;",
116 parserOptions
: { ecmaVersion
: 9 },
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" }
125 code
: "var undefined; undefined = 5;",
127 { messageId
: "shadowingRestrictedName", data
: { name
: "undefined" }, type
: "Identifier" }