Skip to content

Commit 7f7e1be

Browse files
authored
Merge pull request sveltejs#2051 from thgh/v2
Fix "this._recompute is not a function"
2 parents c0fb21d + ae4adf0 commit 7f7e1be

File tree

7 files changed

+26
-5
lines changed

7 files changed

+26
-5
lines changed

package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/compile/render-dom/index.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,6 @@ export default function dom(
289289
target.insertBefore(this, anchor);
290290
}
291291
});
292-
293-
customElements.define("${component.tag}", ${name});
294292
`);
295293
} else {
296294
builder.addBlock(deindent`
@@ -328,6 +326,10 @@ export default function dom(
328326
${immutable && `${name}.prototype._differs = @_differsImmutable;`}
329327
`);
330328

329+
if (component.customElement) {
330+
builder.addBlock(`customElements.define("${component.tag}", ${name});`);
331+
}
332+
331333
let result = builder.toString();
332334

333335
return component.generate(result, options, {

test/cli/samples/custom-element/expected/Main.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@ assign(Main.prototype, {
6767
}
6868
});
6969

70-
customElements.define("my-element", Main);
71-
7270
Main.prototype._recompute = noop;
7371

72+
customElements.define("my-element", Main);
73+
7474
function createElement(name) {
7575
return document.createElement(name);
7676
}

test/custom-elements/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { addLineNumbers, loadConfig, loadSvelte } from "../helpers.js";
77

88
const page = `
99
<body>
10+
<custom-element name="world"></custom-element>
1011
<main></main>
1112
<script src='/bundle.js'></script>
1213
</body>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<p>Hello {name}</p>
2+
3+
<script>
4+
export default {
5+
tag: 'custom-element',
6+
props: ['name']
7+
};
8+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import * as assert from 'assert';
2+
import './main.html';
3+
4+
export default function (target) {
5+
const el = target.ownerDocument.body.querySelector('custom-element');
6+
const p = el.shadowRoot.querySelector('p');
7+
assert.equal(p.textContent, 'Hello world');
8+
}

test/js/samples/css-shadow-dom-keyframes/expected.js

+2
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,7 @@ assign(SvelteComponent.prototype, {
5959
}
6060
});
6161

62+
63+
6264
customElements.define("custom-element", SvelteComponent);
6365
export default SvelteComponent;

0 commit comments

Comments
 (0)