From 1e8d7af68435f294fd1a6e0ecd31b081fa97512f Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sun, 2 Dec 2018 22:34:05 -0500 Subject: [PATCH] all SSR tests passing bar preload/spread --- src/compile/render-ssr/handlers/AwaitBlock.ts | 4 ++-- src/compile/render-ssr/handlers/InlineComponent.ts | 2 +- src/internal/ssr.js | 5 +++-- test/runtime/samples/immutable-nested/_config.js | 3 +++ test/runtime/samples/lifecycle-events/main.html | 6 +++--- .../samples/import-non-component/answer.js | 2 +- .../samples/import-non-component/problems.js | 2 +- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/compile/render-ssr/handlers/AwaitBlock.ts b/src/compile/render-ssr/handlers/AwaitBlock.ts index 8405099521..05da3a4ad6 100644 --- a/src/compile/render-ssr/handlers/AwaitBlock.ts +++ b/src/compile/render-ssr/handlers/AwaitBlock.ts @@ -7,10 +7,10 @@ export default function(node, renderer: Renderer, options: CompileOptions) { renderer.render(node.pending.children, options); - renderer.append('`; return function(ctx) { return `'); + renderer.append('`; return function(' + (node.value || '') + ') { return `'); renderer.render(node.then.children, options); const snippet = snip(node.expression); - renderer.append(`\`;}(Object.assign({}, ctx, { ${node.value}: __value }));}(${snippet})) }`); + renderer.append(`\`;}(__value);}(${snippet})) }`); } \ No newline at end of file diff --git a/src/compile/render-ssr/handlers/InlineComponent.ts b/src/compile/render-ssr/handlers/InlineComponent.ts index a5f5f7d3ce..408286b6ac 100644 --- a/src/compile/render-ssr/handlers/InlineComponent.ts +++ b/src/compile/render-ssr/handlers/InlineComponent.ts @@ -70,7 +70,7 @@ export default function(node, renderer: Renderer, options) { .concat(binding_props.map(p => `{ ${p} }`)) .join(', ') })`; - } else if (node.attributes.length || binding_props.length) { + } else { props = stringifyProps( node.attributes .map(attribute => `${attribute.name}: ${getAttributeValue(attribute)}`) diff --git a/src/internal/ssr.js b/src/internal/ssr.js index fdce205100..a6eb13107b 100644 --- a/src/internal/ssr.js +++ b/src/internal/ssr.js @@ -1,5 +1,5 @@ import { set_current_component } from './lifecycle.js'; -import { run_all } from './utils.js'; +import { run_all, blankObject } from './utils.js'; export const invalidAttributeNameCharacter = /[\s'">\/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u; // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 @@ -74,7 +74,8 @@ export function create_ssr_component($$render) { on_mount: [], on_destroy: [], before_render: [], - after_render: [] + after_render: [], + callbacks: blankObject() }; set_current_component({ $$ }); diff --git a/test/runtime/samples/immutable-nested/_config.js b/test/runtime/samples/immutable-nested/_config.js index c45574e78e..e5c515fc78 100644 --- a/test/runtime/samples/immutable-nested/_config.js +++ b/test/runtime/samples/immutable-nested/_config.js @@ -1,7 +1,10 @@ export default { immutable: true, + html: `

Called 1 times.

`, + ssrHtml: `

Called 0 times.

`, + test({ assert, component, target, window }) { var nested = component.nested; diff --git a/test/runtime/samples/lifecycle-events/main.html b/test/runtime/samples/lifecycle-events/main.html index b9c2d291a7..e835e46195 100644 --- a/test/runtime/samples/lifecycle-events/main.html +++ b/test/runtime/samples/lifecycle-events/main.html @@ -5,10 +5,10 @@ onMount(() => { events = ['mount']; - }); - onDestroy(() => { - events.push('destroy'); + return () => { + events.push('destroy'); + }; }); diff --git a/test/server-side-rendering/samples/import-non-component/answer.js b/test/server-side-rendering/samples/import-non-component/answer.js index 888cae37af..7a4e8a723a 100644 --- a/test/server-side-rendering/samples/import-non-component/answer.js +++ b/test/server-side-rendering/samples/import-non-component/answer.js @@ -1 +1 @@ -module.exports = 42; +export default 42; diff --git a/test/server-side-rendering/samples/import-non-component/problems.js b/test/server-side-rendering/samples/import-non-component/problems.js index 0a7ac99218..4a45ec6222 100644 --- a/test/server-side-rendering/samples/import-non-component/problems.js +++ b/test/server-side-rendering/samples/import-non-component/problems.js @@ -1 +1 @@ -module.exports = 99; +export default 99;