77 ExternalKind ,
88 NameType ,
99 MAX_PAGES ,
10- MAX_TABLES ,
10+ MAX_ELEMS ,
1111 Opcode
1212} from "../src/common" ;
1313
@@ -199,7 +199,7 @@ export function parse(begin: usize, end: usize): void {
199199 let type = readVarint ( 7 ) & 0x7f ;
200200 let flags = readVaruint ( 1 ) ;
201201 let initial = readVaruint ( 32 ) ;
202- let maximum : u32 = flags & 1 ? readVaruint ( 32 ) : MAX_TABLES ;
202+ let maximum = flags & 1 ? readVaruint ( 32 ) : < u32 > MAX_ELEMS ;
203203 opt . onTableImport (
204204 tbl_space_index ++ ,
205205 type ,
@@ -212,7 +212,7 @@ export function parse(begin: usize, end: usize): void {
212212 case ExternalKind . Memory : {
213213 let flags = readVaruint ( 1 ) ;
214214 let initial = readVaruint ( 32 ) ;
215- let maximum : u32 = flags & 1 ? readVaruint ( 32 ) : MAX_PAGES ;
215+ let maximum = flags & 1 ? readVaruint ( 32 ) : < u32 > MAX_PAGES ;
216216 opt . onMemoryImport (
217217 mem_space_index ++ ,
218218 initial ,
@@ -247,12 +247,29 @@ export function parse(begin: usize, end: usize): void {
247247 }
248248 break ;
249249 }
250+ case SectionId . Table : {
251+ let count = readVaruint ( 32 ) ;
252+ for ( let index : u32 = 0 ; index < count ; ++ index ) {
253+ let type = readVaruint ( 7 ) & 0x7f ;
254+ let flags = readVaruint ( 1 ) ;
255+ let initial = readVaruint ( 32 ) ;
256+ let maximum = flags & 1 ? readVaruint ( 32 ) : < u32 > MAX_ELEMS ;
257+ opt . onTable (
258+ tbl_space_index ++ ,
259+ type ,
260+ initial ,
261+ maximum ,
262+ flags
263+ ) ;
264+ }
265+ break ;
266+ }
250267 case SectionId . Memory : {
251268 let count = readVaruint ( 32 ) ;
252269 for ( let index : u32 = 0 ; index < count ; ++ index ) {
253270 let flags = readVaruint ( 1 ) ;
254271 let initial = readVaruint ( 32 ) ;
255- let maximum : u32 = flags ? readVaruint ( 32 ) : MAX_PAGES ;
272+ let maximum = flags & 1 ? readVaruint ( 32 ) : < u32 > MAX_PAGES ;
256273 opt . onMemory (
257274 mem_space_index ++ ,
258275 initial ,
0 commit comments