From 7644a800245fb913c9fee866a34a6f45e22b9b86 Mon Sep 17 00:00:00 2001 From: javoski Date: Thu, 18 Oct 2018 10:45:24 +0800 Subject: [PATCH] fix(compiler): should keep newline after unary tags in

---
 src/compiler/parser/html-parser.js        | 2 +-
 test/unit/modules/compiler/parser.spec.js | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/compiler/parser/html-parser.js b/src/compiler/parser/html-parser.js
index e220361320..d4b2103b1c 100644
--- a/src/compiler/parser/html-parser.js
+++ b/src/compiler/parser/html-parser.js
@@ -111,7 +111,7 @@ export function parseHTML (html, options) {
         const startTagMatch = parseStartTag()
         if (startTagMatch) {
           handleStartTag(startTagMatch)
-          if (shouldIgnoreFirstNewline(lastTag, html)) {
+          if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
             advance(1)
           }
           continue
diff --git a/test/unit/modules/compiler/parser.spec.js b/test/unit/modules/compiler/parser.spec.js
index 750e371105..461933ee3d 100644
--- a/test/unit/modules/compiler/parser.spec.js
+++ b/test/unit/modules/compiler/parser.spec.js
@@ -642,6 +642,15 @@ describe('parser', () => {
     expect(pre2.children[0].text).toBe('\nabc')
   })
 
+  it('keep first newline after unary tag in 
', () => {
+    const options = extend({}, baseOptions)
+    const ast = parse('
abc\ndef
', options) + expect(ast.children[1].type).toBe(1) + expect(ast.children[1].tag).toBe('input') + expect(ast.children[2].type).toBe(3) + expect(ast.children[2].text).toBe('\ndef') + }) + it('forgivingly handle < in plain text', () => { const options = extend({}, baseOptions) const ast = parse('

1 < 2 < 3

', options)