From c1b1e4b18821cc035fec975c1c04cd57b6a834cb Mon Sep 17 00:00:00 2001 From: ekhaled Date: Fri, 30 Mar 2018 20:09:19 +0100 Subject: [PATCH] add dev mode warning when teardown is returned instead of destroy --- src/generators/nodes/Element.ts | 8 ++++++++ .../_config.js | 7 +++++++ .../main.html | 16 ++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/_config.js create mode 100644 test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/main.html diff --git a/src/generators/nodes/Element.ts b/src/generators/nodes/Element.ts index 1d4f9fdf53..a43c725ff4 100644 --- a/src/generators/nodes/Element.ts +++ b/src/generators/nodes/Element.ts @@ -516,6 +516,14 @@ export default class Element extends Node { }); `); + if (generator.options.dev) { + block.builders.hydrate.addBlock(deindent` + if (${handlerName}.teardown) { + 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` ${handlerName}[${handlerName}.destroy ? 'destroy' : 'teardown'](); `); diff --git a/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/_config.js b/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/_config.js new file mode 100644 index 0000000000..59c583ba1a --- /dev/null +++ b/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/_config.js @@ -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` + ] +}; \ No newline at end of file diff --git a/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/main.html b/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/main.html new file mode 100644 index 0000000000..1e83835f03 --- /dev/null +++ b/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/main.html @@ -0,0 +1,16 @@ + + + \ No newline at end of file