update some tests

pull/1864/head
Rich Harris 7 years ago
parent a68ccfd744
commit a023f2e049

@ -16,15 +16,13 @@ import Stylesheet from './css/Stylesheet';
import { test } from '../config'; import { test } from '../config';
import Fragment from './nodes/Fragment'; import Fragment from './nodes/Fragment';
import * as internal from '../internal/index'; import * as internal from '../internal/index';
import { Node, ShorthandImport, Ast, CompileOptions, CustomElementOptions } from '../interfaces'; import { Node, Ast, CompileOptions, CustomElementOptions } from '../interfaces';
import error from '../utils/error'; import error from '../utils/error';
import getCodeFrame from '../utils/getCodeFrame'; import getCodeFrame from '../utils/getCodeFrame';
import checkForComputedKeys from './validate/js/utils/checkForComputedKeys'; import checkForComputedKeys from './validate/js/utils/checkForComputedKeys';
import checkForDupes from './validate/js/utils/checkForDupes'; import checkForDupes from './validate/js/utils/checkForDupes';
import propValidators from './validate/js/propValidators';
import fuzzymatch from './validate/utils/fuzzymatch'; import fuzzymatch from './validate/utils/fuzzymatch';
import flattenReference from '../utils/flattenReference'; import flattenReference from '../utils/flattenReference';
import { instrument } from '../utils/instrument';
interface Computation { interface Computation {
key: string; key: string;
@ -519,7 +517,7 @@ export default class Component {
const { name } = flattenReference(node.left); const { name } = flattenReference(node.left);
if (scope.findOwner(name) === top_scope) { if (scope.findOwner(name) === top_scope) {
this.instrument(node, parent, name); this.instrument(node, parent, name, false);
} }
} }
}, },
@ -540,15 +538,19 @@ export default class Component {
this.javascript = a !== b ? `[✂${a}-${b}✂]` : ''; this.javascript = a !== b ? `[✂${a}-${b}✂]` : '';
} }
instrument(node, parent, name) { instrument(node, parent, name, is_event_handler) {
// TODO only make values reactive if they're used // TODO only make values reactive if they're used
// in the template // in the template
if (parent.type === 'ArrowFunctionExpression' && node === parent.body) { if (parent.type === 'ArrowFunctionExpression' && node === parent.body) {
// TODO don't do the $$result dance if this is an event handler if (is_event_handler) {
this.code.prependRight(node.start, `{ `);
this.code.appendLeft(node.end, `; $$make_dirty('${name}'); }`);
} else {
this.code.prependRight(node.start, `{ const $$result = `); this.code.prependRight(node.start, `{ const $$result = `);
this.code.appendLeft(node.end, `; $$make_dirty('${name}'); return $$result; }`); this.code.appendLeft(node.end, `; $$make_dirty('${name}'); return $$result; }`);
} }
}
else { else {
this.code.appendLeft(node.end, `; $$make_dirty('${name}')`); this.code.appendLeft(node.end, `; $$make_dirty('${name}')`);

@ -46,7 +46,7 @@ export default class EventHandler extends Node {
const { name } = flattenReference(node.left); const { name } = flattenReference(node.left);
if (!scope.has(name)) { if (!scope.has(name)) {
component.instrument(node, parent, name); component.instrument(node, parent, name, true);
} }
} }
}, },

@ -750,7 +750,7 @@ export default class ElementWrapper extends Wrapper {
const fn = `ctx.${intro.name}`; const fn = `ctx.${intro.name}`;
block.builders.intro.addConditional(`#component.$$root.$$intro`, deindent` block.builders.intro.addConditional(`@intro.enabled`, deindent`
if (${name}) ${name}.invalidate(); if (${name}) ${name}.invalidate();
@after_update(() => { @after_update(() => {
@ -787,7 +787,7 @@ export default class ElementWrapper extends Wrapper {
`); `);
} }
block.builders.intro.addConditional(`#component.$$root.$$intro`, deindent` block.builders.intro.addConditional(`@intro.enabled`, deindent`
@after_update(() => { @after_update(() => {
${introName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, true); ${introName} = @wrapTransition(#component, ${this.var}, ${fn}, ${snippet}, true);
${introName}.run(1); ${introName}.run(1);

@ -100,7 +100,6 @@ export default function(node, renderer, options) {
let open = `\${@validateSsrComponent(${expression}, '${node.name}')._render(__result, ${props}`; let open = `\${@validateSsrComponent(${expression}, '${node.name}')._render(__result, ${props}`;
const component_options = []; const component_options = [];
component_options.push(`store: options.store`);
if (node.children.length) { if (node.children.length) {
const target: AppendTarget = { const target: AppendTarget = {

@ -20,4 +20,4 @@
} }
</script> </script>
<button use:tap='{event => x = event.x, y = event.y}'>{x}, {y}</button> <button use:tap='{event => (x = event.x, y = event.y)}'>{x}, {y}</button>

@ -1,4 +1,5 @@
export default { export default {
solo: 1,
'skip-ssr': true, // TODO delete this line, once binding works 'skip-ssr': true, // TODO delete this line, once binding works
html: ` html: `

Loading…
Cancel
Save