refactor(compiler-core): improve template type handling

This commit is contained in:
Evan You
2020-01-31 17:20:52 -05:00
parent 78c4f321cd
commit 34e61197c7
4 changed files with 120 additions and 94 deletions

View File

@@ -42,7 +42,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -111,7 +111,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -180,7 +180,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -266,7 +266,7 @@ Object {
},
],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -352,7 +352,7 @@ Object {
},
],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -438,7 +438,7 @@ Object {
},
],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -524,7 +524,7 @@ Object {
},
],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -593,7 +593,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -662,7 +662,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -731,7 +731,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -800,7 +800,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -869,7 +869,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -962,7 +962,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1031,7 +1031,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1100,7 +1100,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1169,7 +1169,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1313,7 +1313,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1388,7 +1388,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1463,7 +1463,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1532,7 +1532,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1601,7 +1601,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1676,7 +1676,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1769,7 +1769,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1838,7 +1838,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1907,7 +1907,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -1976,7 +1976,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2045,7 +2045,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2114,7 +2114,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2327,7 +2327,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2402,7 +2402,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2496,7 +2496,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2590,7 +2590,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2684,7 +2684,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2794,7 +2794,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -2904,7 +2904,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3014,7 +3014,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3124,7 +3124,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3234,7 +3234,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3344,7 +3344,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3454,7 +3454,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3564,7 +3564,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3633,7 +3633,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3747,7 +3747,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3816,7 +3816,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3885,7 +3885,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -3954,7 +3954,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4023,7 +4023,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4110,7 +4110,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4179,7 +4179,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4265,7 +4265,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4375,7 +4375,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4469,7 +4469,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4563,7 +4563,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4614,7 +4614,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4683,7 +4683,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4752,7 +4752,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4821,7 +4821,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -4967,7 +4967,7 @@ class=\\"bar\\"></div></template>",
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5112,7 +5112,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5181,7 +5181,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5250,7 +5250,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5319,7 +5319,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5388,7 +5388,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5457,7 +5457,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5526,7 +5526,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5595,7 +5595,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5664,7 +5664,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5774,7 +5774,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5884,7 +5884,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -5994,7 +5994,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6104,7 +6104,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6214,7 +6214,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6324,7 +6324,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6434,7 +6434,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6544,7 +6544,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6638,7 +6638,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6748,7 +6748,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6817,7 +6817,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -6929,7 +6929,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -7118,7 +7118,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -7169,7 +7169,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -7256,7 +7256,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -7508,7 +7508,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],
@@ -7583,7 +7583,7 @@ Object {
"ns": 0,
"props": Array [],
"tag": "template",
"tagType": 3,
"tagType": 0,
"type": 1,
},
],

View File

@@ -526,7 +526,6 @@ describe('compiler: parse', () => {
tagType: ElementTypes.ELEMENT,
codegenNode: undefined,
props: [],
isSelfClosing: false,
children: [],
loc: {
@@ -583,6 +582,24 @@ describe('compiler: parse', () => {
})
})
test('template element with directives', () => {
const ast = baseParse('<template v-if="ok"></template>')
const element = ast.children[0]
expect(element).toMatchObject({
type: NodeTypes.ELEMENT,
tagType: ElementTypes.TEMPLATE
})
})
test('template element without directives', () => {
const ast = baseParse('<template></template>')
const element = ast.children[0]
expect(element).toMatchObject({
type: NodeTypes.ELEMENT,
tagType: ElementTypes.ELEMENT
})
})
test('native element with `isNativeTag`', () => {
const ast = baseParse('<div></div><comp></comp><Comp></Comp>', {
isNativeTag: tag => tag === 'div'