pull/3539/head
Richard Harris 6 years ago
parent 6e00b68015
commit 23167da0dd

@ -1,16 +1,20 @@
import Renderer, { RenderOptions } from '../Renderer';
import { snip } from '../../utils/snip';
import AwaitBlock from '../../nodes/AwaitBlock';
import { x } from 'code-red';
export default function(node: AwaitBlock, renderer: Renderer, options: RenderOptions) {
renderer.append('${(function(__value) { if(@is_promise(__value)) return `');
renderer.push();
renderer.render(node.pending.children, options);
const pending = renderer.pop();
renderer.append('`; return function(' + (node.value || '') + ') { return `');
renderer.push();
renderer.render(node.then.children, options);
const then = renderer.pop();
const snippet = snip(node.expression);
renderer.append(`\`;}(__value);}(${snippet})) }`);
renderer.add_expression(x`
(function(__value) {
if (@is_promise(__value)) return ${pending};
return (function(${node.value}) { return ${then}; }(__value));
}(${node.expression.node}))
`);
}

@ -3,7 +3,6 @@ import { quote_name_if_necessary } from '../../../utils/names';
import Renderer, { RenderOptions } from '../Renderer';
import { get_slot_scope } from './shared/get_slot_scope';
import InlineComponent from '../../nodes/InlineComponent';
import { INode } from '../../nodes/interfaces';
import { p, x } from 'code-red';
function get_prop_value(attribute) {
@ -64,7 +63,7 @@ export default function(node: InlineComponent, renderer: Renderer, options: Rend
node.name === 'svelte:self'
? '__svelte:self__' // TODO conflict-proof this
: node.name === 'svelte:component'
? `((${snip(node.expression)}) || @missing_component)`
? x`(${node.expression.node}) || @missing_component`
: node.name
);

Loading…
Cancel
Save