Example #1
0
 /// <summary>
 /// Writes this exported value to the given WebAssembly file writer.
 /// </summary>
 /// <param name="Writer">The WebAssembly file writer.</param>
 public void WriteTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32(MemoryIndex);
     Offset.WriteTo(Writer);
     Writer.WriteVarUInt32((uint)Data.Length);
     Writer.Writer.Write(Data);
 }
Example #2
0
 /// <summary>
 /// Writes this instruction's immediates (but not its opcode)
 /// to the given WebAssembly file writer.
 /// </summary>
 /// <param name="writer">The writer to write this instruction's immediates to.</param>
 public override void WriteImmediatesTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32((uint)TargetTable.Count);
     foreach (var entry in TargetTable)
     {
         writer.WriteVarUInt32(entry);
     }
     writer.WriteVarUInt32(DefaultTarget);
 }
Example #3
0
 /// <summary>
 /// Writes this WebAssembly section's payload to the given binary WebAssembly writer.
 /// </summary>
 /// <param name="writer">The writer to which the payload is written.</param>
 public override void WritePayloadTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32((uint)FunctionTypes.Count);
     foreach (var index in FunctionTypes)
     {
         writer.WriteVarUInt32(index);
     }
     writer.Writer.Write(ExtraPayload);
 }
Example #4
0
 /// <summary>
 /// Writes these resizable limits to the given WebAssembly file writer.
 /// </summary>
 /// <param name="writer">The WebAssembly file writer.</param>
 public void WriteTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt1(HasMaximum);
     writer.WriteVarUInt32(Initial);
     if (HasMaximum)
     {
         writer.WriteVarUInt32(Maximum.Value);
     }
 }
Example #5
0
 /// <summary>
 /// Writes this element segment to the given WebAssembly file writer.
 /// </summary>
 /// <param name="Writer">The WebAssembly file writer.</param>
 public void WriteTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32(TableIndex);
     Offset.WriteTo(Writer);
     Writer.WriteVarUInt32((uint)Elements.Count);
     foreach (var item in Elements)
     {
         Writer.WriteVarUInt32(item);
     }
 }
Example #6
0
        /// <summary>
        /// Writes this function type to the given binary WebAssembly file.
        /// </summary>
        /// <param name="writer">The writer for a binary WebAssembly file.</param>
        public void WriteTo(BinaryWasmWriter writer)
        {
            writer.WriteWasmType(Form);
            writer.WriteVarUInt32((uint)ParameterTypes.Count);
            foreach (var item in ParameterTypes)
            {
                writer.WriteWasmValueType(item);
            }

            writer.WriteVarUInt32((uint)ReturnTypes.Count);
            foreach (var item in ReturnTypes)
            {
                writer.WriteWasmValueType(item);
            }
        }
Example #7
0
 /// <inheritdoc/>
 public override void WritePayloadTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32((uint)Memories.Count);
     foreach (var limits in Memories)
     {
         limits.WriteTo(Writer);
     }
     Writer.Writer.Write(ExtraPayload);
 }
Example #8
0
 /// <inheritdoc/>
 public override void WritePayloadTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32((uint)Exports.Count);
     foreach (var export in Exports)
     {
         export.WriteTo(writer);
     }
     writer.Writer.Write(ExtraPayload);
 }
Example #9
0
 /// <inheritdoc/>
 public override void WritePayloadTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32((uint)Segments.Count);
     foreach (var segment in Segments)
     {
         segment.WriteTo(writer);
     }
     writer.Writer.Write(ExtraPayload);
 }
Example #10
0
 /// <summary>
 /// Writes this WebAssembly section's payload to the given binary WebAssembly writer.
 /// </summary>
 /// <param name="writer">The writer to which the payload is written.</param>
 public override void WritePayloadTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32((uint)GlobalVariables.Count);
     foreach (var index in GlobalVariables)
     {
         index.WriteTo(writer);
     }
     writer.Writer.Write(ExtraPayload);
 }
