Files
2020-07-01 15:26:25 +02:00

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
});