1 | var DESCRIPTORS = require('../internals/descriptors');
|
2 | var defineProperty = require('../internals/object-define-property').f;
|
3 |
|
4 | var FunctionPrototype = Function.prototype;
|
5 | var FunctionPrototypeToString = FunctionPrototype.toString;
|
6 | var nameRE = /^\s*function ([^ (]*)/;
|
7 | var NAME = 'name';
|
8 |
|
9 |
|
10 |
|
11 | if (DESCRIPTORS && !(NAME in FunctionPrototype)) {
|
12 | defineProperty(FunctionPrototype, NAME, {
|
13 | configurable: true,
|
14 | get: function () {
|
15 | try {
|
16 | return FunctionPrototypeToString.call(this).match(nameRE)[1];
|
17 | } catch (error) {
|
18 | return '';
|
19 | }
|
20 | }
|
21 | });
|
22 | }
|