add take left operator, sizecoded wasm4 skip ahead to 512 bytes

This commit is contained in:
2021-11-11 21:20:18 +01:00
parent ee746d1cea
commit d3e882cba0
6 changed files with 74 additions and 32 deletions

View File

@@ -291,6 +291,10 @@ fn collect_locals_expr<'a>(expr: &ast::Expression, locals: &mut Vec<(String, ast
}
ast::Expr::Return { value: Some(value) } => collect_locals_expr(value, locals),
ast::Expr::Return { value: None } => (),
ast::Expr::First { value, drop } => {
collect_locals_expr(value, locals);
collect_locals_expr(drop, locals);
}
ast::Expr::Error => unreachable!(),
}
}
@@ -622,6 +626,13 @@ fn emit_expression<'a>(ctx: &mut FunctionContext<'a>, expr: &'a ast::Expression)
}
ctx.function.instruction(&Instruction::Return);
}
ast::Expr::First { value, drop } => {
emit_expression(ctx, value);
emit_expression(ctx, drop);
if drop.type_.is_some() {
ctx.function.instruction(&Instruction::Drop);
}
}
ast::Expr::Error => unreachable!(),
}
}