diff --git a/webcomponents.js/webcomponents.js-tests.ts b/webcomponents.js/webcomponents.js-tests.ts index b5e67abb93..cb1ea0f2c4 100644 --- a/webcomponents.js/webcomponents.js-tests.ts +++ b/webcomponents.js/webcomponents.js-tests.ts @@ -36,6 +36,15 @@ window.HTMLImports.whenReady(() => { document.querySelectorAll(`link[type=${window.HTMLImports.IMPORT_LINK_TYPE}`); +/* + * Shadow DOM + */ + +var shadow = xFoo.createShadowRoot(); +xFoo.shadowRoot; +shadow.innerHTML; +shadow.host; + /* * Web Components */ diff --git a/webcomponents.js/webcomponents.js.d.ts b/webcomponents.js/webcomponents.js.d.ts index 7390cc5bc8..2f4ea424e4 100644 --- a/webcomponents.js/webcomponents.js.d.ts +++ b/webcomponents.js/webcomponents.js.d.ts @@ -31,6 +31,11 @@ declare namespace webcomponents { whenReady(callback: () => void): void; } + export interface ShadowRootPolyfill extends DocumentFragment { + innerHTML: string; + host: Element; + } + export interface Polyfill { flags: any; } @@ -41,6 +46,11 @@ declare module "webcomponents.js" { export = webcomponents; } +interface Element { + createShadowRoot(): webcomponents.ShadowRootPolyfill; + shadowRoot?: webcomponents.ShadowRootPolyfill; +} + interface Document { registerElement(name: string, prototype: webcomponents.CustomElementInit): webcomponents.CustomElementConstructor; }