From: likui <2218301630@qq.com>
Date: Tue, 19 Nov 2019 14:10:59 +0000 (+0800)
Subject: fix(compiler-sfc): should ignore nodes with no children (#464)
X-Git-Tag: v3.0.0-alpha.0~183
X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1efb35e3240fce10be79f34f9f119e0ea4f18a08;p=thirdparty%2Fvuejs%2Fcore.git
fix(compiler-sfc): should ignore nodes with no children (#464)
---
diff --git a/packages/compiler-sfc/__tests__/parse.spec.ts b/packages/compiler-sfc/__tests__/parse.spec.ts
index 14cb9dcc91..0a3cc45770 100644
--- a/packages/compiler-sfc/__tests__/parse.spec.ts
+++ b/packages/compiler-sfc/__tests__/parse.spec.ts
@@ -3,6 +3,14 @@ import { mockWarn } from '@vue/runtime-test'
describe('compiler:sfc', () => {
mockWarn()
+
+ test('should ignore nodes with no content', () => {
+ expect(parse(``).template).toBe(null)
+ expect(parse(``).script).toBe(null)
+ expect(parse(``).styles.length).toBe(0)
+ expect(parse(``).customBlocks.length).toBe(0)
+ })
+
describe('error', () => {
test('should only allow single template element', () => {
parse(``)
diff --git a/packages/compiler-sfc/src/parse.ts b/packages/compiler-sfc/src/parse.ts
index 7a5828d127..8ad603e6c2 100644
--- a/packages/compiler-sfc/src/parse.ts
+++ b/packages/compiler-sfc/src/parse.ts
@@ -81,6 +81,9 @@ export function parse(
if (node.type !== NodeTypes.ELEMENT) {
return
}
+ if (!node.children.length) {
+ return
+ }
switch (node.tag) {
case 'template':
if (!sfc.template) {