diff --git a/.internal/getTag.js b/.internal/getTag.js index 8f9b8c4ed..2511ee0b0 100644 --- a/.internal/getTag.js +++ b/.internal/getTag.js @@ -1,5 +1,4 @@ import baseGetTag from './baseGetTag.js' -import toSource from './toSource.js' /** `Object#toString` result references. */ const dataViewTag = '[object DataView]' @@ -10,11 +9,11 @@ const setTag = '[object Set]' const weakMapTag = '[object WeakMap]' /** Used to detect maps, sets, and weakmaps. */ -const dataViewCtorString = toSource(DataView) -const mapCtorString = toSource(Map) -const promiseCtorString = toSource(Promise) -const setCtorString = toSource(Set) -const weakMapCtorString = toSource(WeakMap) +const dataViewCtorString = `${ DataView }` +const mapCtorString = `${ Map }` +const promiseCtorString = `${ Promise }` +const setCtorString = `${ Set }` +const weakMapCtorString = `${ WeakMap }` /** * Gets the `toStringTag` of `value`. @@ -34,7 +33,7 @@ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || getTag = (value) => { const result = baseGetTag(value) const Ctor = result == objectTag ? value.constructor : undefined - const ctorString = Ctor ? toSource(Ctor) : '' + const ctorString = Ctor ? `${ Ctor }` : '' if (ctorString) { switch (ctorString) { diff --git a/.internal/toSource.js b/.internal/toSource.js deleted file mode 100644 index 9ca944638..000000000 --- a/.internal/toSource.js +++ /dev/null @@ -1,23 +0,0 @@ -/** Used to resolve the decompiled source of functions. */ -const funcToString = Function.prototype.toString - -/** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func) - } catch (e) {} - try { - return `${ func }` - } catch (e) {} - } - return '' -} - -export default toSource diff --git a/isNative.js b/isNative.js index 42ba66e4b..2bcd26816 100644 --- a/isNative.js +++ b/isNative.js @@ -1,6 +1,4 @@ -import isFunction from './isFunction.js' import isObject from './isObject.js' -import toSource from './.internal/toSource.js' /** * Used to match `RegExp` @@ -8,9 +6,6 @@ import toSource from './.internal/toSource.js' */ const reRegExpChar = /[\\^$.*+?()[\]{}|]/g -/** Used to detect host constructors (Safari). */ -const reIsHostCtor = /^\[object .+?Constructor\]$/ - /** Used to detect if a method is native. */ const reIsNative = RegExp(`^${ Function.prototype.toString.call(Object.prototype.hasOwnProperty) @@ -35,11 +30,7 @@ const reIsNative = RegExp(`^${ * // => false */ function isNative(value) { - if (!isObject(value)) { - return false - } - const pattern = isFunction(value) ? reIsNative : reIsHostCtor - return pattern.test(toSource(value)) + return isObject(value) && reIsNative.test(value) } export default isNative