diff --git a/compiler/gen_wasm/src/module_builder.rs b/compiler/gen_wasm/src/module_builder.rs index cfa2de5f05..8051298300 100644 --- a/compiler/gen_wasm/src/module_builder.rs +++ b/compiler/gen_wasm/src/module_builder.rs @@ -270,7 +270,9 @@ impl<'a> FunctionSection<'a> { impl<'a> Serialize for FunctionSection<'a> { fn serialize(&self, buffer: &mut T) { - todo!(); + let header_indices = write_section_header(buffer, SectionId::Function); + serialize_vector_with_count(buffer, &self.signature_indices); + update_section_size(buffer, header_indices); } } diff --git a/compiler/gen_wasm/src/serialize.rs b/compiler/gen_wasm/src/serialize.rs index a261256a4a..2e8777b1b8 100644 --- a/compiler/gen_wasm/src/serialize.rs +++ b/compiler/gen_wasm/src/serialize.rs @@ -114,6 +114,12 @@ impl Serialize for str { } } +impl Serialize for u32 { + fn serialize(&self, buffer: &mut T) { + buffer.encode_u32(*self); + } +} + fn overwrite_padded_u32_help(buffer: &mut [u8], value: u32) { let mut x = value; for byte in buffer.iter_mut().take(4) {