Skip to content

Commit

Permalink
refactor(core): replace some for statements with map/reduce
Browse files Browse the repository at this point in the history
  • Loading branch information
asnowwolf authored and vikerman committed Aug 14, 2016
1 parent 05d1312 commit 398bbb6
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions modules/@angular/compiler/src/shadow_css.ts
Expand Up @@ -323,10 +323,8 @@ export class ShadowCss {
* by replacing with space.
*/
private _convertShadowDOMSelectors(cssText: string): string {
for (let i = 0; i < _shadowDOMSelectorsRe.length; i++) {
cssText = StringWrapper.replaceAll(cssText, _shadowDOMSelectorsRe[i], ' ');
}
return cssText;
return _shadowDOMSelectorsRe.reduce(
(result, pattern) => { return StringWrapper.replaceAll(result, pattern, ' '); }, cssText);
}

// change a selector like 'div' to 'name div'
Expand All @@ -346,20 +344,22 @@ export class ShadowCss {

private _scopeSelector(
selector: string, scopeSelector: string, hostSelector: string, strict: boolean): string {
const r: any[] /** TODO #9100 */ = [], parts = selector.split(',');
for (let i = 0; i < parts.length; i++) {
const p = parts[i].trim();
const deepParts = StringWrapper.split(p, _shadowDeepSelectors);
const shallowPart = deepParts[0];
if (this._selectorNeedsScoping(shallowPart, scopeSelector)) {
deepParts[0] = strict && !StringWrapper.contains(shallowPart, _polyfillHostNoCombinator) ?
this._applyStrictSelectorScope(shallowPart, scopeSelector) :
this._applySelectorScope(shallowPart, scopeSelector, hostSelector);
}
// replace /deep/ with a space for child selectors
r.push(deepParts.join(' '));
}
return r.join(', ');
return selector.split(',')
.map((part) => { return StringWrapper.split(part.trim(), _shadowDeepSelectors); })
.map((deepParts) => {
const [shallowPart, ...otherParts] = deepParts;
const applyScope = (shallowPart: string) => {
if (this._selectorNeedsScoping(shallowPart, scopeSelector)) {
return strict && !StringWrapper.contains(shallowPart, _polyfillHostNoCombinator) ?
this._applyStrictSelectorScope(shallowPart, scopeSelector) :
this._applySelectorScope(shallowPart, scopeSelector, hostSelector);
} else {
return shallowPart;
}
};
return [applyScope(shallowPart), ...otherParts].join(' ');
})
.join(', ');
}

private _selectorNeedsScoping(selector: string, scopeSelector: string): boolean {
Expand Down

0 comments on commit 398bbb6

Please sign in to comment.