diff --git a/src/generators/nodes/Element.ts b/src/generators/nodes/Element.ts index d9f4e8f974..6bf67c1c95 100644 --- a/src/generators/nodes/Element.ts +++ b/src/generators/nodes/Element.ts @@ -580,16 +580,8 @@ 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'](); + ${handlerName}.destroy(); `); } else { const handler = deindent` diff --git a/src/generators/nodes/Window.ts b/src/generators/nodes/Window.ts index 40138913e6..92e55025b3 100644 --- a/src/generators/nodes/Window.ts +++ b/src/generators/nodes/Window.ts @@ -86,16 +86,8 @@ export default class Window 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'](); + ${handlerName}.destroy(); `); } else { block.builders.init.addBlock(deindent` diff --git a/src/shared/index.js b/src/shared/index.js index 32b59dfde3..0d7cb43bdd 100644 --- a/src/shared/index.js +++ b/src/shared/index.js @@ -65,8 +65,6 @@ export function init(component, options) { } export function on(eventName, handler) { - if (eventName === 'teardown') return this.on('destroy', handler); - var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); handlers.push(handler); @@ -78,17 +76,6 @@ export function on(eventName, handler) { }; } -export function onDev(eventName, handler) { - if (eventName === 'teardown') { - console.warn( - "Use component.on('destroy', ...) instead of component.on('teardown', ...) which has been deprecated and will be unsupported in Svelte 2" - ); - return this.on('destroy', handler); - } - - return on.call(this, eventName, handler); -} - export function run(fn) { fn(); } @@ -176,7 +163,7 @@ export var protoDev = { destroy: destroyDev, get, fire, - on: onDev, + on, set: setDev, _recompute: noop, _set, diff --git a/test/custom-elements/samples/html/test.js b/test/custom-elements/samples/html/test.js index a9aa2c7129..9f0a925b43 100644 --- a/test/custom-elements/samples/html/test.js +++ b/test/custom-elements/samples/html/test.js @@ -5,7 +5,7 @@ export default function (target) { target.innerHTML = ''; const el = target.querySelector('custom-element'); - assert.equal(el.get('name'), 'world'); + assert.equal(el.get().name, 'world'); const h1 = el.shadowRoot.querySelector('h1'); assert.equal(h1.textContent, 'Hello world!'); diff --git a/test/hydration/samples/binding-input/_config.js b/test/hydration/samples/binding-input/_config.js index 86ba3fe9ec..7dc18c8a6a 100644 --- a/test/hydration/samples/binding-input/_config.js +++ b/test/hydration/samples/binding-input/_config.js @@ -20,7 +20,7 @@ export default { input.value = 'everybody'; input.dispatchEvent(new window.Event('input')); - assert.equal(component.get('name'), 'everybody'); + assert.equal(component.get().name, 'everybody'); assert.htmlEqual(target.innerHTML, `
Hello everybody!
clicked!
one
two
three
2 completed
checked? true
number 43
undefined undefined
hello bob
four
selected: two
{{compiled}} @@ -15,25 +15,27 @@ Editor }, - oncreate () { - this.observe( 'components', components => { - components.forEach( component => { - if ( component === this.get( 'selectedComponent' ) ) return; + onstate({ changed, current }) { + const { selectedComponent } = this.get(); + + if (changed.components) { + components.forEach(component => { + if (component === selectedComponent) return; component.compiled = component.source.toUpperCase(); }); - }); + } - this.observe( 'selectedComponent', component => { - component.compiled = component.source.toUpperCase(); + if (changed.selectedComponent) { + selectedComponent.compiled = selectedComponent.source.toUpperCase(); this.updateBundle(); - }); + } }, methods: { - updateBundle () { - const components = this.get( 'components' ); + updateBundle() { + const components = this.get('components'); - const compiled = components.map( component => component.compiled ).join( '\n' ); + const compiled = components.map(component => component.compiled).join('\n'); this.set({ compiled }); } diff --git a/test/runtime/samples/component-binding-deep/_config.js b/test/runtime/samples/component-binding-deep/_config.js index 1dda0f5bbd..65591dc24d 100644 --- a/test/runtime/samples/component-binding-deep/_config.js +++ b/test/runtime/samples/component-binding-deep/_config.js @@ -11,7 +11,7 @@ export default { input.value = 'blah'; input.dispatchEvent( event ); - assert.deepEqual( component.get( 'deep' ), { name: 'blah' } ); + assert.deepEqual( component.get().deep, { name: 'blah' } ); assert.htmlEqual( target.innerHTML, ` blah diff --git a/test/runtime/samples/component-binding-each-nested/_config.js b/test/runtime/samples/component-binding-each-nested/_config.js index 536996e869..83bd81dbcb 100644 --- a/test/runtime/samples/component-binding-each-nested/_config.js +++ b/test/runtime/samples/component-binding-each-nested/_config.js @@ -11,12 +11,12 @@ export default { inputs[0].value = 'blah'; inputs[0].dispatchEvent( event ); - assert.deepEqual( component.get( 'a' ), [{ name: 'blah' }, { name: 'bar' }, { name: 'baz' }] ); + assert.deepEqual( component.get().a, [{ name: 'blah' }, { name: 'bar' }, { name: 'baz' }] ); assert.htmlEqual( target.innerHTML, ` blah, bar, baz ` ); - + component.destroy(); } }; diff --git a/test/runtime/samples/component-binding-each/_config.js b/test/runtime/samples/component-binding-each/_config.js index 632898eb5a..4ab071a286 100644 --- a/test/runtime/samples/component-binding-each/_config.js +++ b/test/runtime/samples/component-binding-each/_config.js @@ -11,7 +11,7 @@ export default { inputs[0].value = 'blah'; inputs[0].dispatchEvent( event ); - assert.deepEqual( component.get( 'a' ), [ 'blah', 'bar', 'baz' ] ); + assert.deepEqual( component.get().a, [ 'blah', 'bar', 'baz' ] ); assert.htmlEqual( target.innerHTML, ` blah, bar, baz diff --git a/test/runtime/samples/component-binding-infinite-loop/C.html b/test/runtime/samples/component-binding-infinite-loop/C.html index 40dcf90844..e3887ff78e 100644 --- a/test/runtime/samples/component-binding-infinite-loop/C.html +++ b/test/runtime/samples/component-binding-infinite-loop/C.html @@ -12,10 +12,10 @@ export default { }, methods: { toggle() { - const isCurrentlySelected = this.get('isCurrentlySelected') + const isCurrentlySelected = this.get().isCurrentlySelected this.set({ - currentIdentifier: isCurrentlySelected ? null : this.get('identifier') + currentIdentifier: isCurrentlySelected ? null : this.get().identifier }) } } diff --git a/test/runtime/samples/component-binding-infinite-loop/_config.js b/test/runtime/samples/component-binding-infinite-loop/_config.js index 6a379af0a4..b9f7650e43 100644 --- a/test/runtime/samples/component-binding-infinite-loop/_config.js +++ b/test/runtime/samples/component-binding-infinite-loop/_config.js @@ -31,7 +31,7 @@ export default { spans[0].dispatchEvent( click ); - assert.equal( component.get( 'currentIdentifier' ), 1 ); + assert.equal( component.get().currentIdentifier, 1 ); assert.htmlEqual( target.innerHTML, ` 1 2 @@ -60,7 +60,7 @@ export default { spans[0].dispatchEvent( click ); - assert.equal( component.get( 'currentIdentifier' ), null ); + assert.equal( component.get().currentIdentifier, null ); assert.htmlEqual( target.innerHTML, ` 1 2 diff --git a/test/runtime/samples/component-binding-nested/_config.js b/test/runtime/samples/component-binding-nested/_config.js index fd1250e7a5..d0fb9dc196 100644 --- a/test/runtime/samples/component-binding-nested/_config.js +++ b/test/runtime/samples/component-binding-nested/_config.js @@ -21,7 +21,7 @@ export default { buttons[0].dispatchEvent( click ); - assert.equal( component.get( 'x' ), 'p' ); + assert.equal( component.get().x, 'p' ); assert.htmlEqual( target.innerHTML, ` x: p foo @@ -34,7 +34,7 @@ export default { buttons[1].dispatchEvent( click ); - assert.equal( component.get( 'x' ), 'q' ); + assert.equal( component.get().x, 'q' ); assert.htmlEqual( target.innerHTML, ` x: q foo @@ -47,7 +47,7 @@ export default { buttons[2].dispatchEvent( click ); - assert.equal( component.get( 'x' ), 'r' ); + assert.equal( component.get().x, 'r' ); assert.htmlEqual( target.innerHTML, ` x: r foo diff --git a/test/runtime/samples/component-binding-parent-supercedes-child/_config.js b/test/runtime/samples/component-binding-parent-supercedes-child/_config.js index 6fa49fce9f..65999b85fd 100644 --- a/test/runtime/samples/component-binding-parent-supercedes-child/_config.js +++ b/test/runtime/samples/component-binding-parent-supercedes-child/_config.js @@ -10,7 +10,7 @@ export default { button.dispatchEvent( click ); - assert.equal( component.get( 'x' ), 11 ); + assert.equal( component.get().x, 11 ); assert.htmlEqual( target.innerHTML, ` +1 count: 11 @@ -18,7 +18,7 @@ export default { button.dispatchEvent( click ); - assert.equal( component.get( 'x' ), 12 ); + assert.equal( component.get().x, 12 ); assert.htmlEqual( target.innerHTML, ` +1 count: 12 diff --git a/test/runtime/samples/component-binding-self-destroying/_config.js b/test/runtime/samples/component-binding-self-destroying/_config.js index 27a7ab108e..a78b1c55ea 100644 --- a/test/runtime/samples/component-binding-self-destroying/_config.js +++ b/test/runtime/samples/component-binding-self-destroying/_config.js @@ -12,14 +12,14 @@ export default { target.querySelector('button').dispatchEvent(click); - assert.equal(component.get('show'), false); + assert.equal(component.get().show, false); assert.htmlEqual(target.innerHTML, ` Show `); target.querySelector('button').dispatchEvent(click); - assert.equal(component.get('show'), true); + assert.equal(component.get().show, true); assert.htmlEqual(target.innerHTML, ` Hide `); diff --git a/test/runtime/samples/component-binding/_config.js b/test/runtime/samples/component-binding/_config.js index f2ed4d67e2..aa64ab81b8 100644 --- a/test/runtime/samples/component-binding/_config.js +++ b/test/runtime/samples/component-binding/_config.js @@ -12,7 +12,7 @@ export default { button.dispatchEvent( click ); - assert.equal( component.get( 'x' ), 1 ); + assert.equal( component.get().x, 1 ); assert.htmlEqual( target.innerHTML, ` +1 count: 1 @@ -20,7 +20,7 @@ export default { button.dispatchEvent( click ); - assert.equal( component.get( 'x' ), 2 ); + assert.equal( component.get().x, 2 ); assert.htmlEqual( target.innerHTML, ` +1 count: 2 diff --git a/test/runtime/samples/component-data-dynamic-shorthand/_config.js b/test/runtime/samples/component-data-dynamic-shorthand/_config.js index c0a53c333c..0e96bc9a86 100644 --- a/test/runtime/samples/component-data-dynamic-shorthand/_config.js +++ b/test/runtime/samples/component-data-dynamic-shorthand/_config.js @@ -11,7 +11,5 @@ export default { }); assert.equal( target.innerHTML, `foo: 99` ); - - component.teardown(); } }; diff --git a/test/runtime/samples/component-events/main.html b/test/runtime/samples/component-events/main.html index 12c5f78472..442ae0f989 100644 --- a/test/runtime/samples/component-events/main.html +++ b/test/runtime/samples/component-events/main.html @@ -1,6 +1,6 @@ {{#if visible}} - + {{/if}} diff --git a/test/runtime/samples/component-yield-if/_config.js b/test/runtime/samples/component-yield-if/_config.js index a428e4522d..8c09fedbab 100644 --- a/test/runtime/samples/component-yield-if/_config.js +++ b/test/runtime/samples/component-yield-if/_config.js @@ -4,7 +4,7 @@ export default { test ( assert, component, target ) { const widget = component.refs.widget; - assert.equal( widget.get( 'show' ), false ); + assert.equal( widget.get().show, false ); widget.set({show: true}); assert.htmlEqual( target.innerHTML, 'Hello' ); diff --git a/test/runtime/samples/component-yield-parent/_config.js b/test/runtime/samples/component-yield-parent/_config.js index b80ee68bdb..39bc7cf79a 100644 --- a/test/runtime/samples/component-yield-parent/_config.js +++ b/test/runtime/samples/component-yield-parent/_config.js @@ -4,10 +4,10 @@ export default { `, test ( assert, component, target ) { - assert.equal( component.get( 'data' ), 'Hello' ); + assert.equal( component.get().data, 'Hello' ); component.set({ data: 'World' }); - assert.equal( component.get( 'data' ), 'World' ); + assert.equal( component.get().data, 'World' ); assert.htmlEqual( target.innerHTML, ` World ` ); diff --git a/test/runtime/samples/computed-empty/_config.js b/test/runtime/samples/computed-empty/_config.js index 226be4cffe..610cc17945 100644 --- a/test/runtime/samples/computed-empty/_config.js +++ b/test/runtime/samples/computed-empty/_config.js @@ -1,7 +1,7 @@ export default { html: 'empty', test ( assert, component, target ) { - assert.equal( component.get( 'created' ), true ); + assert.equal( component.get().created, true ); assert.equal( target.innerHTML, 'empty' ); component.destroy(); } diff --git a/test/runtime/samples/computed-values-function-dependency/_config.js b/test/runtime/samples/computed-values-function-dependency/_config.js index 38b716b4d7..9320a0aad8 100644 --- a/test/runtime/samples/computed-values-function-dependency/_config.js +++ b/test/runtime/samples/computed-values-function-dependency/_config.js @@ -3,7 +3,7 @@ export default { test ( assert, component, target ) { component.set({ y: 2 }); - assert.equal( component.get( 'x' ), 4 ); + assert.equal( component.get().x, 4 ); assert.equal( target.innerHTML, '4' ); component.destroy(); } diff --git a/test/runtime/samples/computed-values/_config.js b/test/runtime/samples/computed-values/_config.js index 8425cba4ff..8d52627c40 100644 --- a/test/runtime/samples/computed-values/_config.js +++ b/test/runtime/samples/computed-values/_config.js @@ -2,8 +2,8 @@ export default { html: '1 + 2 = 3\n3 * 3 = 9', test ( assert, component, target ) { component.set({ a: 3 }); - assert.equal( component.get( 'c' ), 5 ); - assert.equal( component.get( 'cSquared' ), 25 ); + assert.equal( component.get().c, 5 ); + assert.equal( component.get().cSquared, 25 ); assert.equal( target.innerHTML, '3 + 2 = 5\n5 * 5 = 25' ); component.destroy(); } diff --git a/test/runtime/samples/custom-method/_config.js b/test/runtime/samples/custom-method/_config.js index 1586df8a79..fb1aa7f46a 100644 --- a/test/runtime/samples/custom-method/_config.js +++ b/test/runtime/samples/custom-method/_config.js @@ -5,11 +5,11 @@ export default { const event = new window.MouseEvent( 'click' ); button.dispatchEvent( event ); - assert.equal( component.get( 'counter' ), 1 ); + assert.equal( component.get().counter, 1 ); assert.equal( target.innerHTML, '+1\n\n1' ); button.dispatchEvent( event ); - assert.equal( component.get( 'counter' ), 2 ); + assert.equal( component.get().counter, 2 ); assert.equal( target.innerHTML, '+1\n\n2' ); assert.equal( component.foo(), 42 ); diff --git a/test/runtime/samples/custom-method/main.html b/test/runtime/samples/custom-method/main.html index 06ad01ca79..3bd8459fb1 100644 --- a/test/runtime/samples/custom-method/main.html +++ b/test/runtime/samples/custom-method/main.html @@ -10,7 +10,7 @@ methods: { add1 () { - this.set({ counter: this.get( 'counter' ) + 1 }); + this.set({ counter: this.get().counter + 1 }); }, foo () { diff --git a/test/runtime/samples/deconflict-builtins/_config.js b/test/runtime/samples/deconflict-builtins/_config.js index 5ad7a44210..debcfeaa13 100644 --- a/test/runtime/samples/deconflict-builtins/_config.js +++ b/test/runtime/samples/deconflict-builtins/_config.js @@ -2,7 +2,7 @@ export default { html: `got`, test ( assert, component ) { - assert.equal( component.get( 'foo' ), 'got' ); + assert.equal( component.get().foo, 'got' ); component.destroy(); } }; \ No newline at end of file diff --git a/test/runtime/samples/deconflict-non-helpers/_config.js b/test/runtime/samples/deconflict-non-helpers/_config.js index 978e4c27e3..51670f56fe 100644 --- a/test/runtime/samples/deconflict-non-helpers/_config.js +++ b/test/runtime/samples/deconflict-non-helpers/_config.js @@ -2,7 +2,7 @@ export default { html: `ABCD`, test ( assert, component ) { - assert.equal( component.get( 'compute' ), 'ABCD' ); + assert.equal( component.get().compute, 'ABCD' ); component.destroy(); } }; diff --git a/test/runtime/samples/dev-warning-bad-observe-arguments/_config.js b/test/runtime/samples/dev-warning-bad-observe-arguments/_config.js deleted file mode 100644 index 0b9183aeba..0000000000 --- a/test/runtime/samples/dev-warning-bad-observe-arguments/_config.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - dev: true, - - error ( assert, err ) { - assert.equal( err.message, `The first argument to component.observe(...) must be the name of a top-level property, i.e. 'nested' rather than 'nested.data'` ); - } -}; \ No newline at end of file diff --git a/test/runtime/samples/dev-warning-bad-observe-arguments/main.html b/test/runtime/samples/dev-warning-bad-observe-arguments/main.html deleted file mode 100644 index e15ae99fa4..0000000000 --- a/test/runtime/samples/dev-warning-bad-observe-arguments/main.html +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file 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 deleted file mode 100644 index 59c583ba1a..0000000000 --- a/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/_config.js +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index 1e83835f03..0000000000 --- a/test/runtime/samples/dev-warning-custom-event-destroy-not-teardown/main.html +++ /dev/null @@ -1,16 +0,0 @@ -foo - - \ No newline at end of file diff --git a/test/runtime/samples/dev-warning-destroy-not-teardown/_config.js b/test/runtime/samples/dev-warning-destroy-not-teardown/_config.js deleted file mode 100644 index 7e9b391f4b..0000000000 --- a/test/runtime/samples/dev-warning-destroy-not-teardown/_config.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - dev: true, - - warnings: [ - `Use component.on('destroy', ...) instead of component.on('teardown', ...) which has been deprecated and will be unsupported in Svelte 2` - ] -}; \ No newline at end of file diff --git a/test/runtime/samples/dev-warning-destroy-not-teardown/main.html b/test/runtime/samples/dev-warning-destroy-not-teardown/main.html deleted file mode 100644 index 22c2e9c287..0000000000 --- a/test/runtime/samples/dev-warning-destroy-not-teardown/main.html +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/test/runtime/samples/dynamic-component-bindings/_config.js b/test/runtime/samples/dynamic-component-bindings/_config.js index b10e1d720b..28ffc1664d 100644 --- a/test/runtime/samples/dynamic-component-bindings/_config.js +++ b/test/runtime/samples/dynamic-component-bindings/_config.js @@ -13,7 +13,7 @@ export default { input.value = 'abc'; input.dispatchEvent(new window.Event('input')); - assert.equal(component.get('y'), 'abc'); + assert.equal(component.get().y, 'abc'); component.set({ x: false @@ -28,6 +28,6 @@ export default { input.checked = true; input.dispatchEvent(new window.Event('change')); - assert.equal(component.get('z'), true); + assert.equal(component.get().z, true); } }; \ No newline at end of file diff --git a/test/runtime/samples/dynamic-component-events/_config.js b/test/runtime/samples/dynamic-component-events/_config.js index 3315382e91..b125e4078b 100644 --- a/test/runtime/samples/dynamic-component-events/_config.js +++ b/test/runtime/samples/dynamic-component-events/_config.js @@ -11,7 +11,7 @@ export default { const click = new window.MouseEvent('click'); target.querySelector('button').dispatchEvent(click); - assert.equal(component.get('selected'), 'foo'); + assert.equal(component.get().selected, 'foo'); component.set({ x: false @@ -22,6 +22,6 @@ export default { `); target.querySelector('button').dispatchEvent(click); - assert.equal(component.get('selected'), 'bar'); + assert.equal(component.get().selected, 'bar'); } }; \ No newline at end of file diff --git a/test/runtime/samples/each-block-array-literal/_config.js b/test/runtime/samples/each-block-array-literal/_config.js index bc36cdbe0e..b7548f0d9b 100644 --- a/test/runtime/samples/each-block-array-literal/_config.js +++ b/test/runtime/samples/each-block-array-literal/_config.js @@ -14,6 +14,6 @@ export default { const event = new window.MouseEvent('click'); button.dispatchEvent(event); - assert.equal(component.get('clicked'), 'racoon'); + assert.equal(component.get().clicked, 'racoon'); }, }; diff --git a/test/runtime/samples/each-block-containing-if/_config.js b/test/runtime/samples/each-block-containing-if/_config.js index 778c5ccdfa..cdb3d7e62c 100644 --- a/test/runtime/samples/each-block-containing-if/_config.js +++ b/test/runtime/samples/each-block-containing-if/_config.js @@ -1,6 +1,6 @@ export default { test ( assert, component, target ) { - const items = component.get( 'items' ); + const items = component.get().items; items.forEach( item => item.completed = false ); component.set({ currentFilter: 'all' }); diff --git a/test/runtime/samples/event-handler-custom-context/main.html b/test/runtime/samples/event-handler-custom-context/main.html index 806f330d6c..90e5a4c72e 100644 --- a/test/runtime/samples/event-handler-custom-context/main.html +++ b/test/runtime/samples/event-handler-custom-context/main.html @@ -11,14 +11,14 @@ tap ( node, callback ) { const clickHandler = event => { callback({ - answer: this.get( 'answer' ) + answer: this.get().answer }); }; node.addEventListener( 'click', clickHandler, false ); return { - teardown () { + destroy () { node.addEventListener( 'click', clickHandler, false ); } }; diff --git a/test/runtime/samples/event-handler-custom-each-destructured/_config.js b/test/runtime/samples/event-handler-custom-each-destructured/_config.js index 9373d4dfee..101268637e 100644 --- a/test/runtime/samples/event-handler-custom-each-destructured/_config.js +++ b/test/runtime/samples/event-handler-custom-each-destructured/_config.js @@ -24,8 +24,8 @@ export default { second: bar ` ); - assert.equal( component.get( 'first' ), '1' ); - assert.equal( component.get( 'second' ), 'bar' ); + assert.equal( component.get().first, '1' ); + assert.equal( component.get().second, 'bar' ); component.destroy(); } diff --git a/test/runtime/samples/event-handler-custom-each-destructured/main.html b/test/runtime/samples/event-handler-custom-each-destructured/main.html index 6c5f24455d..ae9251269d 100644 --- a/test/runtime/samples/event-handler-custom-each-destructured/main.html +++ b/test/runtime/samples/event-handler-custom-each-destructured/main.html @@ -26,7 +26,7 @@ node.addEventListener( 'click', clickHandler, false ); return { - teardown () { + destroy () { node.addEventListener( 'click', clickHandler, false ); } }; diff --git a/test/runtime/samples/event-handler-custom-each/_config.js b/test/runtime/samples/event-handler-custom-each/_config.js index 5d67fb1413..e32876605e 100644 --- a/test/runtime/samples/event-handler-custom-each/_config.js +++ b/test/runtime/samples/event-handler-custom-each/_config.js @@ -24,8 +24,8 @@ export default { fromState: bar ` ); - assert.equal( component.get( 'fromDom' ), 'bar' ); - assert.equal( component.get( 'fromState' ), 'bar' ); + assert.equal( component.get().fromDom, 'bar' ); + assert.equal( component.get().fromState, 'bar' ); component.destroy(); } diff --git a/test/runtime/samples/event-handler-custom-each/main.html b/test/runtime/samples/event-handler-custom-each/main.html index eb8a4d292c..309e5c96ee 100644 --- a/test/runtime/samples/event-handler-custom-each/main.html +++ b/test/runtime/samples/event-handler-custom-each/main.html @@ -24,7 +24,7 @@ node.addEventListener( 'click', clickHandler, false ); return { - teardown () { + destroy () { node.addEventListener( 'click', clickHandler, false ); } }; diff --git a/test/runtime/samples/event-handler-custom-node-context/main.html b/test/runtime/samples/event-handler-custom-node-context/main.html index 916001d82c..1634d51719 100644 --- a/test/runtime/samples/event-handler-custom-node-context/main.html +++ b/test/runtime/samples/event-handler-custom-node-context/main.html @@ -15,7 +15,7 @@ node.addEventListener( 'click', clickHandler, false ); return { - teardown () { + destroy () { node.addEventListener( 'click', clickHandler, false ); } }; diff --git a/test/runtime/samples/event-handler-custom/main.html b/test/runtime/samples/event-handler-custom/main.html index b56b4f403b..949fafd727 100644 --- a/test/runtime/samples/event-handler-custom/main.html +++ b/test/runtime/samples/event-handler-custom/main.html @@ -19,7 +19,7 @@ node.addEventListener( 'click', clickHandler, false ); return { - teardown () { + destroy () { node.addEventListener( 'click', clickHandler, false ); } }; diff --git a/test/runtime/samples/event-handler-each-deconflicted/_config.js b/test/runtime/samples/event-handler-each-deconflicted/_config.js index 0c11a15d3d..13690a4e62 100644 --- a/test/runtime/samples/event-handler-each-deconflicted/_config.js +++ b/test/runtime/samples/event-handler-each-deconflicted/_config.js @@ -16,7 +16,7 @@ export default { const event = new window.MouseEvent( 'click' ); buttons[0].dispatchEvent( event ); - assert.equal( component.get( 'clicked' ), 'foo' ); + assert.equal( component.get().clicked, 'foo' ); assert.htmlEqual( target.innerHTML, ` foo bar @@ -24,7 +24,7 @@ export default { ` ); buttons[1].dispatchEvent( event ); - assert.equal( component.get( 'clicked' ), 'bar' ); + assert.equal( component.get().clicked, 'bar' ); assert.htmlEqual( target.innerHTML, ` foo bar diff --git a/test/runtime/samples/event-handler-event-methods/_config.js b/test/runtime/samples/event-handler-event-methods/_config.js index 8b701e9825..50c0c08bd5 100644 --- a/test/runtime/samples/event-handler-event-methods/_config.js +++ b/test/runtime/samples/event-handler-event-methods/_config.js @@ -6,7 +6,7 @@ export default { allow.dispatchEvent( new window.MouseEvent( 'click', { bubbles: true }) ); stop.dispatchEvent( new window.MouseEvent( 'click', { bubbles: true }) ); - assert.equal( component.get( 'foo' ), true ); - assert.equal( component.get( 'bar' ), false ); + assert.equal( component.get().foo, true ); + assert.equal( component.get().bar, false ); } }; diff --git a/test/runtime/samples/event-handler-removal/_config.js b/test/runtime/samples/event-handler-removal/_config.js index b196db1765..474b6ef63e 100644 --- a/test/runtime/samples/event-handler-removal/_config.js +++ b/test/runtime/samples/event-handler-removal/_config.js @@ -7,13 +7,13 @@ export default { // this should NOT trigger blur event component.set({ visible: false }); - assert.ok( !component.get( 'blurred' ) ); + assert.ok( !component.get().blurred ); component.set({ visible: true }); component.refs.input.focus(); // this SHOULD trigger blur event component.refs.input.blur(); - assert.ok( component.get( 'blurred' ) ); + assert.ok( component.get().blurred ); } }; diff --git a/test/runtime/samples/flush-before-bindings/_config.js b/test/runtime/samples/flush-before-bindings/_config.js index 1f731d6a34..066f3cb2c4 100644 --- a/test/runtime/samples/flush-before-bindings/_config.js +++ b/test/runtime/samples/flush-before-bindings/_config.js @@ -9,7 +9,7 @@ export default { `, test(assert, component) { - const visibleThings = component.get('visibleThings'); + const visibleThings = component.get().visibleThings; assert.deepEqual(visibleThings, ['first thing', 'second thing']); const snapshots = component.snapshots; diff --git a/test/runtime/samples/flush-before-bindings/main.html b/test/runtime/samples/flush-before-bindings/main.html index b078cffc8c..e95670f85d 100644 --- a/test/runtime/samples/flush-before-bindings/main.html +++ b/test/runtime/samples/flush-before-bindings/main.html @@ -14,11 +14,15 @@ Nested }, - oncreate() { - this.snapshots = []; - this.observe('visibleThings', things => { - this.snapshots.push(things); - }); + onstate({ current, changed, previous }) { + if (!this.snapshots) { + // first run + this.snapshots = []; + } + + if (changed.visibleThings) { + this.snapshots.push(current.visibleThings); + } } }; \ No newline at end of file diff --git a/test/runtime/samples/get-state/_config.js b/test/runtime/samples/get-state/_config.js index dd0b72fb16..3c2dae5a81 100644 --- a/test/runtime/samples/get-state/_config.js +++ b/test/runtime/samples/get-state/_config.js @@ -1,7 +1,7 @@ export default { test ( assert, component ) { - assert.equal( component.get('a'), 1 ); - assert.equal( component.get('c'), 3 ); + assert.equal( component.get().a, 1 ); + assert.equal( component.get().c, 3 ); assert.deepEqual( component.get(), { a: 1, b: 2, c: 3 }); } }; diff --git a/test/runtime/samples/globals-not-overwritten-by-bindings/_config.js b/test/runtime/samples/globals-not-overwritten-by-bindings/_config.js index a10750e1a0..cf15f47d9d 100644 --- a/test/runtime/samples/globals-not-overwritten-by-bindings/_config.js +++ b/test/runtime/samples/globals-not-overwritten-by-bindings/_config.js @@ -40,7 +40,7 @@ export default { input.checked = true; input.dispatchEvent(change); - assert.ok(component.get('todos').third.done); + assert.ok(component.get().todos.third.done); assert.htmlEqual(target.innerHTML, ` diff --git a/test/runtime/samples/immutable-mutable/Nested.html b/test/runtime/samples/immutable-mutable/Nested.html index 02278e385e..f23d8f4257 100644 --- a/test/runtime/samples/immutable-mutable/Nested.html +++ b/test/runtime/samples/immutable-mutable/Nested.html @@ -1,13 +1,13 @@ Called {{count}} times. \ No newline at end of file diff --git a/test/runtime/samples/immutable-mutable/_config.js b/test/runtime/samples/immutable-mutable/_config.js index 5dab0f239b..d7381a38a2 100644 --- a/test/runtime/samples/immutable-mutable/_config.js +++ b/test/runtime/samples/immutable-mutable/_config.js @@ -4,13 +4,15 @@ export default { test(assert, component, target, window) { var nested = component.refs.nested; - nested.observe('foo', foo => { - nested.set({ count: nested.get('count') + 1 }); + nested.on('state', ({ changed }) => { + if (changed.foo) { + nested.set({ count: nested.get().count + 1 }); + } }); - assert.htmlEqual(target.innerHTML, `Called 1 times.`); + assert.htmlEqual(target.innerHTML, `Called 0 times.`); - nested.set({ foo: nested.get('foo') }); - assert.htmlEqual(target.innerHTML, `Called 2 times.`); + nested.set({ foo: nested.get().foo }); + assert.htmlEqual(target.innerHTML, `Called 1 times.`); } }; diff --git a/test/runtime/samples/immutable-nested/_config.js b/test/runtime/samples/immutable-nested/_config.js index 541566ce4d..1268a4a988 100644 --- a/test/runtime/samples/immutable-nested/_config.js +++ b/test/runtime/samples/immutable-nested/_config.js @@ -4,13 +4,15 @@ export default { test(assert, component, target, window) { var nested = component.refs.nested; - nested.observe('foo', foo => { - nested.set({ count: nested.get('count') + 1 }); + nested.on('state', ({ changed }) => { + if (changed.foo) { + nested.set({ count: nested.get().count + 1 }); + } }); - assert.htmlEqual(target.innerHTML, `Called 1 times.`); + assert.htmlEqual(target.innerHTML, `Called 0 times.`); - nested.set({ foo: nested.get('foo') }); - assert.htmlEqual(target.innerHTML, `Called 1 times.`); + nested.set({ foo: nested.get().foo }); + assert.htmlEqual(target.innerHTML, `Called 0 times.`); } }; diff --git a/test/runtime/samples/immutable-root/_config.js b/test/runtime/samples/immutable-root/_config.js index a862008d7d..ab0b4287d8 100644 --- a/test/runtime/samples/immutable-root/_config.js +++ b/test/runtime/samples/immutable-root/_config.js @@ -3,13 +3,15 @@ export default { html: `Called 0 times.`, test(assert, component, target, window) { - component.observe('foo', foo => { - component.set({ count: component.get('count') + 1 }); + component.on('state', ({ changed }) => { + if (changed.foo) { + component.set({ count: component.get().count + 1 }); + } }); - assert.htmlEqual(target.innerHTML, `Called 1 times.`); + assert.htmlEqual(target.innerHTML, `Called 0 times.`); - component.set({ foo: component.get('foo') }); - assert.htmlEqual(target.innerHTML, `Called 1 times.`); + component.set({ foo: component.get().foo }); + assert.htmlEqual(target.innerHTML, `Called 0 times.`); } }; diff --git a/test/runtime/samples/observe-binding-ignores-unchanged/_config.js b/test/runtime/samples/observe-binding-ignores-unchanged/_config.js index 927572e735..04fee0d94e 100644 --- a/test/runtime/samples/observe-binding-ignores-unchanged/_config.js +++ b/test/runtime/samples/observe-binding-ignores-unchanged/_config.js @@ -7,9 +7,9 @@ export default { test(assert, component, target, window) { let triggered = false; - component.refs.nested.observe('field2', () => { - triggered = true; - }, { init: false }); + component.refs.nested.on('state', ({ changed }) => { + if (changed.field2) triggered = true; + }); const input = target.querySelector('input'); const event = new window.Event('input'); diff --git a/test/runtime/samples/observe-component-ignores-irrelevant-changes/_config.js b/test/runtime/samples/observe-component-ignores-irrelevant-changes/_config.js index 88be0160bd..f14d044a19 100644 --- a/test/runtime/samples/observe-component-ignores-irrelevant-changes/_config.js +++ b/test/runtime/samples/observe-component-ignores-irrelevant-changes/_config.js @@ -1,15 +1,15 @@ export default { - test ( assert, component ) { + test(assert, component) { const foo = component.refs.foo; let count = 0; - foo.observe( 'x', () => { - count += 1; + foo.on('state', ({ changed }) => { + if (changed.foo) count += 1; }); - assert.equal( count, 1 ); + assert.equal(count, 0); component.set({ y: {} }); - assert.equal( count, 1 ); + assert.equal(count, 0); } }; diff --git a/test/runtime/samples/observe-deferred/main.html b/test/runtime/samples/observe-deferred/main.html index 365d427f4d..4ef322ab42 100644 --- a/test/runtime/samples/observe-deferred/main.html +++ b/test/runtime/samples/observe-deferred/main.html @@ -3,11 +3,11 @@ \ No newline at end of file diff --git a/test/runtime/samples/onrender-chain/Item.html b/test/runtime/samples/onrender-chain/Item.html index b75cd0ca23..4eb126062b 100644 --- a/test/runtime/samples/onrender-chain/Item.html +++ b/test/runtime/samples/onrender-chain/Item.html @@ -2,15 +2,13 @@ + \ No newline at end of file diff --git a/test/runtime/samples/select-bind-in-array/_config.js b/test/runtime/samples/select-bind-in-array/_config.js index 609fc4592a..32b522982b 100644 --- a/test/runtime/samples/select-bind-in-array/_config.js +++ b/test/runtime/samples/select-bind-in-array/_config.js @@ -8,7 +8,7 @@ export default { }, test ( assert, component, target ) { - const items = component.get('items'); + const items = component.get().items; assert.equal( items[0].id, 'a' ); assert.equal( items[1].id, 'b' ); diff --git a/test/runtime/samples/select-change-handler/_config.js b/test/runtime/samples/select-change-handler/_config.js index 015c8182b4..8ea4d66e82 100644 --- a/test/runtime/samples/select-change-handler/_config.js +++ b/test/runtime/samples/select-change-handler/_config.js @@ -14,8 +14,8 @@ export default { select.dispatchEvent( event ); assert.equal( select.value, 'c' ); - assert.equal( component.get( 'lastChangedTo' ), 'c' ); - assert.equal( component.get( 'selected' ), 'c' ); + assert.equal( component.get().lastChangedTo, 'c' ); + assert.equal( component.get().selected, 'c' ); component.destroy(); } diff --git a/test/runtime/samples/select-props/_config.js b/test/runtime/samples/select-props/_config.js index 1d4d390094..0f93196cf7 100644 --- a/test/runtime/samples/select-props/_config.js +++ b/test/runtime/samples/select-props/_config.js @@ -10,6 +10,6 @@ export default { selects[1].value = 'b'; selects[1].dispatchEvent(event2); - assert.deepEqual( component.get( 'log' ), [ 1, 2 ] ); + assert.deepEqual( component.get().log, [ 1, 2 ] ); } }; diff --git a/test/runtime/samples/set-in-observe-dedupes-renders/Widget.html b/test/runtime/samples/set-in-observe-dedupes-renders/Widget.html deleted file mode 100644 index 3d414dd204..0000000000 --- a/test/runtime/samples/set-in-observe-dedupes-renders/Widget.html +++ /dev/null @@ -1,17 +0,0 @@ -{{foo.x}} - - diff --git a/test/runtime/samples/set-in-ondestroy/_config.js b/test/runtime/samples/set-in-ondestroy/_config.js index bc2212b032..9923ebeb58 100644 --- a/test/runtime/samples/set-in-ondestroy/_config.js +++ b/test/runtime/samples/set-in-ondestroy/_config.js @@ -11,16 +11,16 @@ export default { component.on('destroy', () => { component.set({ foo: 2 }); - valueOnDestroy = component.get('foo'); + valueOnDestroy = component.get().foo; }); - component.observe('foo', foo => { - values.push(foo); + component.on('state', ({ current }) => { + values.push(current.foo); }); component.destroy(); - assert.deepEqual(values, [1, 2]); + assert.deepEqual(values, [2]); assert.equal(valueOnDestroy, 2); } }; diff --git a/test/runtime/samples/set-in-onstate-dedupes-renders/Widget.html b/test/runtime/samples/set-in-onstate-dedupes-renders/Widget.html new file mode 100644 index 0000000000..3d64f43eff --- /dev/null +++ b/test/runtime/samples/set-in-onstate-dedupes-renders/Widget.html @@ -0,0 +1,13 @@ +{{foo.x}} + + \ No newline at end of file diff --git a/test/runtime/samples/set-in-observe-dedupes-renders/_config.js b/test/runtime/samples/set-in-onstate-dedupes-renders/_config.js similarity index 100% rename from test/runtime/samples/set-in-observe-dedupes-renders/_config.js rename to test/runtime/samples/set-in-onstate-dedupes-renders/_config.js diff --git a/test/runtime/samples/set-in-observe-dedupes-renders/main.html b/test/runtime/samples/set-in-onstate-dedupes-renders/main.html similarity index 69% rename from test/runtime/samples/set-in-observe-dedupes-renders/main.html rename to test/runtime/samples/set-in-onstate-dedupes-renders/main.html index f62940a473..2f621f33d0 100644 --- a/test/runtime/samples/set-in-observe-dedupes-renders/main.html +++ b/test/runtime/samples/set-in-onstate-dedupes-renders/main.html @@ -11,10 +11,10 @@ } }, - oncreate () { - this.observe( 'foo', foo => { - this.set({ bar: foo }); - }); + onstate({ changed, current }) { + if (changed.foo) { + this.set({ bar: current.foo }); + } }, components: { diff --git a/test/runtime/samples/set-in-observe/_config.js b/test/runtime/samples/set-in-onstate/_config.js similarity index 100% rename from test/runtime/samples/set-in-observe/_config.js rename to test/runtime/samples/set-in-onstate/_config.js diff --git a/test/runtime/samples/set-in-observe/main.html b/test/runtime/samples/set-in-onstate/main.html similarity index 52% rename from test/runtime/samples/set-in-observe/main.html rename to test/runtime/samples/set-in-onstate/main.html index d07607f5fe..7446198502 100644 --- a/test/runtime/samples/set-in-observe/main.html +++ b/test/runtime/samples/set-in-onstate/main.html @@ -7,10 +7,10 @@ foo: 1 }), - oncreate () { - this.observe( 'foo', foo => { - this.set({ bar: foo * 2 }); - }); + onstate({ changed, current }) { + if (changed.foo) { + this.set({ bar: current.foo * 2 }); + } } }; diff --git a/test/runtime/samples/store-binding/_config.js b/test/runtime/samples/store-binding/_config.js index aefc4ec652..7839a9e3ea 100644 --- a/test/runtime/samples/store-binding/_config.js +++ b/test/runtime/samples/store-binding/_config.js @@ -19,7 +19,7 @@ export default { input.value = 'everybody'; input.dispatchEvent(event); - assert.equal(store.get('name'), 'everybody'); + assert.equal(store.get().name, 'everybody'); assert.htmlEqual(target.innerHTML, ` Hello everybody! diff --git a/test/runtime/samples/store-component-binding-deep/_config.js b/test/runtime/samples/store-component-binding-deep/_config.js index 66ae5ac4ae..e5f0b43156 100644 --- a/test/runtime/samples/store-component-binding-deep/_config.js +++ b/test/runtime/samples/store-component-binding-deep/_config.js @@ -19,14 +19,14 @@ export default { const event = new window.Event('input'); const changeRecord = []; - store.onchange((state, changes) => { - changeRecord.push({ state, changes }); + store.on('state', ({ changed, current }) => { + changeRecord.push({ changed, current }); }); input.value = 'everybody'; input.dispatchEvent(event); - assert.equal(store.get('name').value, 'everybody'); + assert.equal(store.get().name.value, 'everybody'); assert.htmlEqual(target.innerHTML, ` Hello everybody! @@ -34,8 +34,8 @@ export default { assert.deepEqual(changeRecord, [ { - state: { name: { value: 'everybody' } }, - changes: { name: true } + current: { name: { value: 'everybody' } }, + changed: { name: true } } ]); } diff --git a/test/runtime/samples/store-component-binding-each/_config.js b/test/runtime/samples/store-component-binding-each/_config.js index 5d6e6889ae..84977b9b3b 100644 --- a/test/runtime/samples/store-component-binding-each/_config.js +++ b/test/runtime/samples/store-component-binding-each/_config.js @@ -19,7 +19,7 @@ export default { inputs[0].value = 'blah'; inputs[0].dispatchEvent(event); - assert.deepEqual(store.get('a'), ['blah', 'bar', 'baz']); + assert.deepEqual(store.get().a, ['blah', 'bar', 'baz']); assert.htmlEqual(target.innerHTML, ` blah, bar, baz diff --git a/test/runtime/samples/store-component-binding/_config.js b/test/runtime/samples/store-component-binding/_config.js index 1d2beab7a7..12b0fcbfb4 100644 --- a/test/runtime/samples/store-component-binding/_config.js +++ b/test/runtime/samples/store-component-binding/_config.js @@ -17,14 +17,14 @@ export default { const event = new window.Event('input'); const changeRecord = []; - store.onchange((state, changes) => { - changeRecord.push({ state, changes }); + store.on('state', ({ changed, current }) => { + changeRecord.push({ changed, current }); }); input.value = 'everybody'; input.dispatchEvent(event); - assert.equal(store.get('name'), 'everybody'); + assert.equal(store.get().name, 'everybody'); assert.htmlEqual(target.innerHTML, ` Hello everybody! @@ -32,8 +32,8 @@ export default { assert.deepEqual(changeRecord, [ { - state: { name: 'everybody' }, - changes: { name: true } + current: { name: 'everybody' }, + changed: { name: true } } ]); } diff --git a/test/runtime/samples/store-computed/_config.js b/test/runtime/samples/store-computed/_config.js index f4e6f49e54..f922a55738 100644 --- a/test/runtime/samples/store-computed/_config.js +++ b/test/runtime/samples/store-computed/_config.js @@ -7,7 +7,7 @@ class MyStore extends Store { toggleTodo(todo) { todo.done = !todo.done; - this.set({ todos: this.get('todos') }); + this.set({ todos: this.get().todos }); } } diff --git a/test/runtime/samples/store-event/_config.js b/test/runtime/samples/store-event/_config.js index 2779db5fc2..58afa15611 100644 --- a/test/runtime/samples/store-event/_config.js +++ b/test/runtime/samples/store-event/_config.js @@ -25,7 +25,7 @@ export default { input.value = 'everybody'; input.dispatchEvent(event); - assert.equal(store.get('name'), 'everybody'); + assert.equal(store.get().name, 'everybody'); assert.htmlEqual(target.innerHTML, ` Hello everybody! diff --git a/test/runtime/samples/window-event-context/_config.js b/test/runtime/samples/window-event-context/_config.js index ac0fd953bf..f9e562aef6 100644 --- a/test/runtime/samples/window-event-context/_config.js +++ b/test/runtime/samples/window-event-context/_config.js @@ -12,11 +12,11 @@ export default { const event = new window.Event( 'click' ); window.dispatchEvent( event ); - assert.equal( component.get( 'foo' ), false ); + assert.equal( component.get().foo, false ); assert.htmlEqual( target.innerHTML, `false` ); window.dispatchEvent( event ); - assert.equal( component.get( 'foo' ), true ); + assert.equal( component.get().foo, true ); assert.htmlEqual( target.innerHTML, `true` ); component.destroy();
blah
blah, bar, baz
1
2
x: p
x: q
x: r
count: 11
count: 12
count: 1
count: 2
foo: 99
Hello
World
4
1 + 2 = 3
3 * 3 = 9
3 + 2 = 5
5 * 5 = 25
second: bar
fromState: bar