Spaces:
Sleeping
Sleeping
import * as encoder from "./encoder"; | |
export function encodeNode(n) { | |
switch (n.type) { | |
case "ModuleImport": | |
// $FlowIgnore: ModuleImport ensure that the node is well formated | |
return encoder.encodeModuleImport(n); | |
case "SectionMetadata": | |
// $FlowIgnore: SectionMetadata ensure that the node is well formated | |
return encoder.encodeSectionMetadata(n); | |
case "CallInstruction": | |
// $FlowIgnore: SectionMetadata ensure that the node is well formated | |
return encoder.encodeCallInstruction(n); | |
case "CallIndirectInstruction": | |
// $FlowIgnore: SectionMetadata ensure that the node is well formated | |
return encoder.encodeCallIndirectInstruction(n); | |
case "TypeInstruction": | |
return encoder.encodeTypeInstruction(n); | |
case "Instr": | |
// $FlowIgnore | |
return encoder.encodeInstr(n); | |
case "ModuleExport": | |
// $FlowIgnore: SectionMetadata ensure that the node is well formated | |
return encoder.encodeModuleExport(n); | |
case "Global": | |
// $FlowIgnore | |
return encoder.encodeGlobal(n); | |
case "Func": | |
return encoder.encodeFuncBody(n); | |
case "IndexInFuncSection": | |
return encoder.encodeIndexInFuncSection(n); | |
case "StringLiteral": | |
return encoder.encodeStringLiteral(n); | |
case "Elem": | |
return encoder.encodeElem(n); | |
default: | |
throw new Error("Unsupported encoding for node of type: " + JSON.stringify(n.type)); | |
} | |
} | |
export var encodeU32 = encoder.encodeU32; |