From f5f1d5f65cb86009c01a308065d82b43dfdec94a Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Tue, 13 Dec 2016 16:27:40 -0800 Subject: [PATCH] =?UTF-8?q?fix(compiler):=20make=20sure=20provider=20value?= =?UTF-8?q?s=20with=20`name`=20property=20don=E2=80=99t=20break.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #13394 Closes #13445 --- .../core/test/linker/regression_integration_spec.ts | 10 +++++++++- modules/@angular/facade/src/lang.ts | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/@angular/core/test/linker/regression_integration_spec.ts b/modules/@angular/core/test/linker/regression_integration_spec.ts index d4cf4bb815..1afb25cb43 100644 --- a/modules/@angular/core/test/linker/regression_integration_spec.ts +++ b/modules/@angular/core/test/linker/regression_integration_spec.ts @@ -8,7 +8,6 @@ import {Component, Injector, OpaqueToken, Pipe, PipeTransform, Provider} from '@angular/core'; import {TestBed} from '@angular/core/testing'; -import {beforeEach, describe, it} from '@angular/core/testing/testing_internal'; import {expect} from '@angular/platform-browser/testing/matchers'; export function main() { @@ -139,6 +138,15 @@ function declareTests({useJit}: {useJit: boolean}) { expect(injector.get(token1)).toEqual(tokenValue1); expect(injector.get(token2)).toEqual(tokenValue2); }); + + it('should support providers that have a `name` property with a number value', () => { + class TestClass { + constructor(public name: number) {} + } + const data = [new TestClass(1), new TestClass(2)]; + const injector = createInjector([{provide: 'someToken', useValue: data}]); + expect(injector.get('someToken')).toEqual(data); + }); }); it('should allow logging a previous elements class binding via interpolation', () => { diff --git a/modules/@angular/facade/src/lang.ts b/modules/@angular/facade/src/lang.ts index ed9eb36cf8..3e7b38d3ae 100644 --- a/modules/@angular/facade/src/lang.ts +++ b/modules/@angular/facade/src/lang.ts @@ -95,11 +95,11 @@ export function stringify(token: any): string { } if (token.overriddenName) { - return token.overriddenName; + return `${token.overriddenName}`; } if (token.name) { - return token.name; + return `${token.name}`; } const res = token.toString();