mirror of
https://github.com/github/codeql.git
synced 2025-12-17 09:13:20 +01:00
72 lines
1.3 KiB
JavaScript
72 lines
1.3 KiB
JavaScript
function f() {
|
|
let v = foo.bar; // 'foo.bar'
|
|
v.baz; // 'foo.bar.baz'
|
|
let { baz, a, b: {c} } = v;
|
|
let d = c.d; // 'foo.bar.b.c.d'
|
|
|
|
let w = window;
|
|
let xy1 = window.x.y; // 'x.y'
|
|
let xy2 = global.x.y; // 'x.y'
|
|
let xy3 = w.x.y; // 'x.y'
|
|
|
|
let notUnique = foo.bar;
|
|
if (something()) {
|
|
notUnique = bar.baz;
|
|
}
|
|
notUnique.x; // No global access path
|
|
|
|
function localFunction() {}
|
|
class LocalClass {}
|
|
}
|
|
|
|
(function(ns) {
|
|
ns.foo.bar; // 'NS.foo.bar'
|
|
})(NS = NS || {});
|
|
|
|
Conflict = {}; // assigned in multiple files
|
|
|
|
class GlobalClass {}
|
|
|
|
function globalFunction() {}
|
|
|
|
function destruct() {
|
|
let { bar = {} } = foo;
|
|
let v = bar.baz; // 'foo.bar.baz'
|
|
}
|
|
|
|
function lazy() {
|
|
var lazyInit;
|
|
lazyInit = foo.bar; // 'foo.bar'
|
|
lazyInit;
|
|
}
|
|
|
|
function dominatingWrite() {
|
|
var obj = Object.create();
|
|
|
|
obj.prop1; // no
|
|
obj.prop1 = "foo";
|
|
obj.prop1; // yes
|
|
|
|
if (random()) {
|
|
obj.prop2 = "foo";
|
|
}
|
|
obj.prop2; // no
|
|
|
|
obj.prop3 = "foo";
|
|
if (random()) {
|
|
obj.prop3; // yes
|
|
}
|
|
|
|
obj.prop4 = obj.prop4; // no
|
|
|
|
var foo = (obj.prop5 = 2, obj.prop5); // yes
|
|
var bar = (obj.prop6, obj.prop6 = 3); // no
|
|
}
|
|
|
|
(function(){
|
|
var v1 = Object.freeze(foo.bar).baz; // foo.baz.baz
|
|
var v2 = Object.seal(foo.bar).baz; // foo.baz.baz
|
|
let O = Object;
|
|
var v3 = O.seal(foo.bar).baz; // not recognized
|
|
});
|