webassemblyjs
webassemblyjs copied to clipboard
Toolchain for WebAssembly
I can't find this documented in the official specification, however the 'unofficial' specification indicates that the `init` field of globals (and data sections), is an 'instantiation-time initializer' https://github.com/sunfishcode/wasm-reference-manual/blob/master/WebAssembly.md#global-section These are...
Currently the unit tests are run against the transpiled code in the `lib` folder. This has a few issues: 1. it increases the build / test time 2. the test...
The following are equivalent, and supported by `wat2wasm`: ``` (func $test (i32.const 12) (i32.const 0x70000000) (i32.store) ) ``` ``` (func $test i32.const 12 i32.const 0x70000000 i32.store ) ``` Currently the...
These two functions are equivalent - operations written in a 'stack' form: ``` (func $add (param f32) (param f32) (result f32) (get_local 0) (get_local 1) (f32.add) ) ``` and in...
- [x] i32.add - [x] i32.sub - [x] i32.mul - [x] i32.div_u - [x] i32.div_s - needs to throw 'integer overflow' exception - [x] i32.or - [x] i32.xor - [x]...
- [ ] `i32.reinterpret` - [ ] `i64.reinterpret` - [x] `f32.reinterpret` - [x] `f64.reinterpret` See specification here: https://webassembly.github.io/spec/core/exec/numerics.html#op-reinterpret
In https://github.com/xtuc/inline-wast we use https://github.com/WebAssembly/wabt emscripten/JS version which has such a tool but there's also a lot of downside to it (size and slow). It would be great to implement...
- [ ] `f32.neg` - [ ] `f32.ceil` - [ ] `f32.floor` - [ ] `f32.trunc` - [ ] `f32.nearest` - [ ] `f32.sqrt` - [ ] `f64.abs` - [...
The text format supports the following literals for floating point numbers * `nan`: https://github.com/WebAssembly/spec/blob/master/test/core/float_literals.wast#L5-L7 * `nan:0x...`: https://github.com/WebAssembly/spec/blob/master/test/core/float_literals.wast#L8-L13 * `inf`: https://github.com/WebAssembly/spec/blob/master/test/core/float_literals.wast#L14-L16 Spec is here https://webassembly.github.io/spec/core/text/values.html#text-float
- [ ] `return` - [ ] `callindirect` - [ ] `select` - [ ] `getglobal` - [ ] `setglobal` - [ ] `currentmemory` - [ ] `growmemory` - [...