I noticed on Stack Overflow's JavaScript code editor, the global object has many members, including the normal global browser object, window.
How does it offer members of window directly (for instance Promise, as seen below), when the full path is in fact this.window.Promise?
console.log('this in top-level scope: ', this);
console.log('Promise constructor on window object, from top-level scope: ', this.window.Promise);
console.log('Still, grabbing Promise directly works: ', Promise);
this === window // true.windowis the global scope and it has itself inside.window.window.window.window === window // true.