Spaces:
Configuration error
Configuration error
; | |
var functionsHaveNames = function functionsHaveNames() { | |
return typeof function f() {}.name === 'string'; | |
}; | |
var gOPD = Object.getOwnPropertyDescriptor; | |
if (gOPD) { | |
try { | |
gOPD([], 'length'); | |
} catch (e) { | |
// IE 8 has a broken gOPD | |
gOPD = null; | |
} | |
} | |
functionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() { | |
if (!functionsHaveNames() || !gOPD) { | |
return false; | |
} | |
var desc = gOPD(function () {}, 'name'); | |
return !!desc && !!desc.configurable; | |
}; | |
var $bind = Function.prototype.bind; | |
functionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() { | |
return functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== ''; | |
}; | |
module.exports = functionsHaveNames; | |