From 0c36f2353dd5046d3b1503308900962018a9401f Mon Sep 17 00:00:00 2001 From: Dzmitry Shylovich Date: Wed, 29 Mar 2017 02:17:48 +0300 Subject: [PATCH] perf(router): don't create new serializer every time UrlTree.toString is called (#15565) --- packages/router/src/url_tree.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/router/src/url_tree.ts b/packages/router/src/url_tree.ts index e03cc058f0..ab99544b8c 100644 --- a/packages/router/src/url_tree.ts +++ b/packages/router/src/url_tree.ts @@ -115,7 +115,7 @@ export class UrlTree { /** The fragment of the URL */ public fragment: string) {} - get queryParamMap() { + get queryParamMap(): ParamMap { if (!this._queryParamMap) { this._queryParamMap = convertToParamMap(this.queryParams); } @@ -123,7 +123,7 @@ export class UrlTree { } /** @docsNotRequired */ - toString(): string { return new DefaultUrlSerializer().serialize(this); } + toString(): string { return DEFAULT_SERIALIZER.serialize(this); } } /** @@ -294,6 +294,8 @@ export class DefaultUrlSerializer implements UrlSerializer { } } +const DEFAULT_SERIALIZER = new DefaultUrlSerializer(); + export function serializePaths(segment: UrlSegmentGroup): string { return segment.segments.map(p => serializePath(p)).join('/'); }