mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-06 01:47:48 +00:00
Bump to v3.0.0.
This commit is contained in:
76
support.js
Normal file
76
support.js
Normal file
@@ -0,0 +1,76 @@
|
||||
import isNative from './lang/isNative';
|
||||
import root from './internal/root';
|
||||
|
||||
/** Used to detect functions containing a `this` reference. */
|
||||
var reThis = /\bthis\b/;
|
||||
|
||||
/** Used for native method references. */
|
||||
var objectProto = Object.prototype;
|
||||
|
||||
/** Used to detect DOM support. */
|
||||
var document = (document = root.window) && document.document;
|
||||
|
||||
/** Native method references. */
|
||||
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
|
||||
|
||||
/**
|
||||
* An object environment feature flags.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @type Object
|
||||
*/
|
||||
var support = {};
|
||||
|
||||
(function(x) {
|
||||
|
||||
/**
|
||||
* Detect if functions can be decompiled by `Function#toString`
|
||||
* (all but Firefox OS certified apps, older Opera mobile browsers, and
|
||||
* the PlayStation 3; forced `false` for Windows 8 apps).
|
||||
*
|
||||
* @memberOf _.support
|
||||
* @type boolean
|
||||
*/
|
||||
support.funcDecomp = !isNative(root.WinRTError) && reThis.test(function() { return this; });
|
||||
|
||||
/**
|
||||
* Detect if `Function#name` is supported (all but IE).
|
||||
*
|
||||
* @memberOf _.support
|
||||
* @type boolean
|
||||
*/
|
||||
support.funcNames = typeof Function.name == 'string';
|
||||
|
||||
/**
|
||||
* Detect if the DOM is supported.
|
||||
*
|
||||
* @memberOf _.support
|
||||
* @type boolean
|
||||
*/
|
||||
try {
|
||||
support.dom = document.createDocumentFragment().nodeType === 11;
|
||||
} catch(e) {
|
||||
support.dom = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect if `arguments` object indexes are non-enumerable.
|
||||
*
|
||||
* In Firefox < 4, IE < 9, PhantomJS, and Safari < 5.1 `arguments` object
|
||||
* indexes are non-enumerable. Chrome < 25 and Node.js < 0.11.0 treat
|
||||
* `arguments` object indexes as non-enumerable and fail `hasOwnProperty`
|
||||
* checks for indexes that exceed their function's formal parameters with
|
||||
* associated values of `0`.
|
||||
*
|
||||
* @memberOf _.support
|
||||
* @type boolean
|
||||
*/
|
||||
try {
|
||||
support.nonEnumArgs = !propertyIsEnumerable.call(arguments, 1);
|
||||
} catch(e) {
|
||||
support.nonEnumArgs = true;
|
||||
}
|
||||
}(0, 0));
|
||||
|
||||
export default support;
|
||||
Reference in New Issue
Block a user