mirror of https://github.com/sveltejs/svelte
commit
88a6f47ad7
@ -0,0 +1,5 @@
|
||||
---
|
||||
'svelte': patch
|
||||
---
|
||||
|
||||
fix: hoist snippets above const in same block
|
||||
@ -1,5 +0,0 @@
|
||||
---
|
||||
'svelte': minor
|
||||
---
|
||||
|
||||
feat: export `parseCss` from `svelte/compiler`
|
||||
@ -0,0 +1,5 @@
|
||||
---
|
||||
'svelte': patch
|
||||
---
|
||||
|
||||
fix: better code generation for const tags with async dependencies
|
||||
@ -1,3 +1,15 @@
|
||||
import { test } from '../../test';
|
||||
|
||||
export default test({});
|
||||
/** @type {typeof console.log} */
|
||||
let log;
|
||||
|
||||
export default test({
|
||||
before_test() {
|
||||
log = console.log;
|
||||
console.log = () => {};
|
||||
},
|
||||
|
||||
after_test() {
|
||||
console.log = log;
|
||||
}
|
||||
});
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
import { test } from '../../test';
|
||||
|
||||
export default test({
|
||||
mode: ['client', 'server'],
|
||||
|
||||
compileOptions: {
|
||||
dev: true
|
||||
},
|
||||
|
||||
get props() {
|
||||
return { tag: true };
|
||||
},
|
||||
|
||||
error:
|
||||
'svelte_element_invalid_this_value\n' +
|
||||
'The `this` prop on `<svelte:element>` must be a string, if defined'
|
||||
});
|
||||
@ -0,0 +1,5 @@
|
||||
<script>
|
||||
export let tag;
|
||||
</script>
|
||||
|
||||
<svelte:element this={tag}>content</svelte:element>
|
||||
@ -0,0 +1,5 @@
|
||||
import { test } from '../../test';
|
||||
|
||||
export default test({
|
||||
test() {}
|
||||
});
|
||||
@ -0,0 +1,4 @@
|
||||
{#if true}
|
||||
{@const xx = test}
|
||||
{#snippet test()}{/snippet}
|
||||
{/if}
|
||||
@ -1,16 +1,21 @@
|
||||
<script lang="ts">
|
||||
import { hydratable } from 'svelte';
|
||||
|
||||
hydratable('key', () => Promise.resolve({
|
||||
const a = await hydratable('key', () => Promise.resolve({
|
||||
nested: Promise.resolve({
|
||||
one: Promise.resolve(1),
|
||||
}),
|
||||
two: Promise.resolve(2),
|
||||
}));
|
||||
hydratable('key', () => Promise.resolve({
|
||||
const b = await hydratable('key', () => Promise.resolve({
|
||||
nested: Promise.resolve({
|
||||
one: Promise.resolve(2),
|
||||
}),
|
||||
two: Promise.resolve(2),
|
||||
}));
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<p>{await (await (a.nested)).one}</p>
|
||||
<p>{await a.two}</p>
|
||||
<p>{await (await (b.nested)).one}</p>
|
||||
<p>{await b.two}</p>
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
import { test } from '../../test';
|
||||
|
||||
export default test({ compileOptions: { experimental: { async: true } } });
|
||||
@ -0,0 +1,35 @@
|
||||
import 'svelte/internal/disclose-version';
|
||||
import 'svelte/internal/flags/async';
|
||||
import * as $ from 'svelte/internal/client';
|
||||
|
||||
var root_1 = $.from_html(`<p> </p>`);
|
||||
|
||||
export default function Async_const($$anchor) {
|
||||
var fragment = $.comment();
|
||||
var node = $.first_child(fragment);
|
||||
|
||||
{
|
||||
var consequent = ($$anchor) => {
|
||||
let a;
|
||||
let b;
|
||||
|
||||
var promises = $.run([
|
||||
async () => a = (await $.save($.async_derived(async () => (await $.save(1))())))(),
|
||||
() => b = $.derived(() => $.get(a) + 1)
|
||||
]);
|
||||
|
||||
var p = root_1();
|
||||
var text = $.child(p, true);
|
||||
|
||||
$.reset(p);
|
||||
$.template_effect(() => $.set_text(text, $.get(b)), void 0, void 0, [promises[1]]);
|
||||
$.append($$anchor, p);
|
||||
};
|
||||
|
||||
$.if(node, ($$render) => {
|
||||
if (true) $$render(consequent);
|
||||
});
|
||||
}
|
||||
|
||||
$.append($$anchor, fragment);
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
import 'svelte/internal/flags/async';
|
||||
import * as $ from 'svelte/internal/server';
|
||||
|
||||
export default function Async_const($$renderer) {
|
||||
if (true) {
|
||||
$$renderer.push('<!--[-->');
|
||||
|
||||
let a;
|
||||
let b;
|
||||
|
||||
var promises = $$renderer.run([
|
||||
async () => {
|
||||
a = (await $.save(1))();
|
||||
},
|
||||
|
||||
() => {
|
||||
b = a + 1;
|
||||
}
|
||||
]);
|
||||
|
||||
$$renderer.push(`<p>`);
|
||||
|
||||
$$renderer.async([promises[1]], ($$renderer) => {
|
||||
$$renderer.push(() => $.escape(b));
|
||||
});
|
||||
|
||||
$$renderer.push(`</p>`);
|
||||
} else {
|
||||
$$renderer.push('<!--[!-->');
|
||||
}
|
||||
|
||||
$$renderer.push(`<!--]-->`);
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
{#if true}
|
||||
{@const a = await 1}
|
||||
{@const b = a + 1}
|
||||
|
||||
<p>{b}</p>
|
||||
{/if}
|
||||
Loading…
Reference in new issue