From c6c28f51970c8be164823356ce7211d3ad5ff829 Mon Sep 17 00:00:00 2001 From: Nazar Mokrynskyi Date: Mon, 2 Nov 2015 04:32:39 +0100 Subject: [PATCH] Using constant rather than plain `:host` and `::content`, also create regexp object only once --- src/lib/style-transformer.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/style-transformer.html b/src/lib/style-transformer.html index a8832f7ada..419c38d6e3 100644 --- a/src/lib/style-transformer.html +++ b/src/lib/style-transformer.html @@ -159,7 +159,7 @@ var stop = false; var hostContext = false; var self = this; - selector = selector.replace(/^(::content)/, ':host $1'); + selector = selector.replace(CONTENT_START, HOST + ' $1'); selector = selector.replace(SIMPLE_SELECTOR_SEP, function(m, c, s) { if (!stop) { var info = self._transformCompoundSelector(s, c, scope, hostScope); @@ -255,7 +255,7 @@ // NOTE: this supports 1 nested () pair for things like // :host(:not([selected]), more general support requires // parsing which seems like overkill - var HOST_PAREN = /(\:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g; + var HOST_PAREN = /(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g; var HOST_CONTEXT = ':host-context'; var HOST_CONTEXT_PAREN = /(.*)(?::host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/; var CONTENT = '::content'; @@ -265,6 +265,7 @@ var CSS_ATTR_SUFFIX = ']'; var PSEUDO_PREFIX = ':'; var CLASS = 'class'; + var CONTENT_START = new RegExp('^(' + CONTENT + ')'); // exports return api;