]>
git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/lib/rules/no-obj-calls.js
2 * @fileoverview Tests for no-obj-calls rule.
3 * @author James Allardice
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 const rule
= require("../../../lib/rules/no-obj-calls"),
13 { RuleTester
} = require("../../../lib/rule-tester");
15 //------------------------------------------------------------------------------
17 //------------------------------------------------------------------------------
19 const ruleTester
= new RuleTester();
21 ruleTester
.run("no-obj-calls", rule
, {
24 "var x = Math.random();",
26 "var x = foo.Math();",
27 "var x = new foo.Math();",
28 "var x = new Math.foo;",
29 "var x = new Math.foo();",
33 code
: "Reflect.get(foo, 'x')",
37 code
: "new Reflect.foo(a, b)",
41 code
: "Atomics.load(foo, 0)",
45 code
: "new Atomics.foo()",
49 code
: "new Intl.Segmenter()",
50 env
: { browser
: true }
54 env
: { browser
: true }
57 { code
: "globalThis.Math();", env
: { es6
: true } },
58 { code
: "var x = globalThis.Math();", env
: { es6
: true } },
59 { code
: "f(globalThis.Math());", env
: { es6
: true } },
60 { code
: "globalThis.Math().foo;", env
: { es6
: true } },
61 { code
: "var x = globalThis.JSON();", env
: { es6
: true } },
62 { code
: "x = globalThis.JSON(str);", env
: { es6
: true } },
63 { code
: "globalThis.Math( globalThis.JSON() );", env
: { es6
: true } },
64 { code
: "var x = globalThis.Reflect();", env
: { es6
: true } },
65 { code
: "var x = globalThis.Reflect();", env
: { es2017
: true } },
66 { code
: "/*globals Reflect: true*/ globalThis.Reflect();", env
: { es2017
: true } },
67 { code
: "var x = globalThis.Atomics();", env
: { es2017
: true } },
68 { code
: "var x = globalThis.Atomics();", globals
: { Atomics
: false }, env
: { es2017
: true } },
69 { code
: "var x = globalThis.Intl();", env
: { browser
: true } },
70 { code
: "var x = globalThis.Intl();", globals
: { Intl
: false }, env
: { browser
: true } },
72 // non-existing variables
73 "/*globals Math: off*/ Math();",
74 "/*globals Math: off*/ new Math();",
77 globals
: { JSON
: "off" }
81 globals
: { JSON
: "off" }
96 "var Math; new Math();",
98 code
: "let JSON; JSON();",
99 parserOptions
: { ecmaVersion
: 2015 }
102 code
: "let JSON; new JSON();",
103 parserOptions
: { ecmaVersion
: 2015 }
106 code
: "if (foo) { const Reflect = 1; Reflect(); }",
107 parserOptions
: { ecmaVersion
: 2015 },
111 code
: "if (foo) { const Reflect = 1; new Reflect(); }",
112 parserOptions
: { ecmaVersion
: 2015 },
115 "function foo(Math) { Math(); }",
116 "function foo(JSON) { new JSON(); }",
118 code
: "function foo(Atomics) { Atomics(); }",
119 env
: { es2017
: true }
122 code
: "function foo() { if (bar) { let Atomics; if (baz) { new Atomics(); } } }",
123 parserOptions
: { ecmaVersion
: 2015 },
124 env
: { es2017
: true }
126 "function foo() { var JSON; JSON(); }",
128 code
: "function foo() { var Atomics = bar(); var baz = Atomics(5); }",
129 globals
: { Atomics
: false }
132 code
: "var construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined; construct();",
133 globals
: { Reflect
: false }
136 code
: "function foo(Intl) { Intl(); }",
137 env
: { browser
: true }
140 code
: "if (foo) { const Intl = 1; Intl(); }",
141 parserOptions
: { ecmaVersion
: 2015 },
142 env
: { browser
: true }
145 code
: "if (foo) { const Intl = 1; new Intl(); }",
146 parserOptions
: { ecmaVersion
: 2015 },
147 env
: { browser
: true }
153 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression" }]
156 code
: "var x = Math();",
157 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression" }]
161 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 3, endColumn
: 9 }]
165 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 7 }]
169 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
173 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
176 code
: "new Math(foo);",
177 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
180 code
: "new Math().foo;",
181 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
184 code
: "(new Math).foo();",
185 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
188 code
: "var x = JSON();",
189 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
192 code
: "x = JSON(str);",
193 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
196 code
: "var x = new JSON();",
197 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "NewExpression" }]
200 code
: "Math( JSON() );",
202 { messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 15 },
203 { messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression", column
: 7, endColumn
: 13 }
207 code
: "var x = Reflect();",
209 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
212 code
: "var x = new Reflect();",
214 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "NewExpression" }]
217 code
: "var x = Reflect();",
218 env
: { es2017
: true },
219 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
222 code
: "/*globals Reflect: true*/ Reflect();",
223 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
226 code
: "/*globals Reflect: true*/ new Reflect();",
227 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "NewExpression" }]
230 code
: "var x = Atomics();",
231 env
: { es2017
: true },
232 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
235 code
: "var x = new Atomics();",
236 env
: { es2017
: true },
237 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "NewExpression" }]
240 code
: "var x = Atomics();",
241 env
: { es2020
: true },
242 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
245 code
: "var x = Atomics();",
246 globals
: { Atomics
: false },
247 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
250 code
: "var x = new Atomics();",
251 globals
: { Atomics
: "writable" },
252 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "NewExpression" }]
255 code
: "var x = Intl();",
256 env
: { browser
: true },
257 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Intl" }, type
: "CallExpression" }]
260 code
: "var x = new Intl();",
261 env
: { browser
: true },
262 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Intl" }, type
: "NewExpression" }]
265 code
: "/*globals Intl: true*/ Intl();",
266 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Intl" }, type
: "CallExpression" }]
269 code
: "/*globals Intl: true*/ new Intl();",
270 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Intl" }, type
: "NewExpression" }]
273 code
: "var x = globalThis.Math();",
274 env
: { es2020
: true },
275 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression" }]
278 code
: "var x = new globalThis.Math();",
279 env
: { es2020
: true },
280 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression" }]
283 code
: "f(globalThis.Math());",
284 env
: { es2020
: true },
285 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 3, endColumn
: 20 }]
288 code
: "globalThis.Math().foo;",
289 env
: { es2020
: true },
290 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 18 }]
293 code
: "new globalThis.Math().foo;",
294 env
: { es2020
: true },
295 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "NewExpression", column
: 1, endColumn
: 22 }]
298 code
: "var x = globalThis.JSON();",
299 env
: { es2020
: true },
300 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
303 code
: "x = globalThis.JSON(str);",
304 env
: { es2020
: true },
305 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression" }]
308 code
: "globalThis.Math( globalThis.JSON() );",
309 env
: { es2020
: true },
311 { messageId
: "unexpectedCall", data
: { name
: "Math" }, type
: "CallExpression", column
: 1, endColumn
: 37 },
312 { messageId
: "unexpectedCall", data
: { name
: "JSON" }, type
: "CallExpression", column
: 18, endColumn
: 35 }
316 code
: "var x = globalThis.Reflect();",
317 env
: { es2020
: true },
318 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
321 code
: "var x = new globalThis.Reflect;",
322 env
: { es2020
: true },
323 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "NewExpression" }]
326 code
: "/*globals Reflect: true*/ Reflect();",
327 env
: { es2020
: true },
328 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
331 code
: "var x = globalThis.Atomics();",
332 env
: { es2020
: true },
333 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Atomics" }, type
: "CallExpression" }]
336 code
: "var x = globalThis.Intl();",
337 env
: { browser
: true, es2020
: true },
338 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Intl" }, type
: "CallExpression" }]
341 code
: "var x = new globalThis.Intl;",
342 env
: { browser
: true, es2020
: true },
343 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Intl" }, type
: "NewExpression" }]
346 code
: "/*globals Intl: true*/ Intl();",
347 env
: { browser
: true, es2020
: true },
348 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Intl" }, type
: "CallExpression" }]
351 code
: "var foo = bar ? baz: JSON; foo();",
352 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "CallExpression" }]
355 code
: "var foo = bar ? baz: JSON; new foo();",
356 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "NewExpression" }]
359 code
: "var foo = bar ? baz: globalThis.JSON; foo();",
360 env
: { es2020
: true },
361 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "CallExpression" }]
364 code
: "var foo = bar ? baz: globalThis.JSON; new foo();",
365 env
: { es2020
: true },
366 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "JSON" }, type
: "NewExpression" }]
369 code
: "var foo = window.Atomics; foo();",
370 env
: { es2020
: true, browser
: true },
371 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "Atomics" }, type
: "CallExpression" }]
374 code
: "var foo = window.Atomics; new foo;",
375 env
: { es2020
: true, browser
: true },
376 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "Atomics" }, type
: "NewExpression" }]
379 code
: "var foo = window.Intl; foo();",
380 env
: { es2020
: true, browser
: true },
381 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "Intl" }, type
: "CallExpression" }]
384 code
: "var foo = window.Intl; new foo;",
385 env
: { es2020
: true, browser
: true },
386 errors
: [{ messageId
: "unexpectedRefCall", data
: { name
: "foo", ref
: "Intl" }, type
: "NewExpression" }]
391 code
: "var x = globalThis?.Reflect();",
392 env
: { es2020
: true },
393 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]
396 code
: "var x = (globalThis?.Reflect)();",
397 env
: { es2020
: true },
398 errors
: [{ messageId
: "unexpectedCall", data
: { name
: "Reflect" }, type
: "CallExpression" }]