From ae4adf0040093fe69bea19a238e2eda27b85bf9d Mon Sep 17 00:00:00 2001 From: Thomas Ghysels Date: Tue, 5 Feb 2019 01:13:26 +0100 Subject: [PATCH] Fix "this._recompute is not a function" Close sveltejs/svelte#2049 --- package-lock.json | 2 +- src/compile/render-dom/index.ts | 6 ++++-- test/cli/samples/custom-element/expected/Main.js | 4 ++-- test/js/samples/css-shadow-dom-keyframes/expected.js | 2 ++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f2cb89889d..b5cabc5fca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "svelte", - "version": "2.15.1", + "version": "2.16.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/compile/render-dom/index.ts b/src/compile/render-dom/index.ts index 039f901731..282734a882 100644 --- a/src/compile/render-dom/index.ts +++ b/src/compile/render-dom/index.ts @@ -289,8 +289,6 @@ export default function dom( target.insertBefore(this, anchor); } }); - - customElements.define("${component.tag}", ${name}); `); } else { builder.addBlock(deindent` @@ -328,6 +326,10 @@ export default function dom( ${immutable && `${name}.prototype._differs = @_differsImmutable;`} `); + if (component.customElement) { + builder.addBlock(`customElements.define("${component.tag}", ${name});`); + } + let result = builder.toString(); return component.generate(result, options, { diff --git a/test/cli/samples/custom-element/expected/Main.js b/test/cli/samples/custom-element/expected/Main.js index 40865a2c81..428e177945 100644 --- a/test/cli/samples/custom-element/expected/Main.js +++ b/test/cli/samples/custom-element/expected/Main.js @@ -67,10 +67,10 @@ assign(Main.prototype, { } }); -customElements.define("my-element", Main); - Main.prototype._recompute = noop; +customElements.define("my-element", Main); + function createElement(name) { return document.createElement(name); } diff --git a/test/js/samples/css-shadow-dom-keyframes/expected.js b/test/js/samples/css-shadow-dom-keyframes/expected.js index e9375bf007..9a0b35c4cf 100644 --- a/test/js/samples/css-shadow-dom-keyframes/expected.js +++ b/test/js/samples/css-shadow-dom-keyframes/expected.js @@ -59,5 +59,7 @@ assign(SvelteComponent.prototype, { } }); + + customElements.define("custom-element", SvelteComponent); export default SvelteComponent; \ No newline at end of file