Sfoglia il codice sorgente

Fix render codegen bug (#2954)

kazuya kawaguchi 10 anni fa
parent
commit
6b4a617e6d
2 ha cambiato i file con 10 aggiunte e 0 eliminazioni
  1. 3 0
      src/compiler/codegen.js
  2. 7 0
      test/unit/modules/compiler/codegen.spec.js

+ 3 - 0
src/compiler/codegen.js

@@ -225,6 +225,9 @@ function genText (text: ASTText | ASTExpression): string {
 }
 
 function genRender (el: ASTElement): string {
+  if (!el.renderMethod) {
+    return 'void 0'
+  }
   const children = genChildren(el)
   return `${el.renderMethod}(${
     el.renderArgs || ''

+ 7 - 0
test/unit/modules/compiler/codegen.spec.js

@@ -117,6 +117,13 @@ describe('codegen', () => {
     )
   })
 
+  it('generate render tag with `method` is not dynamic binding', () => {
+    assertCodegen(
+      '<render method="onRender"></render>',
+      `with(this){return void 0}`
+    )
+  })
+
   it('generate single slot', () => {
     assertCodegen(
       '<slot></slot>',