Polyfill for the basic functionality of `` accessor property in its pre-ES6 form

Downloads in past


5301.0.65 years ago7 years agoMinified + gzip package size for in KB



A polyfill for the basic functionality of accessor property in its pre-ES6 form.


Named function declarations

function hello() {
  /* ... */
console.log(;  // "hello"

Named function expressions

var fn = function foo() {
  /* ... */
console.log(;  // "foo"

Browser Compatibility

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 - Chrome <33
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). - Unlike other browsers with a similar support level for the pre-ES6 form, this poyfilled name 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.

Other Documentation

- ES6 / ES2015 specification for