diff --git a/ets2panda/compiler/core/ETSemitter.cpp b/ets2panda/compiler/core/ETSemitter.cpp index 3e6f38dbad8fa784e298f4348bcfddff21217661..6b02a7ef3257f6574fdcc74df094f23f904a60f3 100644 --- a/ets2panda/compiler/core/ETSemitter.cpp +++ b/ets2panda/compiler/core/ETSemitter.cpp @@ -136,6 +136,9 @@ static pandasm::Function GenScriptFunction(const ir::ScriptFunction *scriptFunc, if (scriptFunc->IsConstructor() || scriptFunc->IsStaticBlock()) { func.returnType = pandasm::Type(Signatures::PRIMITIVE_VOID, 0); + } else if (scriptFunc->Signature()->HasSignatureFlag(checker::SignatureFlags::THIS_RETURN_TYPE) && + scriptFunc->Signature()->HasSignatureFlag(checker::SignatureFlags::EXTENSION_FUNCTION)) { + func.returnType = PandasmTypeWithRank(paramScope->Params()[0]->TsType()); } else { func.returnType = PandasmTypeWithRank(scriptFunc->Signature()->ReturnType()); }