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)