diff --git a/src/compile/Component.ts b/src/compile/Component.ts index dfaf3588f2..238c1ac2b6 100644 --- a/src/compile/Component.ts +++ b/src/compile/Component.ts @@ -817,7 +817,7 @@ function process_meta(component, nodes) { }); } - return value[0].data; + return value[0] ? value[0].data : true; } if (node) { diff --git a/src/compile/render-dom/index.ts b/src/compile/render-dom/index.ts index 063b0d3f11..d54d37f1e8 100644 --- a/src/compile/render-dom/index.ts +++ b/src/compile/render-dom/index.ts @@ -235,7 +235,7 @@ export default function dom( @insert(options.target, this, options.anchor); } - ${component.props.length > 0 || component.meta.props && deindent` + ${(component.props.length > 0 || component.meta.props) && deindent` if (options.props) { this.$set(options.props); @flush(); diff --git a/test/js/samples/component-static-immutable/expected.js b/test/js/samples/component-static-immutable/expected.js index 72e03ffe7c..4accd8e7bd 100644 --- a/test/js/samples/component-static-immutable/expected.js +++ b/test/js/samples/component-static-immutable/expected.js @@ -1,50 +1,52 @@ -/* generated by Svelte vX.Y.Z */ -import { _differsImmutable, assign, flush, init, noop, proto } from "svelte/shared.js"; +/* generated by Svelte vX.Y.Z-alpha1 */ +import { SvelteComponent as SvelteComponent_1, init, mount_component, noop, not_equal } from "svelte/internal.js"; -var Nested = window.Nested; +function create_fragment(component, ctx) { + var current; -function create_main_fragment(component, ctx) { - - var nested_initial_data = { foo: "bar" }; - var nested = new Nested({ - root: component.root, - store: component.store, - data: nested_initial_data - }); + var nested = new ctx.Nested({ props: { foo: "bar" } }); return { c() { - nested._fragment.c(); + nested.$$.fragment.c(); }, m(target, anchor) { - nested._mount(target, anchor); + mount_component(nested, target, anchor); + current = true; }, p: noop, + i(target, anchor) { + if (current) return; + this.m(target, anchor); + }, + + o(outrocallback) { + if (!current) return; + + if (nested) nested.$$.fragment.o(outrocallback); + current = false; + }, + d(detach) { - nested.destroy(detach); + nested.$destroy(detach); } }; } -function SvelteComponent(options) { - init(this, options); - this._state = assign({}, options.data); - this._intro = true; - - this._fragment = create_main_fragment(this, this._state); +function define($$self) { + const Nested = window.Nested; - if (options.target) { - this._fragment.c(); - this._mount(options.target, options.anchor); + $$self.$$.get = () => ({ Nested }); +} - flush(this); +class SvelteComponent extends SvelteComponent_1 { + constructor(options) { + super(); + init(this, options, define, create_fragment, not_equal); } } -assign(SvelteComponent.prototype, proto); - -SvelteComponent.prototype._differs = _differsImmutable; export default SvelteComponent; \ No newline at end of file