Skip to content

Commit 0abc1ef

Browse files
committed
chore: split creating a new Signature into separate methods when having
a single vs multiple return types
1 parent 47ba220 commit 0abc1ef

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

src/compiler.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)