60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
|
/**
|
||
|
* lodash 3.0.1 (Custom Build) <https://lodash.com/>
|
||
|
* Build: `lodash modularize exports="npm" -o ./`
|
||
|
* Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
|
||
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
||
|
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||
|
* Available under MIT license <https://lodash.com/license>
|
||
|
*/
|
||
|
|
||
|
/** Used to determine if values are of the language type `Object`. */
|
||
|
var objectTypes = {
|
||
|
'function': true,
|
||
|
'object': true
|
||
|
};
|
||
|
|
||
|
/** Detect free variable `exports`. */
|
||
|
var freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType)
|
||
|
? exports
|
||
|
: undefined;
|
||
|
|
||
|
/** Detect free variable `module`. */
|
||
|
var freeModule = (objectTypes[typeof module] && module && !module.nodeType)
|
||
|
? module
|
||
|
: undefined;
|
||
|
|
||
|
/** Detect free variable `global` from Node.js. */
|
||
|
var freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);
|
||
|
|
||
|
/** Detect free variable `self`. */
|
||
|
var freeSelf = checkGlobal(objectTypes[typeof self] && self);
|
||
|
|
||
|
/** Detect free variable `window`. */
|
||
|
var freeWindow = checkGlobal(objectTypes[typeof window] && window);
|
||
|
|
||
|
/** Detect `this` as the global object. */
|
||
|
var thisGlobal = checkGlobal(objectTypes[typeof this] && this);
|
||
|
|
||
|
/**
|
||
|
* Used as a reference to the global object.
|
||
|
*
|
||
|
* The `this` value is used if it's the global object to avoid Greasemonkey's
|
||
|
* restricted `window` object, otherwise the `window` object is used.
|
||
|
*/
|
||
|
var root = freeGlobal ||
|
||
|
((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) ||
|
||
|
freeSelf || thisGlobal || Function('return this')();
|
||
|
|
||
|
/**
|
||
|
* Checks if `value` is a global object.
|
||
|
*
|
||
|
* @private
|
||
|
* @param {*} value The value to check.
|
||
|
* @returns {null|Object} Returns `value` if it's a global object, else `null`.
|
||
|
*/
|
||
|
function checkGlobal(value) {
|
||
|
return (value && value.Object === Object) ? value : null;
|
||
|
}
|
||
|
|
||
|
module.exports = root;
|