Merge branch 'custom-event-teardown' of https://github.com/ekhaled/svelte into ekhaled-custom-event-teardown

pull/1296/head
Rich-Harris 8 years ago
commit e585ccf242

@ -516,8 +516,16 @@ export default class Element extends Node {
}); });
`); `);
block.builders.hydrate.addBlock(deindent`
if (${handlerName}.teardown) {
${handlerName}.destroy = ${handlerName}.teardown;
${generator.options.dev && `console.warn("Return 'destroy()' from custom event handlers. Returning 'teardown()' has been deprecated and will be unsupported in Svelte 2");`}
}
`);
block.builders.destroy.addLine(deindent` block.builders.destroy.addLine(deindent`
${handlerName}.teardown(); ${handlerName}.destroy();
`); `);
} else { } else {
const handler = deindent` const handler = deindent`

@ -199,6 +199,10 @@ function create_main_fragment(component, state) {
var state = component.get(); var state = component.get();
component.foo( state.bar ); component.foo( state.bar );
}); });
if (foo_handler.teardown) {
foo_handler.destroy = foo_handler.teardown;
}
}, },
m: function mount(target, anchor) { m: function mount(target, anchor) {
@ -212,7 +216,7 @@ function create_main_fragment(component, state) {
}, },
d: function destroy$$1() { d: function destroy$$1() {
foo_handler.teardown(); foo_handler.destroy();
} }
}; };
} }

@ -26,6 +26,10 @@ function create_main_fragment(component, state) {
var state = component.get(); var state = component.get();
component.foo( state.bar ); component.foo( state.bar );
}); });
if (foo_handler.teardown) {
foo_handler.destroy = foo_handler.teardown;
}
}, },
m: function mount(target, anchor) { m: function mount(target, anchor) {
@ -39,7 +43,7 @@ function create_main_fragment(component, state) {
}, },
d: function destroy() { d: function destroy() {
foo_handler.teardown(); foo_handler.destroy();
} }
}; };
} }

@ -0,0 +1,7 @@
export default {
dev: true,
warnings: [
`Return 'destroy()' from custom event handlers. Returning 'teardown()' has been deprecated and will be unsupported in Svelte 2`
]
};

@ -0,0 +1,16 @@
<button on:foo='foo()'>foo</button>
<script>
export default {
methods: {
foo() {}
},
events: {
foo(node, callback) {
return {
teardown() {}
}
}
}
};
</script>
Loading…
Cancel
Save