mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
JS: add tests
This commit is contained in:
@@ -12,3 +12,6 @@
|
||||
| tst.js:76:5:76:34 | o.pure1 ... te = 42 | This write to property 'pure16_simpleAliasWrite' is useless, since $@ always overrides it. | tst.js:77:5:77:36 | o16.pur ... te = 42 | another property write |
|
||||
| tst.js:95:5:95:17 | o.pure18 = 42 | This write to property 'pure18' is useless, since $@ always overrides it. | tst.js:96:5:96:17 | o.pure18 = 42 | another property write |
|
||||
| tst.js:96:5:96:17 | o.pure18 = 42 | This write to property 'pure18' is useless, since $@ always overrides it. | tst.js:97:5:97:17 | o.pure18 = 42 | another property write |
|
||||
| tst.js:100:2:102:3 | Object. ... { }\\n\\t}) | This write to property 'setter' is useless, since $@ always overrides it. | tst.js:103:2:103:14 | o.setter = "" | another property write |
|
||||
| tst.js:114:2:114:14 | o.setter = 42 | This write to property 'setter' is useless, since $@ always overrides it. | tst.js:115:2:115:14 | o.setter = 87 | another property write |
|
||||
| tst.js:122:2:122:78 | Object. ... le:!1}) | This write to property 'prop' is useless, since $@ always overrides it. | tst.js:123:2:123:12 | o.prop = 42 | another property write |
|
||||
|
||||
@@ -82,17 +82,47 @@
|
||||
}
|
||||
|
||||
// DOM
|
||||
o.clientTop = 42;
|
||||
o.clientTop = 42; // OK
|
||||
o.clientTop = 42;
|
||||
|
||||
o.defaulted1 = null;
|
||||
o.defaulted1 = null; // OK
|
||||
o.defaulted1 = 42;
|
||||
|
||||
o.defaulted2 = -1;
|
||||
o.defaulted2 = -1; // OK
|
||||
o.defaulted2 = 42;
|
||||
|
||||
var o = {};
|
||||
o.pure18 = 42; // NOT OK
|
||||
o.pure18 = 42; // NOT OK
|
||||
o.pure18 = 42;
|
||||
|
||||
var o = {};
|
||||
Object.defineProperty(o, "setter", { // OK
|
||||
set: function (value) { }
|
||||
});
|
||||
o.setter = "";
|
||||
|
||||
var o = { set setter(value) { } }; // OK
|
||||
o.setter = "";
|
||||
|
||||
var o = {
|
||||
set accessor(value) { }, // OK
|
||||
get accessor() { }
|
||||
};
|
||||
|
||||
var o = { set setter(value) { } };
|
||||
o.setter = 42; // probably OK, but still flagged - it seems fishy
|
||||
o.setter = 87;
|
||||
|
||||
var o = {};
|
||||
Object.defineProperty(o, "prop", {writable:!0,configurable:!0,enumerable:!1, value: getInitialValue()}) // NOT OK
|
||||
o.prop = 42;
|
||||
|
||||
var o = {};
|
||||
Object.defineProperty(o, "prop", {writable:!0,configurable:!0,enumerable:!1, value: undefined}) // OK, default value
|
||||
o.prop = 42;
|
||||
|
||||
var o = {};
|
||||
Object.defineProperty(o, "prop", {writable:!0,configurable:!0,enumerable:!1}) // OK
|
||||
o.prop = 42;
|
||||
});
|
||||
|
||||
@@ -51,3 +51,25 @@ try {
|
||||
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
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user