51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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; |