mirror of
https://github.com/exoticorn/curlywas.git
synced 2026-01-20 19:56:42 +01:00
add take left operator, sizecoded wasm4 skip ahead to 512 bytes
This commit is contained in:
11
src/emit.rs
11
src/emit.rs
@@ -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!(),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user