@@ -154,6 +176,7 @@ export {
ComponentWithChildrenRerender,
ComponentWithDifferentViews,
ComponentWithProps,
+ ComponentWithoutProps,
ComponentWithImperativeEvent,
ComponentWithDeclarativeEvent
}
diff --git a/libraries/dio/meta/expectedResults.json b/libraries/dio/meta/expectedResults.json
index 33d25e192e..c7c62ab0a9 100644
--- a/libraries/dio/meta/expectedResults.json
+++ b/libraries/dio/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 26,
- "failed": 6,
+ "failed": 8,
"skipped": 0,
"error": false,
"disconnected": false,
"exitCode": 1,
- "score": 92,
+ "score": 85,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/dio/src/basic-tests.js b/libraries/dio/src/basic-tests.js
index 4c597a0e99..ede752f869 100644
--- a/libraries/dio/src/basic-tests.js
+++ b/libraries/dio/src/basic-tests.js
@@ -25,7 +25,8 @@ import {
ComponentWithProperties,
ComponentWithUnregistered,
ComponentWithImperativeEvent,
- ComponentWithDeclarativeEvent
+ ComponentWithDeclarativeEvent,
+ ComponentWithoutProperties
} from "./components";
// Setup the test harness. This will get cleaned out with every test.
@@ -128,6 +129,16 @@ describe("basic support", function() {
let data = wc.str || wc.getAttribute("str");
expect(data).to.eql("DIO");
});
+
+ it('will not overwrite unwriteable properties', function () {
+ render(
, scratch);
+ console.log(scratch);
+ let wc = scratch.querySelector("#wc");
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ })
});
describe("events", function() {
diff --git a/libraries/dio/src/components.js b/libraries/dio/src/components.js
index 78df469ca7..d7fc57b817 100644
--- a/libraries/dio/src/components.js
+++ b/libraries/dio/src/components.js
@@ -20,6 +20,7 @@ import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
import 'ce-with-event';
+import 'ce-without-properties';
export class ComponentWithoutChildren extends Component {
render() {
@@ -109,6 +110,16 @@ export class ComponentWithProperties extends Component {
}
}
+export class ComponentWithoutProperties extends Component {
+ render () {
+ return (
+
+
+
+ )
+ }
+}
+
export class ComponentWithUnregistered extends Component {
render () {
const data = {
diff --git a/libraries/dojo/meta/expectedResults.json b/libraries/dojo/meta/expectedResults.json
index 755586be4b..96a3486551 100644
--- a/libraries/dojo/meta/expectedResults.json
+++ b/libraries/dojo/meta/expectedResults.json
@@ -1,5 +1,5 @@
{
- "success": 32,
+ "success": 34,
"failed": 0,
"skipped": 0,
"error": false,
@@ -7,9 +7,9 @@
"exitCode": 0,
"score": 100,
"basicSupport": {
- "total": 16,
+ "total": 18,
"failed": 0,
- "passed": 16
+ "passed": 18
},
"advancedSupport": {
"total": 16,
diff --git a/libraries/dojo/src/basic-tests.ts b/libraries/dojo/src/basic-tests.ts
index f3865a794d..5b25c4f755 100644
--- a/libraries/dojo/src/basic-tests.ts
+++ b/libraries/dojo/src/basic-tests.ts
@@ -22,7 +22,8 @@ import {
ComponentWithChildrenRerender,
ComponentWithDifferentViews,
ComponentWithProperties,
- ComponentWithImperativeEvent
+ ComponentWithImperativeEvent,
+ ComponentWithoutProperties
} from "./components";
import renderer, { w } from "@dojo/framework/core/vdom";
@@ -128,6 +129,16 @@ describe("basic support", function() {
const data = wc.getAttribute("str");
expect(data).to.eql("Dojo");
});
+
+ it('will not overwrite unwriteable properties', function () {
+ const r = renderer(() => w(ComponentWithoutProperties, {}));
+ r.mount({ domNode: scratch, sync: true });
+ const wc: any = document.querySelector("ce-without-properties");
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
});
describe("events", function() {
diff --git a/libraries/dojo/src/components.ts b/libraries/dojo/src/components.ts
index 436bef0f36..a4780b246e 100644
--- a/libraries/dojo/src/components.ts
+++ b/libraries/dojo/src/components.ts
@@ -21,6 +21,7 @@ import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
import 'ce-with-event';
+import 'ce-without-properties';
const factory = create({ icache });
@@ -67,6 +68,15 @@ export const ComponentWithProperties = factory(() => {
return v('ce-with-properties', data);
});
+export const ComponentWithoutProperties = factory(() => {
+ const data = {
+ amethod: 'method',
+ agetter: 'getter',
+ areadonly: 'readonly'
+ };
+ return v('ce-without-properties', data);
+})
+
export const ComponentWithUnregistered = factory(() => {
const data = {
bool: true,
diff --git a/libraries/hybrids/meta/expectedResults.json b/libraries/hybrids/meta/expectedResults.json
index c15d4478b5..b34f84d98c 100644
--- a/libraries/hybrids/meta/expectedResults.json
+++ b/libraries/hybrids/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 30,
- "failed": 2,
+ "failed": 4,
"skipped": 0,
"error": false,
"disconnected": false,
"exitCode": 1,
- "score": 94,
+ "score": 87,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/hybrids/src/basic-tests.js b/libraries/hybrids/src/basic-tests.js
index 37229acdf2..2073c0d924 100644
--- a/libraries/hybrids/src/basic-tests.js
+++ b/libraries/hybrids/src/basic-tests.js
@@ -25,6 +25,7 @@ import {
ComponentWithDifferentViews,
ComponentWithProperties,
ComponentWithDeclarativeEvent,
+ ComponentWithoutProperties,
} from "./components";
describe("basic support", function() {
@@ -165,6 +166,25 @@ describe("basic support", function() {
});
});
+ describe('without properties', function () {
+ define("component-without-properties", ComponentWithoutProperties);
+
+ beforeEach(() => {
+ root.appendChild(document.createElement("component-without-properties"));
+ });
+
+ it('will not overwrite unwriteable properties', function () {
+ this.weight = 3;
+ requestAnimationFrame(() => {
+ const wc = root.firstElementChild.shadowRoot.querySelector('#wc');
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ })
+ });
+ });
+
describe("events", function() {
define("component-with-declarative-event", ComponentWithDeclarativeEvent);
diff --git a/libraries/hybrids/src/components.js b/libraries/hybrids/src/components.js
index ae5810576e..e8a28e3276 100644
--- a/libraries/hybrids/src/components.js
+++ b/libraries/hybrids/src/components.js
@@ -19,6 +19,7 @@ import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
import 'ce-with-event';
+import 'ce-without-properties';
import { html } from 'hybrids';
@@ -62,6 +63,17 @@ export const ComponentWithProperties = {
`,
};
+export const ComponentWithoutProperties = {
+ render: () => html`
+
+ `
+}
+
export const ComponentWithDeclarativeEvent = {
lowercaseHandled: false,
kebabHandled: false,
diff --git a/libraries/hyperapp/meta/expectedResults.json b/libraries/hyperapp/meta/expectedResults.json
index 755586be4b..922b788009 100644
--- a/libraries/hyperapp/meta/expectedResults.json
+++ b/libraries/hyperapp/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 32,
- "failed": 0,
+ "failed": 2,
"skipped": 0,
"error": false,
"disconnected": false,
- "exitCode": 0,
- "score": 100,
+ "exitCode": 1,
+ "score": 92,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/hyperapp/package.json b/libraries/hyperapp/package.json
index 42a51f5f1a..53441deb29 100644
--- a/libraries/hyperapp/package.json
+++ b/libraries/hyperapp/package.json
@@ -35,7 +35,7 @@
"output": [
"results"
],
- "command": "cross-env LIBRARY_NAME=hyperapp karma start"
+ "command": "cross-env LIBRARY_NAME=hyperapp karma start || echo ''"
},
"build": {
"dependencies": [
diff --git a/libraries/hyperapp/src/basic-tests.js b/libraries/hyperapp/src/basic-tests.js
index 80b863062b..742678fe48 100644
--- a/libraries/hyperapp/src/basic-tests.js
+++ b/libraries/hyperapp/src/basic-tests.js
@@ -25,7 +25,8 @@ import {
ComponentWithDifferentViews,
ComponentWithProperties,
ComponentWithImperativeEvent,
- ComponentWithDeclarativeEvent
+ ComponentWithDeclarativeEvent,
+ ComponentWithoutProperties
} from "./components";
// Setup the test harness. This will get cleaned out with every test.
@@ -130,6 +131,17 @@ describe("basic support", function () {
let data = wc.str || wc.getAttribute("str");
expect(data).to.eql("Hyperapp");
});
+
+ it('will not overwrite unwritable properties', async function() {
+ this.weight = 3;
+ ComponentWithoutProperties(root);
+ await new Promise(requestAnimationFrame);
+ let wc = testContainer.querySelector('#wc');
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ })
});
describe("events", function () {
diff --git a/libraries/hyperapp/src/components.js b/libraries/hyperapp/src/components.js
index 73726e7934..0c54a8e6ff 100644
--- a/libraries/hyperapp/src/components.js
+++ b/libraries/hyperapp/src/components.js
@@ -19,6 +19,7 @@ import "ce-without-children"
import "ce-with-children"
import "ce-with-properties"
import "ce-with-event"
+import "ce-without-properties"
import { app, h, text } from "hyperapp"
@@ -81,6 +82,20 @@ export const ComponentWithProperties = node =>
]),
})
+export const ComponentWithoutProperties = node =>
+ app({
+ node,
+ init: {},
+ view: () =>
+ h('div', {}, [
+ h('ce-without-properties', {
+ amethod: 'method',
+ agetter: 'getter',
+ areadonly: 'readonly'
+ }),
+ ]),
+ })
+
export const ComponentWithImperativeEvent = node => {
const _withElem = (_, opts) =>
requestAnimationFrame(_ => {
diff --git a/libraries/hyperhtml/meta/expectedResults.json b/libraries/hyperhtml/meta/expectedResults.json
index 755586be4b..922b788009 100644
--- a/libraries/hyperhtml/meta/expectedResults.json
+++ b/libraries/hyperhtml/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 32,
- "failed": 0,
+ "failed": 2,
"skipped": 0,
"error": false,
"disconnected": false,
- "exitCode": 0,
- "score": 100,
+ "exitCode": 1,
+ "score": 92,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/hyperhtml/package.json b/libraries/hyperhtml/package.json
index 6994b23459..2f69d22a01 100644
--- a/libraries/hyperhtml/package.json
+++ b/libraries/hyperhtml/package.json
@@ -35,7 +35,7 @@
"output": [
"results"
],
- "command": "cross-env LIBRARY_NAME=hyperhtml karma start"
+ "command": "cross-env LIBRARY_NAME=hyperhtml karma start || echo ''"
},
"build": {
"dependencies": [
diff --git a/libraries/hyperhtml/src/basic-tests.js b/libraries/hyperhtml/src/basic-tests.js
index 5416e41c6e..4a3965c959 100644
--- a/libraries/hyperhtml/src/basic-tests.js
+++ b/libraries/hyperhtml/src/basic-tests.js
@@ -26,6 +26,7 @@ import {
ComponentWithChildrenRerender,
ComponentWithDifferentViews,
ComponentWithProperties,
+ ComponentWithoutProperties,
ComponentWithImperativeEvent,
ComponentWithDeclarativeEvent
} from "./components";
@@ -131,6 +132,16 @@ describe("basic support", function() {
let data = wc.str || wc.getAttribute("str");
expect(data).to.eql("hyperHTML");
});
+
+ it('will not overwrite unwriteable properties', function () {
+ this.weight = 3;
+ ComponentWithoutProperties(root);
+ let wc = root.querySelector("#wc");
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
});
describe("events", function() {
diff --git a/libraries/hyperhtml/src/components.js b/libraries/hyperhtml/src/components.js
index 4ab1431184..16896ed364 100644
--- a/libraries/hyperhtml/src/components.js
+++ b/libraries/hyperhtml/src/components.js
@@ -18,6 +18,7 @@
import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
+import 'ce-without-properties';
import 'ce-with-event';
import HyperHTMLELement from 'hyperhtml-element/esm';
@@ -79,6 +80,16 @@ export const ComponentWithProperties = (root) => hyper(root)`
>
`;
+export const ComponentWithoutProperties = (root) => hyper(root)`
+
@@ -78,6 +79,23 @@ define('component-with-properties', _ => {
})
+define('component-without-properties', _ => {
+ const data = {
+ method: 'method',
+ getter: 'getter',
+ readonly: 'readonly'
+ }
+ return (
+
+
+
+ )
+})
+
diff --git a/libraries/polymer/meta/expectedResults.json b/libraries/polymer/meta/expectedResults.json
index 33d25e192e..c7c62ab0a9 100644
--- a/libraries/polymer/meta/expectedResults.json
+++ b/libraries/polymer/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 26,
- "failed": 6,
+ "failed": 8,
"skipped": 0,
"error": false,
"disconnected": false,
"exitCode": 1,
- "score": 92,
+ "score": 85,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/polymer/src/basic-tests.js b/libraries/polymer/src/basic-tests.js
index 241e02efa9..456a72da57 100644
--- a/libraries/polymer/src/basic-tests.js
+++ b/libraries/polymer/src/basic-tests.js
@@ -124,6 +124,19 @@ describe("basic support", function() {
});
});
+ describe("without properties", () => {
+ it('will not overwrite unwriteable properties', function () {
+ this.weight = 3;
+ const root = document.createElement("component-without-properties");
+ scratch.appendChild(root);
+ const wc = root.shadowRoot.querySelector("#wc");
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ })
+ });
+
describe("events", function() {
it("can imperatively listen to a DOM event dispatched by a Custom Element", async function() {
this.weight = 3;
diff --git a/libraries/polymer/src/components.js b/libraries/polymer/src/components.js
index 7cd9671c32..8821efad23 100644
--- a/libraries/polymer/src/components.js
+++ b/libraries/polymer/src/components.js
@@ -3,5 +3,6 @@ import "./components/component-with-children.js";
import "./components/component-with-children-rerender.js";
import "./components/component-with-different-views.js";
import "./components/component-with-properties.js";
+import "./components/component-without-properties.js";
import "./components/component-with-imperative-event.js";
import "./components/component-with-declarative-event.js";
diff --git a/libraries/polymer/src/components/component-without-properties.js b/libraries/polymer/src/components/component-without-properties.js
new file mode 100644
index 0000000000..8afdaf8a09
--- /dev/null
+++ b/libraries/polymer/src/components/component-without-properties.js
@@ -0,0 +1,39 @@
+import { PolymerElement, html } from "@polymer/polymer/polymer-element.js";
+import "ce-without-properties";
+
+class ComponentWithoutProperties extends PolymerElement {
+ static get is() {
+ return "component-without-properties";
+ }
+ static get properties() {
+ return {
+ method: {
+ type: String,
+ value: 'method'
+ },
+ getter: {
+ type: String,
+ value: 'getter'
+ },
+ readonly: {
+ type: String,
+ value: 'readonly'
+ },
+ };
+ }
+ static get template() {
+ return html`
+
+
+
+ `;
+ }
+}
+window.customElements.define(
+ ComponentWithoutProperties.is,
+ ComponentWithoutProperties
+);
diff --git a/libraries/preact/meta/expectedResults.json b/libraries/preact/meta/expectedResults.json
index 755586be4b..922b788009 100644
--- a/libraries/preact/meta/expectedResults.json
+++ b/libraries/preact/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 32,
- "failed": 0,
+ "failed": 2,
"skipped": 0,
"error": false,
"disconnected": false,
- "exitCode": 0,
- "score": 100,
+ "exitCode": 1,
+ "score": 92,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/preact/package.json b/libraries/preact/package.json
index 0214e40ac2..1b6e49e1d5 100644
--- a/libraries/preact/package.json
+++ b/libraries/preact/package.json
@@ -38,7 +38,7 @@
"output": [
"results"
],
- "command": "cross-env LIBRARY_NAME=preact karma start"
+ "command": "cross-env LIBRARY_NAME=preact karma start || echo ''"
},
"build": {
"dependencies": [
diff --git a/libraries/preact/src/basic-tests.js b/libraries/preact/src/basic-tests.js
index d87303c6ef..db898d9fc3 100644
--- a/libraries/preact/src/basic-tests.js
+++ b/libraries/preact/src/basic-tests.js
@@ -23,6 +23,7 @@ import {
ComponentWithChildrenRerender,
ComponentWithDifferentViews,
ComponentWithProperties,
+ ComponentWithoutProperties,
ComponentWithUnregistered,
ComponentWithImperativeEvent,
ComponentWithDeclarativeEvent
@@ -113,6 +114,17 @@ describe("basic support", function() {
expect(data).to.eql("Preact");
});
+ it("will not overwrite unwriteable properties", function () {
+ this.weight = 3;
+ let root = mount(
).getDOMNode();
+ let wc = root.querySelector("#wc");
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
+
+
// it('will set boolean attributes on a Custom Element that has not already been defined and upgraded', function() {
// let root = mount(
).getDOMNode();
// let wc = root.querySelector('#wc');
diff --git a/libraries/preact/src/components.js b/libraries/preact/src/components.js
index 0792eae4cd..df0c948aa7 100644
--- a/libraries/preact/src/components.js
+++ b/libraries/preact/src/components.js
@@ -19,6 +19,7 @@ import { h, render, Component } from 'preact';
import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
+import 'ce-without-properties';
import 'ce-with-event';
export class ComponentWithoutChildren extends Component {
@@ -109,6 +110,25 @@ export class ComponentWithProperties extends Component {
}
}
+export class ComponentWithoutProperties extends Component {
+ render () {
+ const data = {
+ method: 'method',
+ getter: 'getter',
+ readonly: 'readonly'
+ }
+ return (
+
+
+
+ )
+ }
+}
+
export class ComponentWithUnregistered extends Component {
render () {
const data = {
diff --git a/libraries/react/meta/expectedResults.json b/libraries/react/meta/expectedResults.json
index 755586be4b..922b788009 100644
--- a/libraries/react/meta/expectedResults.json
+++ b/libraries/react/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 32,
- "failed": 0,
+ "failed": 2,
"skipped": 0,
"error": false,
"disconnected": false,
- "exitCode": 0,
- "score": 100,
+ "exitCode": 1,
+ "score": 92,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/react/package.json b/libraries/react/package.json
index e98b836ded..4a11fc52c0 100644
--- a/libraries/react/package.json
+++ b/libraries/react/package.json
@@ -37,7 +37,7 @@
"output": [
"results"
],
- "command": "cross-env LIBRARY_NAME=react karma start"
+ "command": "cross-env LIBRARY_NAME=react karma start || echo ''"
},
"build": {
"dependencies": [
diff --git a/libraries/react/src/basic-tests.js b/libraries/react/src/basic-tests.js
index 3400a37e8b..28fdbc1706 100644
--- a/libraries/react/src/basic-tests.js
+++ b/libraries/react/src/basic-tests.js
@@ -29,6 +29,7 @@ import {
ComponentWithUnregistered,
ComponentWithImperativeEvent,
ComponentWithDeclarativeEvent,
+ ComponentWithoutProperties,
} from "./components";
// Setup the test harness. This will get cleaned out with every test.
@@ -198,6 +199,21 @@ describe("basic support", function () {
expect(data).to.eql("React");
});
+ it('will not overwrite unwriteable properties', function () {
+ let wc;
+ render(
+
{
+ wc = current;
+ }}
+ />
+ )
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
+
// TODO: Is it the framework's responsibility to check if the underlying
// property is defined? Or should it just always assume it is and do its
// usual default behavior? Preact will actually check if it's defined and
diff --git a/libraries/react/src/components.js b/libraries/react/src/components.js
index 20a7f82c23..7f270647aa 100644
--- a/libraries/react/src/components.js
+++ b/libraries/react/src/components.js
@@ -20,6 +20,7 @@ import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
import 'ce-with-event';
+import 'ce-without-properties';
export class ComponentWithoutChildren extends Component {
render() {
@@ -110,6 +111,12 @@ export class ComponentWithProperties extends Component {
}
}
+export const ComponentWithoutProperties = React.forwardRef(({}, ref) => {
+ return
+
+
+});
+
export class ComponentWithUnregistered extends Component {
render () {
const data = {
diff --git a/libraries/riot/meta/expectedResults.json b/libraries/riot/meta/expectedResults.json
index 755586be4b..96a3486551 100644
--- a/libraries/riot/meta/expectedResults.json
+++ b/libraries/riot/meta/expectedResults.json
@@ -1,5 +1,5 @@
{
- "success": 32,
+ "success": 34,
"failed": 0,
"skipped": 0,
"error": false,
@@ -7,9 +7,9 @@
"exitCode": 0,
"score": 100,
"basicSupport": {
- "total": 16,
+ "total": 18,
"failed": 0,
- "passed": 16
+ "passed": 18
},
"advancedSupport": {
"total": 16,
diff --git a/libraries/riot/src/basic-tests.js b/libraries/riot/src/basic-tests.js
index 83298d2284..9cdf1cb51d 100644
--- a/libraries/riot/src/basic-tests.js
+++ b/libraries/riot/src/basic-tests.js
@@ -23,6 +23,7 @@ import {
ComponentWithChildrenRerender,
ComponentWithDifferentViews,
ComponentWithProperties,
+ ComponentWithoutProperties,
ComponentWithUnregistered,
ComponentWithImperativeEvent
} from './components'
@@ -122,6 +123,16 @@ describe('basic support', function() {
expect(data).to.eql('riot')
})
+ it("will not overwrite unwriteable properties", function () {
+ this.weight = 3;
+ component(ComponentWithoutProperties)(scratch)
+ let wc = scratch.querySelector('#wc')
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
+
// Riot.js passes all the following tests but they must be commented out
// being consistent with the other frameworks ¯\_(ツ)_/¯
/*
diff --git a/libraries/riot/src/components.js b/libraries/riot/src/components.js
index a144c30860..a6da4fa505 100644
--- a/libraries/riot/src/components.js
+++ b/libraries/riot/src/components.js
@@ -18,6 +18,7 @@
import 'ce-without-children'
import 'ce-with-children'
import 'ce-with-properties'
+import 'ce-without-properties'
import 'ce-with-event'
export { default as ComponentWithoutChildren } from './components/ComponentWithoutChildren.riot'
@@ -25,6 +26,7 @@ export { default as ComponentWithChildren } from './components/ComponentWithChil
export { default as ComponentWithChildrenRerender } from './components/ComponentWithChildrenRerender.riot'
export { default as ComponentWithDifferentViews } from './components/ComponentWithDifferentViews.riot'
export { default as ComponentWithProperties } from './components/ComponentWithProperties.riot'
+export { default as ComponentWithoutProperties } from './components/ComponentWithoutProperties.riot'
export { default as ComponentWithUnregistered } from './components/ComponentWithUnregistered.riot'
export { default as ComponentWithImperativeEvent } from './components/ComponentWithImperativeEvent.riot'
export { default as ComponentWithDeclarativeEvent } from './components/ComponentWithDeclarativeEvent.riot'
diff --git a/libraries/riot/src/components/ComponentWithoutProperties.riot b/libraries/riot/src/components/ComponentWithoutProperties.riot
new file mode 100644
index 0000000000..2c8bbfcea8
--- /dev/null
+++ b/libraries/riot/src/components/ComponentWithoutProperties.riot
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/libraries/skate/meta/expectedResults.json b/libraries/skate/meta/expectedResults.json
index 33d25e192e..c7c62ab0a9 100644
--- a/libraries/skate/meta/expectedResults.json
+++ b/libraries/skate/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 26,
- "failed": 6,
+ "failed": 8,
"skipped": 0,
"error": false,
"disconnected": false,
"exitCode": 1,
- "score": 92,
+ "score": 85,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/skate/src/basic-tests.js b/libraries/skate/src/basic-tests.js
index ce474dd053..c18ae505e0 100644
--- a/libraries/skate/src/basic-tests.js
+++ b/libraries/skate/src/basic-tests.js
@@ -138,6 +138,20 @@ describe("basic support", function() {
});
});
+ describe("without properties", function() {
+ it("will not overwrite unwriteable properties", async function() {
+ this.weight = 3;
+ let root = document.createElement('component-without-properties');
+ scratch.appendChild(root);
+ await Promise.resolve();
+ let wc = root.shadowRoot.querySelector("#wc");
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
+ })
+
describe("events", function() {
it("can imperatively listen to a DOM event dispatched by a Custom Element", async function() {
this.weight = 3;
diff --git a/libraries/skate/src/components.js b/libraries/skate/src/components.js
index 053578727e..92f08a8d6d 100644
--- a/libraries/skate/src/components.js
+++ b/libraries/skate/src/components.js
@@ -23,6 +23,7 @@ import { h } from "preact";
import "ce-without-children";
import "ce-with-children";
import "ce-with-properties";
+import "ce-without-properties";
import "ce-with-event";
export class ComponentWithoutChildren extends withComponent(withPreact()) {
@@ -128,6 +129,27 @@ export class ComponentWithProperties extends withComponent(withPreact()) {
}
customElements.define("component-with-properties", ComponentWithProperties);
+export class ComponentWithoutProperties extends withComponent(withPreact()) {
+ render() {
+ const data = {
+ getter: 'getter',
+ readonly: 'readonly',
+ method: 'method',
+ }
+ return (
+
+
+
+ )
+ }
+}
+customElements.define("component-without-properties", ComponentWithoutProperties)
+
export class ComponentWithUnregistered extends withComponent(withPreact()) {
render() {
const data = {
diff --git a/libraries/solid/meta/expectedResults.json b/libraries/solid/meta/expectedResults.json
index 714176a640..96a3486551 100644
--- a/libraries/solid/meta/expectedResults.json
+++ b/libraries/solid/meta/expectedResults.json
@@ -1,5 +1,5 @@
{
- "success": 32,
+ "success": 34,
"failed": 0,
"skipped": 0,
"error": false,
@@ -7,13 +7,13 @@
"exitCode": 0,
"score": 100,
"basicSupport": {
- "total": 16,
+ "total": 18,
"failed": 0,
- "passed": 16
+ "passed": 18
},
"advancedSupport": {
"total": 16,
"failed": 0,
"passed": 16
}
-}
+}
\ No newline at end of file
diff --git a/libraries/solid/src/basic-tests.js b/libraries/solid/src/basic-tests.js
index 4247a307de..9a78ff99e6 100644
--- a/libraries/solid/src/basic-tests.js
+++ b/libraries/solid/src/basic-tests.js
@@ -23,6 +23,7 @@ import {
ComponentWithChildrenRerender,
ComponentWithDifferentViews,
ComponentWithProperties,
+ ComponentWithoutProperties,
ComponentWithUnregistered,
ComponentWithImperativeEvent,
ComponentWithDeclarativeEvent
@@ -110,6 +111,16 @@ describe("basic support", function() {
expect(data).to.eql("Solid");
});
+ it("will not overwrite unwriteable properties", function () {
+ this.weight = 3;
+ let wc;
+ render(() => wc = , document.body);
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
+
// TODO: Is it the framework's responsibility to check if the underlying
// property is defined? Or should it just always assume it is and do its
// usual default behavior? Preact will actually check if it's defined and
diff --git a/libraries/solid/src/components.js b/libraries/solid/src/components.js
index 047248bc00..5db210a4e7 100644
--- a/libraries/solid/src/components.js
+++ b/libraries/solid/src/components.js
@@ -20,6 +20,7 @@ import { createStore } from "solid-js/store";
import "ce-without-children";
import "ce-with-children";
import "ce-with-properties";
+import "ce-without-properties";
import "ce-with-event";
export const ComponentWithoutChildren = () => ;
@@ -63,6 +64,21 @@ export const ComponentWithProperties = () => {
);
};
+export const ComponentWithoutProperties = () => {
+ const data = {
+ getter: 'getter',
+ method: 'method',
+ readonly: 'readonly',
+ }
+ return (
+
+ )
+}
+
export const ComponentWithUnregistered = () => {
const data = {
bool: true,
diff --git a/libraries/stencil/meta/expectedResults.json b/libraries/stencil/meta/expectedResults.json
index 755586be4b..922b788009 100644
--- a/libraries/stencil/meta/expectedResults.json
+++ b/libraries/stencil/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 32,
- "failed": 0,
+ "failed": 2,
"skipped": 0,
"error": false,
"disconnected": false,
- "exitCode": 0,
- "score": 100,
+ "exitCode": 1,
+ "score": 92,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/stencil/package.json b/libraries/stencil/package.json
index a7eb039cdd..a620bbeddc 100644
--- a/libraries/stencil/package.json
+++ b/libraries/stencil/package.json
@@ -38,7 +38,7 @@
"output": [
"results"
],
- "command": "cross-env LIBRARY_NAME=@stencil/core karma start"
+ "command": "cross-env LIBRARY_NAME=@stencil/core karma start || echo ''"
},
"build": {
"dependencies": [
diff --git a/libraries/stencil/src/basic-tests.js b/libraries/stencil/src/basic-tests.js
index e1408c6051..6493fdf3ab 100644
--- a/libraries/stencil/src/basic-tests.js
+++ b/libraries/stencil/src/basic-tests.js
@@ -129,6 +129,19 @@ describe("basic support", function () {
expect(data).to.eql("Stencil");
});
});
+ describe('without properties', function () {
+ it("will not overwrite unwriteable properties", async function () {
+ this.weight = 3;
+ let root = document.createElement('component-without-properties');
+ scratch.appendChild(root);
+ await waitForRender(root);
+ let wc = root.shadowRoot.querySelector("#wc");
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ });
+ });
describe("events", function () {
it("can imperatively listen to a DOM event dispatched by a Custom Element", async function () {
diff --git a/libraries/stencil/src/components.d.ts b/libraries/stencil/src/components.d.ts
index f1c933cfb1..b5a94ce17e 100644
--- a/libraries/stencil/src/components.d.ts
+++ b/libraries/stencil/src/components.d.ts
@@ -35,6 +35,8 @@ export namespace Components {
}
interface ComponentWithoutChildren {
}
+ interface ComponentWithoutProperties {
+ }
}
declare global {
interface HTMLComponentWithChildrenElement extends Components.ComponentWithChildren, HTMLStencilElement {
@@ -79,6 +81,12 @@ declare global {
prototype: HTMLComponentWithoutChildrenElement;
new (): HTMLComponentWithoutChildrenElement;
};
+ interface HTMLComponentWithoutPropertiesElement extends Components.ComponentWithoutProperties, HTMLStencilElement {
+ }
+ var HTMLComponentWithoutPropertiesElement: {
+ prototype: HTMLComponentWithoutPropertiesElement;
+ new (): HTMLComponentWithoutPropertiesElement;
+ };
interface HTMLElementTagNameMap {
"component-with-children": HTMLComponentWithChildrenElement;
"component-with-children-rerender": HTMLComponentWithChildrenRerenderElement;
@@ -87,6 +95,7 @@ declare global {
"component-with-imperative-event": HTMLComponentWithImperativeEventElement;
"component-with-properties": HTMLComponentWithPropertiesElement;
"component-without-children": HTMLComponentWithoutChildrenElement;
+ "component-without-properties": HTMLComponentWithoutPropertiesElement;
}
}
declare namespace LocalJSX {
@@ -118,6 +127,8 @@ declare namespace LocalJSX {
}
interface ComponentWithoutChildren {
}
+ interface ComponentWithoutProperties {
+ }
interface IntrinsicElements {
"component-with-children": ComponentWithChildren;
"component-with-children-rerender": ComponentWithChildrenRerender;
@@ -126,6 +137,7 @@ declare namespace LocalJSX {
"component-with-imperative-event": ComponentWithImperativeEvent;
"component-with-properties": ComponentWithProperties;
"component-without-children": ComponentWithoutChildren;
+ "component-without-properties": ComponentWithoutProperties;
}
}
export { LocalJSX as JSX };
@@ -139,6 +151,7 @@ declare module "@stencil/core" {
"component-with-imperative-event": LocalJSX.ComponentWithImperativeEvent & JSXBase.HTMLAttributes;
"component-with-properties": LocalJSX.ComponentWithProperties & JSXBase.HTMLAttributes;
"component-without-children": LocalJSX.ComponentWithoutChildren & JSXBase.HTMLAttributes;
+ "component-without-properties": LocalJSX.ComponentWithoutProperties & JSXBase.HTMLAttributes;
}
}
}
diff --git a/libraries/stencil/src/components.js b/libraries/stencil/src/components.js
index 4efba7f4e4..c9705c8a2d 100644
--- a/libraries/stencil/src/components.js
+++ b/libraries/stencil/src/components.js
@@ -1,6 +1,7 @@
import "ce-without-children";
import "ce-with-children";
import "ce-with-properties";
+import "ce-without-properties";
import "ce-with-event";
import { ComponentWithChildren } from "../dist/components/component-with-children.js";
import { ComponentWithChildrenRerender } from "../dist/components/component-with-children-rerender.js";
@@ -8,6 +9,7 @@ import { ComponentWithDeclarativeEvent } from "../dist/components/component-with
import { ComponentWithDifferentViews } from "../dist/components/component-with-different-views.js";
import { ComponentWithImperativeEvent } from "../dist/components/component-with-imperative-event.js";
import { ComponentWithProperties } from "../dist/components/component-with-properties.js";
+import { ComponentWithoutProperties } from "../dist/components/component-without-properties.js";
import { ComponentWithoutChildren } from "../dist/components/component-without-children.js";
customElements.define("component-without-children", ComponentWithoutChildren);
@@ -29,3 +31,4 @@ customElements.define(
ComponentWithDeclarativeEvent
);
customElements.define("component-with-properties", ComponentWithProperties);
+customElements.define('component-without-properties', ComponentWithoutProperties);
diff --git a/libraries/stencil/src/components/component-without-properties/component-without-properties.tsx b/libraries/stencil/src/components/component-without-properties/component-without-properties.tsx
new file mode 100644
index 0000000000..9b0a0e9062
--- /dev/null
+++ b/libraries/stencil/src/components/component-without-properties/component-without-properties.tsx
@@ -0,0 +1,26 @@
+import { Component, Host, h } from "@stencil/core";
+
+@Component({
+ tag: "component-without-properties",
+ shadow: true
+})
+export class ComponentWithoutProperties {
+
+ render() {
+ const data = {
+ getter: 'getter',
+ method: 'method',
+ readonly: 'readonly'
+ }
+ return (
+
+
+
+ );
+ }
+}
diff --git a/libraries/surplus/meta/expectedResults.json b/libraries/surplus/meta/expectedResults.json
index 755586be4b..922b788009 100644
--- a/libraries/surplus/meta/expectedResults.json
+++ b/libraries/surplus/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 32,
- "failed": 0,
+ "failed": 2,
"skipped": 0,
"error": false,
"disconnected": false,
- "exitCode": 0,
- "score": 100,
+ "exitCode": 1,
+ "score": 92,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
diff --git a/libraries/surplus/package.json b/libraries/surplus/package.json
index dbd9a4af6d..c36846caf6 100644
--- a/libraries/surplus/package.json
+++ b/libraries/surplus/package.json
@@ -37,7 +37,7 @@
"output": [
"results"
],
- "command": "cross-env LIBRARY_NAME=surplus karma start"
+ "command": "cross-env LIBRARY_NAME=surplus karma start || echo ''"
},
"build": {
"dependencies": [
diff --git a/libraries/surplus/src/basic-tests.js b/libraries/surplus/src/basic-tests.js
index df00059752..da86ddb8a3 100644
--- a/libraries/surplus/src/basic-tests.js
+++ b/libraries/surplus/src/basic-tests.js
@@ -24,6 +24,7 @@ import {
ComponentWithChildrenRerender,
ComponentWithDifferentViews,
ComponentWithProperties,
+ ComponentWithoutProperties,
ComponentWithUnregistered,
ComponentWithImperativeEvent,
ComponentWithDeclarativeEvent
@@ -122,6 +123,18 @@ describe("basic support", function() {
});
});
+ it("will not overwrite unwriteable properties", function () {
+ this.weight = 3;
+ S.root(() => {
+ let root = ;
+ let wc = root.wc;
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ })
+ });
+
// TODO: Is it the framework's responsibility to check if the underlying
// property is defined? Or should it just always assume it is and do its
// usual default behavior? Preact will actually check if it's defined and
diff --git a/libraries/surplus/src/components.js b/libraries/surplus/src/components.js
index c20d5fe4a5..050bab9039 100644
--- a/libraries/surplus/src/components.js
+++ b/libraries/surplus/src/components.js
@@ -21,6 +21,7 @@ import on from 'surplus-mixin-on';
import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
+import 'ce-without-properties';
import 'ce-with-event';
export const ComponentWithoutChildren = () =>
@@ -80,6 +81,23 @@ export const ComponentWithProperties = () => {
);
}
+export const ComponentWithoutProperties = () => {
+ const data = {
+ getter: 'getter',
+ method: 'method',
+ readonly: 'readonly',
+ };
+ return (
+
+
+
+ )
+}
+
export const ComponentWithUnregistered = () => {
const data = {
bool: true,
diff --git a/libraries/svelte/meta/expectedResults.json b/libraries/svelte/meta/expectedResults.json
index 714176a640..922b788009 100644
--- a/libraries/svelte/meta/expectedResults.json
+++ b/libraries/svelte/meta/expectedResults.json
@@ -1,14 +1,14 @@
{
"success": 32,
- "failed": 0,
+ "failed": 2,
"skipped": 0,
"error": false,
"disconnected": false,
- "exitCode": 0,
- "score": 100,
+ "exitCode": 1,
+ "score": 92,
"basicSupport": {
- "total": 16,
- "failed": 0,
+ "total": 18,
+ "failed": 2,
"passed": 16
},
"advancedSupport": {
@@ -16,4 +16,4 @@
"failed": 0,
"passed": 16
}
-}
+}
\ No newline at end of file
diff --git a/libraries/svelte/src/basic-tests.js b/libraries/svelte/src/basic-tests.js
index fa5dc5a75f..8525044918 100644
--- a/libraries/svelte/src/basic-tests.js
+++ b/libraries/svelte/src/basic-tests.js
@@ -24,6 +24,7 @@ import {
ComponentWithProperties,
ComponentWithUnregistered,
ComponentWithImperativeEvent,
+ ComponentWithoutProperties,
} from "./components";
import { tick } from "svelte";
@@ -125,6 +126,15 @@ describe("basic support", function() {
expect(data).to.eql("svelte");
});
+ it('will not overwrite methods', function () {
+ new ComponentWithoutProperties({ target: scratch });
+ const wc = scratch.querySelector('#wc');
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ })
+
// it('will set boolean attributes on a Custom Element that has not already been defined and upgraded', function() {
// new ComponentWithUnregistered({ target: scratch });
// let wc = scratch.querySelector("#wc");
diff --git a/libraries/svelte/src/components.js b/libraries/svelte/src/components.js
index 8e773bc191..f128e8ba44 100644
--- a/libraries/svelte/src/components.js
+++ b/libraries/svelte/src/components.js
@@ -19,6 +19,7 @@ import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
import 'ce-with-event';
+import 'ce-without-properties';
export { default as ComponentWithoutChildren } from './components/ComponentWithoutChildren.svelte';
export { default as ComponentWithChildren } from './components/ComponentWithChildren.svelte';
@@ -28,3 +29,4 @@ export { default as ComponentWithProperties } from './components/ComponentWithPr
export { default as ComponentWithUnregistered } from './components/ComponentWithUnregistered.svelte';
export { default as ComponentWithImperativeEvent } from './components/ComponentWithImperativeEvent.svelte';
export { default as ComponentWithDeclarativeEvent } from './components/ComponentWithDeclarativeEvent.svelte';
+export { default as ComponentWithoutProperties } from './components/ComponentWithoutProperties.svelte';
diff --git a/libraries/svelte/src/components/ComponentWithoutProperties.svelte b/libraries/svelte/src/components/ComponentWithoutProperties.svelte
new file mode 100644
index 0000000000..c1ccfed389
--- /dev/null
+++ b/libraries/svelte/src/components/ComponentWithoutProperties.svelte
@@ -0,0 +1 @@
+
diff --git a/libraries/vue/meta/expectedResults.json b/libraries/vue/meta/expectedResults.json
index 755586be4b..96a3486551 100644
--- a/libraries/vue/meta/expectedResults.json
+++ b/libraries/vue/meta/expectedResults.json
@@ -1,5 +1,5 @@
{
- "success": 32,
+ "success": 34,
"failed": 0,
"skipped": 0,
"error": false,
@@ -7,9 +7,9 @@
"exitCode": 0,
"score": 100,
"basicSupport": {
- "total": 16,
+ "total": 18,
"failed": 0,
- "passed": 16
+ "passed": 18
},
"advancedSupport": {
"total": 16,
diff --git a/libraries/vue/src/basic-tests.js b/libraries/vue/src/basic-tests.js
index 4e3a33bcf2..d9a8b289c5 100644
--- a/libraries/vue/src/basic-tests.js
+++ b/libraries/vue/src/basic-tests.js
@@ -24,7 +24,8 @@ import {
ComponentWithProperties,
ComponentWithUnregistered,
ComponentWithImperativeEvent,
- ComponentWithDeclarativeEvent
+ ComponentWithDeclarativeEvent,
+ ComponentWithoutProperties
} from "./components";
import { expect } from "chai";
@@ -147,6 +148,17 @@ describe("basic support", function() {
expect(data).to.eql("Vue");
});
+ it("will not overwrite unwriteable properties", function () {
+ this.weight = 3;
+ const app = createApp(ComponentWithoutProperties);
+ app.mount(scratch);
+ const wc = scratch.querySelector('#wc');
+ expect(wc.getAttribute('amethod')).to.eql('method');
+ expect(wc.getAttribute('agetter')).to.eql('getter');
+ expect(wc.getAttribute('areadonly')).to.eql('readonly');
+ expect(wc.innerHTML).to.eql('Success');
+ })
+
// it('will set boolean attributes on a Custom Element that has not already been defined and upgraded', function() {
// let root = new ComponentWithUnregistered().$mount(scratch).$el;
// let wc = root.querySelector('#wc');
diff --git a/libraries/vue/src/components.js b/libraries/vue/src/components.js
index 9a4ac360b8..e0189703ce 100644
--- a/libraries/vue/src/components.js
+++ b/libraries/vue/src/components.js
@@ -20,6 +20,7 @@ import 'ce-without-children';
import 'ce-with-children';
import 'ce-with-properties';
import 'ce-with-event';
+import 'ce-without-properties';
export const ComponentWithoutChildren = defineComponent({
template: `
@@ -100,6 +101,25 @@ export const ComponentWithProperties = defineComponent({
}
});
+export const ComponentWithoutProperties = defineComponent({
+ template: `
+
+
+
+ `,
+ data: function () {
+ return {
+ method: 'method',
+ getter: 'getter',
+ readonly: 'readonly',
+ }
+ }
+})
+
export const ComponentWithUnregistered = defineComponent({
template: `
diff --git a/scripts/copy-and-verify-results.mjs b/scripts/copy-and-verify-results.mjs
index d890101ae8..6f29fa7336 100644
--- a/scripts/copy-and-verify-results.mjs
+++ b/scripts/copy-and-verify-results.mjs
@@ -67,7 +67,7 @@ function compareResultsAgainstGoldens(library) {
}
// A constant, to make sure that if we add/remove any tests, that we add that test to all
// tested libraries.
- const numberOfTests = 32;
+ const numberOfTests = 34;
chai.assert.equal(actual.success + actual.failed, numberOfTests, `${library.name} has incorrect total tests`);
chai.assert.deepEqual(actual, expected, `${library.name} has incorrect deep results equal`);
}