Explorar o código

Fix render codegen bug (#2954)

kazuya kawaguchi %!s(int64=10) %!d(string=hai) anos
pai
achega
6b4a617e6d
Modificáronse 2 ficheiros con 10 adicións e 0 borrados
  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 {
 function genRender (el: ASTElement): string {
+  if (!el.renderMethod) {
+    return 'void 0'
+  }
   const children = genChildren(el)
   const children = genChildren(el)
   return `${el.renderMethod}(${
   return `${el.renderMethod}(${
     el.renderArgs || ''
     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', () => {
   it('generate single slot', () => {
     assertCodegen(
     assertCodegen(
       '<slot></slot>',
       '<slot></slot>',