ソースを参照

fix(compiler-core): pick last char when dynamic directive doesn't close (#4507)

Herrington Darkholme 4 年 前
コミット
5d262e08d5

+ 1 - 1
packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap

@@ -6260,7 +6260,7 @@ Object {
         Object {
           "arg": Object {
             "constType": 0,
-            "content": "se",
+            "content": "sef",
             "isStatic": false,
             "loc": Object {
               "end": Object {

+ 3 - 2
packages/compiler-core/src/parse.ts

@@ -814,9 +814,10 @@ function parseAttribute(
             context,
             ErrorCodes.X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END
           )
+          content = content.substr(1)
+        } else {
+          content = content.substr(1, content.length - 2)
         }
-
-        content = content.substr(1, content.length - 2)
       } else if (isSlot) {
         // #1241 special case for v-slot: vuetify relies extensively on slot
         // names containing dots. v-slot doesn't have any modifiers and Vue 2.x