1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/wasm/functions.v

54 lines
890 B
V
Raw Permalink Normal View History

// Copyright (c) 2023 l-m.dev. All rights reserved.
// Use of this source code is governed by an MIT license
// that can be found in the LICENSE file.
module wasm
struct ImportCallPatch {
mod string
name string
mut:
pos int
}
struct FunctionCallPatch {
name string
mut:
pos int
}
type CallPatch = FunctionCallPatch | ImportCallPatch
struct FunctionGlobalPatch {
idx GlobalIndex
mut:
pos int
}
type FunctionPatch = CallPatch | FunctionGlobalPatch
struct FunctionLocal {
typ ValType
name ?string
}
pub struct Function {
tidx int
idx int
mut:
patches []FunctionPatch // sorted
label int
export bool
mod &Module = unsafe { nil }
code []u8
locals []FunctionLocal
pub:
name string
pub mut:
export_name ?string
}
// export_name sets the export name of the function to `name`
pub fn (mut func Function) export_name(name string) {
func.export_name = name
}