]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
wip: improve v-if codegen output formatting
authorEvan You <yyx990803@gmail.com>
Sun, 22 Sep 2019 21:06:46 +0000 (17:06 -0400)
committerEvan You <yyx990803@gmail.com>
Sun, 22 Sep 2019 21:06:46 +0000 (17:06 -0400)
packages/compiler-core/src/codegen.ts

index 4ce9c34adc69594b2ce9295ebf9e8605f343a684..a32b09c108fa3cf23ba10ce99ffa448760d0bf14 100644 (file)
@@ -48,7 +48,7 @@ export interface CodegenContext extends Required<CodegenOptions> {
   map?: SourceMapGenerator
   push(code: string, node?: CodegenNode): void
   indent(): void
-  deindent(): void
+  deindent(withoutNewLine?: boolean): void
   newline(): void
 }
 
@@ -100,8 +100,12 @@ function createCodegenContext(
     indent() {
       newline(++context.indentLevel)
     },
-    deindent() {
-      newline(--context.indentLevel)
+    deindent(withoutNewLine = false) {
+      if (withoutNewLine) {
+        --context.indentLevel
+      } else {
+        newline(--context.indentLevel)
+      }
     },
     newline() {
       newline(context.indentLevel)
@@ -300,7 +304,7 @@ function genIfBranch(
     } else {
       context.push(`null`)
     }
-    deindent()
+    deindent(true /* without newline */)
   } else {
     // v-else
     __DEV__ && assert(nextIndex === branches.length)