git ssb

0+

wanderer🌟 / js-primea-wasm-container



Tree: d48b7065a388045f96fc7be1588e12150b8de8bb

Files: d48b7065a388045f96fc7be1588e12150b8de8bb / tests / wast2wasm.js

1012 bytesRaw
1const wabt = require('wabt')
2const fs = require('fs')
3const annotations = require('primea-annotations')
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 for ${file}`)
17 }
18
19 try {
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 binary = annotations.encodeAndInject(json, binary)
26 }
27 fs.writeFileSync(`${__dirname}/wasm/${file}.wasm`, binary)
28 } catch (e) {
29 console.log(`failed at ${file}`)
30 console.log(e)
31 }
32 }
33}
34
35filesWast2wasm()
36

Built with git-ssb-web