@@ -6800,7 +6800,7 @@ export class Compiler extends DiagnosticEmitter {
68006800 let usizeType = this . options . usizeType ;
68016801 let sizeTypeRef = usizeType . toRef ( ) ;
68026802 let parameterTypes = instance . signature . parameterTypes ;
6803- let returnType = instance . signature . returnType ;
6803+ let resultRefs = instance . signature . resultRefs ;
68046804 let hasReturnValue = instance . signature . numReturnTypes > 0 ;
68056805 let numParameters = parameterTypes . length ;
68066806 let tempIndex = 1 + parameterTypes . length ; // incl. `this`
@@ -6904,7 +6904,7 @@ export class Compiler extends DiagnosticEmitter {
69046904 let body : ExpressionRef ;
69056905 let instanceClass = instance . getBoundClassOrInterface ( ) ;
69066906 if ( ! instance . is ( CommonFlags . Abstract ) && ! ( instanceClass && instanceClass . kind == ElementKind . Interface ) ) {
6907- let paramExprs = new Array < ExpressionRef > ( numParameters ) ;
6907+ let paramExprs = new Array < ExpressionRef > ( numParameters + 1 ) ;
69086908 paramExprs [ 0 ] = module . local_get ( 0 , sizeTypeRef ) ; // this
69096909 for ( let i = 0 , k = parameterTypes . length ; i < k ; ++ i ) {
69106910 paramExprs [ 1 + i ] = module . local_get ( 1 + i , parameterTypes [ i ] . toRef ( ) ) ;
@@ -6927,7 +6927,7 @@ export class Compiler extends DiagnosticEmitter {
69276927 module . block ( null , [
69286928 builder . render ( tempIndex ) ,
69296929 body
6930- ] , resultRefs )
6930+ ] , stub . signature . resultRefs )
69316931 ) ;
69326932 stub . set ( CommonFlags . Compiled ) ;
69336933 }
0 commit comments