internal override void SaveAsWASM(BinaryWriter writer) { var module = Encoding.UTF8.GetBytes(module_str); var field = Encoding.UTF8.GetBytes(field_str); LEB128.WriteUInt32(writer, (uint)module.Length); writer.Write(module); LEB128.WriteUInt32(writer, (uint)field.Length); writer.Write(field); writer.Write((byte)kind); switch (kind) { case WebAssemblyExternalKind.Function: LEB128.WriteUInt32(writer, (uint)type); break; case WebAssemblyExternalKind.Table: ((TableType)type).SaveAsWASM(writer); break; case WebAssemblyExternalKind.Memory: ((MemoryType)type).SaveAsWASM(writer); break; case WebAssemblyExternalKind.Global: ((GlobalType)type).SaveAsWASM(writer); break; } }
internal override void SaveAsWASM(BinaryWriter writer) { LEB128.WriteUInt32(writer, memory_index); offset.SaveAsWASM(writer); LEB128.WriteUInt32(writer, (uint)data.Length); writer.Write(data); }
internal override void SaveAsWASM(BinaryWriter writer) { base.SaveAsWASM(writer); LEB128.WriteUInt32(writer, (uint)entries.Length); foreach (var entry in entries) { entry.SaveAsWASM(writer); } }
internal override void SaveAsWASM(BinaryWriter writer) { var field = Encoding.UTF8.GetBytes(field_str); LEB128.WriteUInt32(writer, (uint)field.Length); writer.Write(field); writer.Write((byte)kind); LEB128.WriteUInt32(writer, index); }
internal override void SaveAsWASM(BinaryWriter writer) { LEB128.WriteUInt7(writer, (byte)(maximum != null ? 1 : 0)); LEB128.WriteUInt32(writer, initial); if (maximum != null) { LEB128.WriteUInt32(writer, (uint)maximum); } }
internal override void SaveAsWASM(BinaryWriter writer) { LEB128.WriteUInt32(writer, table_index); offset.SaveAsWASM(writer); LEB128.WriteUInt32(writer, (uint)function_index.Length); foreach (var elem in function_index) { LEB128.WriteUInt32(writer, elem); } }
internal override void SaveAsWASM(BinaryWriter writer) { base.SaveAsWASM(writer); byte[] name_bytes = Encoding.UTF8.GetBytes(name); LEB128.WriteUInt32(writer, (uint)name_bytes.Length); writer.Write(name_bytes); writer.Write(payload_data); }
internal override void SaveAsWASM(BinaryWriter writer) { uint local_count = (uint)locals.Length; uint body_size = LEB128.SizeOf(local_count) + (uint)locals.Select(x => (long)x.BinarySize()).Sum() + (uint)code.Length; LEB128.WriteUInt32(writer, body_size); LEB128.WriteUInt32(writer, local_count); foreach (var local in locals) { local.SaveAsWASM(writer); } writer.Write(code); }
public void WriteTest(MemoryStream stream) { BinaryWriter writer = new BinaryWriter(stream); LEB128.WriteUInt32(writer, 0xFF00FF00); LEB128.WriteUInt32(writer, 0xAABBAA); LEB128.WriteUInt32(writer, 0xCC); LEB128.WriteUInt7(writer, 0x11); LEB128.WriteUInt7(writer, 0x7F); LEB128.WriteInt32(writer, 0x7F00FF00); LEB128.WriteInt32(writer, 0xAABBAA); LEB128.WriteInt32(writer, 0xCC); LEB128.WriteInt32(writer, -1); LEB128.WriteInt7(writer, 0x11); LEB128.WriteInt7(writer, -1); }
internal override void SaveAsWASM(BinaryWriter writer) { LEB128.WriteInt7(writer, (sbyte)WebAssemblyType.func); LEB128.WriteUInt32(writer, (uint)param_types.Length); for (uint i = 0; i < param_types.Length; i++) { LEB128.WriteInt7(writer, (sbyte)param_types[i]); } if (return_type != null) { LEB128.WriteInt7(writer, 1); LEB128.WriteInt7(writer, (sbyte)return_type); } else { LEB128.WriteInt7(writer, 0); } }
internal override void SaveAsWASM(BinaryWriter writer) { base.SaveAsWASM(writer); LEB128.WriteUInt32(writer, index); }
internal override void SaveAsWASM(BinaryWriter writer) { LEB128.WriteUInt32(writer, count); writer.Write((byte)type); }