Example #11
0
 /// <inheritdoc/>
 public override void WritePayloadTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32((uint)Bodies.Count);
     foreach (var body in Bodies)
     {
         body.WriteTo(Writer);
     }
     Writer.Writer.Write(ExtraPayload);
 }
Example #12
0
 /// <inheritdoc/>
 public override void WritePayloadTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32((uint)Segments.Count);
     foreach (var export in Segments)
     {
         export.WriteTo(Writer);
     }
     Writer.Writer.Write(ExtraPayload);
 }
Example #13
0
        /// <inheritdoc/>
        public override void WritePayloadTo(BinaryWasmWriter Writer)
        {
            Writer.WriteVarUInt32((uint)FunctionTypes.Count);
            foreach (var type in FunctionTypes)
            {
                type.WriteTo(Writer);
            }

            Writer.Writer.Write(ExtraPayload);
        }
Example #14
0
        /// <inheritdoc/>
        public override void WritePayloadTo(BinaryWasmWriter writer)
        {
            writer.WriteVarUInt32((uint)Tables.Count);
            foreach (var type in Tables)
            {
                type.WriteTo(writer);
            }

            writer.Writer.Write(ExtraPayload);
        }
Example #15
0
        private void WriteContentsTo(BinaryWasmWriter Writer)
        {
            // Write the number of local entries to the file.
            Writer.WriteVarUInt32((uint)Locals.Count);

            // Write the local variables to the file.
            foreach (var local in Locals)
            {
                local.WriteTo(Writer);
            }

            // Write the body to the file.
            Operators.Block.Create(WasmType.Empty, BodyInstructions).WriteContentsTo(Writer);

            if (HasExtraPayload)
            {
                // If we have at least one byte of additional payload,
                // then we should write it to the stream now.
                Writer.Writer.Write(ExtraPayload);
            }
        }
Example #16
0
 /// <inheritdoc/>
 protected override void WriteContentsTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32(TypeIndex);
 }
Example #17
0
 /// <summary>
 /// Writes this exported value to the given WebAssembly file writer.
 /// </summary>
 /// <param name="writer">The WebAssembly file writer.</param>
 public void WriteTo(BinaryWasmWriter writer)
 {
     writer.WriteString(Name);
     writer.Writer.Write((byte)Kind);
     writer.WriteVarUInt32(Index);
 }
Example #18
0
 /// <summary>
 /// Writes this instruction's immediates (but not its opcode)
 /// to the given WebAssembly file writer.
 /// </summary>
 /// <param name="Writer">The writer to write this instruction's immediates to.</param>
 public override void WriteImmediatesTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32(TypeIndex);
     Writer.WriteVarUInt32(Reserved);
 }
Example #19
0
 /// <inheritdoc/>
 public override void WritePayloadTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32(StartFunctionIndex);
     writer.Writer.Write(ExtraPayload);
 }
Example #20
0
 /// <summary>
 /// Writes this instruction's immediates (but not its opcode)
 /// to the given WebAssembly file writer.
 /// </summary>
 /// <param name="writer">The writer to write this instruction's immediates to.</param>
 public override void WriteImmediatesTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32(Log2Alignment);
     writer.WriteVarUInt32(Offset);
 }
Example #21
0
 /// <summary>
 /// Writes this local entry to the given WebAssembly file writer.
 /// </summary>
 /// <param name="Writer">The WebAssembly file writer.</param>
 public void WriteTo(BinaryWasmWriter Writer)
 {
     Writer.WriteVarUInt32(LocalCount);
     Writer.WriteWasmValueType(LocalType);
 }
Example #22
0
 /// <summary>
 /// Writes this instruction's immediates (but not its opcode)
 /// to the given WebAssembly file writer.
 /// </summary>
 /// <param name="writer">The writer to write this instruction's immediates to.</param>
 public override void WriteImmediatesTo(BinaryWasmWriter writer)
 {
     writer.WriteVarUInt32(Immediate);
 }