UNPKG

@grain/binaryen.ml

Version:

OCaml bindings for Binaryen.

1,791 lines (1,577 loc) 52 kB
//Provides: to_option function to_option(x) { if (x) { return [0, x]; } else { return 0; } } //Provides: caml_binaryen_expression_get_id //Requires: Binaryen function caml_binaryen_expression_get_id(expr) { return Binaryen.getExpressionId(expr); } //Provides: caml_binaryen_null_expression function caml_binaryen_null_expression() { return null; } //Provides: caml_binaryen_block //Requires: caml_jsstring_of_string //Requires: caml_list_to_js_array function caml_binaryen_block(wasm_mod, name, children, return_type) { return wasm_mod.block( caml_jsstring_of_string(name), caml_list_to_js_array(children), return_type ); } //Provides: caml_binaryen_if function caml_binaryen_if(wasm_mod, cond, if_true, if_false) { return wasm_mod.if(cond, if_true, if_false); } //Provides: caml_binaryen_loop //Requires: caml_jsstring_of_string function caml_binaryen_loop(wasm_mod, name, body) { return wasm_mod.loop(caml_jsstring_of_string(name), body); } //Provides: caml_binaryen_break //Requires: caml_jsstring_of_string function caml_binaryen_break(wasm_mod, name, cond, res) { return wasm_mod.br(caml_jsstring_of_string(name), cond, res); } //Provides: caml_binaryen_switch //Requires: caml_jsstring_of_string //Requires: caml_list_to_js_array function caml_binaryen_switch(wasm_mod, names, default_name, cond, value) { return wasm_mod.switch( caml_list_to_js_array(names).map(caml_jsstring_of_string), caml_jsstring_of_string(default_name), cond, value ); } //Provides: caml_binaryen_call //Requires: caml_jsstring_of_string //Requires: caml_list_to_js_array function caml_binaryen_call(wasm_mod, name, params, return_typ) { return wasm_mod.call( caml_jsstring_of_string(name), caml_list_to_js_array(params), return_typ ); } //Provides: caml_binaryen_call_indirect //Requires: caml_jsstring_of_string //Requires: caml_list_to_js_array function caml_binaryen_call_indirect( wasm_mod, table, target, params, params_typ, return_typ ) { return wasm_mod.call_indirect( caml_jsstring_of_string(table), target, caml_list_to_js_array(params), params_typ, return_typ ); } //Provides: caml_binaryen_call_indirect__bytecode //Requires: caml_binaryen_call_indirect function caml_binaryen_call_indirect__bytecode() { return caml_binaryen_call_indirect( arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ); } //Provides: caml_binaryen_return_call //Requires: caml_jsstring_of_string //Requires: caml_list_to_js_array function caml_binaryen_return_call(wasm_mod, name, params, return_typ) { return wasm_mod.return_call( caml_jsstring_of_string(name), caml_list_to_js_array(params), return_typ ); } //Provides: caml_binaryen_return_call_indirect //Requires: caml_jsstring_of_string //Requires: caml_list_to_js_array function caml_binaryen_return_call_indirect( wasm_mod, table, target, params, params_typ, return_typ ) { return wasm_mod.return_call_indirect( caml_jsstring_of_string(table), target, caml_list_to_js_array(params), params_typ, return_typ ); } //Provides: caml_binaryen_return_call_indirect__bytecode //Requires: caml_binaryen_return_call_indirect function caml_binaryen_return_call_indirect__bytecode() { return caml_binaryen_return_call_indirect( arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ); } //Provides: caml_binaryen_local_get function caml_binaryen_local_get(wasm_mod, slot, typ) { return wasm_mod.local.get(slot, typ); } //Provides: caml_binaryen_local_set function caml_binaryen_local_set(wasm_mod, slot, value) { return wasm_mod.local.set(slot, value); } //Provides: caml_binaryen_local_tee function caml_binaryen_local_tee(wasm_mod, slot, value, typ) { return wasm_mod.local.tee(slot, value, typ); } //Provides: caml_binaryen_global_get //Requires: caml_jsstring_of_string function caml_binaryen_global_get(wasm_mod, name, typ) { return wasm_mod.global.get(caml_jsstring_of_string(name), typ); } //Provides: caml_binaryen_global_set //Requires: caml_jsstring_of_string function caml_binaryen_global_set(wasm_mod, name, value) { return wasm_mod.global.set(caml_jsstring_of_string(name), value); } //Provides: caml_binaryen_load //Requires: Binaryen //Requires: caml_jsstring_of_string //Requires: caml_failwith function caml_binaryen_load( wasm_mod, bytes, signed, offset, align, typ, ptr, memoryName ) { var name = caml_jsstring_of_string(memoryName); switch (typ) { case Binaryen.i32: { // Using four bytes doesn't matter if it is signed or unsigned if (bytes === 4) { return wasm_mod.i32.load(offset, align, ptr, name); } if (signed) { if (bytes === 1) { return wasm_mod.i32.load8_s(offset, align, ptr, name); } if (bytes === 2) { return wasm_mod.i32.load16_s(offset, align, ptr, name); } } else { if (bytes === 1) { return wasm_mod.i32.load8_u(offset, align, ptr, name); } if (bytes === 2) { return wasm_mod.i32.load16_u(offset, align, ptr, name); } } break; } case Binaryen.i64: { // Using eight bytes doesn't matter if it is signed or unsigned if (bytes === 8) { return wasm_mod.i64.load(offset, align, ptr, name); } if (signed) { if (bytes === 1) { return wasm_mod.i64.load8_s(offset, align, ptr, name); } if (bytes === 2) { return wasm_mod.i64.load16_s(offset, align, ptr, name); } if (bytes === 4) { return wasm_mod.i64.load32_s(offset, align, ptr, name); } } else { if (bytes === 1) { return wasm_mod.i64.load8_u(offset, align, ptr, name); } if (bytes === 2) { return wasm_mod.i64.load16_u(offset, align, ptr, name); } if (bytes === 4) { return wasm_mod.i64.load32_u(offset, align, ptr, name); } } break; } case Binaryen.f32: { return wasm_mod.f32.load(offset, align, ptr, name); } case Binaryen.f64: { return wasm_mod.f64.load(offset, align, ptr, name); } case Binaryen.v128: { return wasm_mod.v128.load(offset, align, ptr, name); } default: { caml_failwith("Invalid arguments to BinaryenLoad"); } } } //Provides: caml_binaryen_load__bytecode //Requires: caml_binaryen_load function caml_binaryen_load__bytecode() { return caml_binaryen_load( arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7] ); } //Provides: caml_binaryen_store //Requires: Binaryen //Requires: caml_jsstring_of_string //Requires: caml_failwith function caml_binaryen_store( wasm_mod, bytes, offset, align, ptr, value, typ, memoryName ) { var name = caml_jsstring_of_string(memoryName); switch (typ) { case Binaryen.i32: { if (bytes === 4) { return wasm_mod.i32.store(offset, align, ptr, value, name); } if (bytes === 1) { return wasm_mod.i32.store8(offset, align, ptr, value, name); } if (bytes === 2) { return wasm_mod.i32.store16(offset, align, ptr, value, name); } break; } case Binaryen.i64: { if (bytes === 8) { return wasm_mod.i64.store(offset, align, ptr, value, name); } if (bytes === 1) { return wasm_mod.i64.store8(offset, align, ptr, value, name); } if (bytes === 2) { return wasm_mod.i64.store16(offset, align, ptr, value, name); } if (bytes === 4) { return wasm_mod.i64.store32(offset, align, ptr, value, name); } break; } case Binaryen.f32: { return wasm_mod.f32.store(offset, align, ptr, value, name); } case Binaryen.f64: { return wasm_mod.f64.store(offset, align, ptr, value, name); } case Binaryen.v128: { return wasm_mod.v128.store(offset, align, ptr, value, name); } default: { caml_failwith("Invalid arguments to BinaryenStore"); } } } //Provides: caml_binaryen_store__bytecode //Requires: caml_binaryen_store function caml_binaryen_store__bytecode() { return caml_binaryen_store( arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6], arguments[7] ); } //Provides: caml_binaryen_const //Requires: caml_int64_lo32, caml_int64_hi32 //Requires: caml_failwith function caml_binaryen_const(wasm_mod, lit) { if (lit.type === "int32") { return wasm_mod.i32.const(lit.value); } if (lit.type === "int64") { return wasm_mod.i64.const( caml_int64_lo32(lit.value), caml_int64_hi32(lit.value) ); } if (lit.type === "float64") { return wasm_mod.f64.const(lit.value); } if (lit.type === "float32_bits") { return wasm_mod.f32.const_bits(lit.value); } if (lit.type === "float64_bits") { return wasm_mod.f64.const_bits( caml_int64_lo32(lit.value), caml_int64_hi32(lit.value) ); } caml_failwith("invalid Literal for Binaryen.Const.make"); } //Provides: caml_binaryen_unary //Requires: Binaryen function caml_binaryen_unary(wasm_mod, op, p) { return Binaryen._BinaryenUnary(wasm_mod, op, p); } //Provides: caml_binaryen_binary //Requires: Binaryen function caml_binaryen_binary(wasm_mod, op, p1, p2) { return Binaryen._BinaryenBinary(wasm_mod, op, p1, p2); } //Provides: caml_binaryen_select function caml_binaryen_select(wasm_mod, cond, if_true, if_false, typ) { return wasm_mod.select(cond, if_true, if_false, typ); } //Provides: caml_binaryen_drop function caml_binaryen_drop(wasm_mod, value) { return wasm_mod.drop(value); } //Provides: caml_binaryen_return function caml_binaryen_return(wasm_mod, value) { return wasm_mod.return(value); } //Provides: caml_binaryen_memory_size //Requires: caml_jsstring_of_string, caml_js_from_bool function caml_binaryen_memory_size(wasm_mod, memoryName, memoryIs64) { return wasm_mod.memory.size( caml_jsstring_of_string(memoryName), caml_js_from_bool(memoryIs64) ); } //Provides: caml_binaryen_memory_grow //Requires: caml_jsstring_of_string, caml_js_from_bool function caml_binaryen_memory_grow(wasm_mod, value, memoryName, memoryIs64) { return wasm_mod.memory.grow( value, caml_jsstring_of_string(memoryName), caml_js_from_bool(memoryIs64) ); } //Provides: caml_binaryen_nop function caml_binaryen_nop(wasm_mod) { return wasm_mod.nop(); } //Provides: caml_binaryen_unreachable function caml_binaryen_unreachable(wasm_mod) { return wasm_mod.unreachable(); } //Provides: caml_binaryen_memory_init //Requires: caml_jsstring_of_string function caml_binaryen_memory_init( wasm_mod, segment, dest, offset, size, memoryName ) { return wasm_mod.memory.init( caml_jsstring_of_string(segment), dest, offset, size, caml_jsstring_of_string(memoryName) ); } //Provides: caml_binaryen_memory_init__bytecode //Requires: caml_binaryen_memory_init function caml_binaryen_memory_init__bytecode() { return caml_binaryen_memory_init( arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ); } //Provides: caml_binaryen_data_drop //Requires: caml_jsstring_of_string function caml_binaryen_data_drop(wasm_mod, segment) { return wasm_mod.data.drop(caml_jsstring_of_string(segment)); } //Provides: caml_binaryen_memory_copy //Requires: caml_jsstring_of_string function caml_binaryen_memory_copy( wasm_mod, dest, source, size, dest_memory, source_memory ) { return wasm_mod.memory.copy( dest, source, size, caml_jsstring_of_string(dest_memory), caml_jsstring_of_string(source_memory) ); } //Provides: caml_binaryen_memory_copy__bytecode //Requires: caml_binaryen_memory_copy function caml_binaryen_memory_copy__bytecode() { return caml_binaryen_memory_copy( arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ); } //Provides: caml_binaryen_memory_fill //Requires: caml_jsstring_of_string function caml_binaryen_memory_fill(wasm_mod, dest, value, size, memoryName) { return wasm_mod.memory.fill( dest, value, size, caml_jsstring_of_string(memoryName) ); } //Provides: caml_binaryen_tuple_make //Requires: caml_list_to_js_array function caml_binaryen_tuple_make(wasm_mod, operands) { return wasm_mod.tuple.make(caml_list_to_js_array(operands)); } //Provides: caml_binaryen_tuple_extract function caml_binaryen_tuple_extract(wasm_mod, tuple, index) { return wasm_mod.tuple.extract(tuple, index); } //Provides: caml_binaryen_pop //Requires: Binaryen function caml_binaryen_pop(wasm_mod, typ) { return Binaryen._BinaryenPop(wasm_mod, typ); } //Provides: caml_binaryen_ref_i31 function caml_binaryen_ref_i31(wasm_mod, typ) { return wasm_mod.ref.i31(typ); } //Provides: caml_binaryen_i31_get function caml_binaryen_i31_get(wasm_mod, typ, signed) { if (signed) { return wasm_mod.i31.get_s(typ); } else { return wasm_mod.i31.get_u(typ); } } //Provides: caml_binaryen_expression_id_invalid //Requires: Binaryen function caml_binaryen_expression_id_invalid() { return Binaryen.InvalidId; } //Provides: caml_binaryen_expression_id_nop //Requires: Binaryen function caml_binaryen_expression_id_nop() { return Binaryen.NopId; } //Provides: caml_binaryen_expression_id_block //Requires: Binaryen function caml_binaryen_expression_id_block() { return Binaryen.BlockId; } //Provides: caml_binaryen_expression_id_if //Requires: Binaryen function caml_binaryen_expression_id_if() { return Binaryen.IfId; } //Provides: caml_binaryen_expression_id_loop //Requires: Binaryen function caml_binaryen_expression_id_loop() { return Binaryen.LoopId; } //Provides: caml_binaryen_expression_id_break //Requires: Binaryen function caml_binaryen_expression_id_break() { return Binaryen.BreakId; } //Provides: caml_binaryen_expression_id_switch //Requires: Binaryen function caml_binaryen_expression_id_switch() { return Binaryen.SwitchId; } //Provides: caml_binaryen_expression_id_call //Requires: Binaryen function caml_binaryen_expression_id_call() { return Binaryen.CallId; } //Provides: caml_binaryen_expression_id_call_indirect //Requires: Binaryen function caml_binaryen_expression_id_call_indirect() { return Binaryen.CallIndirectId; } //Provides: caml_binaryen_expression_id_local_get //Requires: Binaryen function caml_binaryen_expression_id_local_get() { return Binaryen.LocalGetId; } //Provides: caml_binaryen_expression_id_local_set //Requires: Binaryen function caml_binaryen_expression_id_local_set() { return Binaryen.LocalSetId; } //Provides: caml_binaryen_expression_id_global_get //Requires: Binaryen function caml_binaryen_expression_id_global_get() { return Binaryen.GlobalGetId; } //Provides: caml_binaryen_expression_id_global_set //Requires: Binaryen function caml_binaryen_expression_id_global_set() { return Binaryen.GlobalSetId; } //Provides: caml_binaryen_expression_id_load //Requires: Binaryen function caml_binaryen_expression_id_load() { return Binaryen.LoadId; } //Provides: caml_binaryen_expression_id_store //Requires: Binaryen function caml_binaryen_expression_id_store() { return Binaryen.StoreId; } //Provides: caml_binaryen_expression_id_atomic_rmw //Requires: Binaryen function caml_binaryen_expression_id_atomic_rmw() { return Binaryen.AtomicRMWId; } //Provides: caml_binaryen_expression_id_atomic_cmpxchg //Requires: Binaryen function caml_binaryen_expression_id_atomic_cmpxchg() { return Binaryen.AtomicCmpxchgId; } //Provides: caml_binaryen_expression_id_atomic_wait //Requires: Binaryen function caml_binaryen_expression_id_atomic_wait() { return Binaryen.AtomicWaitId; } //Provides: caml_binaryen_expression_id_atomic_notify //Requires: Binaryen function caml_binaryen_expression_id_atomic_notify() { return Binaryen.AtomicNotifyId; } //Provides: caml_binaryen_expression_id_atomic_fence //Requires: Binaryen function caml_binaryen_expression_id_atomic_fence() { return Binaryen.AtomicFenceId; } //Provides: caml_binaryen_expression_id_simd_extract //Requires: Binaryen function caml_binaryen_expression_id_simd_extract() { return Binaryen.SIMDExtractId; } //Provides: caml_binaryen_expression_id_simd_replace //Requires: Binaryen function caml_binaryen_expression_id_simd_replace() { return Binaryen.SIMDReplaceId; } //Provides: caml_binaryen_expression_id_simd_shuffle //Requires: Binaryen function caml_binaryen_expression_id_simd_shuffle() { return Binaryen.SIMDShuffleId; } //Provides: caml_binaryen_expression_id_simd_ternary //Requires: Binaryen function caml_binaryen_expression_id_simd_ternary() { return Binaryen.SIMDTernaryId; } //Provides: caml_binaryen_expression_id_simd_shift //Requires: Binaryen function caml_binaryen_expression_id_simd_shift() { return Binaryen.SIMDShiftId; } //Provides: caml_binaryen_expression_id_simd_load //Requires: Binaryen function caml_binaryen_expression_id_simd_load() { return Binaryen.SIMDLoadId; } //Provides: caml_binaryen_expression_id_simd_load_store_lane //Requires: Binaryen function caml_binaryen_expression_id_simd_load_store_lane() { return Binaryen.SIMDLoadStoreLaneId; } //Provides: caml_binaryen_expression_id_memory_init //Requires: Binaryen function caml_binaryen_expression_id_memory_init() { return Binaryen.MemoryInitId; } //Provides: caml_binaryen_expression_id_data_drop //Requires: Binaryen function caml_binaryen_expression_id_data_drop() { return Binaryen.DataDropId; } //Provides: caml_binaryen_expression_id_memory_copy //Requires: Binaryen function caml_binaryen_expression_id_memory_copy() { return Binaryen.MemoryCopyId; } //Provides: caml_binaryen_expression_id_memory_fill //Requires: Binaryen function caml_binaryen_expression_id_memory_fill() { return Binaryen.MemoryFillId; } //Provides: caml_binaryen_expression_id_const //Requires: Binaryen function caml_binaryen_expression_id_const() { return Binaryen.ConstId; } //Provides: caml_binaryen_expression_id_unary //Requires: Binaryen function caml_binaryen_expression_id_unary() { return Binaryen.UnaryId; } //Provides: caml_binaryen_expression_id_binary //Requires: Binaryen function caml_binaryen_expression_id_binary() { return Binaryen.BinaryId; } //Provides: caml_binaryen_expression_id_select //Requires: Binaryen function caml_binaryen_expression_id_select() { return Binaryen.SelectId; } //Provides: caml_binaryen_expression_id_drop //Requires: Binaryen function caml_binaryen_expression_id_drop() { return Binaryen.DropId; } //Provides: caml_binaryen_expression_id_return //Requires: Binaryen function caml_binaryen_expression_id_return() { return Binaryen.ReturnId; } //Provides: caml_binaryen_expression_id_memory_size //Requires: Binaryen function caml_binaryen_expression_id_memory_size() { return Binaryen.MemorySizeId; } //Provides: caml_binaryen_expression_id_memory_grow //Requires: Binaryen function caml_binaryen_expression_id_memory_grow() { return Binaryen.MemoryGrowId; } //Provides: caml_binaryen_expression_id_unreachable //Requires: Binaryen function caml_binaryen_expression_id_unreachable() { return Binaryen.UnreachableId; } //Provides: caml_binaryen_expression_id_pop //Requires: Binaryen function caml_binaryen_expression_id_pop() { return Binaryen.PopId; } //Provides: caml_binaryen_expression_id_ref_null //Requires: Binaryen function caml_binaryen_expression_id_ref_null() { return Binaryen.RefNullId; } //Provides: caml_binaryen_expression_id_ref_is_null //Requires: Binaryen function caml_binaryen_expression_id_ref_is_null() { return Binaryen.RefIsNullId; } //Provides: caml_binaryen_expression_id_ref_as //Requires: Binaryen function caml_binaryen_expression_id_ref_as() { return Binaryen.RefAsId; } //Provides: caml_binaryen_expression_id_ref_func //Requires: Binaryen function caml_binaryen_expression_id_ref_func() { return Binaryen.RefFuncId; } //Provides: caml_binaryen_expression_id_ref_eq //Requires: Binaryen function caml_binaryen_expression_id_ref_eq() { return Binaryen.RefEqId; } //Provides: caml_binaryen_expression_id_try //Requires: Binaryen function caml_binaryen_expression_id_try() { return Binaryen.TryId; } //Provides: caml_binaryen_expression_id_throw //Requires: Binaryen function caml_binaryen_expression_id_throw() { return Binaryen.ThrowId; } //Provides: caml_binaryen_expression_id_rethrow //Requires: Binaryen function caml_binaryen_expression_id_rethrow() { return Binaryen.RethrowId; } //Provides: caml_binaryen_expression_id_tuple_make //Requires: Binaryen function caml_binaryen_expression_id_tuple_make() { return Binaryen.TupleMakeId; } //Provides: caml_binaryen_expression_id_tuple_extract //Requires: Binaryen function caml_binaryen_expression_id_tuple_extract() { return Binaryen.TupleExtractId; } //Provides: caml_binaryen_expression_id_ref_i31 //Requires: Binaryen function caml_binaryen_expression_id_ref_i31() { return Binaryen.RefI31Id; } //Provides: caml_binaryen_expression_id_i31_get //Requires: Binaryen function caml_binaryen_expression_id_i31_get() { return Binaryen.I31GetId; } //Provides: caml_binaryen_expression_id_call_ref //Requires: Binaryen function caml_binaryen_expression_id_call_ref() { return Binaryen.CallRefId; } //Provides: caml_binaryen_expression_id_ref_test //Requires: Binaryen function caml_binaryen_expression_id_ref_test() { return Binaryen.RefTestId; } //Provides: caml_binaryen_expression_id_ref_cast //Requires: Binaryen function caml_binaryen_expression_id_ref_cast() { return Binaryen.RefCastId; } //Provides: caml_binaryen_expression_id_br_on //Requires: Binaryen function caml_binaryen_expression_id_br_on() { return Binaryen.BrOnId; } //Provides: caml_binaryen_expression_id_struct_new //Requires: Binaryen function caml_binaryen_expression_id_struct_new() { return Binaryen.StructNewId; } //Provides: caml_binaryen_expression_id_struct_get //Requires: Binaryen function caml_binaryen_expression_id_struct_get() { return Binaryen.StructGetId; } //Provides: caml_binaryen_expression_id_struct_set //Requires: Binaryen function caml_binaryen_expression_id_struct_set() { return Binaryen.StructSetId; } //Provides: caml_binaryen_expression_id_array_new //Requires: Binaryen function caml_binaryen_expression_id_array_new() { return Binaryen.ArrayNewId; } //Provides: caml_binaryen_expression_id_array_get //Requires: Binaryen function caml_binaryen_expression_id_array_get() { return Binaryen.ArrayGetId; } //Provides: caml_binaryen_expression_id_array_set //Requires: Binaryen function caml_binaryen_expression_id_array_set() { return Binaryen.ArraySetId; } //Provides: caml_binaryen_expression_id_array_len //Requires: Binaryen function caml_binaryen_expression_id_array_len() { return Binaryen.ArrayLenId; } // Expression operations //Provides: caml_binaryen_expression_print //Requires: Binaryen //Requires: caml_string_of_jsstring //Requires: caml_ml_output, caml_ml_string_length function caml_binaryen_expression_print(expr) { var text = Binaryen.emitText(expr); var chanid = 1; // stdout var s = caml_string_of_jsstring(text); caml_ml_output(chanid, s, 0, caml_ml_string_length(s)); } //Provides: caml_binaryen_expression_finalize //Requires: Binaryen function caml_binaryen_expression_finalize(exp) { Binaryen.Expression.finalize(exp); } //Provides: caml_binaryen_expression_copy function caml_binaryen_expression_copy(exp, wasm_mod) { return wasm_mod.copyExpression(exp); } // Block operations //Provides: caml_binaryen_block_get_name //Requires: Binaryen //Requires: to_option //Requires: caml_string_of_jsstring function caml_binaryen_block_get_name(exp) { var name = Binaryen.Block.getName(exp); var str = name != null ? caml_string_of_jsstring(name) : null; return to_option(str); } //Provides: caml_binaryen_block_set_name //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_block_set_name(exp, name) { return Binaryen.Block.setName(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_block_get_num_children //Requires: Binaryen function caml_binaryen_block_get_num_children(exp) { return Binaryen.Block.getNumChildren(exp); } //Provides: caml_binaryen_block_get_child_at //Requires: Binaryen function caml_binaryen_block_get_child_at(exp, index) { return Binaryen.Block.getChildAt(exp, index); } //Provides: caml_binaryen_block_set_child_at //Requires: Binaryen function caml_binaryen_block_set_child_at(exp, index, child) { return Binaryen.Block.setChildAt(exp, index, child); } //Provides: caml_binaryen_block_append_child //Requires: Binaryen function caml_binaryen_block_append_child(exp, child) { return Binaryen.Block.appendChild(exp, child); } //Provides: caml_binaryen_block_insert_child_at //Requires: Binaryen function caml_binaryen_block_insert_child_at(exp, index, child) { return Binaryen.Block.insertChildAt(exp, index, child); } //Provides: caml_binaryen_block_remove_child_at //Requires: Binaryen function caml_binaryen_block_remove_child_at(exp, index) { return Binaryen.Block.removeChildAt(exp, index); } // If operations //Provides: caml_binaryen_if_get_condition //Requires: Binaryen function caml_binaryen_if_get_condition(exp) { return Binaryen.If.getCondition(exp); } //Provides: caml_binaryen_if_set_condition //Requires: Binaryen function caml_binaryen_if_set_condition(exp, cond) { return Binaryen.If.setCondition(exp, cond); } //Provides: caml_binaryen_if_get_if_true //Requires: Binaryen function caml_binaryen_if_get_if_true(exp) { return Binaryen.If.getIfTrue(exp); } //Provides: caml_binaryen_if_set_if_true //Requires: Binaryen function caml_binaryen_if_set_if_true(exp, child) { return Binaryen.If.setIfTrue(exp, child); } //Provides: caml_binaryen_if_get_if_false //Requires: Binaryen //Requires: to_option function caml_binaryen_if_get_if_false(exp) { return to_option(Binaryen.If.getIfFalse(exp)); } //Provides: caml_binaryen_if_set_if_false //Requires: Binaryen function caml_binaryen_if_set_if_false(exp, child) { return Binaryen.If.setIfFalse(exp, child); } // Loop operations //Provides: caml_binaryen_loop_get_name //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_loop_get_name(exp) { return caml_string_of_jsstring(Binaryen.Loop.getName(exp)); } //Provides: caml_binaryen_loop_set_name //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_loop_set_name(exp, name) { return Binaryen.Loop.setName(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_loop_get_body //Requires: Binaryen function caml_binaryen_loop_get_body(exp) { return Binaryen.Loop.getBody(exp); } //Provides: caml_binaryen_loop_set_body //Requires: Binaryen function caml_binaryen_loop_set_body(exp, child) { return Binaryen.Loop.setBody(exp, child); } // Break operations //Provides: caml_binaryen_break_get_name //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_break_get_name(exp) { return caml_string_of_jsstring(Binaryen.Break.getName(exp)); } //Provides: caml_binaryen_break_set_name //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_break_set_name(exp, name) { return Binaryen.Break.setName(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_break_get_condition //Requires: Binaryen //Requires: to_option function caml_binaryen_break_get_condition(exp) { return to_option(Binaryen.Break.getCondition(exp)); } //Provides: caml_binaryen_break_set_condition //Requires: Binaryen function caml_binaryen_break_set_condition(exp, child) { return Binaryen.Break.setCondition(exp, child); } //Provides: caml_binaryen_break_get_value //Requires: Binaryen //Requires: to_option function caml_binaryen_break_get_value(exp) { return to_option(Binaryen.Break.getValue(exp)); } //Provides: caml_binaryen_break_set_value //Requires: Binaryen function caml_binaryen_break_set_value(exp, child) { return Binaryen.Break.setValue(exp, child); } // Switch operations //Provides: caml_binaryen_switch_get_num_names //Requires: Binaryen function caml_binaryen_switch_get_num_names(exp) { return Binaryen.Switch.getNumNames(exp); } //Provides: caml_binaryen_switch_get_name_at //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_switch_get_name_at(exp, index) { return caml_string_of_jsstring(Binaryen.Switch.getNameAt(exp, index)); } //Provides: caml_binaryen_switch_set_name_at //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_switch_set_name_at(exp, index, name) { return Binaryen.Switch.setNameAt(exp, index, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_switch_append_name //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_switch_append_name(exp, name) { return Binaryen.Switch.appendName(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_switch_insert_name_at //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_switch_insert_name_at(exp, index, name) { return Binaryen.Switch.insertNameAt( exp, index, caml_jsstring_of_string(name) ); } //Provides: caml_binaryen_switch_remove_name_at //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_switch_remove_name_at(exp, index) { return caml_string_of_jsstring(Binaryen.Switch.removeNameAt(exp, index)); } //Provides: caml_binaryen_switch_get_default_name //Requires: Binaryen //Requires: to_option //Requires: caml_string_of_jsstring function caml_binaryen_switch_get_default_name(exp) { var name = Binaryen.Switch.getDefaultName(exp); var str = name != null ? caml_string_of_jsstring(name) : null; return to_option(str); } //Provides: caml_binaryen_switch_set_default_name //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_switch_set_default_name(exp, name) { return Binaryen.Switch.setDefaultName(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_switch_get_condition //Requires: Binaryen function caml_binaryen_switch_get_condition(exp) { return Binaryen.Switch.getCondition(exp); } //Provides: caml_binaryen_switch_set_condition //Requires: Binaryen function caml_binaryen_switch_set_condition(exp, child) { return Binaryen.Switch.setCondition(exp, child); } //Provides: caml_binaryen_switch_get_value //Requires: Binaryen //Requires: to_option function caml_binaryen_switch_get_value(exp) { return to_option(Binaryen.Switch.getValue(exp)); } //Provides: caml_binaryen_switch_set_value //Requires: Binaryen function caml_binaryen_switch_set_value(exp, child) { return Binaryen.Switch.setValue(exp, child); } //Provides: caml_binaryen_call_get_target //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_call_get_target(exp) { return caml_string_of_jsstring(Binaryen.Call.getTarget(exp)); } //Provides: caml_binaryen_call_set_target //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_call_set_target(exp, name) { return Binaryen.Call.setTarget(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_call_get_num_operands //Requires: Binaryen function caml_binaryen_call_get_num_operands(exp) { return Binaryen.Call.getNumOperands(exp); } //Provides: caml_binaryen_call_get_operand_at //Requires: Binaryen function caml_binaryen_call_get_operand_at(exp, index) { return Binaryen.Call.getOperandAt(exp, index); } //Provides: caml_binaryen_call_set_operand_at //Requires: Binaryen function caml_binaryen_call_set_operand_at(exp, index, operand) { return Binaryen.Call.setOperandAt(exp, index, operand); } //Provides: caml_binaryen_call_append_operand //Requires: Binaryen function caml_binaryen_call_append_operand(exp, operand) { return Binaryen.Call.appendOperand(exp, operand); } //Provides: caml_binaryen_call_insert_operand_at //Requires: Binaryen function caml_binaryen_call_insert_operand_at(exp, index, operand) { return Binaryen.Call.insertOperandAt(exp, index, operand); } //Provides: caml_binaryen_call_remove_operand_at //Requires: Binaryen function caml_binaryen_call_remove_operand_at(exp, index) { return Binaryen.Call.removeOperandAt(exp, index); } //Provides: caml_binaryen_call_is_return //Requires: Binaryen //Requires: caml_js_to_bool function caml_binaryen_call_is_return(exp) { return caml_js_to_bool(Binaryen.Call.isReturn(exp)); } //Provides: caml_binaryen_call_set_return //Requires: Binaryen //Requires: caml_js_from_bool function caml_binaryen_call_set_return(exp, isReturn) { return Binaryen.Call.setReturn(exp, caml_js_from_bool(isReturn)); } //Provides: caml_binaryen_call_indirect_get_target //Requires: Binaryen function caml_binaryen_call_indirect_get_target(exp) { return Binaryen.CallIndirect.getTarget(exp); } //Provides: caml_binaryen_call_indirect_set_target //Requires: Binaryen function caml_binaryen_call_indirect_set_target(exp, target) { return Binaryen.CallIndirect.setTarget(exp, target); } //Provides: caml_binaryen_call_indirect_get_table //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_call_indirect_get_table(exp) { return caml_string_of_jsstring(Binaryen.CallIndirect.getTable(exp)); } //Provides: caml_binaryen_call_indirect_set_table //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_call_indirect_set_table(exp, name) { return Binaryen.CallIndirect.setTable(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_call_indirect_get_num_operands //Requires: Binaryen function caml_binaryen_call_indirect_get_num_operands(exp) { return Binaryen.CallIndirect.getNumOperands(exp); } //Provides: caml_binaryen_call_indirect_get_operand_at //Requires: Binaryen function caml_binaryen_call_indirect_get_operand_at(exp, index) { return Binaryen.CallIndirect.getOperandAt(exp, index); } //Provides: caml_binaryen_call_indirect_set_operand_at //Requires: Binaryen function caml_binaryen_call_indirect_set_operand_at(exp, index, operand) { return Binaryen.CallIndirect.setOperandAt(exp, index, operand); } //Provides: caml_binaryen_call_indirect_append_operand //Requires: Binaryen function caml_binaryen_call_indirect_append_operand(exp, operand) { return Binaryen.CallIndirect.appendOperand(exp, operand); } //Provides: caml_binaryen_call_indirect_insert_operand_at //Requires: Binaryen function caml_binaryen_call_indirect_insert_operand_at(exp, index, operand) { return Binaryen.CallIndirect.insertOperandAt(exp, index, operand); } //Provides: caml_binaryen_call_indirect_remove_operand_at //Requires: Binaryen function caml_binaryen_call_indirect_remove_operand_at(exp, index) { return Binaryen.CallIndirect.removeOperandAt(exp, index); } //Provides: caml_binaryen_call_indirect_is_return //Requires: Binaryen //Requires: caml_js_to_bool function caml_binaryen_call_indirect_is_return(exp) { return caml_js_to_bool(Binaryen.CallIndirect.isReturn(exp)); } //Provides: caml_binaryen_call_indirect_set_return //Requires: Binaryen //Requires: caml_js_from_bool function caml_binaryen_call_indirect_set_return(exp, isReturn) { return Binaryen.CallIndirect.setReturn(exp, caml_js_from_bool(isReturn)); } //Provides: caml_binaryen_local_set_get_value //Requires: Binaryen function caml_binaryen_local_set_get_value(exp) { return Binaryen.LocalSet.getValue(exp); } //Provides: caml_binaryen_local_set_set_value //Requires: Binaryen function caml_binaryen_local_set_set_value(exp, value) { return Binaryen.LocalSet.setValue(exp, value); } //Provides: caml_binaryen_global_get_get_name //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_global_get_get_name(exp) { return caml_string_of_jsstring(Binaryen.GlobalGet.getName(exp)); } //Provides: caml_binaryen_global_get_set_name //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_global_get_set_name(exp, name) { return Binaryen.GlobalGet.setName(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_global_set_get_name //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_global_set_get_name(exp) { return caml_string_of_jsstring(Binaryen.GlobalSet.getName(exp)); } //Provides: caml_binaryen_global_set_set_name //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_global_set_set_name(exp, name) { return Binaryen.GlobalSet.setName(exp, caml_jsstring_of_string(name)); } //Provides: caml_binaryen_global_set_get_value //Requires: Binaryen function caml_binaryen_global_set_get_value(exp) { return Binaryen.GlobalSet.getValue(exp); } //Provides: caml_binaryen_global_set_set_value //Requires: Binaryen function caml_binaryen_global_set_set_value(exp, value) { return Binaryen.GlobalSet.setValue(exp, value); } //Provides: caml_binaryen_memory_grow_get_delta //Requires: Binaryen function caml_binaryen_memory_grow_get_delta(exp) { return Binaryen.MemoryGrow.getDelta(exp); } //Provides: caml_binaryen_memory_grow_set_delta //Requires: Binaryen function caml_binaryen_memory_grow_set_delta(exp, delta) { return Binaryen.MemoryGrow.setDelta(exp, delta); } //Provides: caml_binaryen_load_get_ptr //Requires: Binaryen function caml_binaryen_load_get_ptr(exp) { return Binaryen.Load.getPtr(exp); } //Provides: caml_binaryen_load_set_ptr //Requires: Binaryen function caml_binaryen_load_set_ptr(exp, ptr) { return Binaryen.Load.setPtr(exp, ptr); } //Provides: caml_binaryen_store_get_ptr //Requires: Binaryen function caml_binaryen_store_get_ptr(exp) { return Binaryen.Store.getPtr(exp); } //Provides: caml_binaryen_store_set_ptr //Requires: Binaryen function caml_binaryen_store_set_ptr(exp, ptr) { return Binaryen.Store.setPtr(exp, ptr); } //Provides: caml_binaryen_store_get_value //Requires: Binaryen function caml_binaryen_store_get_value(exp) { return Binaryen.Store.getValue(exp); } //Provides: caml_binaryen_store_set_value //Requires: Binaryen function caml_binaryen_store_set_value(exp, value) { return Binaryen.Store.setValue(exp, value); } //Provides: caml_binaryen_unary_get_value //Requires: Binaryen function caml_binaryen_unary_get_value(exp) { return Binaryen.Unary.getValue(exp); } //Provides: caml_binaryen_unary_set_value //Requires: Binaryen function caml_binaryen_unary_set_value(exp, value) { return Binaryen.Unary.setValue(exp, value); } //Provides: caml_binaryen_binary_get_left //Requires: Binaryen function caml_binaryen_binary_get_left(exp) { return Binaryen.Binary.getLeft(exp); } //Provides: caml_binaryen_binary_set_left //Requires: Binaryen function caml_binaryen_binary_set_left(exp, value) { return Binaryen.Binary.setLeft(exp, value); } //Provides: caml_binaryen_binary_get_right //Requires: Binaryen function caml_binaryen_binary_get_right(exp) { return Binaryen.Binary.getRight(exp); } //Provides: caml_binaryen_binary_set_right //Requires: Binaryen function caml_binaryen_binary_set_right(exp, value) { return Binaryen.Binary.setRight(exp, value); } //Provides: caml_binaryen_select_get_if_true //Requires: Binaryen function caml_binaryen_select_get_if_true(exp) { return Binaryen.Select.getIfTrue(exp); } //Provides: caml_binaryen_select_set_if_true //Requires: Binaryen function caml_binaryen_select_set_if_true(exp, value) { return Binaryen.Select.setIfTrue(exp, value); } //Provides: caml_binaryen_select_get_if_false //Requires: Binaryen function caml_binaryen_select_get_if_false(exp) { return Binaryen.Select.getIfFalse(exp); } //Provides: caml_binaryen_select_set_if_false //Requires: Binaryen function caml_binaryen_select_set_if_false(exp, value) { return Binaryen.Select.setIfFalse(exp, value); } //Provides: caml_binaryen_select_get_condition //Requires: Binaryen function caml_binaryen_select_get_condition(exp) { return Binaryen.Select.getCondition(exp); } //Provides: caml_binaryen_select_set_condition //Requires: Binaryen function caml_binaryen_select_set_condition(exp, value) { return Binaryen.Select.setCondition(exp, value); } //Provides: caml_binaryen_drop_get_value //Requires: Binaryen function caml_binaryen_drop_get_value(exp) { return Binaryen.Drop.getValue(exp); } //Provides: caml_binaryen_drop_set_value //Requires: Binaryen function caml_binaryen_drop_set_value(exp, value) { return Binaryen.Drop.setValue(exp, value); } //Provides: caml_binaryen_return_get_value //Requires: Binaryen //Requires: to_option function caml_binaryen_return_get_value(exp) { return to_option(Binaryen.Return.getValue(exp)); } //Provides: caml_binaryen_return_set_value //Requires: Binaryen function caml_binaryen_return_set_value(exp, value) { return Binaryen.Return.setValue(exp, value); } //Provides: caml_binaryen_memory_init_get_segment //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_memory_init_get_segment(expr) { return caml_string_of_jsstring(Binaryen.MemoryInit.getSegment(expr)); } //Provides: caml_binaryen_memory_init_set_segment //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_memory_init_set_segment(expr, segment) { return Binaryen.MemoryInit.setSegment(expr, caml_jsstring_of_string(segment)); } //Provides: caml_binaryen_memory_init_get_dest //Requires: Binaryen function caml_binaryen_memory_init_get_dest(exp) { return Binaryen.MemoryInit.getDest(exp); } //Provides: caml_binaryen_memory_init_set_dest //Requires: Binaryen function caml_binaryen_memory_init_set_dest(exp, value) { return Binaryen.MemoryInit.setDest(exp, value); } //Provides: caml_binaryen_memory_init_get_offset //Requires: Binaryen function caml_binaryen_memory_init_get_offset(exp) { return Binaryen.MemoryInit.getOffset(exp); } //Provides: caml_binaryen_memory_init_set_offset //Requires: Binaryen function caml_binaryen_memory_init_set_offset(exp, value) { return Binaryen.MemoryInit.setOffset(exp, value); } //Provides: caml_binaryen_memory_init_get_size //Requires: Binaryen function caml_binaryen_memory_init_get_size(exp) { return Binaryen.MemoryInit.getSize(exp); } //Provides: caml_binaryen_memory_init_set_size //Requires: Binaryen function caml_binaryen_memory_init_set_size(exp, value) { return Binaryen.MemoryInit.setSize(exp, value); } //Provides: caml_binaryen_data_drop_get_segment //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_data_drop_get_segment(expr) { return caml_string_of_jsstring(Binaryen.DataDrop.getSegment(expr)); } //Provides: caml_binaryen_data_drop_set_segment //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_data_drop_set_segment(expr, segment) { return Binaryen.DataDrop.setSegment(expr, caml_jsstring_of_string(segment)); } //Provides: caml_binaryen_memory_copy_get_dest //Requires: Binaryen function caml_binaryen_memory_copy_get_dest(exp) { return Binaryen.MemoryCopy.getDest(exp); } //Provides: caml_binaryen_memory_copy_set_dest //Requires: Binaryen function caml_binaryen_memory_copy_set_dest(exp, value) { return Binaryen.MemoryCopy.setDest(exp, value); } //Provides: caml_binaryen_memory_copy_get_source //Requires: Binaryen function caml_binaryen_memory_copy_get_source(exp) { return Binaryen.MemoryCopy.getSource(exp); } //Provides: caml_binaryen_memory_copy_set_source //Requires: Binaryen function caml_binaryen_memory_copy_set_source(exp, value) { return Binaryen.MemoryCopy.setSource(exp, value); } //Provides: caml_binaryen_memory_copy_get_size //Requires: Binaryen function caml_binaryen_memory_copy_get_size(exp) { return Binaryen.MemoryCopy.getSize(exp); } //Provides: caml_binaryen_memory_copy_set_size //Requires: Binaryen function caml_binaryen_memory_copy_set_size(exp, value) { return Binaryen.MemoryCopy.setSize(exp, value); } //Provides: caml_binaryen_memory_fill_get_dest //Requires: Binaryen function caml_binaryen_memory_fill_get_dest(exp) { return Binaryen.MemoryFill.getDest(exp); } //Provides: caml_binaryen_memory_fill_set_dest //Requires: Binaryen function caml_binaryen_memory_fill_set_dest(exp, value) { return Binaryen.MemoryFill.setDest(exp, value); } //Provides: caml_binaryen_memory_fill_get_value //Requires: Binaryen function caml_binaryen_memory_fill_get_value(exp) { return Binaryen.MemoryFill.getValue(exp); } //Provides: caml_binaryen_memory_fill_set_value //Requires: Binaryen function caml_binaryen_memory_fill_set_value(exp, value) { return Binaryen.MemoryFill.setValue(exp, value); } //Provides: caml_binaryen_memory_fill_get_size //Requires: Binaryen function caml_binaryen_memory_fill_get_size(exp) { return Binaryen.MemoryFill.getSize(exp); } //Provides: caml_binaryen_memory_fill_set_size //Requires: Binaryen function caml_binaryen_memory_fill_set_size(exp, value) { return Binaryen.MemoryFill.setSize(exp, value); } //Provides: caml_binaryen_tuple_make_get_num_operands //Requires: Binaryen function caml_binaryen_tuple_make_get_num_operands(exp) { return Binaryen.TupleMake.getNumOperands(exp); } //Provides: caml_binaryen_tuple_make_get_operand_at //Requires: Binaryen function caml_binaryen_tuple_make_get_operand_at(exp, index) { return Binaryen.TupleMake.getOperandAt(exp, index); } //Provides: caml_binaryen_tuple_make_set_operand_at //Requires: Binaryen function caml_binaryen_tuple_make_set_operand_at(exp, index, operand) { return Binaryen.TupleMake.setOperandAt(exp, index, operand); } //Provides: caml_binaryen_tuple_make_append_operand //Requires: Binaryen function caml_binaryen_tuple_make_append_operand(exp, operand) { return Binaryen.TupleMake.appendOperand(exp, operand); } //Provides: caml_binaryen_tuple_make_insert_operand_at //Requires: Binaryen function caml_binaryen_tuple_make_insert_operand_at(exp, index, operand) { return Binaryen.TupleMake.insertOperandAt(exp, index, operand); } //Provides: caml_binaryen_tuple_make_remove_operand_at //Requires: Binaryen function caml_binaryen_tuple_make_remove_operand_at(exp, index) { return Binaryen.TupleMake.removeOperandAt(exp, index); } //Provides: caml_binaryen_tuple_extract_get_tuple //Requires: Binaryen function caml_binaryen_tuple_extract_get_tuple(exp) { return Binaryen.TupleExtract.getTuple(exp); } //Provides: caml_binaryen_tuple_extract_set_tuple //Requires: Binaryen function caml_binaryen_tuple_extract_set_tuple(exp, value) { return Binaryen.TupleExtract.setTuple(exp, value); } // Ref operations //Provides: caml_binaryen_ref_null function caml_binaryen_ref_null(wasm_mod, typ) { return wasm_mod.ref.null(typ); } //Provides: caml_binaryen_ref_is_null //Requires: Binaryen function caml_binaryen_ref_is_null(wasm_mod, value) { return Binaryen.ExpressionIds.RefIsNull(wasm_mod, value); } //Provides: caml_binaryen_ref_as //Requires: Binaryen function caml_binaryen_ref_as(wasm_mod, op, value) { return Binaryen._BinaryenRefAs(wasm_mod, op, value); } //Provides: caml_binaryen_ref_func //Requires: caml_jsstring_of_string function caml_binaryen_ref_func(wasm_mod, name, typ) { return wasm_mod.ref.func(caml_jsstring_of_string(name), typ); } //Provides: caml_binaryen_ref_eq function caml_binaryen_ref_eq(wasm_mod, left, right) { return wasm_mod.ref.func(left, right); } // Table operations //Provides: caml_binaryen_table_get //Requires: caml_jsstring_of_string function caml_binaryen_table_get(wasm_mod, name, index, typ) { return wasm_mod.table.get(caml_jsstring_of_string(name), index, typ); } //Provides: caml_binaryen_table_set //Requires: caml_jsstring_of_string function caml_binaryen_table_set(wasm_mod, name, index, value) { return wasm_mod.table.set(caml_jsstring_of_string(name), index, value); } //Provides: caml_binaryen_table_size //Requires: caml_jsstring_of_string function caml_binaryen_table_size(wasm_mod, name) { return wasm_mod.table.size(caml_jsstring_of_string(name)); } //Provides: caml_binaryen_table_grow //Requires: caml_jsstring_of_string function caml_binaryen_table_grow(wasm_mod, name, value, delta) { return wasm_mod.table.grow(caml_jsstring_of_string(name), value, delta); } // TableGet operations //Provides: caml_binaryen_tableget_get_table //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_tableget_get_table(exp) { return caml_string_of_jsstring(Binaryen.TableGet.getTable(exp)); } //Provides: caml_binaryen_tableget_set_table //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_tableget_set_table(exp, table) { return Binaryen.TableGet.setTable(exp, caml_jsstring_of_string(table)); } //Provides: caml_binaryen_tableget_get_index //Requires: Binaryen function caml_binaryen_tableget_get_index(exp) { return Binaryen.TableGet.getIndex(exp); } //Provides: caml_binaryen_tableget_set_index //Requires: Binaryen function caml_binaryen_tableget_set_index(exp, index) { return Binaryen.TableGet.setIndex(exp, index); } // TableSet operations //Provides: caml_binaryen_tableset_get_table //Requires: Binaryen //Requires: caml_string_of_jsstring function caml_binaryen_tableset_get_table(exp) { return caml_string_of_jsstring(Binaryen.TableSet.getTable(exp)); } //Provides: caml_binaryen_tableset_set_table //Requires: Binaryen //Requires: caml_jsstring_of_string function caml_binaryen_tableset_set_table(exp, table) { return Binaryen.TableSet.setTable(exp, caml_jsstring_of_string(table)); } //Provides: caml_binaryen_tableset_get_index //Requires: Binaryen function caml_binaryen_tableset_get_index(exp) { return Binaryen.TableSet.getIndex(exp); } //Provides: caml_binaryen_tableset_set_index //Requires: Binaryen function caml_binaryen_tableset_set_index(exp, index) { return Binaryen.TableSet.setIndex(exp, index); } //Provides: ca