Polyfill for the basic functionality of `Function.name` accessor property in its pre-ES6 form
npm install function.name-polyfillFunction.nameA polyfill for the basic functionality of Function.name accessor property in its pre-ES6 form.
``js`
function hello() {
/ ... /
}
console.log(hello.name); // "hello"
`js`
var fn = function foo() {
/ ... /
};
console.log(fn.name); // "foo"
Most modern browsers have already supported this basic functionality for quite some time but this polyfill will apply to _at least_ the following:
- IE >=9 <12<33
- Chrome
For IE <9, you can still use fn._name() instead.
#### Pre-ES6 Form
- In short, this means that this polyfilled name accessor property can provide you with the name of a named function definition (either a named function declaration or a named function expression).name
- Unlike other browsers with a similar support level for the pre-ES6 form, this poyfilled accessor property is also intentionally marked as configurable.
#### Chrome <5
- When polyfilling for Chrome <5, the accessor property will be configurable (expected) _AND_ enumerable (unexpected) due to having to implement it using Object.prototype.__defineGetter__ instead of Object.defineProperty.