From 9f75f9c18762290db025d4bf555477dc34b6cdcc Mon Sep 17 00:00:00 2001
From: likui <2218301630@qq.com>
Date: Tue, 19 Nov 2019 21:55:55 +0800
Subject: [PATCH 1/2] fix(compiler-sfc): should judgment if not children
---
packages/compiler-sfc/__tests__/parse.spec.ts | 8 ++++++++
packages/compiler-sfc/src/parse.ts | 3 +++
2 files changed, 11 insertions(+)
diff --git a/packages/compiler-sfc/__tests__/parse.spec.ts b/packages/compiler-sfc/__tests__/parse.spec.ts
index 14cb9dcc916..f82d23489e4 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 not process if not children', () => {
+ 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 de8945ddaa1..12abd5ba115 100644
--- a/packages/compiler-sfc/src/parse.ts
+++ b/packages/compiler-sfc/src/parse.ts
@@ -74,6 +74,9 @@ export function parse(
if (node.type !== NodeTypes.ELEMENT) {
return
}
+ if (!node.children.length) {
+ return
+ }
switch (node.tag) {
case 'template':
if (!sfc.template) {
From 3394f966b336b1fc13d301156ba290ac5c3b281a Mon Sep 17 00:00:00 2001
From: Evan You
Date: Tue, 19 Nov 2019 09:10:42 -0500
Subject: [PATCH 2/2] Update parse.spec.ts
---
packages/compiler-sfc/__tests__/parse.spec.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/compiler-sfc/__tests__/parse.spec.ts b/packages/compiler-sfc/__tests__/parse.spec.ts
index f82d23489e4..0a3cc457706 100644
--- a/packages/compiler-sfc/__tests__/parse.spec.ts
+++ b/packages/compiler-sfc/__tests__/parse.spec.ts
@@ -4,7 +4,7 @@ import { mockWarn } from '@vue/runtime-test'
describe('compiler:sfc', () => {
mockWarn()
- test('should not process if not children', () => {
+ test('should ignore nodes with no content', () => {
expect(parse(``).template).toBe(null)
expect(parse(``).script).toBe(null)
expect(parse(``).styles.length).toBe(0)