Fixed an extra return opcode in empty functions
This commit is contained in:
@@ -1464,7 +1464,7 @@ static void writeBytecodeBody(Toy_Bytecode* mb, Toy_Ast* ast) {
|
||||
writeBytecodeFromAst(&mb, ast);
|
||||
|
||||
//append an extra return if needed
|
||||
if (mb->codeCount <= 4 || mb->code[mb->codeCount - 4] != TOY_OPCODE_RETURN) { //if empty or no return statement
|
||||
if (mb->codeCount < 4 || mb->code[mb->codeCount - 4] != TOY_OPCODE_RETURN) { //if empty or no return statement
|
||||
EMIT_BYTE(&mb, code, TOY_OPCODE_RETURN); //end terminator
|
||||
EMIT_BYTE(&mb, code, 0); //4-byte alignment
|
||||
EMIT_BYTE(&mb, code, 0);
|
||||
|
||||
Reference in New Issue
Block a user