fix(shims): function.name to return empty string when no name

This commit is contained in:
Marc Laval
2015-09-08 12:38:19 +02:00
parent e889ec8335
commit 3a7b50f244
3 changed files with 33 additions and 1 deletions

View File

@ -3,7 +3,8 @@
if (!Object.hasOwnProperty('name')) {
Object.defineProperty(Function.prototype, 'name', {
get: function() {
var name = this.toString().match(/^\s*function\s*(\S*)\s*\(/)[1];
var matches = this.toString().match(/^\s*function\s*(\S*)\s*\(/);
var name = matches && matches.length > 1 ? matches[1] : "";
// For better performance only parse once, and then cache the
// result through a new accessor for repeated access.
Object.defineProperty(this, 'name', {value: name});