@@ -36,6 +36,7 @@ declare module "@webassemblyjs/ast" {
3636 ModuleImport ?: ( p : NodePath < ModuleImport > ) => void ;
3737 ModuleExport ?: ( p : NodePath < ModuleExport > ) => void ;
3838 Start ?: ( p : NodePath < Start > ) => void ;
39+ Global ?: ( p : NodePath < Global > ) => void ;
3940 }
4041 ) ;
4142 export class NodePath < T > {
@@ -60,28 +61,46 @@ declare module "@webassemblyjs/ast" {
6061 }
6162 export class ModuleExport extends Node {
6263 name : string ;
64+ descr : ModuleExportDescr ;
65+ }
66+ type Index = Identifier | NumberLiteral ;
67+ export class ModuleExportDescr extends Node {
68+ type : string ;
69+ exportType : string ;
70+ id : Index ;
71+ }
72+ export class NumberLiteral extends Node {
73+ value : number ;
74+ raw : string ;
6375 }
64- export class ModuleExportDescr extends Node { }
65- export class IndexLiteral extends Node { }
66- export class NumberLiteral extends Node { }
6776 export class FloatLiteral extends Node { }
68- export class Global extends Node { }
77+ export class GlobalType extends Node {
78+ valtype : string ;
79+ }
80+ export class Global extends Node {
81+ init : Instruction [ ] ;
82+ globalType : GlobalType ;
83+ }
6984 export class FuncParam extends Node {
7085 valtype : string ;
7186 }
72- export class Instruction extends Node { }
87+ export class Instruction extends Node {
88+ id : string ;
89+ args : NumberLiteral [ ] ;
90+ }
7391 export class CallInstruction extends Instruction { }
7492 export class ObjectInstruction extends Instruction { }
7593 export class Func extends Node {
7694 signature : Signature ;
7795 }
7896 export class Signature {
97+ type : "Signature" ;
7998 params : FuncParam [ ] ;
8099 results : string [ ] ;
81100 }
82101 export class TypeInstruction extends Node { }
83102 export class IndexInFuncSection extends Node { }
84- export function indexLiteral ( index : number ) : IndexLiteral ;
103+ export function indexLiteral ( index : number ) : Index ;
85104 export function numberLiteralFromRaw ( num : number ) : NumberLiteral ;
86105 export function floatLiteral (
87106 value : number ,
@@ -93,29 +112,33 @@ declare module "@webassemblyjs/ast" {
93112 export function identifier ( indentifier : string ) : Identifier ;
94113 export function funcParam ( valType : string , id : Identifier ) : FuncParam ;
95114 export function instruction ( inst : string , args : Node [ ] ) : Instruction ;
96- export function callInstruction ( funcIndex : IndexLiteral ) : CallInstruction ;
115+ export function callInstruction ( funcIndex : Index ) : CallInstruction ;
97116 export function objectInstruction (
98117 kind : string ,
99118 type : string ,
100119 init : Node [ ]
101120 ) : ObjectInstruction ;
102121 export function signature ( params : FuncParam [ ] , results : string [ ] ) : Signature ;
103- export function func ( initFuncId , Signature , funcBody ) : Func ;
122+ export function func ( initFuncId , signature : Signature , funcBody ) : Func ;
104123 export function typeInstruction (
105124 id : Identifier ,
106125 functype : Signature
107126 ) : TypeInstruction ;
108- export function indexInFuncSection ( index : IndexLiteral ) : IndexInFuncSection ;
127+ export function indexInFuncSection ( index : Index ) : IndexInFuncSection ;
109128 export function moduleExport (
110129 identifier : string ,
111130 descr : ModuleExportDescr
112131 ) : ModuleExport ;
113132 export function moduleExportDescr (
114133 type : string ,
115- index : ModuleExportDescr
116- ) : ModuleExport ;
134+ index : Index
135+ ) : ModuleExportDescr ;
117136
118137 export function getSectionMetadata ( ast : any , section : string ) ;
138+ export class FuncSignature {
139+ args : string [ ] ;
140+ result : string [ ] ;
141+ }
119142}
120143
121144/**
0 commit comments