diff --git a/src/generators/dom/index.js b/src/generators/dom/index.js index 997df13c57..fcb540d679 100644 --- a/src/generators/dom/index.js +++ b/src/generators/dom/index.js @@ -193,7 +193,7 @@ export default function dom ( parsed, source, options ) { constructorBlock.addBlock( generator.builders.metaBindings ); } - if ( templateProperties.computed ) { + if ( computations.length ) { constructorBlock.addLine( `${generator.alias( 'recompute' )}( this._state, this._state, {}, true );` ); diff --git a/src/shared/methods.js b/src/shared/methods.js index 395420767d..2db30991ea 100644 --- a/src/shared/methods.js +++ b/src/shared/methods.js @@ -12,7 +12,7 @@ export function fire ( eventName, data ) { } export function observe ( key, callback, options ) { - var group = ( options && options.defer ) ? this._observers.pre : this._observers.post; + var group = ( options && options.defer ) ? this._observers.post : this._observers.pre; ( group[ key ] || ( group[ key ] = [] ) ).push( callback ); diff --git a/test/generator/samples/computed-empty/_config.js b/test/generator/samples/computed-empty/_config.js new file mode 100644 index 0000000000..226be4cffe --- /dev/null +++ b/test/generator/samples/computed-empty/_config.js @@ -0,0 +1,8 @@ +export default { + html: '
empty
', + test ( assert, component, target ) { + assert.equal( component.get( 'created' ), true ); + assert.equal( target.innerHTML, '
empty
' ); + component.destroy(); + } +}; diff --git a/test/generator/samples/computed-empty/main.html b/test/generator/samples/computed-empty/main.html new file mode 100644 index 0000000000..9dd0e10923 --- /dev/null +++ b/test/generator/samples/computed-empty/main.html @@ -0,0 +1,14 @@ +
empty
+ diff --git a/test/generator/samples/observe-deferred/_config.js b/test/generator/samples/observe-deferred/_config.js new file mode 100644 index 0000000000..8ccca0d2ab --- /dev/null +++ b/test/generator/samples/observe-deferred/_config.js @@ -0,0 +1,22 @@ +export default { + 'skip-ssr': true, + + data: { + value: 'hello!' + }, + + html: ` +

hello!

+

hello!

+ `, + + test ( assert, component, target ) { + component.set({ value: 'goodbye!' }); + assert.htmlEqual( target.innerHTML, ` +

goodbye!

+

goodbye!

+ ` ); + + component.destroy(); + } +}; diff --git a/test/generator/samples/observe-deferred/main.html b/test/generator/samples/observe-deferred/main.html new file mode 100644 index 0000000000..365d427f4d --- /dev/null +++ b/test/generator/samples/observe-deferred/main.html @@ -0,0 +1,14 @@ +

{{value}}

+

+ + \ No newline at end of file diff --git a/test/runtime/index.js b/test/runtime/index.js index 780e380caf..f4926388c1 100644 --- a/test/runtime/index.js +++ b/test/runtime/index.js @@ -138,6 +138,8 @@ describe( 'runtime', () => { assert.htmlEqual( target.innerHTML, config.html ); } + Object.assign = Object_assign; + if ( config.test ) { config.test( assert, component, target, window ); } else {