diff --git a/game-of-life/asconfig.json b/game-of-life/asconfig.json
new file mode 100644
index 0000000..b5391b7
--- /dev/null
+++ b/game-of-life/asconfig.json
@@ -0,0 +1,26 @@
+{
+ "targets": {
+ "options": {
+ "runtime": "stub",
+ "sourceMap": true,
+ "measure": true
+ },
+ "debug": {
+ "outFile": "build/untouched.wasm",
+ "textFile": "build/untouched.wat",
+ "use": "Math=JSMath",
+ "importMemory": true,
+ "debug": true
+ },
+ "release": {
+ "outFile": "build/optimized.wasm",
+ "textFile": "build/optimized.wat",
+ "use": "Math=JSMath",
+ "importMemory": true,
+ "optimizeLevel": 3,
+ "converge": false,
+ "shrinkLevel": 0,
+ "noAssert": false
+ }
+ }
+}
diff --git a/game-of-life/build/optimized.wasm b/game-of-life/build/optimized.wasm
index 4fb95d0..5aa82bd 100644
Binary files a/game-of-life/build/optimized.wasm and b/game-of-life/build/optimized.wasm differ
diff --git a/game-of-life/index.html b/game-of-life/index.html
index d9c1ad6..21631bb 100644
--- a/game-of-life/index.html
+++ b/game-of-life/index.html
@@ -64,14 +64,14 @@
.then(buffer => WebAssembly.instantiate(buffer, {
env: {
memory,
- abort: function() {}
+ abort: function() {},
+ "Math.random": Math.random
},
config: {
BGR_ALIVE : rgb2bgr(RGB_ALIVE) | 1, // little endian, LSB must be set
BGR_DEAD : rgb2bgr(RGB_DEAD) & ~1, // little endian, LSB must not be set
BIT_ROT
},
- Math
}))
.then(module => {
var exports = module.instance.exports;
diff --git a/game-of-life/package.json b/game-of-life/package.json
index e567bf7..d124931 100644
--- a/game-of-life/package.json
+++ b/game-of-life/package.json
@@ -4,8 +4,8 @@
"license": "Apache-2.0",
"private": true,
"scripts": {
- "asbuild:untouched": "asc assembly/index.ts -b build/untouched.wasm -t build/untouched.wat --use Math=JSMath --runtime stub --importMemory --sourceMap --debug --measure",
- "asbuild:optimized": "asc assembly/index.ts -b build/optimized.wasm -t build/optimized.wat -d build/optimized.d.ts --use Math=JSMath -O3 --runtime stub --importMemory --sourceMap --measure",
+ "asbuild:untouched": "asc assembly/index.ts --target debug",
+ "asbuild:optimized": "asc assembly/index.ts --target release",
"asbuild": "npm run asbuild:untouched && npm run asbuild:optimized",
"start": "npx serve"
},
diff --git a/i64/package.json b/i64/package.json
index ef38428..2e584d2 100644
--- a/i64/package.json
+++ b/i64/package.json
@@ -6,8 +6,8 @@
"types": "index.d.ts",
"scripts": {
"asbuild": "npm run asbuild:untouched && npm run asbuild:optimized",
- "asbuild:untouched": "asc assembly/i64.ts -t build/untouched.wat -b build/untouched.wasm --runtime stub --sourceMap --debug --measure",
- "asbuild:optimized": "asc assembly/i64.ts -b build/optimized.wasm -t build/optimized.wat -d build/optimized.d.ts -O3 --runtime stub --sourceMap --measure",
+ "asbuild:untouched": "asc assembly/i64.ts -t build/untouched.wat -o build/untouched.wasm --runtime stub --sourceMap --debug --measure",
+ "asbuild:optimized": "asc assembly/i64.ts -t build/optimized.wat -o build/optimized.wasm -O3 --runtime stub --sourceMap --measure",
"test": "node tests"
},
"files": [
diff --git a/libm/package.json b/libm/package.json
index a8fcc56..d20866a 100644
--- a/libm/package.json
+++ b/libm/package.json
@@ -7,8 +7,8 @@
"types": "index.d.ts",
"scripts": {
"asbuild": "npm run asbuild:libm && npm run asbuild:libmf",
- "asbuild:libm": "asc assembly/libm.ts -O3 -b build/libm.wasm -t build/libm.wat --runtime stub",
- "asbuild:libmf": "asc assembly/libmf.ts -O3 -b build/libmf.wasm -t build/libmf.wat --runtime stub",
+ "asbuild:libm": "asc assembly/libm.ts -O3 -o build/libm.wasm -t build/libm.wat --runtime stub",
+ "asbuild:libmf": "asc assembly/libmf.ts -O3 -o build/libmf.wasm -t build/libmf.wat --runtime stub",
"test": "node tests"
},
"files": [
diff --git a/mandelbrot/package.json b/mandelbrot/package.json
index 5b6c6b9..bc178d3 100644
--- a/mandelbrot/package.json
+++ b/mandelbrot/package.json
@@ -4,8 +4,8 @@
"license": "Apache-2.0",
"private": true,
"scripts": {
- "asbuild:untouched": "asc assembly/index.ts -b build/untouched.wasm -t build/untouched.wat --use Math=JSMath --runtime stub --importMemory --sourceMap --debug --measure",
- "asbuild:optimized": "asc assembly/index.ts -b build/optimized.wasm -t build/optimized.wat -d build/optimized.d.ts --use Math=JSMath --runtime stub -O3 --importMemory --sourceMap --measure",
+ "asbuild:untouched": "asc assembly/index.ts -o build/untouched.wasm -t build/untouched.wat --use Math=JSMath --runtime stub --importMemory --sourceMap --debug --measure",
+ "asbuild:optimized": "asc assembly/index.ts -o build/optimized.wasm -t build/optimized.wat --use Math=JSMath --runtime stub -O3 --importMemory --sourceMap --measure",
"asbuild": "npm run asbuild:untouched && npm run asbuild:optimized",
"start": "npx serve"
},
diff --git a/parse/build/index.wat b/parse/build/index.wat
index d7d2bab..beabf4f 100644
--- a/parse/build/index.wat
+++ b/parse/build/index.wat
@@ -43,8 +43,8 @@
(local $12 i32)
(local $13 i32)
(local $14 i32)
- (local $15 i32)
- (local $16 i64)
+ (local $15 i64)
+ (local $16 i32)
(local $17 i64)
(local $18 i64)
(local $19 i32)
@@ -75,77 +75,77 @@
unreachable
end
loop $while-continue|0
- local.get $1
global.get $assembly/index/off
- i32.gt_u
+ local.get $1
+ i32.lt_u
if
- i32.const 0
- local.set $3
i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|0
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $2
+ local.get $2
+ local.set $10
i32.const 0
- local.set $3
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|03
local.get $0
- local.tee $9
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $9
+ local.get $4
+ local.get $2
i32.load8_u
- local.tee $9
+ local.tee $2
i32.const 127
i32.and
- local.get $8
- i32.shl
local.get $3
+ i32.shl
i32.or
- local.set $3
- local.get $9
+ local.set $4
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|03
end
end
@@ -154,10 +154,10 @@
i32.const 0
local.set $0
i32.const 0
- local.set $8
- local.get $2
+ local.set $2
+ local.get $10
if
- local.get $2
+ local.get $10
i32.const 11
i32.gt_u
if
@@ -165,57 +165,60 @@
end
else
i32.const 0
- local.set $19
+ local.set $9
+ i32.const 0
+ local.set $13
global.get $assembly/index/off
- local.tee $10
+ local.tee $3
local.set $0
loop $do-loop|06
local.get $0
- local.tee $9
+ local.tee $2
i32.const 1
i32.add
local.set $0
local.get $9
+ local.get $2
i32.load8_u
- local.tee $9
+ local.tee $2
i32.const 127
i32.and
- local.get $19
+ local.get $13
i32.shl
- local.get $8
i32.or
- local.set $8
- local.get $9
+ local.set $9
+ local.get $2
i32.const 128
i32.and
if
- local.get $19
+ local.get $13
i32.const 7
i32.add
- local.set $19
+ local.set $13
br $do-loop|06
end
end
local.get $0
global.set $assembly/index/off
- local.get $8
global.get $assembly/index/off
local.tee $0
+ local.get $9
+ local.tee $2
i32.add
global.set $assembly/index/off
- local.get $3
+ local.get $4
global.get $assembly/index/off
- local.get $10
+ local.get $3
i32.sub
i32.sub
- local.set $3
+ local.set $4
end
- local.get $2
+ local.get $10
global.get $assembly/index/off
- local.tee $10
- local.get $3
+ local.tee $11
+ local.get $4
local.get $0
- local.get $8
+ local.get $2
call $assembly/options/onSection
if
block $break|1
@@ -230,99 +233,99 @@
block $case2|1
block $case1|1
block $case0|1
- local.get $2
+ local.get $10
br_table $case8|1 $case0|1 $case1|1 $case2|1 $case3|1 $case4|1 $case5|1 $case6|1 $case7|1 $case9|1 $case9|1 $case9|1 $case12|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|09
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|09
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $9
+ local.get $2
+ local.set $10
i32.const 0
- local.set $3
+ local.set $14
loop $for-loop|2
- local.get $3
- local.get $9
- i32.lt_u
+ local.get $10
+ local.get $14
+ i32.gt_u
if
i32.const 0
- local.set $8
+ local.set $3
i32.const 0
- local.set $2
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|011
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $3
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.set $8
- local.get $2
+ local.set $3
+ local.get $4
i32.const 7
i32.add
- local.set $2
- local.get $10
+ local.set $4
+ local.get $2
i32.const 128
i32.and
br_if $do-loop|011
end
local.get $0
global.set $assembly/index/off
+ local.get $14
local.get $3
i32.const -1
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.get $8
- local.get $10
+ local.get $3
+ local.get $2
i32.const 64
i32.and
i32.const 0
i32.ne
- local.get $2
+ local.get $4
i32.const 7
i32.lt_u
i32.and
@@ -331,96 +334,94 @@
i32.and
call $assembly/options/onType
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|014
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $4
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $4
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|014
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
- local.set $10
i32.const 0
- local.set $8
+ local.set $3
loop $for-loop|3
- local.get $8
- local.get $10
+ local.get $3
+ local.get $4
i32.lt_u
if
i32.const 0
- local.set $19
+ local.set $13
i32.const 0
- local.set $2
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|017
local.get $0
- local.tee $11
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $13
+ local.get $2
i32.load8_u
- local.tee $11
+ local.tee $2
i32.const 127
i32.and
- local.get $2
+ local.get $9
i32.shl
- local.get $19
i32.or
- local.set $19
- local.get $2
+ local.set $13
+ local.get $9
i32.const 7
i32.add
- local.set $2
- local.get $11
+ local.set $9
+ local.get $2
i32.const 128
i32.and
br_if $do-loop|017
end
local.get $0
global.set $assembly/index/off
+ local.get $14
local.get $3
- local.get $8
+ local.get $13
i32.const -1
- local.get $2
+ local.get $9
i32.shl
- local.get $19
i32.or
- local.get $19
- local.get $11
+ local.get $13
+ local.get $2
i32.const 64
i32.and
i32.const 0
i32.ne
- local.get $2
+ local.get $9
i32.const 7
i32.lt_u
i32.and
@@ -428,104 +429,102 @@
i32.const 127
i32.and
call $assembly/options/onTypeParam
- local.get $8
+ local.get $3
i32.const 1
i32.add
- local.set $8
+ local.set $3
br $for-loop|3
end
end
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|020
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $4
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $4
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|020
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
- local.set $10
i32.const 0
- local.set $8
+ local.set $2
loop $for-loop|4
- local.get $8
- local.get $10
+ local.get $2
+ local.get $4
i32.lt_u
if
i32.const 0
- local.set $19
+ local.set $13
i32.const 0
- local.set $2
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|023
local.get $0
- local.tee $11
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $13
+ local.get $3
i32.load8_u
- local.tee $11
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $9
i32.shl
- local.get $19
i32.or
- local.set $19
- local.get $2
+ local.set $13
+ local.get $9
i32.const 7
i32.add
- local.set $2
- local.get $11
+ local.set $9
+ local.get $3
i32.const 128
i32.and
br_if $do-loop|023
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.get $8
- i32.const -1
+ local.get $14
local.get $2
+ local.get $13
+ i32.const -1
+ local.get $9
i32.shl
- local.get $19
i32.or
- local.get $19
- local.get $11
+ local.get $13
+ local.get $3
i32.const 64
i32.and
i32.const 0
i32.ne
- local.get $2
+ local.get $9
i32.const 7
i32.lt_u
i32.and
@@ -533,137 +532,136 @@
i32.const 127
i32.and
call $assembly/options/onTypeReturn
- local.get $8
+ local.get $2
i32.const 1
i32.add
- local.set $8
+ local.set $2
br $for-loop|4
end
end
- local.get $3
+ local.get $14
i32.const 1
i32.add
- local.set $3
+ local.set $14
br $for-loop|2
end
end
br $break|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|026
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|026
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $9
+ local.get $2
+ local.set $10
i32.const 0
- local.set $3
+ local.set $14
loop $for-loop|5
- local.get $3
- local.get $9
- i32.lt_u
+ local.get $10
+ local.get $14
+ i32.gt_u
if
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|029
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $4
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $4
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|029
end
end
local.get $0
global.set $assembly/index/off
+ local.get $4
global.get $assembly/index/off
- local.tee $12
- local.get $2
- local.tee $10
+ local.tee $3
i32.add
global.set $assembly/index/off
i32.const 0
- local.set $2
+ local.set $9
i32.const 0
- local.set $8
+ local.set $13
global.get $assembly/index/off
local.set $0
loop $do-loop|032
local.get $0
- local.tee $11
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $9
+ local.get $2
i32.load8_u
- local.tee $11
+ local.tee $2
i32.const 127
i32.and
- local.get $8
+ local.get $13
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $11
+ local.set $9
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $13
i32.const 7
i32.add
- local.set $8
+ local.set $13
br $do-loop|032
end
end
@@ -671,23 +669,23 @@
global.set $assembly/index/off
global.get $assembly/index/off
local.tee $0
- local.get $2
+ local.get $9
i32.add
global.set $assembly/index/off
global.get $assembly/index/off
- local.tee $8
+ local.tee $2
i32.load8_u
local.set $11
- local.get $8
+ local.get $2
i32.const 1
i32.add
global.set $assembly/index/off
- local.get $3
+ local.get $14
local.get $11
- local.get $12
- local.get $10
+ local.get $3
+ local.get $4
local.get $0
- local.get $2
+ local.get $9
call $assembly/options/onImport
block $break|6
block $case4|6
@@ -698,346 +696,346 @@
local.get $11
br_table $case0|6 $case1|6 $case2|6 $case3|6 $case4|6
end
- local.get $7
- local.tee $0
+ local.get $6
+ local.tee $2
i32.const 1
i32.add
- local.set $7
- local.get $0
+ local.set $6
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|035
local.get $0
- local.tee $11
+ local.tee $9
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $4
+ local.get $9
i32.load8_u
- local.tee $11
+ local.tee $9
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $11
+ local.set $4
+ local.get $9
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|035
end
end
local.get $0
global.set $assembly/index/off
local.get $2
+ local.get $4
call $assembly/options/onFunctionImport
br $break|6
end
i32.const 0
- local.set $8
+ local.set $3
i32.const 0
- local.set $2
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|038
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $3
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.set $8
- local.get $2
+ local.set $3
+ local.get $4
i32.const 7
i32.add
- local.set $2
- local.get $10
+ local.set $4
+ local.get $2
i32.const 128
i32.and
br_if $do-loop|038
end
local.get $0
global.set $assembly/index/off
+ local.get $3
i32.const -1
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.get $8
- local.get $10
+ local.get $3
+ local.get $2
i32.const 64
i32.and
i32.const 0
i32.ne
- local.get $2
+ local.get $4
i32.const 7
i32.lt_u
i32.and
select
i32.const 127
i32.and
- local.set $14
+ local.set $13
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|041
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $3
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $3
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|041
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
- local.set $10
- local.get $6
- local.tee $11
+ local.get $3
+ local.set $0
+ local.get $7
+ local.tee $4
i32.const 1
i32.add
- local.set $6
+ local.set $7
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|044
- local.get $0
- local.tee $12
+ local.get $2
+ local.tee $11
i32.const 1
i32.add
- local.set $0
- local.get $12
+ local.set $2
+ local.get $3
+ local.get $11
i32.load8_u
- local.tee $12
+ local.tee $11
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $12
+ local.set $3
+ local.get $11
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|044
end
end
- local.get $0
- global.set $assembly/index/off
local.get $2
- local.set $12
- local.get $10
+ global.set $assembly/index/off
+ local.get $3
+ local.set $11
+ local.get $0
i32.const 1
i32.and
if
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|047
- local.get $0
- local.tee $13
+ local.get $2
+ local.tee $12
i32.const 1
i32.add
- local.set $0
- local.get $13
+ local.set $2
+ local.get $3
+ local.get $12
i32.load8_u
- local.tee $13
+ local.tee $12
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $13
+ local.set $3
+ local.get $12
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|047
end
end
- local.get $0
+ local.get $2
global.set $assembly/index/off
else
i32.const -1
- local.set $2
+ local.set $3
end
+ local.get $4
+ local.get $13
local.get $11
- local.get $14
- local.get $12
- local.get $2
- local.get $10
+ local.get $3
+ local.get $0
call $assembly/options/onTableImport
br $break|6
end
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|050
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $4
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $4
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|050
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
- local.set $10
- local.get $5
- local.tee $11
+ local.get $4
+ local.set $2
+ local.get $8
+ local.tee $9
i32.const 1
i32.add
- local.set $5
+ local.set $8
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|053
local.get $0
- local.tee $12
+ local.tee $11
i32.const 1
i32.add
local.set $0
- local.get $12
+ local.get $4
+ local.get $11
i32.load8_u
- local.tee $12
+ local.tee $11
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $12
+ local.set $4
+ local.get $11
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|053
end
end
local.get $0
global.set $assembly/index/off
+ local.get $4
+ local.set $11
local.get $2
- local.set $12
- local.get $10
i32.const 1
i32.and
if
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|056
local.get $0
- local.tee $13
+ local.tee $12
i32.const 1
i32.add
local.set $0
- local.get $13
+ local.get $4
+ local.get $12
i32.load8_u
- local.tee $13
+ local.tee $12
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $13
+ local.set $4
+ local.get $12
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|056
end
end
@@ -1045,347 +1043,343 @@
global.set $assembly/index/off
else
i32.const 65535
- local.set $2
+ local.set $4
end
+ local.get $9
local.get $11
- local.get $12
+ local.get $4
local.get $2
- local.get $10
call $assembly/options/onMemoryImport
br $break|6
end
- local.get $4
- local.tee $0
+ local.get $5
+ local.tee $2
i32.const 1
i32.add
- local.set $4
- local.get $0
+ local.set $5
i32.const 0
- local.set $8
+ local.set $3
i32.const 0
- local.set $2
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|059
local.get $0
- local.tee $11
+ local.tee $9
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $3
+ local.get $9
i32.load8_u
- local.tee $11
+ local.tee $9
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.set $8
- local.get $2
+ local.set $3
+ local.get $4
i32.const 7
i32.add
- local.set $2
- local.get $11
+ local.set $4
+ local.get $9
i32.const 128
i32.and
br_if $do-loop|059
end
local.get $0
global.set $assembly/index/off
+ local.get $3
i32.const -1
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.get $8
- local.get $11
+ local.get $3
+ local.get $9
i32.const 64
i32.and
i32.const 0
i32.ne
- local.get $2
+ local.get $4
i32.const 7
i32.lt_u
i32.and
select
i32.const 127
i32.and
+ local.set $11
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|062
local.get $0
- local.tee $11
+ local.tee $9
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $4
+ local.get $9
i32.load8_u
- local.tee $11
+ local.tee $9
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $11
+ local.set $4
+ local.get $9
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|062
end
end
local.get $0
global.set $assembly/index/off
local.get $2
+ local.get $11
+ local.get $4
call $assembly/options/onGlobalImport
br $break|6
end
unreachable
end
- local.get $3
+ local.get $14
i32.const 1
i32.add
- local.set $3
+ local.set $14
br $for-loop|5
end
end
br $break|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|065
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|065
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $9
i32.const 0
- local.set $3
+ local.set $14
loop $for-loop|7
- local.get $3
- local.get $9
- i32.lt_u
+ local.get $2
+ local.get $14
+ i32.gt_u
if
- local.get $7
- local.tee $0
+ local.get $6
+ local.tee $9
i32.const 1
i32.add
- local.set $7
- local.get $0
+ local.set $6
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|068
local.get $0
- local.tee $11
+ local.tee $10
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $4
+ local.get $10
i32.load8_u
- local.tee $11
+ local.tee $10
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $11
+ local.set $4
+ local.get $10
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|068
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
+ local.get $9
+ local.get $4
call $assembly/options/onFunction
- local.get $3
+ local.get $14
i32.const 1
i32.add
- local.set $3
+ local.set $14
br $for-loop|7
end
end
br $break|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|071
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|071
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $9
+ local.get $2
+ local.set $10
i32.const 0
- local.set $3
+ local.set $14
loop $for-loop|8
- local.get $3
- local.get $9
- i32.lt_u
+ local.get $10
+ local.get $14
+ i32.gt_u
if
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|074
local.get $0
- local.tee $10
+ local.tee $2
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $4
+ local.get $2
i32.load8_u
- local.tee $10
+ local.tee $2
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $4
+ local.get $2
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|074
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
- i32.const 127
- i32.and
- local.set $14
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|077
- local.get $0
- local.tee $10
+ local.get $2
+ local.tee $0
i32.const 1
i32.add
- local.set $0
- local.get $10
+ local.set $2
+ local.get $3
+ local.get $0
i32.load8_u
- local.tee $10
+ local.tee $0
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $3
+ local.get $0
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|077
end
end
- local.get $0
- global.set $assembly/index/off
local.get $2
- local.set $10
- local.get $6
+ global.set $assembly/index/off
+ local.get $3
+ local.set $2
+ local.get $7
local.tee $11
i32.const 1
i32.add
- local.set $6
+ local.set $7
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|080
@@ -1394,39 +1388,39 @@
i32.const 1
i32.add
local.set $0
+ local.get $3
local.get $12
i32.load8_u
local.tee $12
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
+ local.set $3
local.get $12
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|080
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
+ local.get $3
local.set $12
- local.get $10
+ local.get $2
i32.const 1
i32.and
if
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|083
@@ -1435,24 +1429,24 @@
i32.const 1
i32.add
local.set $0
+ local.get $3
local.get $13
i32.load8_u
local.tee $13
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
+ local.set $3
local.get $13
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|083
end
end
@@ -1460,180 +1454,178 @@
global.set $assembly/index/off
else
i32.const -1
- local.set $2
+ local.set $3
end
local.get $11
- local.get $14
+ local.get $4
+ i32.const 127
+ i32.and
local.get $12
+ local.get $3
local.get $2
- local.get $10
call $assembly/options/onTable
- local.get $3
+ local.get $14
i32.const 1
i32.add
- local.set $3
+ local.set $14
br $for-loop|8
end
end
br $break|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|086
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|086
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $9
i32.const 0
- local.set $3
+ local.set $14
loop $for-loop|9
- local.get $3
- local.get $9
- i32.lt_u
+ local.get $2
+ local.get $14
+ i32.gt_u
if
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|089
local.get $0
- local.tee $10
+ local.tee $9
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $4
+ local.get $9
i32.load8_u
- local.tee $10
+ local.tee $9
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $4
+ local.get $9
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|089
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
- local.set $10
- local.get $5
- local.tee $11
+ local.get $8
+ local.tee $10
i32.const 1
i32.add
- local.set $5
+ local.set $8
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|092
local.get $0
- local.tee $12
+ local.tee $11
i32.const 1
i32.add
local.set $0
- local.get $12
+ local.get $3
+ local.get $11
i32.load8_u
- local.tee $12
+ local.tee $11
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $12
+ local.set $3
+ local.get $11
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|092
end
end
local.get $0
global.set $assembly/index/off
- local.get $2
- local.set $12
- local.get $10
+ local.get $3
+ local.set $11
+ local.get $4
i32.const 1
i32.and
if
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|095
local.get $0
- local.tee $13
+ local.tee $12
i32.const 1
i32.add
local.set $0
- local.get $13
+ local.get $3
+ local.get $12
i32.load8_u
- local.tee $13
+ local.tee $12
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $13
+ local.set $3
+ local.get $12
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|095
end
end
@@ -1641,169 +1633,163 @@
global.set $assembly/index/off
else
i32.const 65535
- local.set $2
+ local.set $3
end
- local.get $11
- local.get $12
- local.get $2
local.get $10
- call $assembly/options/onMemory
+ local.get $11
local.get $3
+ local.get $4
+ call $assembly/options/onMemory
+ local.get $14
i32.const 1
i32.add
- local.set $3
+ local.set $14
br $for-loop|9
end
end
br $break|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|098
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|098
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $9
i32.const 0
- local.set $3
+ local.set $14
loop $for-loop|10
- local.get $3
- local.get $9
- i32.lt_u
+ local.get $2
+ local.get $14
+ i32.gt_u
if
i32.const 0
- local.set $8
+ local.set $3
i32.const 0
- local.set $2
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0101
local.get $0
- local.tee $10
+ local.tee $9
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $3
+ local.get $9
i32.load8_u
- local.tee $10
+ local.tee $9
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.set $8
- local.get $2
+ local.set $3
+ local.get $4
i32.const 7
i32.add
- local.set $2
- local.get $10
+ local.set $4
+ local.get $9
i32.const 128
i32.and
br_if $do-loop|0101
end
local.get $0
global.set $assembly/index/off
+ local.get $3
i32.const -1
- local.get $2
+ local.get $4
i32.shl
- local.get $8
i32.or
- local.get $8
- local.get $10
+ local.get $3
+ local.get $9
i32.const 64
i32.and
i32.const 0
i32.ne
- local.get $2
+ local.get $4
i32.const 7
i32.lt_u
i32.and
select
i32.const 127
i32.and
- local.set $13
+ local.set $11
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|0104
local.get $0
- local.tee $10
+ local.tee $4
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $3
+ local.get $4
i32.load8_u
- local.tee $10
+ local.tee $4
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $3
+ local.get $4
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|0104
end
end
local.get $0
global.set $assembly/index/off
i32.const 0
- local.set $8
- i64.const 0
- local.set $18
- i32.const 0
- local.set $12
+ local.set $4
i32.const 0
- local.set $11
+ local.set $9
+ i64.const 0
+ local.set $15
i64.const 0
local.set $17
- i32.const 0
- local.set $10
global.get $assembly/index/off
local.tee $0
i32.load8_u
- local.set $14
+ local.set $10
local.get $0
i32.const 1
i32.add
@@ -1814,23 +1800,23 @@
block $case3|0
block $case2|0
block $case1|0
- local.get $14
+ local.get $10
i32.const 65
i32.ne
if
- local.get $14
+ local.get $10
i32.const 66
i32.eq
br_if $case1|0
- local.get $14
+ local.get $10
i32.const 67
i32.eq
br_if $case2|0
- local.get $14
+ local.get $10
i32.const 68
i32.eq
br_if $case3|0
- local.get $14
+ local.get $10
i32.const 35
i32.eq
br_if $case4|0
@@ -1844,20 +1830,20 @@
i32.const 1
i32.add
local.set $0
+ local.get $9
local.get $10
i32.load8_u
local.tee $10
i32.const 127
i32.and
- local.get $8
+ local.get $4
i32.shl
- local.get $11
i32.or
- local.set $11
- local.get $8
+ local.set $9
+ local.get $4
i32.const 7
i32.add
- local.set $8
+ local.set $4
local.get $10
i32.const 128
i32.and
@@ -1871,25 +1857,25 @@
local.set $0
loop $do-loop|01
local.get $0
- local.tee $8
+ local.tee $4
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $17
+ local.get $4
i64.load8_u
- local.tee $16
+ local.tee $18
i64.const 127
i64.and
- local.get $18
+ local.get $15
i64.shl
- local.get $17
i64.or
local.set $17
- local.get $18
+ local.get $15
i64.const 7
i64.add
- local.set $18
- local.get $16
+ local.set $15
+ local.get $18
i64.const 128
i64.and
i64.const 0
@@ -1924,28 +1910,28 @@
local.set $0
loop $do-loop|031
local.get $0
- local.tee $8
+ local.tee $10
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $9
+ local.get $10
i32.load8_u
- local.tee $8
+ local.tee $10
i32.const 127
i32.and
- local.get $12
+ local.get $4
i32.shl
- local.get $10
i32.or
- local.set $10
- local.get $8
+ local.set $9
+ local.get $10
i32.const 128
i32.and
if
- local.get $12
+ local.get $4
i32.const 7
i32.add
- local.set $12
+ local.set $4
br $do-loop|031
end
end
@@ -1967,207 +1953,204 @@
if
unreachable
end
- local.get $4
+ local.get $5
local.tee $0
i32.const 1
i32.add
- local.set $4
+ local.set $5
local.get $0
- local.get $13
- local.get $2
- call $assembly/options/onGlobal
+ local.get $11
local.get $3
+ call $assembly/options/onGlobal
+ local.get $14
i32.const 1
i32.add
- local.set $3
+ local.set $14
br $for-loop|10
end
end
br $break|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0107
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|0107
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $9
i32.const 0
- local.set $3
+ local.set $14
loop $for-loop|11
- local.get $3
- local.get $9
- i32.lt_u
+ local.get $2
+ local.get $14
+ i32.gt_u
if
i32.const 0
- local.set $2
+ local.set $4
i32.const 0
- local.set $8
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|0110
local.get $0
- local.tee $10
+ local.tee $9
i32.const 1
i32.add
local.set $0
- local.get $10
+ local.get $4
+ local.get $9
i32.load8_u
- local.tee $10
+ local.tee $9
i32.const 127
i32.and
- local.get $8
+ local.get $3
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $10
+ local.set $4
+ local.get $9
i32.const 128
i32.and
if
- local.get $8
+ local.get $3
i32.const 7
i32.add
- local.set $8
+ local.set $3
br $do-loop|0110
end
end
local.get $0
global.set $assembly/index/off
+ local.get $4
global.get $assembly/index/off
- local.tee $12
- local.get $2
- local.tee $10
+ local.tee $11
i32.add
global.set $assembly/index/off
global.get $assembly/index/off
local.tee $0
i32.load8_u
- local.set $13
+ local.set $12
local.get $0
i32.const 1
i32.add
global.set $assembly/index/off
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|0114
local.get $0
- local.tee $11
+ local.tee $10
i32.const 1
i32.add
local.set $0
- local.get $11
+ local.get $3
+ local.get $10
i32.load8_u
- local.tee $11
+ local.tee $10
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
- local.get $11
+ local.set $3
+ local.get $10
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|0114
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.get $13
- local.get $2
+ local.get $14
local.get $12
- local.get $10
- call $assembly/options/onExport
local.get $3
+ local.get $11
+ local.get $4
+ call $assembly/options/onExport
+ local.get $14
i32.const 1
i32.add
- local.set $3
+ local.set $14
br $for-loop|11
end
end
br $break|1
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0117
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|0117
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
+ local.get $2
call $assembly/options/onStart
br $break|1
end
- local.get $8
+ local.get $2
i32.const 4
i32.eq
if (result i32)
@@ -2179,47 +2162,45 @@
i32.const 0
end
if
- i32.const 0
- local.set $3
i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0120
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|0120
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $8
i32.const 0
- local.set $3
+ local.set $4
i32.const 0
- local.set $2
+ local.set $3
global.get $assembly/index/off
local.set $0
loop $do-loop|0123
@@ -2228,429 +2209,425 @@
i32.const 1
i32.add
local.set $0
+ local.get $4
local.get $9
i32.load8_u
local.tee $9
i32.const 127
i32.and
- local.get $2
- i32.shl
local.get $3
+ i32.shl
i32.or
- local.set $3
+ local.set $4
local.get $9
i32.const 128
i32.and
if
- local.get $2
+ local.get $3
i32.const 7
i32.add
- local.set $2
+ local.set $3
br $do-loop|0123
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
+ local.get $4
global.get $assembly/index/off
block $break|12
block $case3|12
block $case2|12
block $case1|12
block $case0|12
- local.get $8
+ local.get $2
br_table $case0|12 $case1|12 $case2|12 $case3|12
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0126
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|0126
end
end
local.get $0
global.set $assembly/index/off
global.get $assembly/index/off
- local.get $3
+ local.get $2
call $assembly/options/onModuleName
br $break|12
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0129
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|0129
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $10
+ local.get $2
+ local.set $4
i32.const 0
- local.set $3
+ local.set $0
loop $for-loop|13
- local.get $3
- local.get $10
+ local.get $0
+ local.get $4
i32.lt_u
if
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|0132
- local.get $0
+ local.get $2
local.tee $11
i32.const 1
i32.add
- local.set $0
+ local.set $2
+ local.get $3
local.get $11
i32.load8_u
local.tee $11
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
+ local.set $3
local.get $11
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|0132
end
end
- local.get $0
- global.set $assembly/index/off
local.get $2
+ global.set $assembly/index/off
+ local.get $3
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|0135
- local.get $0
+ local.get $2
local.tee $12
i32.const 1
i32.add
- local.set $0
+ local.set $2
+ local.get $3
local.get $12
i32.load8_u
local.tee $12
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
+ local.set $3
local.get $12
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|0135
end
end
- local.get $0
+ local.get $2
global.set $assembly/index/off
global.get $assembly/index/off
- local.tee $0
- local.get $2
+ local.tee $2
+ local.get $3
i32.add
global.set $assembly/index/off
- local.get $0
local.get $2
- call $assembly/options/onFunctionName
local.get $3
+ call $assembly/options/onFunctionName
+ local.get $0
i32.const 1
i32.add
- local.set $3
+ local.set $0
br $for-loop|13
end
end
br $break|12
end
i32.const 0
- local.set $3
- i32.const 0
local.set $2
+ i32.const 0
+ local.set $4
global.get $assembly/index/off
local.set $0
loop $do-loop|0138
local.get $0
- local.tee $8
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $8
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $8
+ local.tee $3
i32.const 127
i32.and
- local.get $2
+ local.get $4
i32.shl
- local.get $3
i32.or
- local.set $3
- local.get $8
+ local.set $2
+ local.get $3
i32.const 128
i32.and
if
- local.get $2
+ local.get $4
i32.const 7
i32.add
- local.set $2
+ local.set $4
br $do-loop|0138
end
end
local.get $0
global.set $assembly/index/off
- local.get $3
- local.set $10
+ local.get $2
+ local.set $4
i32.const 0
- local.set $3
+ local.set $0
loop $for-loop|14
- local.get $3
- local.get $10
+ local.get $0
+ local.get $4
i32.lt_u
if
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|0141
- local.get $0
+ local.get $2
local.tee $11
i32.const 1
i32.add
- local.set $0
+ local.set $2
+ local.get $3
local.get $11
i32.load8_u
local.tee $11
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
+ local.set $3
local.get $11
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|0141
end
end
- local.get $0
- global.set $assembly/index/off
local.get $2
+ global.set $assembly/index/off
+ local.get $3
local.set $11
i32.const 0
- local.set $2
+ local.set $3
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|0144
- local.get $0
+ local.get $2
local.tee $12
i32.const 1
i32.add
- local.set $0
+ local.set $2
+ local.get $3
local.get $12
i32.load8_u
local.tee $12
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
- local.set $2
+ local.set $3
local.get $12
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|0144
end
end
- local.get $0
- global.set $assembly/index/off
local.get $2
- local.set $12
+ global.set $assembly/index/off
i32.const 0
- local.set $2
+ local.set $14
loop $for-loop|15
- local.get $2
- local.get $12
- i32.lt_u
+ local.get $3
+ local.get $14
+ i32.gt_u
if
i32.const 0
- local.set $8
+ local.set $9
i32.const 0
- local.set $19
+ local.set $13
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|0147
- local.get $0
- local.tee $13
+ local.get $2
+ local.tee $12
i32.const 1
i32.add
- local.set $0
- local.get $13
+ local.set $2
+ local.get $9
+ local.get $12
i32.load8_u
- local.tee $13
+ local.tee $12
i32.const 127
i32.and
- local.get $19
+ local.get $13
i32.shl
- local.get $8
i32.or
- local.set $8
- local.get $13
+ local.set $9
+ local.get $12
i32.const 128
i32.and
if
- local.get $19
+ local.get $13
i32.const 7
i32.add
- local.set $19
+ local.set $13
br $do-loop|0147
end
end
- local.get $0
+ local.get $2
global.set $assembly/index/off
- local.get $8
- local.set $13
i32.const 0
- local.set $8
+ local.set $13
i32.const 0
- local.set $19
+ local.set $16
global.get $assembly/index/off
- local.set $0
+ local.set $2
loop $do-loop|0150
- local.get $0
- local.tee $14
+ local.get $2
+ local.tee $12
i32.const 1
i32.add
- local.set $0
- local.get $14
+ local.set $2
+ local.get $13
+ local.get $12
i32.load8_u
- local.tee $14
+ local.tee $12
i32.const 127
i32.and
- local.get $19
+ local.get $16
i32.shl
- local.get $8
i32.or
- local.set $8
- local.get $14
+ local.set $13
+ local.get $12
i32.const 128
i32.and
if
- local.get $19
+ local.get $16
i32.const 7
i32.add
- local.set $19
+ local.set $16
br $do-loop|0150
end
end
- local.get $0
+ local.get $2
global.set $assembly/index/off
global.get $assembly/index/off
- local.tee $0
- local.get $8
+ local.tee $2
+ local.get $13
i32.add
global.set $assembly/index/off
local.get $11
+ local.get $9
+ local.get $2
local.get $13
- local.get $0
- local.get $8
call $assembly/options/onLocalName
- local.get $2
+ local.get $14
i32.const 1
i32.add
- local.set $2
+ local.set $14
br $for-loop|15
end
end
- local.get $3
+ local.get $0
i32.const 1
i32.add
- local.set $3
+ local.set $0
br $for-loop|14
end
end
@@ -2662,7 +2639,7 @@
global.set $assembly/index/off
br $break|1
else
- local.get $8
+ local.get $2
i32.const 16
i32.eq
if (result i32)
@@ -2685,33 +2662,33 @@
i32.const 0
local.set $2
i32.const 0
- local.set $8
+ local.set $9
global.get $assembly/index/off
local.set $0
loop $do-loop|0153
local.get $0
- local.tee $9
+ local.tee $3
i32.const 1
i32.add
local.set $0
- local.get $9
+ local.get $2
+ local.get $3
i32.load8_u
- local.tee $9
+ local.tee $3
i32.const 127
i32.and
- local.get $8
+ local.get $9
i32.shl
- local.get $2
i32.or
local.set $2
- local.get $9
+ local.get $3
i32.const 128
i32.and
if
- local.get $8
+ local.get $9
i32.const 7
i32.add
- local.set $8
+ local.set $9
br $do-loop|0153
end
end
@@ -2727,14 +2704,14 @@
call $assembly/options/onSourceMappingURL
end
end
- local.get $3
- local.get $10
+ local.get $4
+ local.get $11
i32.add
global.set $assembly/index/off
br $break|1
end
- local.get $3
global.get $assembly/index/off
+ local.get $4
i32.add
global.set $assembly/index/off
br $break|1
@@ -2742,16 +2719,16 @@
unreachable
end
else
- local.get $3
global.get $assembly/index/off
+ local.get $4
i32.add
global.set $assembly/index/off
end
br $while-continue|0
end
end
- local.get $1
global.get $assembly/index/off
+ local.get $1
i32.ne
if
unreachable
diff --git a/parse/package.json b/parse/package.json
index d638f18..dbc0eb2 100644
--- a/parse/package.json
+++ b/parse/package.json
@@ -6,7 +6,7 @@
"main": "index.js",
"types": "index.d.ts",
"scripts": {
- "asbuild": "asc assembly/index.ts -O3 -b build/index.wasm -t build/index.wat --importMemory --runtime stub --sourceMap",
+ "asbuild": "asc assembly/index.ts -O3 -o build/index.wasm -t build/index.wat --importMemory --runtime stub --sourceMap",
"build": "npm run asbuild && webpack --mode production",
"test": "ts-node tests/"
},
diff --git a/transform/README.md b/transform/README.md
index 5bbe90d..94926b2 100644
--- a/transform/README.md
+++ b/transform/README.md
@@ -9,10 +9,6 @@ Instructions
* [JavaScript transform](./mytransform.js)
An ES6 JavaScript transform. Recommended.
-* [TypeScript transform](./mytransform.ts)
- A transform written in TypeScript. This works currently because the compiler
- utilizes ts-node anyway, so can as well transpile the transform to ES6.
-
See [package.json](./package.json) on how to utilize the transforms with `asc`.
You may also run
diff --git a/transform/mytransform.js b/transform/mytransform.mjs
similarity index 52%
rename from transform/mytransform.js
rename to transform/mytransform.mjs
index eedba57..f5007e3 100644
--- a/transform/mytransform.js
+++ b/transform/mytransform.mjs
@@ -1,17 +1,21 @@
-const { Transform } = require("assemblyscript/cli/transform");
-const { SourceKind, ElementKind } = require("assemblyscript");
-const binaryen = require("binaryen");
+import * as assemblyscript from "assemblyscript";
+import { Transform } from "assemblyscript/transform";
+import binaryen from "binaryen";
class MyTransform extends Transform {
afterParse(parser) {
this.log("[mytransform.js] afterParse called, baseDir = " + this.baseDir);
var sources = this.program.sources;
- sources.forEach(source => this.log(" " + source.internalPath + " [" + SourceKind[source.sourceKind] + "]"));
+ sources.forEach((source) =>
+ this.log(" " + source.internalPath + " [" + assemblyscript.SourceKind[source.sourceKind] + "]")
+ );
}
afterInitialize(program) {
this.log("[mytransform.js] afterInitialize called");
var elements = program.elementsByName;
- elements.forEach(element => this.log(" " + element.internalName + " [" + ElementKind[element.kind] + "]"));
+ elements.forEach((element) =>
+ this.log(" " + element.internalName + " [" + assemblyscript.ElementKind[element.kind] + "]")
+ );
}
afterCompile(asModule) {
this.log("[mytransform.js] afterCompile called");
@@ -20,4 +24,4 @@ class MyTransform extends Transform {
}
}
-module.exports = MyTransform;
+export default MyTransform;
diff --git a/transform/mytransform.ts b/transform/mytransform.ts
deleted file mode 100644
index 5b5b14f..0000000
--- a/transform/mytransform.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Transform } from "assemblyscript/cli/transform";
-import { Parser, Module, SourceKind, ElementKind, Program } from "assemblyscript";
-import * as binaryen from "binaryen";
-
-class MyTransform extends Transform {
- afterParse(parser: Parser): void {
- this.log("[mytransform.ts] afterParse called, baseDir = " + this.baseDir);
- var sources = this.program.sources;
- sources.forEach(source => this.log(" " + source.internalPath + " [" + SourceKind[source.sourceKind] + "]"));
- }
- afterInitialize(program: Program) {
- this.log("[mytransform.ts] afterInitialize called");
- var elements = program.elementsByName;
- elements.forEach(element => this.log(" " + element.internalName + " [" + ElementKind[element.kind] + "]"));
- }
- afterCompile(asModule: Module): void {
- this.log("[mytransform.ts] afterCompile called");
- var module = binaryen.wrapModule(asModule.ref);
- this.log(module.emitBinary());
- }
-}
-
-console.log()
-
-export = MyTransform;
diff --git a/transform/package.json b/transform/package.json
index c46dca4..e5c2075 100644
--- a/transform/package.json
+++ b/transform/package.json
@@ -4,14 +4,9 @@
"license": "Apache-2.0",
"private": true,
"scripts": {
- "test:js": "asc assembly/index.ts --runtime stub --transform ./mytransform.js",
- "test:ts": "asc assembly/index.ts --runtime stub --transform ./mytransform.ts",
- "test:multi": "asc assembly/index.ts --runtime stub --transform ./mytransform.js --transform ./mytransform.ts",
- "test": "npm run test:js && npm run test:ts && npm run test:multi"
+ "test": "asc assembly/index.ts --runtime stub --transform ./mytransform.mjs"
},
"devDependencies": {
- "assemblyscript": "latest",
- "ts-node": "^8.10.2",
- "typescript": "^3.9.7"
+ "assemblyscript": "latest"
}
}