Browse Source

fix #5592: comment vnode should not be merged into text vnode. (#5593)

* comment vnode should not be merged into text vnode.

* add isFalse helper

* delete trailing spaces
maggiehe 9 years ago
parent
commit
a8da4fb051
2 changed files with 5 additions and 2 deletions
  1. 2 2
      src/core/vdom/helpers/normalize-children.js
  2. 3 0
      src/shared/util.js

+ 2 - 2
src/core/vdom/helpers/normalize-children.js

@@ -1,7 +1,7 @@
 /* @flow */
 
 import VNode, { createTextVNode } from 'core/vdom/vnode'
-import { isDef, isUndef, isPrimitive } from 'shared/util'
+import { isFalse, isDef, isUndef, isPrimitive } from 'shared/util'
 
 // The template compiler attempts to minimize the need for normalization by
 // statically analyzing the template at compile time.
@@ -54,7 +54,7 @@ function normalizeArrayChildren (children: any, nestedIndex?: string): Array<VNo
         res.push(createTextVNode(c))
       }
     } else {
-      if (isDef(c.text) && isDef(last) && isDef(last.text)) {
+      if (isFalse(c.isComment) && isDef(c.text) && isDef(last) && isFalse(last.isComment) && isDef(last.text)) {
         res[res.length - 1] = createTextVNode(last.text + c.text)
       } else {
         // default key for nested array children (likely generated by v-for)

+ 3 - 0
src/shared/util.js

@@ -14,6 +14,9 @@ export function isTrue (v: any): boolean %checks {
   return v === true
 }
 
+export function isFalse (v: any): boolean %checks {
+  return v === false
+}
 /**
  * Check if value is primitive
  */