mirror of
https://github.com/github/codeql.git
synced 2025-12-18 09:43:15 +01:00
78 lines
1.5 KiB
JavaScript
78 lines
1.5 KiB
JavaScript
'use strict'; // OK
|
|
'use struct'; // OK (flagged by UnknownDirective.ql)
|
|
23; // NOT OK
|
|
void(23); // OK
|
|
23, foo(); // NOT OK
|
|
foo(23, 42); // OK
|
|
foo((23, bar())); // NOT OK
|
|
foo((bar(), 23)); // OK
|
|
1,f(); // NOT OK
|
|
|
|
// OK
|
|
/**
|
|
* @type {function(int) : string}
|
|
*/
|
|
String.prototype.slice;
|
|
|
|
// OK
|
|
/** @typedef {(string|number)} */
|
|
goog.NumberLike;
|
|
|
|
// NOT OK
|
|
/** Useless */
|
|
x;
|
|
|
|
// OK (magic DOM property)
|
|
elt.clientTop;
|
|
|
|
// OK (xUnit fixture)
|
|
[Fixture]
|
|
function tst() {}
|
|
|
|
// OK: bad style, but most likely intentional
|
|
(0, o.m)();
|
|
(0, o["m"])();
|
|
|
|
function tst() {
|
|
// OK: bad style, but most likely intentional
|
|
(0, eval)("42");
|
|
}
|
|
|
|
function f() {
|
|
var x;
|
|
"foo"; // NOT OK
|
|
}
|
|
|
|
try {
|
|
doSomethingDangerous();
|
|
} catch(e) {
|
|
new Error("Told you so"); // NOT OK
|
|
new SyntaxError("Why didn't you listen to me?"); // NOT OK
|
|
new Error(computeSnarkyMessage(e)); // NOT OK
|
|
new UnknownError(); // OK
|
|
}
|
|
|
|
function g() {
|
|
var o = {};
|
|
|
|
Object.defineProperty(o, "trivialGetter1", { get: function(){} });
|
|
o.trivialGetter1; // OK
|
|
|
|
Object.defineProperty(o, "trivialNonGetter1", "foo");
|
|
o.trivialNonGetter1; // NOT OK
|
|
|
|
var getterDef1 = { get: function(){} };
|
|
Object.defineProperty(o, "nonTrivialGetter1", getterDef1);
|
|
o.nonTrivialGetter1; // OK
|
|
|
|
var getterDef2 = { };
|
|
unknownPrepareGetter(getterDef2);
|
|
Object.defineProperty(o, "nonTrivialNonGetter1", getterDef2);
|
|
o.nonTrivialNonGetter1; // OK
|
|
|
|
Object.defineProperty(o, "nonTrivialGetter2", unknownGetterDef());
|
|
o.nonTrivialGetter2; // OK
|
|
|
|
(o: empty); // OK.
|
|
};
|