diff --git a/modules/angular2/src/test_lib/shims_for_IE.js b/modules/angular2/src/test_lib/shims_for_IE.js index ad93ee07c1..ec646029cc 100644 --- a/modules/angular2/src/test_lib/shims_for_IE.js +++ b/modules/angular2/src/test_lib/shims_for_IE.js @@ -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}); diff --git a/modules/angular2/test/core/dom/shim_spec.dart b/modules/angular2/test/core/dom/shim_spec.dart new file mode 100644 index 0000000000..27bfcee54b --- /dev/null +++ b/modules/angular2/test/core/dom/shim_spec.dart @@ -0,0 +1,5 @@ +library angular2.test.core.dom.shim_spec; + +main() { + // not relevant for dart. +} diff --git a/modules/angular2/test/core/dom/shim_spec.ts b/modules/angular2/test/core/dom/shim_spec.ts new file mode 100644 index 0000000000..9dc00f6121 --- /dev/null +++ b/modules/angular2/test/core/dom/shim_spec.ts @@ -0,0 +1,26 @@ +import { + AsyncTestCompleter, + beforeEach, + ddescribe, + describe, + el, + expect, + iit, + inject, + it, + xit +} from 'angular2/test_lib'; + +export function main() { + describe('Shim', () => { + + it('should provide correct function.name ', () => { + var functionWithoutName = function(_) {}; + function foo(_){}; + + expect((functionWithoutName).name).toEqual(''); + expect((foo).name).toEqual('foo'); + }); + + }); +}