From 0bbaf2d9c1dfce5138586b4347c3643237284686 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Sun, 5 Feb 2017 19:40:19 -0600 Subject: [PATCH 1/2] Check if value changes before updating --- src/generators/dom/index.js | 2 +- src/generators/dom/visitors/MustacheTag.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/generators/dom/index.js b/src/generators/dom/index.js index 41d95bb584..e256456651 100644 --- a/src/generators/dom/index.js +++ b/src/generators/dom/index.js @@ -167,7 +167,7 @@ export default function dom ( parsed, source, options, names ) { getUniqueName: generator.getUniqueNameMaker() }); - parsed.html.children.forEach( node => generator.visit( node ) ); + parsed.html.children.forEach( node => generator.visit(node) ); generator.addRenderer( generator.pop() ); diff --git a/src/generators/dom/visitors/MustacheTag.js b/src/generators/dom/visitors/MustacheTag.js index 8360a47370..d22bb5c243 100644 --- a/src/generators/dom/visitors/MustacheTag.js +++ b/src/generators/dom/visitors/MustacheTag.js @@ -9,9 +9,12 @@ export default { generator.uses.createText = true; generator.addElement( name, `createText( ${snippet} )`, true ); + generator.current.builders.init.addLine(`var last_${name} = ${snippet}`); generator.current.builders.update.addBlock( deindent` - ${name}.data = ${snippet}; + if (${snippet} !== last_${name}) { + ${name}.data = last_${name} = ${snippet}; + } ` ); } }; From 3bcdab98fc32fc2c8a28bd919b269b1908de030a Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Sun, 5 Feb 2017 20:05:10 -0600 Subject: [PATCH 2/2] Sorry for breaking the style! --- src/generators/dom/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generators/dom/index.js b/src/generators/dom/index.js index 85c88f9254..fd4b4e4a04 100644 --- a/src/generators/dom/index.js +++ b/src/generators/dom/index.js @@ -167,7 +167,7 @@ export default function dom ( parsed, source, options, names ) { getUniqueName: generator.getUniqueNameMaker() }); - parsed.html.children.forEach( node => generator.visit(node) ); + parsed.html.children.forEach( node => generator.visit( node ) ); generator.addRenderer( generator.pop() );