From 0dda01e37caa84ddb3bb6dcdb1cb1c7b9246ce68 Mon Sep 17 00:00:00 2001 From: Chuck Jazdzewski Date: Thu, 23 Mar 2017 13:38:01 -0700 Subject: [PATCH] fix(compiler): correctly handle when `toString` is exported (#15430) Fixes #15420 --- packages/compiler/src/aot/static_symbol_resolver.ts | 2 +- packages/compiler/test/aot/compiler_spec.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/compiler/src/aot/static_symbol_resolver.ts b/packages/compiler/src/aot/static_symbol_resolver.ts index 62dd4de252..1861a28656 100644 --- a/packages/compiler/src/aot/static_symbol_resolver.ts +++ b/packages/compiler/src/aot/static_symbol_resolver.ts @@ -224,7 +224,7 @@ export class StaticSymbolResolver { this.recordImportAs(symbol, importSymbol); } - const origin = origins[metadataKey]; + const origin = origins.hasOwnProperty(metadataKey) && origins[metadataKey]; if (origin) { // If the symbol is from a bundled index, use the declaration location of the // symbol so relative references (such as './my.html') will be calculated diff --git a/packages/compiler/test/aot/compiler_spec.ts b/packages/compiler/test/aot/compiler_spec.ts index b72fe8d4da..51cd5aa39e 100644 --- a/packages/compiler/test/aot/compiler_spec.ts +++ b/packages/compiler/test/aot/compiler_spec.ts @@ -577,6 +577,7 @@ const FILES: MockData = { `, 'app.module.ts': ` import { NgModule } from '@angular/core'; + import { toString } from './utils'; import { AppComponent } from './app.component'; @@ -585,6 +586,12 @@ const FILES: MockData = { bootstrap: [ AppComponent ] }) export class AppModule { } + `, + // #15420 + 'utils.ts': ` + export function toString(value: any): string { + return ''; + } ` } }