diff --git a/gen-tsd.json b/gen-tsd.json
index abb67b6cab..0b9e9713e7 100644
--- a/gen-tsd.json
+++ b/gen-tsd.json
@@ -8,6 +8,7 @@
"index.html"
],
"excludeIdentifiers": [
+ "ElementMixinPatchedBase",
"templatizedBase"
],
"removeReferences": [
diff --git a/lib/mixins/element-mixin.js b/lib/mixins/element-mixin.js
index c41b0751ba..efb82a552c 100644
--- a/lib/mixins/element-mixin.js
+++ b/lib/mixins/element-mixin.js
@@ -104,8 +104,13 @@ export const ElementMixin = dedupingMixin(base => {
// Optimizations for ShadyDOM's on-demand patching that pre-patches
// elements to work with ShadyDOM.
if (window.ShadyDOM && window.ShadyDOM.patchOnDemand) {
- base = class extends base {};
- ShadyDOM.patchElementProto(base.prototype);
+ // `ElementMixinPatchedBase` is explicitly ignored in `gen-tsd.json` so
+ // that it doesn't attempt to export a type for it: the type generator
+ // attempts to declare it as extending `base` but no type is generated for
+ // `base`.
+ class ElementMixinPatchedBase extends base {}
+ ShadyDOM.patchElementProto(ElementMixinPatchedBase.prototype);
+ base = ElementMixinPatchedBase;
}
/**
diff --git a/lib/utils/settings.js b/lib/utils/settings.js
index 582327e392..21a1e9cf43 100644
--- a/lib/utils/settings.js
+++ b/lib/utils/settings.js
@@ -312,7 +312,7 @@ export let lazyDefine =
*/
export const setLazyDefine = function(useLazyDefine) {
lazyDefine = useLazyDefine;
-}
+};
/**
* Setting to disable `dom-change` and `rendered-item-count` events from
diff --git a/package-lock.json b/package-lock.json
index 566c38215c..7cb0472708 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1300,14 +1300,14 @@
}
},
"@webcomponents/shadycss": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.9.1.tgz",
- "integrity": "sha512-IaZOnWOKXHghqk/WfPNDRIgDBi3RsVPY2IFAw6tYiL9UBGvQRy5R6uC+Fk7qTZsReTJ0xh5MTT8yAcb3MUR4mQ=="
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.9.4.tgz",
+ "integrity": "sha512-tgNcVEaKssyeZPbUBjVQf4aryO5Fi7fxRvOxV982ZJuRVDcefmIblBh0SXAbcvAAlQ2zpNEP4SuQUnr8uApIpw=="
},
"@webcomponents/webcomponentsjs": {
- "version": "2.2.10",
- "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.2.10.tgz",
- "integrity": "sha512-5dzhUhP+h0qMiK0IWb7VNb0OGBoXO3AuI6Qi8t9PoKT50s5L1jv0xnwnLq+cFgPuTB8FLTNP8xIDmyoOsKBy9Q==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.4.1.tgz",
+ "integrity": "sha512-7jxBb+KoWncKb/JGFyTY40PjV4yRx2zd35ZLuvRP+6WndJDL7X32ZIZ7bN3sSQIl+NzJkCo7chfXJyzn+6WZaQ==",
"dev": true
},
"abbrev": {
@@ -13333,8 +13333,7 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"aproba": {
"version": "1.2.0",
@@ -13362,7 +13361,6 @@
"version": "1.1.11",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -13377,8 +13375,7 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"concat-map": {
"version": "0.0.1",
@@ -13389,8 +13386,7 @@
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"core-util-is": {
"version": "1.0.2",
@@ -13507,8 +13503,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"ini": {
"version": "1.3.5",
@@ -13520,7 +13515,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -13535,7 +13529,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -13543,14 +13536,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -13569,7 +13560,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -13650,8 +13640,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"object-assign": {
"version": "4.1.1",
@@ -13663,7 +13652,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"wrappy": "1"
}
@@ -13749,8 +13737,7 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -13786,7 +13773,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -13806,7 +13792,6 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -13850,14 +13835,12 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
diff --git a/package.json b/package.json
index a30c075a50..699dd0b610 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"@polymer/gen-typescript-declarations": "^1.5.1",
"@polymer/iron-component-page": "^3.0.0-pre.12",
"@polymer/test-fixture": "^3.0.0-pre.12",
- "@webcomponents/webcomponentsjs": "^2.2.10",
+ "@webcomponents/webcomponentsjs": "^2.4.1",
"babel-eslint": "^7.2.3",
"babel-preset-minify": "^0.2.0",
"del": "^3.0.0",
@@ -65,7 +65,7 @@
"type-detect": "1.0.0"
},
"dependencies": {
- "@webcomponents/shadycss": "^1.9.1"
+ "@webcomponents/shadycss": "^1.9.4"
},
"files": [
"externs",
diff --git a/test/runner.html b/test/runner.html
index 6136ca9710..7d0f1fbf03 100644
--- a/test/runner.html
+++ b/test/runner.html
@@ -112,32 +112,14 @@
return previous + (previous ? '&' : '') + next;
}
- // test shadowdom/custom elements polyfills together
- // preferring both if possible.
let flags = [''];
- if (window.customElements) {
- // NOTE: disabled because Native ShadowDOM and Polyfilled CustomElements is not an expected use-case.
- // flags.push('wc-ce=true');
- }
// if native is available, make sure to test polyfill
if (Element.prototype.attachShadow && Node.prototype.getRootNode) {
flags.push('wc-shadydom=true');
}
// always test ShadyDOM on-demand patching
flags.push('wc-shadydom=true&wc-noPatch=on-demand');
- // Both sd and ce are supported, force both polyfills
- if (flags.length === 2) {
- // ce + sd becomes a single test iteration.
- flags.push('wc-ce=true&wc-shadydom=true');
- }
- // economize testing by testing css shimming
- // only against 1 environment (native or polyfill).
- if (window.CSS && CSS.supports && CSS.supports('box-shadow', '0 0 0 var(--foo)')) {
- // Note: Disabled to speed up testing, may be reenabled at a later date when the test timing is less of an issue.
- // let last = flags.length === 1 ? '' : flags[flags.length - 1];
- // flags.push(addUrlOption(last, 'wc-shimcssproperties=true'));
- }
suites = combinations(suites, flags);
console.log('Testing suites:\n\t' + suites.join('\n\t'));
diff --git a/test/unit/lazy-define.html b/test/unit/lazy-define.html
index 168d280565..664241193b 100644
--- a/test/unit/lazy-define.html
+++ b/test/unit/lazy-define.html
@@ -66,7 +66,6 @@