feat(ShadowCss): Support the new deep combinator syntax >>>

fixes #990

ref http://dev.w3.org/csswg/css-scoping-1/#deep-combinator

Closes #1028
This commit is contained in:
Victor Berchet
2015-03-20 08:52:12 +01:00
committed by Misko Hevery
parent eef5f7e06d
commit ee523efcb4
2 changed files with 10 additions and 3 deletions

View File

@ -512,11 +512,13 @@ var _cssColonHostRe = RegExpWrapper.create('(' + _polyfillHost + _parenSuffix, '
var _cssColonHostContextRe = RegExpWrapper.create('(' + _polyfillHostContext + _parenSuffix, 'im'); var _cssColonHostContextRe = RegExpWrapper.create('(' + _polyfillHostContext + _parenSuffix, 'im');
var _polyfillHostNoCombinator = _polyfillHost + '-no-combinator'; var _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';
var _shadowDOMSelectorsRe = [ var _shadowDOMSelectorsRe = [
RegExpWrapper.create('/shadow/'), RegExpWrapper.create('>>>'),
RegExpWrapper.create('/shadow-deep/'),
RegExpWrapper.create('::shadow'), RegExpWrapper.create('::shadow'),
RegExpWrapper.create('/deep/'),
RegExpWrapper.create('::content'), RegExpWrapper.create('::content'),
// Deprecated selectors
RegExpWrapper.create('/deep/'), // former >>>
RegExpWrapper.create('/shadow-deep/'), // former /deep/
RegExpWrapper.create('/shadow/'), // former ::shadow
]; ];
var _selectorReSuffix = '([>\\s~+\[.,{:][\\s\\S]*)?$'; var _selectorReSuffix = '([>\\s~+\[.,{:][\\s\\S]*)?$';
var _polyfillHostRe = RegExpWrapper.create(_polyfillHost, 'im'); var _polyfillHostRe = RegExpWrapper.create(_polyfillHost, 'im');

View File

@ -108,5 +108,10 @@ export function main() {
var css = s('x /deep/ y {}', 'a'); var css = s('x /deep/ y {}', 'a');
expect(css).toEqual('x[a] y[a] {}'); expect(css).toEqual('x[a] y[a] {}');
}); });
it('should handle >>>', () => {
var css = s('x >>> y {}', 'a');
expect(css).toEqual('x[a] y[a] {}');
});
}); });
} }