Simplify isHostObject.

This commit is contained in:
John-David Dalton
2015-07-20 08:10:30 -07:00
parent 2ccda44c44
commit 87cb4db263

View File

@@ -546,18 +546,17 @@
* @param {*} value The value to check. * @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a host object, else `false`. * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
*/ */
var isHostObject = (function() { function isHostObject(value) {
try { // Many host objects are `Object` objects that can coerce to strings
Object({ 'toString': 0 } + ''); // despite having improperly defined `toString` methods.
} catch(e) { var result = false;
return function() { return false; }; if (value != null && typeof value.toString != 'function') {
try {
result = !!(value + '');
} catch(e) {}
} }
return function(value) { return result;
// Many host objects are `Object` objects that can coerce to strings }
// despite having improperly defined `toString` methods.
return typeof value.toString != 'function' && typeof (value + '') == 'string';
};
}());
/** /**
* Checks if `value` is object-like. * Checks if `value` is object-like.