git ssb

0+

wanderer🌟 / js-primea-hypervisor



Tree: 225da49428f17d7ef0fc980e3dbd3cda8967ae99

Files: 225da49428f17d7ef0fc980e3dbd3cda8967ae99 / tests / wast2wasm.js

939 bytesRaw
1const wabt = require('wabt')
2const fs = require('fs')
3const types = require('../customTypes')
4
5function filesWast2wasm () {
6 const srcFiles = fs.readdirSync(`${__dirname}/wast`)
7 const wastFiles = srcFiles.filter(name => name.split('.').pop() === 'wast')
8 for (let file of wastFiles) {
9 const wat = fs.readFileSync(`${__dirname}/wast/${file}`).toString()
10 file = file.split('.')[0]
11 let json
12 try {
13 json = fs.readFileSync(`${__dirname}/wast/${file}.json`)
14 json = JSON.parse(json)
15 } catch (e) {
16 console.log('no json')
17 }
18
19 console.log(wat)
20 const mod = wabt.parseWat('module.wast', wat)
21 const r = mod.toBinary({log: true})
22 let binary = Buffer.from(r.buffer)
23 if (json) {
24 console.log(json)
25 const buf = types.encodeJSON(json)
26 binary = types.injectCustomSection(buf, binary)
27 }
28 fs.writeFileSync(`${__dirname}/wasm/${file}.wasm`, binary)
29 }
30}
31
32filesWast2wasm()
33

Built with git-ssb-web