mirror of https://github.com/sveltejs/svelte
				
				
				
			
						commit
						edea1018e2
					
				| @ -0,0 +1,5 @@ | ||||
| --- | ||||
| 'svelte': patch | ||||
| --- | ||||
| 
 | ||||
| fix: don't preserve reactivity context across function boundaries | ||||
| @ -0,0 +1,3 @@ | ||||
| import { test } from '../../test'; | ||||
| 
 | ||||
| export default test({ compileOptions: { experimental: { async: true } } }); | ||||
| @ -0,0 +1,52 @@ | ||||
| import 'svelte/internal/disclose-version'; | ||||
| import 'svelte/internal/flags/async'; | ||||
| import * as $ from 'svelte/internal/client'; | ||||
| 
 | ||||
| export default function Async_in_derived($$anchor, $$props) { | ||||
| 	$.push($$props, true); | ||||
| 
 | ||||
| 	$.async_body($$anchor, async ($$anchor) => { | ||||
| 		let yes1 = (await $.save($.async_derived(async () => (await $.save(1))())))(); | ||||
| 		let yes2 = (await $.save($.async_derived(async () => foo((await $.save(1))()))))(); | ||||
| 
 | ||||
| 		let no1 = $.derived(async () => { | ||||
| 			return await 1; | ||||
| 		}); | ||||
| 
 | ||||
| 		let no2 = $.derived(() => async () => { | ||||
| 			return await 1; | ||||
| 		}); | ||||
| 
 | ||||
| 		if ($.aborted()) return; | ||||
| 
 | ||||
| 		var fragment = $.comment(); | ||||
| 		var node = $.first_child(fragment); | ||||
| 
 | ||||
| 		{ | ||||
| 			var consequent = ($$anchor) => { | ||||
| 				$.async_body($$anchor, async ($$anchor) => { | ||||
| 					const yes1 = (await $.save($.async_derived(async () => (await $.save(1))())))(); | ||||
| 					const yes2 = (await $.save($.async_derived(async () => foo((await $.save(1))()))))(); | ||||
| 
 | ||||
| 					const no1 = $.derived(() => (async () => { | ||||
| 						return await 1; | ||||
| 					})()); | ||||
| 
 | ||||
| 					const no2 = $.derived(() => (async () => { | ||||
| 						return await 1; | ||||
| 					})()); | ||||
| 
 | ||||
| 					if ($.aborted()) return; | ||||
| 				}); | ||||
| 			}; | ||||
| 
 | ||||
| 			$.if(node, ($$render) => { | ||||
| 				if (true) $$render(consequent); | ||||
| 			}); | ||||
| 		} | ||||
| 
 | ||||
| 		$.append($$anchor, fragment); | ||||
| 	}); | ||||
| 
 | ||||
| 	$.pop(); | ||||
| } | ||||
| @ -0,0 +1,40 @@ | ||||
| import 'svelte/internal/flags/async'; | ||||
| import * as $ from 'svelte/internal/server'; | ||||
| 
 | ||||
| export default function Async_in_derived($$renderer, $$props) { | ||||
| 	$$renderer.component(($$renderer) => { | ||||
| 		$$renderer.async(async ($$renderer) => { | ||||
| 			let yes1 = (await $.save(1))(); | ||||
| 			let yes2 = foo((await $.save(1))()); | ||||
| 
 | ||||
| 			let no1 = (async () => { | ||||
| 				return await 1; | ||||
| 			})(); | ||||
| 
 | ||||
| 			let no2 = async () => { | ||||
| 				return await 1; | ||||
| 			}; | ||||
| 
 | ||||
| 			$$renderer.async(async ($$renderer) => { | ||||
| 				if (true) { | ||||
| 					$$renderer.push('<!--[-->'); | ||||
| 
 | ||||
| 					const yes1 = (await $.save(1))(); | ||||
| 					const yes2 = foo((await $.save(1))()); | ||||
| 
 | ||||
| 					const no1 = (async () => { | ||||
| 						return await 1; | ||||
| 					})(); | ||||
| 
 | ||||
| 					const no2 = (async () => { | ||||
| 						return await 1; | ||||
| 					})(); | ||||
| 				} else { | ||||
| 					$$renderer.push('<!--[!-->'); | ||||
| 				} | ||||
| 			}); | ||||
| 
 | ||||
| 			$$renderer.push(`<!--]-->`); | ||||
| 		}); | ||||
| 	}); | ||||
| } | ||||
| @ -0,0 +1,21 @@ | ||||
| <script> | ||||
| 	let yes1 = $derived(await 1); | ||||
| 	let yes2 = $derived(foo(await 1)); | ||||
| 	let no1 = $derived.by(async () => { | ||||
| 		return await 1; | ||||
| 	}); | ||||
| 	let no2 = $derived(async () => { | ||||
| 		return await 1; | ||||
| 	}); | ||||
| </script> | ||||
| 
 | ||||
| {#if true} | ||||
| 	{@const yes1 = await 1} | ||||
| 	{@const yes2 = foo(await 1)} | ||||
| 	{@const no1 = (async () => { | ||||
| 		return await 1; | ||||
| 	})()} | ||||
| 	{@const no2 = (async () => { | ||||
| 		return await 1; | ||||
| 	})()} | ||||
| {/if} | ||||
					Loading…
					
					
				
		Reference in new issue