22 lines
509 B
JavaScript
22 lines
509 B
JavaScript
|
var g;
|
||
|
|
||
|
// This works in non-strict mode
|
||
|
g = (function() {
|
||
|
return this;
|
||
|
})();
|
||
|
|
||
|
try {
|
||
|
// This works if eval is allowed (see CSP)
|
||
|
g = g || Function("return this")() || (1,eval)("this");
|
||
|
} catch(e) {
|
||
|
// This works if the window reference is available
|
||
|
if(typeof window === "object")
|
||
|
g = window;
|
||
|
}
|
||
|
|
||
|
// g can still be undefined, but nothing to do about it...
|
||
|
// We return undefined, instead of nothing here, so it's
|
||
|
// easier to handle this case. if(!global) { ...}
|
||
|
|
||
|
module.exports = g;
|