You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
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; |