Преглед изворни кода

fix(compiler-sfc): the empty lang attribute should be treated as no lang specified (#3051)

HcySunYang пре 5 година
родитељ
комит
6d5b623512
2 измењених фајлова са 10 додато и 0 уклоњено
  1. 9 0
      packages/compiler-sfc/__tests__/parse.spec.ts
  2. 1 0
      packages/compiler-sfc/src/parse.ts

+ 9 - 0
packages/compiler-sfc/__tests__/parse.spec.ts

@@ -139,6 +139,15 @@ h1 { color: red }
     expect(descriptor.template!.content).toBe(content)
   })
 
+  test('treat empty lang attribute as the html', () => {
+    const content = `<div><template v-if="ok">ok</template></div>`
+    const { descriptor, errors } = parse(
+      `<template lang="">${content}</template>`
+    )
+    expect(descriptor.template!.content).toBe(content)
+    expect(errors.length).toBe(0)
+  })
+
   // #1120
   test('alternative template lang should be treated as plain text', () => {
     const content = `p(v-if="1 < 2") test`

+ 1 - 0
packages/compiler-sfc/src/parse.ts

@@ -121,6 +121,7 @@ export function parse(
               p.type === NodeTypes.ATTRIBUTE &&
               p.name === 'lang' &&
               p.value &&
+              p.value.content &&
               p.value.content !== 'html'
           ))
       ) {