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: '
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 {