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)
 {
     LEB128.WriteInt7(writer, (sbyte)element_type);
     limits.SaveAsWASM(writer);
 }