merge master -> rfc-1

pull/1839/head
Rich Harris 7 years ago
commit 6619d40de0

@ -17,6 +17,7 @@ prog
.option('--no-css', `Don't include CSS (useful with SSR)`)
.option('--immutable', 'Support immutable data structures')
.option('--shared', 'Don\'t include shared helpers')
.option('--customElement', 'Generate a custom element')
.example('compile App.html > App.js')
.example('compile src -o dest')

@ -174,6 +174,7 @@ export default class AwaitBlockWrapper extends Wrapper {
block.builders.mount.addBlock(deindent`
${info}.block.${hasTransitions ? 'i' : 'm'}(${initialMountNode}, ${info}.anchor = ${anchorNode});
${info}.mount = () => ${updateMountNode};
${info}.anchor = ${anchor};
`);
const conditions = [];

@ -112,10 +112,8 @@ export function setAttributes(node, attributes) {
export function setCustomElementData(node, prop, value) {
if (prop in node) {
node[prop] = value;
} else if (value) {
setAttribute(node, prop, value);
} else {
node.removeAttribute(prop);
setAttribute(node, prop, value);
}
}

@ -48,6 +48,8 @@ export function tryToReadFile(file) {
export const virtualConsole = new jsdom.VirtualConsole();
const { window } = new jsdom.JSDOM('<main></main>', {virtualConsole});
global.document = window.document;
global.getComputedStyle = window.getComputedStyle;
global.navigator = {userAgent: 'fake'};
export function env() {
window._svelteTransitionManager = null;

@ -0,0 +1,27 @@
let fulfil;
let thePromise = new Promise(f => {
fulfil = f;
});
export default {
props: {
thePromise
},
html: `
<p>loading...</p><p>true!</p>
`,
test({ assert, component, target }) {
fulfil(42);
return thePromise
.then(() => {
assert.htmlEqual(target.innerHTML, `
<p>the value is 42</p><p>true!</p>
`);
});
}
};

@ -0,0 +1,11 @@
{#await thePromise}
<p>loading...</p>
{:then theValue}
<p>the value is {theValue}</p>
{:catch theError}
<p>oh no! {theError.message}</p>
{/await}
{#if true}
<p>true!</p>
{/if}

@ -27,10 +27,10 @@ export default {
return promise.then(() => {
raf.tick(80);
let ps = document.querySelectorAll('p');
assert.equal(ps[0].className, 'pending');
assert.equal(ps[1].className, 'then');
assert.equal(ps[0].foo, 0.2);
assert.equal(ps[1].foo, 0.3);
assert.equal(ps[1].className, 'pending');
assert.equal(ps[0].className, 'then');
assert.equal(ps[1].foo, 0.2);
assert.equal(ps[0].foo, 0.3);
});
}
};

Loading…
Cancel
Save