diff --git a/packages/core-js/internals/function-uncurry-this.js b/packages/core-js/internals/function-uncurry-this.js index 4add61f64311..20723a0c31ba 100644 --- a/packages/core-js/internals/function-uncurry-this.js +++ b/packages/core-js/internals/function-uncurry-this.js @@ -1,4 +1,3 @@ -var fails = require('../internals/fails'); var NATIVE_BIND = require('../internals/function-bind-native'); var FunctionPrototype = Function.prototype; @@ -6,15 +5,9 @@ var bind = FunctionPrototype.bind; var call = FunctionPrototype.call; var uncurryThis = NATIVE_BIND && bind.bind(call, call); -var UNCURRY_WITH_NATIVE_BIND = NATIVE_BIND && !fails(function () { +module.exports = function (fn) { // Nashorn bug, https://github.com/zloirock/core-js/issues/1128 - return uncurryThis(''.slice)('12', 1) !== '2'; -}); - -module.exports = UNCURRY_WITH_NATIVE_BIND ? function (fn) { - return fn && uncurryThis(fn); -} : function (fn) { - return fn && function () { + return fn && (NATIVE_BIND && fn instanceof Function ? uncurryThis(fn) : function () { return call.apply(fn, arguments); - }; + }); };