1
0
mirror of https://github.com/fluencelabs/assemblyscript synced 2025-07-20 00:32:16 +00:00

tackle unreachables

suspend compilation on break, optimize stack ir, detect fallthrough instead of terminate
This commit is contained in:
dcode
2019-06-10 08:54:41 +02:00
parent 56dbe77a04
commit 3f35a9209f
92 changed files with 42247 additions and 54227 deletions
src
tests
binaryen
compiler
abi.untouched.watassert-nonnull.optimized.watassert-nonnull.untouched.watbinary.untouched.watcall-optional.untouched.watcall-super.optimized.watcall-super.untouched.watcomma.untouched.watconstructor.optimized.watconstructor.untouched.watdo.untouched.watempty.jsonexports.untouched.watfor.optimized.watfor.untouched.watfunction-expression.untouched.watfunction-types.untouched.watgetter-call.untouched.watgetter-setter.untouched.watif.untouched.watinfer-type.untouched.watinlining-blocklocals.untouched.watinlining-recursive.untouched.watinlining.untouched.watinstanceof.untouched.watlogical.untouched.watloop-flow.optimized.watloop-flow.tsloop-flow.untouched.watmandelbrot.optimized.watmandelbrot.untouched.watmemcpy.untouched.watmemmove.untouched.watmemset.optimized.watmemset.untouched.watnumber.optimized.watnumber.untouched.watoverflow.untouched.watpossibly-null.untouched.wat
rc
retain-i32.untouched.watretain-release-sanity.optimized.watretain-release-sanity.untouched.watretain-release.optimized.watretain-release.untouched.wat
rt
runtime-full.untouched.watscoped.untouched.wat
std
switch.untouched.watunary.untouched.watwasi.untouched.watwhile.untouched.wat

@@ -38,11 +38,11 @@ import {
getBlockChildCount,
getBlockChild,
getBlockName,
needsExplicitUnreachable,
getLocalGetIndex,
FeatureFlags,
isLocalTee,
getLocalSetIndex
getLocalSetIndex,
FeatureFlags,
needsExplicitUnreachable
} from "./module";
import {
@@ -1780,6 +1780,7 @@ export class Compiler extends DiagnosticEmitter {
stmts = new Array<ExpressionRef>(numStatements);
stmts.length = 0;
}
var module = this.module;
var flow = this.currentFlow;
for (let i = 0; i < numStatements; ++i) {
let stmt = this.compileStatement(statements[i],
@@ -1798,8 +1799,8 @@ export class Compiler extends DiagnosticEmitter {
default: stmts.push(stmt);
case ExpressionId.Nop:
}
if (flow.is(FlowFlags.TERMINATES)) {
if (needsExplicitUnreachable(stmt)) stmts.push(this.module.unreachable());
if (flow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) {
if (needsExplicitUnreachable(stmt)) stmts.push(module.unreachable());
break;
}
}
@@ -1816,7 +1817,7 @@ export class Compiler extends DiagnosticEmitter {
this.currentFlow = innerFlow;
var stmts = this.compileStatements(statements);
if (!innerFlow.is(FlowFlags.TERMINATES)) this.performAutoreleases(innerFlow, stmts);
if (!innerFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) this.performAutoreleases(innerFlow, stmts);
innerFlow.freeScopedLocals();
outerFlow.inherit(innerFlow); // TODO: only if not terminated?
this.currentFlow = outerFlow;
@@ -1846,10 +1847,10 @@ export class Compiler extends DiagnosticEmitter {
}
var stmts = new Array<ExpressionRef>();
this.performAutoreleases(flow, stmts);
var current: Flow | null = flow.parent;
while (current && current.breakLabel === breakLabel) {
this.performAutoreleases(current, stmts, /* clearFlags */ false);
current = current.parent;
var parent = flow.parent;
while (parent !== null && parent.breakLabel == breakLabel) {
this.performAutoreleases(parent, stmts, /* clearFlags */ false);
parent = parent.parent;
}
flow.freeScopedLocals();
stmts.push(module.br(breakLabel));
@@ -1934,18 +1935,19 @@ export class Compiler extends DiagnosticEmitter {
// (block $break ;; (1) skip if no breaks
// (loop $continue ;; (2) skip if skipping (4) + no continues
// (...) ;; (3)
// (br_if cond $continue) ;; (4) skip if (3) terminates or always false
// (br_if cond $continue) ;; (4) skip if (3) does not fall through or always false
// )
// )
var fallsThrough = !terminates && !innerFlow.is(FlowFlags.BREAKS);
if (!terminates && !alwaysFalse) {
if (fallsThrough && !alwaysFalse) { // (4)
stmts.push(module.br(continueLabel, condExpr));
}
var expr = flatten(module, stmts, NativeType.None);
if (!terminates && !alwaysFalse || continues) {
if (fallsThrough && !alwaysFalse || continues) { // (2)
expr = module.loop(continueLabel, expr);
}
if (breaks) {
if (breaks) { // (1)
expr = module.block(breakLabel, [ expr ]);
}
@@ -2060,6 +2062,7 @@ export class Compiler extends DiagnosticEmitter {
// (br $loop) ;; (8) skip if skipping (3)
// )
// )
var fallsThrough = !terminates && !innerFlow.is(FlowFlags.BREAKS);
var needsLabel = !alwaysTrue || breaks;
var loop = new Array<ExpressionRef>();
@@ -2067,14 +2070,14 @@ export class Compiler extends DiagnosticEmitter {
loop.push(module.br(breakLabel, module.unary(UnaryOp.EqzI32, condExpr)));
}
if (continues) { // (5)
if (stmts.length > 1) { // otherwise lonely continue
if (stmts.length > 1 || getExpressionId(stmts[0]) != ExpressionId.Break) { // otherwise lonely continue
loop.push(module.block(continueLabel, stmts));
}
} else {
for (let i = 0, k = stmts.length; i < k; ++i) loop.push(stmts[i]);
}
var expr: ExpressionRef;
if (!terminates || continues) { // (3)
if (fallsThrough || continues) { // (3)
if (incrExpr) loop.push(incrExpr); // (7)
this.performAutoreleases(innerFlow, loop);
loop.push(module.br(loopLabel)); // (8)
@@ -2148,7 +2151,7 @@ export class Compiler extends DiagnosticEmitter {
} else {
ifTrueStmts.push(this.compileStatement(ifTrue));
}
if (!ifTrueFlow.is(FlowFlags.TERMINATES)) this.performAutoreleases(ifTrueFlow, ifTrueStmts);
if (!ifTrueFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) this.performAutoreleases(ifTrueFlow, ifTrueStmts);
ifTrueFlow.freeScopedLocals();
this.currentFlow = outerFlow;
@@ -2162,7 +2165,7 @@ export class Compiler extends DiagnosticEmitter {
} else {
ifFalseStmts.push(this.compileStatement(ifFalse));
}
if (!ifFalseFlow.is(FlowFlags.TERMINATES)) this.performAutoreleases(ifFalseFlow, ifFalseStmts);
if (!ifFalseFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) this.performAutoreleases(ifFalseFlow, ifFalseStmts);
ifFalseFlow.freeScopedLocals();
this.currentFlow = outerFlow;
outerFlow.inheritMutual(ifTrueFlow, ifFalseFlow);
@@ -2354,10 +2357,10 @@ export class Compiler extends DiagnosticEmitter {
let stmt = this.compileStatement(statements[j]);
if (getExpressionId(stmt) != ExpressionId.Nop) {
stmts[count++] = stmt;
if (innerFlow.is(FlowFlags.TERMINATES)) {
terminates = true;
break;
}
if (innerFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) {
if (innerFlow.is(FlowFlags.TERMINATES)) terminates = true;
break;
}
}
stmts.length = count;
@@ -2655,6 +2658,7 @@ export class Compiler extends DiagnosticEmitter {
} else {
stmts.push(this.compileStatement(statement.statement));
}
var terminates = innerFlow.is(FlowFlags.TERMINATES);
// (block $break ;; (1) skip if skipping (3) + no breaks
// (loop $continue ;; (2) skip if skipping (5) + no continues
@@ -2663,9 +2667,9 @@ export class Compiler extends DiagnosticEmitter {
// (br $continue) ;; (5) skip if (4) does not fall through
// )
// )
var fallsThrough = !terminates && !innerFlow.is(FlowFlags.BREAKS);
var terminates = innerFlow.is(FlowFlags.TERMINATES);
if (!terminates) { // (5)
if (fallsThrough) { // (5)
this.performAutoreleases(innerFlow, stmts);
stmts.push(module.br(continueLabel));
}
@@ -2673,7 +2677,7 @@ export class Compiler extends DiagnosticEmitter {
stmts.unshift(module.br(breakLabel, module.unary(UnaryOp.EqzI32, condExpr)));
}
var expr = flatten(module, stmts, NativeType.None);
if (!terminates || innerFlow.isAny(FlowFlags.CONTINUES | FlowFlags.CONDITIONALLY_CONTINUES)) { // (2)
if (fallsThrough || innerFlow.isAny(FlowFlags.CONTINUES | FlowFlags.CONDITIONALLY_CONTINUES)) { // (2)
expr = module.loop(continueLabel, expr);
}
if (!alwaysTrue || innerFlow.isAny(FlowFlags.BREAKS | FlowFlags.CONDITIONALLY_BREAKS)) { // (1)
@@ -9065,7 +9069,16 @@ var mangleImportName_elementName: string;
export function flatten(module: Module, stmts: ExpressionRef[], type: NativeType): ExpressionRef {
var length = stmts.length;
if (length == 0) return module.nop(); // usually filtered out again
if (length == 1 && getExpressionType(stmts[0]) == type) return stmts[0];
if (length == 1) {
let single = stmts[0];
if (getExpressionType(single) == type) return single;
if (getExpressionId(single) == ExpressionId.Block) {
let count = getBlockChildCount(single);
let children = new Array<ExpressionRef>(count);
for (let i = 0; i < count; ++i) children[i] = getBlockChild(single, i);
return module.block(getBlockName(single), children, type);
}
}
return module.block(null, stmts,
type == NativeType.Auto
? getExpressionType(stmts[length - 1])

@@ -14,7 +14,11 @@ import "./i64";
import { Module } from "../../module";
Module.prototype.toText = function(this: Module) {
return binaryen.wrapModule(this.ref).emitStackIR();
// NOTE: Conversion to StackIR can yield conversion artifacts like sequences
// of unreachable statements not actually emitted by the compiler. Optimizing
// StackIR removes these again, but may also suppress useless code emitted by
// the compiler that's then no longer visible in tests. Both not ideal.
return binaryen.wrapModule(this.ref).emitStackIR(/* optimize-stack-ir */ true);
};
Module.prototype.toAsmjs = function(this: Module) {

@@ -0,0 +1,25 @@
var binaryen = require("binaryen");
var mod = new binaryen.Module();
var funcType = mod.addFunctionType("ii", binaryen.i32, [ binaryen.i32 ]);
mod.addFunction("0", funcType, [],
mod.block(null, [
mod.loop("continue",
mod.block(null, [
mod.if(
mod.local.get(0, binaryen.i32),
mod.return(mod.i32.const(1)),
mod.return(mod.i32.const(2))
),
mod.unreachable()
])
),
mod.unreachable()
], binaryen.i32)
);
mod.addExport("0", "0");
if (!mod.validate())
console.log("-> does not validate");
console.log(mod.emitText());
console.log(mod.emitStackIR(/*true*/)); // optimize-stack-ir fixes this

@@ -25,7 +25,6 @@
i32.const 0
i32.eqz
global.set $abi/condition
block
i32.const 256
local.set $0
local.get $0
@@ -43,8 +42,6 @@
call $~lib/builtins/abort
unreachable
end
end
block
i32.const 256
local.set $0
global.get $abi/condition
@@ -82,8 +79,6 @@
call $~lib/builtins/abort
unreachable
end
end
block
i32.const 256
local.set $0
global.get $abi/condition
@@ -113,8 +108,6 @@
call $~lib/builtins/abort
unreachable
end
end
block
i32.const 256
i32.const 24
i32.shl
@@ -132,8 +125,6 @@
call $~lib/builtins/abort
unreachable
end
end
block
i32.const 2
i32.ctz
local.set $0
@@ -190,7 +181,6 @@
call $~lib/builtins/abort
unreachable
end
end
)
(func $abi/exported (; 3 ;) (type $FUNCSIG$i) (result i32)
i32.const 128

@@ -157,13 +157,11 @@
local.get $0
call_indirect (type $FUNCSIG$i)
local.tee $0
local.set $1
local.get $0
i32.eqz
if
unreachable
end
local.get $1
)
(func $assert-nonnull/testObjFn (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
@@ -180,13 +178,11 @@
i32.load offset=4
call_indirect (type $FUNCSIG$i)
local.tee $0
local.set $1
local.get $0
i32.eqz
if
unreachable
end
local.get $1
)
(func $null (; 15 ;) (type $FUNCSIG$v)
nop

@@ -104,20 +104,12 @@
i32.load offset=12
i32.ge_u
if
block
block
i32.const 24
i32.const 136
i32.const 106
i32.const 45
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $1
local.get $0
@@ -126,20 +118,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 184
i32.const 136
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -182,20 +166,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 184
i32.const 136
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -284,13 +260,11 @@
(func $assert-nonnull/testFn (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
block (result i32)
i32.const 0
global.set $~lib/argc
local.get $0
call_indirect (type $FUNCSIG$i)
local.tee $1
end
call $~lib/rt/stub/__retain
local.set $2
local.get $1
@@ -309,13 +283,11 @@
unreachable
end
local.set $2
block (result i32)
i32.const 0
global.set $~lib/argc
local.get $2
call_indirect (type $FUNCSIG$i)
local.tee $1
end
call $~lib/rt/stub/__retain
local.set $3
local.get $1
@@ -325,13 +297,11 @@
(func $assert-nonnull/testRet (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
block (result i32)
i32.const 0
global.set $~lib/argc
local.get $0
call_indirect (type $FUNCSIG$i)
local.tee $1
end
local.tee $2
if (result i32)
local.get $2
@@ -350,14 +320,12 @@
local.get $0
call $~lib/rt/stub/__retain
drop
block (result i32)
i32.const 0
global.set $~lib/argc
local.get $0
i32.load offset=4
call_indirect (type $FUNCSIG$i)
local.tee $1
end
call $~lib/rt/stub/__retain
local.set $2
local.get $1
@@ -372,14 +340,12 @@
local.get $0
call $~lib/rt/stub/__retain
drop
block (result i32)
i32.const 0
global.set $~lib/argc
local.get $0
i32.load offset=4
call_indirect (type $FUNCSIG$i)
local.tee $1
end
local.tee $2
if (result i32)
local.get $2

@@ -337,7 +337,6 @@
unreachable
end
unreachable
unreachable
end
local.get $8
i32.const 1072693248
@@ -1373,7 +1372,6 @@
i32.sub
local.set $4
br $continue|0
unreachable
end
unreachable
end
@@ -1690,7 +1688,6 @@
unreachable
end
unreachable
unreachable
end
local.get $5
i32.const 1065353216
@@ -2651,7 +2648,6 @@
i64.sub
local.set $4
br $continue|0
unreachable
end
unreachable
end

@@ -42,14 +42,12 @@
call $call-optional/opt
)
(func $start:call-optional (; 3 ;) (type $FUNCSIG$v)
block (result i32)
i32.const 1
global.set $~lib/argc
i32.const 3
i32.const 0
i32.const 0
call $call-optional/opt|trampoline
end
i32.const 0
i32.eq
i32.eqz
@@ -61,14 +59,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 2
global.set $~lib/argc
i32.const 3
i32.const 4
i32.const 0
call $call-optional/opt|trampoline
end
i32.const 5
i32.eq
i32.eqz
@@ -95,7 +91,6 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 1
global.set $~lib/argc
i32.const 3
@@ -103,7 +98,6 @@
i32.const 0
global.get $call-optional/optIndirect
call_indirect (type $FUNCSIG$iiii)
end
i32.const 0
i32.eq
i32.eqz
@@ -115,7 +109,6 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 2
global.set $~lib/argc
i32.const 3
@@ -123,7 +116,6 @@
i32.const 0
global.get $call-optional/optIndirect
call_indirect (type $FUNCSIG$iiii)
end
i32.const 5
i32.eq
i32.eqz
@@ -135,7 +127,6 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 3
global.set $~lib/argc
i32.const 3
@@ -143,7 +134,6 @@
i32.const 5
global.get $call-optional/optIndirect
call_indirect (type $FUNCSIG$iiii)
end
i32.const 12
i32.eq
i32.eqz

@@ -330,9 +330,7 @@
)
(func $call-super/test4 (; 10 ;) (type $FUNCSIG$v)
(local $0 i32)
block (result i32)
call $call-super/H#constructor
end
local.tee $0
i32.load
i32.const 1
@@ -381,9 +379,7 @@
)
(func $call-super/test5 (; 12 ;) (type $FUNCSIG$v)
(local $0 i32)
block (result i32)
call $call-super/J#constructor
end
local.tee $0
i32.load
i32.const 1

@@ -110,7 +110,6 @@
local.get $0
)
(func $call-super/A#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
if
@@ -124,7 +123,6 @@
i32.const 1
i32.store
local.get $0
end
i32.load
i32.const 1
i32.eq
@@ -312,7 +310,6 @@
call $~lib/rt/stub/__release
)
(func $call-super/E#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
if
@@ -326,7 +323,6 @@
i32.const 1
i32.store
local.get $0
end
i32.load
i32.const 1
i32.eq

@@ -13,19 +13,15 @@
(func $start:comma (; 1 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
block
block (result i32)
global.get $comma/a
local.tee $0
i32.const 1
i32.add
global.set $comma/a
local.get $0
end
global.set $comma/b
global.get $comma/a
drop
end
global.get $comma/a
i32.const 1
i32.eq
@@ -50,14 +46,12 @@
call $~lib/builtins/abort
unreachable
end
block
global.get $comma/a
i32.const 1
i32.add
global.set $comma/a
global.get $comma/a
global.set $comma/b
end
global.get $comma/a
i32.const 2
i32.eq
@@ -82,19 +76,15 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 0
global.set $comma/b
global.get $comma/b
end
global.set $comma/a
block (result i32)
global.get $comma/a
i32.const 1
i32.add
global.set $comma/a
global.get $comma/a
end
global.set $comma/b
global.get $comma/a
i32.const 1
@@ -120,17 +110,13 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $comma/a
i32.const 1
i32.add
global.set $comma/a
block (result i32)
global.get $comma/a
global.set $comma/b
global.get $comma/b
end
end
global.set $comma/a
global.get $comma/a
i32.const 2
@@ -166,7 +152,6 @@
i32.eqz
br_if $break|0
nop
block
global.get $comma/a
i32.const 1
i32.sub
@@ -175,9 +160,7 @@
i32.const 1
i32.add
local.set $1
end
br $loop|0
unreachable
end
unreachable
end
@@ -193,14 +176,12 @@
call $~lib/builtins/abort
unreachable
end
block
i32.const 1
drop
i32.const 2
drop
i32.const 3
drop
end
)
(func $start (; 2 ;) (type $FUNCSIG$v)
call $start:comma

@@ -154,7 +154,6 @@
global.set $constructor/ctorAllocates
i32.const 0
local.set $0
block (result i32)
global.get $constructor/b
if
i32.const 0
@@ -164,7 +163,6 @@
end
local.get $0
i32.eqz
end
if
i32.const 0
i32.const 12

@@ -223,7 +223,6 @@
local.get $0
)
(func $constructor/CtorAllocates#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
if
@@ -234,14 +233,12 @@
local.set $0
end
local.get $0
end
drop
local.get $0
)
(func $constructor/CtorConditionallyAllocates#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
global.get $constructor/b
if
block (result i32)
local.get $0
i32.eqz
if
@@ -252,7 +249,6 @@
local.set $0
end
local.get $0
end
drop
end
local.get $0

@@ -53,14 +53,12 @@
global.set $do/n
loop $continue|1
nop
block (result i32)
global.get $do/n
local.tee $0
i32.const 1
i32.sub
global.set $do/n
local.get $0
end
br_if $continue|1
end
global.get $do/n

@@ -1,6 +1,6 @@
{
"asc_flags": [
"--runtime half",
"--runtime none",
"--use ASC_RTRACE=1"
]
}

@@ -164,7 +164,6 @@
local.get $0
)
(func $exports/Car#constructor (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
if
@@ -178,7 +177,6 @@
local.get $1
i32.store
local.get $0
end
local.get $1
i32.store
local.get $0
@@ -199,7 +197,6 @@
global.get $exports/vehicles.Car.TIRES
)
(func $exports/vehicles.Car#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
if
@@ -213,7 +210,6 @@
local.get $1
i32.store
local.get $0
end
local.get $1
i32.store
local.get $0

@@ -134,6 +134,12 @@
i32.const 10
i32.ge_s
br_if $break|7
block $continue|7
local.get $0
local.get $1
i32.eq
br_if $continue|7
end
local.get $1
i32.const 1
i32.add

@@ -28,7 +28,6 @@
i32.add
global.set $for/i
br $loop|0
unreachable
end
unreachable
end
@@ -58,7 +57,6 @@
i32.add
local.set $0
br $loop|1
unreachable
end
unreachable
end
@@ -75,7 +73,6 @@
i32.sub
global.set $for/i
br $loop|2
unreachable
end
unreachable
end
@@ -97,41 +94,29 @@
i32.const 10
i32.eq
if
block
br $break|3
unreachable
end
unreachable
end
global.get $for/i
i32.const 1
i32.add
global.set $for/i
br $loop|3
unreachable
end
unreachable
end
block $break|4
loop $loop|4
block (result i32)
global.get $for/i
i32.const 1
i32.sub
global.set $for/i
global.get $for/i
end
i32.const 0
i32.eq
if
block
br $break|4
unreachable
end
unreachable
end
br $loop|4
unreachable
end
unreachable
end
@@ -144,12 +129,14 @@
i32.lt_s
i32.eqz
br_if $break|5
block $continue|5
br $continue|5
end
local.get $1
i32.const 1
i32.add
local.set $1
br $loop|5
unreachable
end
unreachable
end
@@ -183,12 +170,19 @@
i32.lt_s
i32.eqz
br_if $break|7
block $continue|7
local.get $2
local.get $3
i32.eq
if
br $continue|7
end
end
local.get $3
i32.const 1
i32.add
local.set $3
br $loop|7
unreachable
end
unreachable
end
@@ -197,7 +191,6 @@
i32.add
local.set $2
br $loop|6
unreachable
end
unreachable
end

@@ -68,13 +68,11 @@
i32.const 10
)
(func $start:function-expression (; 15 ;) (type $FUNCSIG$v)
block (result i32)
i32.const 1
global.set $~lib/argc
i32.const 1
global.get $function-expression/f1
call_indirect (type $FUNCSIG$ii)
end
i32.const 1
i32.eq
i32.eqz
@@ -86,13 +84,11 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 1
global.set $~lib/argc
i32.const 2
global.get $function-expression/f2
call_indirect (type $FUNCSIG$ii)
end
i32.const 2
i32.eq
i32.eqz
@@ -104,18 +100,14 @@
call $~lib/builtins/abort
unreachable
end
block
i32.const 0
global.set $~lib/argc
global.get $function-expression/f3
call_indirect (type $FUNCSIG$v)
end
block (result i32)
i32.const 0
global.set $~lib/argc
global.get $function-expression/f4
call_indirect (type $FUNCSIG$i)
end
i32.const 1
i32.eq
i32.eqz
@@ -166,14 +158,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 2
global.set $~lib/argc
i32.const 1
i32.const 2
call $function-expression/testOmittedReturn1
call_indirect (type $FUNCSIG$iii)
end
i32.const 3
i32.eq
i32.eqz
@@ -185,14 +175,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 2
global.set $~lib/argc
i32.const 1
i32.const 2
call $function-expression/testOmittedReturn2
call_indirect (type $FUNCSIG$iii)
end
i32.const 1
i32.eq
i32.eqz
@@ -204,14 +192,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 2
global.set $~lib/argc
i32.const 1
i32.const 2
call $function-expression/testOmittedReturn3
call_indirect (type $FUNCSIG$iii)
end
i32.const 42
i32.eq
i32.eqz

@@ -91,14 +91,12 @@
(func $start:function-types (; 12 ;) (type $FUNCSIG$v)
call $function-types/makeAdder<i32>
global.set $function-types/i32Adder
block (result i32)
i32.const 2
global.set $~lib/argc
i32.const 1
i32.const 2
global.get $function-types/i32Adder
call_indirect (type $FUNCSIG$iii)
end
i32.const 3
i32.eq
i32.eqz
@@ -112,14 +110,12 @@
end
call $function-types/makeAdder<i64>
global.set $function-types/i64Adder
block (result i64)
i32.const 2
global.set $~lib/argc
i64.const 10
i64.const 20
global.get $function-types/i64Adder
call_indirect (type $FUNCSIG$jjj)
end
i64.const 30
i64.eq
i32.eqz
@@ -131,14 +127,12 @@
call $~lib/builtins/abort
unreachable
end
block (result f64)
i32.const 2
global.set $~lib/argc
f64.const 1.5
f64.const 2.5
call $function-types/makeAdder<f64>
call_indirect (type $FUNCSIG$ddd)
end
f64.const 4
f64.eq
i32.eqz
@@ -194,14 +188,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 2
global.set $~lib/argc
i32.const 1
i32.const 2
i32.const 0
call $function-types/makeAndAdd<i32>|trampoline
end
i32.const 3
i32.eq
i32.eqz

@@ -136,13 +136,11 @@
i32.const 0
call $getter-call/C#constructor
local.set $0
block (result i32)
i32.const 0
global.set $~lib/argc
local.get $0
call $getter-call/C#get:x
call_indirect (type $FUNCSIG$i)
end
local.set $1
local.get $0
call $~lib/rt/stub/__release

@@ -45,11 +45,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 2
call $getter-setter/Foo.bar.set:bar
call $getter-setter/Foo.bar.get:bar
end
i32.const 2
i32.eq
i32.eqz

@@ -24,7 +24,6 @@
return
end
unreachable
unreachable
)
(func $if/ifThen (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@@ -44,7 +43,6 @@
return
end
unreachable
unreachable
)
(func $start:if (; 4 ;) (type $FUNCSIG$v)
i32.const 0
@@ -132,23 +130,14 @@
i32.const 1
return
else
block
block
i32.const 56
i32.const 24
i32.const 37
i32.const 4
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
unreachable
unreachable
)
(func $start (; 6 ;) (type $FUNCSIG$v)
call $start:if

@@ -80,12 +80,10 @@
global.get $infer-type/rF
drop
block $break|0
block
i32.const 0
local.set $0
i32.const 10
local.set $1
end
loop $loop|0
local.get $0
local.get $1
@@ -97,7 +95,6 @@
i32.add
local.set $0
br $loop|0
unreachable
end
unreachable
end

@@ -19,24 +19,19 @@
(local $3 i32)
i32.const 1
local.set $0
block $inlining-blocklocals/theCall|inlined.0
block (result i32)
local.get $0
local.tee $1
i32.const 1
i32.add
local.set $0
local.get $1
end
local.set $3
block (result i32)
global.get $inlining-blocklocals/b
local.tee $1
i32.const 1
i32.add
global.set $inlining-blocklocals/b
local.get $1
end
local.set $2
local.get $0
i32.const 1
@@ -49,7 +44,6 @@
global.set $inlining-blocklocals/theCall_b
local.get $1
global.set $inlining-blocklocals/theCall_c
end
global.get $inlining-blocklocals/theCall_a
i32.const 1
i32.eq

@@ -14,9 +14,7 @@
call $inlining-recursive/bar
)
(func $inlining-recursive/bar (; 2 ;) (type $FUNCSIG$v)
block $inlining-recursive/bar|inlined.0
call $inlining-recursive/baz
end
)
(func $null (; 3 ;) (type $FUNCSIG$v)
)

@@ -135,11 +135,9 @@
call $~lib/builtins/abort
unreachable
end
block $inlining/func_ii_opt|inlined.0 (result i32)
i32.const 0
local.set $2
local.get $2
end
i32.const 0
i32.eq
i32.eqz
@@ -151,11 +149,9 @@
call $~lib/builtins/abort
unreachable
end
block $inlining/func_ii_opt|inlined.1 (result i32)
i32.const 1
local.set $2
local.get $2
end
i32.const 1
i32.eq
i32.eqz
@@ -167,7 +163,6 @@
call $~lib/builtins/abort
unreachable
end
block $inlining/func_ii_loc|inlined.0 (result i32)
i32.const 2
local.set $2
local.get $2
@@ -181,7 +176,6 @@
i32.add
local.set $4
local.get $4
end
i32.const 3
i32.eq
i32.eqz
@@ -193,7 +187,6 @@
call $~lib/builtins/abort
unreachable
end
block $inlining/func_ii_loc|inlined.1 (result i32)
i32.const 3
local.set $5
local.get $5
@@ -207,7 +200,6 @@
i32.add
local.set $3
local.get $3
end
i32.const 4
i32.eq
i32.eqz
@@ -219,19 +211,13 @@
call $~lib/builtins/abort
unreachable
end
block $inlining/func_iv|inlined.0
i32.const 0
local.set $2
end
block (result i32)
i32.const 1
global.set $~lib/argc
i32.const 2
block $inlining/func_fe|inlined.0 (result i32)
i32.const 1
end
call_indirect (type $FUNCSIG$ii)
end
i32.const 2
i32.eq
i32.eqz
@@ -243,7 +229,6 @@
call $~lib/builtins/abort
unreachable
end
block $inlining/Foo.method_static|inlined.0 (result i32)
i32.const 42
local.set $6
i32.const 2
@@ -251,7 +236,6 @@
local.get $6
local.get $2
i32.add
end
i32.const 44
i32.eq
i32.eqz
@@ -266,7 +250,6 @@
i32.const 123
call $~lib/rt/stub/__retain
local.set $7
block $inlining/Foo#method_this|inlined.0 (result i32)
local.get $7
local.set $4
i32.const 43
@@ -275,7 +258,6 @@
local.set $2
local.get $4
call $~lib/rt/stub/__retain
end
local.tee $2
i32.const 123
i32.eq
@@ -391,12 +373,10 @@
(local $2 i32)
(local $3 i32)
(local $4 i32)
block $inlining/Bar#constructor|inlined.0 (result i32)
i32.const 0
local.set $1
i32.const 4
local.set $0
block $inlining/Baz#constructor|inlined.0 (result i32)
local.get $1
if (result i32)
local.get $1
@@ -409,7 +389,6 @@
local.set $3
i32.const 2
local.set $2
block (result i32)
local.get $3
i32.eqz
if
@@ -426,11 +405,9 @@
i32.const 0
i32.store offset=4
local.get $3
end
local.get $2
i32.store offset=4
local.get $3
end
local.set $1
local.get $1
i32.const 3
@@ -442,7 +419,6 @@
local.get $0
i32.store offset=12
local.get $1
end
local.set $4
local.get $4
i32.load

@@ -19,11 +19,9 @@
(export "memory" (memory $0))
(start $start)
(func $instanceof/isI32<i32> (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
drop
i32.const 1
end
if
i32.const 1
return
@@ -32,14 +30,11 @@
return
end
unreachable
unreachable
)
(func $instanceof/isI32<f64> (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
block (result i32)
local.get $0
drop
i32.const 0
end
if
i32.const 1
return
@@ -48,14 +43,11 @@
return
end
unreachable
unreachable
)
(func $instanceof/isI32<u32> (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
drop
i32.const 0
end
if
i32.const 1
return
@@ -64,14 +56,11 @@
return
end
unreachable
unreachable
)
(func $instanceof/isI32<u16> (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
drop
i32.const 0
end
if
i32.const 1
return
@@ -80,7 +69,6 @@
return
end
unreachable
unreachable
)
(func $~lib/rt/stub/__retain (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@@ -91,11 +79,9 @@
(func $start:instanceof (; 7 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
block (result i32)
global.get $instanceof/a
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -105,11 +91,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/b
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -119,11 +103,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/i
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -134,11 +116,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/I
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -149,11 +129,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/f
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -164,11 +142,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/F
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -179,11 +155,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/b
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -193,11 +167,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/i
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -208,11 +180,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/I
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -223,11 +193,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/f
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -238,11 +206,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/F
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -253,11 +219,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/a
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -268,11 +232,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/b
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -283,11 +245,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/i
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -297,11 +257,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/I
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -312,11 +270,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/f
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -327,11 +283,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/F
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -342,11 +296,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/a
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -357,11 +309,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/b
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -372,11 +322,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/i
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -387,11 +335,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/I
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -401,11 +347,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/f
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -416,11 +360,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/F
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -431,11 +373,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/a
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -446,11 +386,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/b
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -461,11 +399,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/i
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -476,11 +412,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/I
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -491,11 +425,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/f
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -505,11 +437,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/F
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -520,11 +450,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/a
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -535,11 +463,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/b
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -550,11 +476,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/i
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -565,11 +489,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/I
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -580,11 +502,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/f
drop
i32.const 0
end
i32.eqz
i32.eqz
if
@@ -595,11 +515,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/F
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -669,11 +587,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/an
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -683,7 +599,6 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 1
local.tee $0
global.get $instanceof/an
@@ -697,7 +612,6 @@
call $~lib/rt/stub/__release
end
local.get $0
end
global.set $instanceof/an
global.get $instanceof/an
i32.const 0
@@ -711,11 +625,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $instanceof/an
drop
i32.const 1
end
i32.eqz
if
i32.const 0

@@ -25,8 +25,6 @@
f64.ne
if (result i32)
unreachable
f64.const 0
unreachable
else
i32.const 0
end
@@ -45,8 +43,6 @@
i32.const 1
else
unreachable
f64.const 0
unreachable
end
drop
i32.const 1
@@ -75,8 +71,6 @@
i32.const 1
else
unreachable
f64.const 0
unreachable
end
drop
i32.const 1

@@ -5,8 +5,8 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m")
(data (i32.const 32) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s")
(data (i32.const 8) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s")
(data (i32.const 48) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m")
(export "memory" (memory $0))
(export "whileReturn" (func $loop-flow/whileReturn))
(export "whileThrow" (func $loop-flow/whileThrow))
@@ -19,25 +19,11 @@
(export "doReturn" (func $loop-flow/whileReturn))
(export "doThrow" (func $loop-flow/doThrow))
(export "doAny" (func $loop-flow/doAny))
(start $start)
(func $loop-flow/whileReturn (; 1 ;) (type $FUNCSIG$i) (result i32)
i32.const 1
)
(func $loop-flow/whileThrow (; 2 ;) (type $FUNCSIG$i) (result i32)
i32.const 24
i32.const 48
i32.const 9
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $loop-flow/whileContinue (; 3 ;) (type $FUNCSIG$i) (result i32)
loop $continue|0
br $continue|0
unreachable
end
unreachable
)
(func $loop-flow/whileAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $loop-flow/whileAny (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
loop $continue|0 (result i32)
local.get $0
i32.const 1
@@ -49,24 +35,16 @@
i32.const 2
i32.ne
br_if $continue|0
i32.const 64
i32.const 24
i32.const 24
i32.const 48
i32.const 22
i32.const 21
call $~lib/builtins/abort
unreachable
end
end
)
(func $loop-flow/forThrow (; 5 ;) (type $FUNCSIG$i) (result i32)
i32.const 24
i32.const 48
i32.const 35
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $loop-flow/forAny (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $loop-flow/forAny (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
loop $loop|0 (result i32)
local.get $0
i32.const 1
@@ -78,9 +56,9 @@
i32.const 2
i32.eq
if
i32.const 64
i32.const 24
i32.const 48
i32.const 48
i32.const 54
i32.const 21
call $~lib/builtins/abort
unreachable
@@ -89,15 +67,7 @@
end
end
)
(func $loop-flow/doThrow (; 7 ;) (type $FUNCSIG$i) (result i32)
i32.const 24
i32.const 48
i32.const 61
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $loop-flow/doAny (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $loop-flow/doAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
loop $continue|0 (result i32)
local.get $0
i32.const 1
@@ -109,16 +79,87 @@
i32.const 2
i32.ne
br_if $continue|0
i32.const 64
i32.const 24
i32.const 48
i32.const 68
i32.const 78
i32.const 21
call $~lib/builtins/abort
unreachable
end
end
)
(func $null (; 9 ;) (type $FUNCSIG$v)
(func $start:loop-flow (; 5 ;) (type $FUNCSIG$v)
i32.const 1
call $loop-flow/whileAny
i32.const 1
i32.ne
if
i32.const 0
i32.const 24
i32.const 29
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
call $loop-flow/forAny
i32.const 1
i32.ne
if
i32.const 0
i32.const 24
i32.const 59
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
call $loop-flow/doAny
i32.const 1
i32.ne
if
i32.const 0
i32.const 24
i32.const 83
i32.const 0
call $~lib/builtins/abort
unreachable
end
)
(func $loop-flow/whileThrow (; 6 ;) (type $FUNCSIG$i) (result i32)
i32.const 64
i32.const 24
i32.const 11
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $loop-flow/whileContinue (; 7 ;) (type $FUNCSIG$i) (result i32)
loop $continue|0
br $continue|0
end
unreachable
)
(func $loop-flow/forThrow (; 8 ;) (type $FUNCSIG$i) (result i32)
i32.const 64
i32.const 24
i32.const 41
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $loop-flow/doThrow (; 9 ;) (type $FUNCSIG$i) (result i32)
i32.const 64
i32.const 24
i32.const 71
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $start (; 10 ;) (type $FUNCSIG$v)
call $start:loop-flow
)
(func $null (; 11 ;) (type $FUNCSIG$v)
nop
)
)

@@ -4,6 +4,8 @@ export function whileReturn(): i32 {
}
}
assert(whileReturn() == 1);
export function whileThrow(): i32 {
while (true) {
throw new Error("term");
@@ -24,12 +26,16 @@ export function whileAny(a: i32): i32 {
}
}
assert(whileAny(1) == 1);
export function forReturn(): i32 {
for (;;) {
return 1;
}
}
assert(forReturn() == 1);
export function forThrow(): i32 {
for (;;) {
throw new Error("term");
@@ -50,12 +56,16 @@ export function forAny(a: i32): i32 {
}
}
assert(forAny(1) == 1);
export function doReturn(): i32 {
do {
return 1;
} while (true);
}
assert(doReturn() == 1);
export function doThrow(): i32 {
do {
throw new Error("term");
@@ -69,3 +79,5 @@ export function doAny(a: i32): i32 {
else continue;
} while (true);
}
assert(doAny(1) == 1);

@@ -5,8 +5,8 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m\00")
(data (i32.const 32) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00")
(data (i32.const 8) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00")
(data (i32.const 48) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(export "memory" (memory $0))
@@ -21,31 +21,12 @@
(export "doReturn" (func $loop-flow/doReturn))
(export "doThrow" (func $loop-flow/doThrow))
(export "doAny" (func $loop-flow/doAny))
(start $start)
(func $loop-flow/whileReturn (; 1 ;) (type $FUNCSIG$i) (result i32)
i32.const 1
return
)
(func $loop-flow/whileThrow (; 2 ;) (type $FUNCSIG$i) (result i32)
block
i32.const 24
i32.const 48
i32.const 9
i32.const 4
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
)
(func $loop-flow/whileContinue (; 3 ;) (type $FUNCSIG$i) (result i32)
loop $continue|0
br $continue|0
unreachable
end
unreachable
unreachable
)
(func $loop-flow/whileAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $loop-flow/whileAny (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
loop $continue|0
local.get $0
i32.const 1
@@ -58,61 +39,26 @@
i32.const 2
i32.eq
if
block
block
i32.const 64
i32.const 24
i32.const 24
i32.const 48
i32.const 22
i32.const 21
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
else
block
br $continue|0
unreachable
end
unreachable
end
unreachable
end
unreachable
unreachable
unreachable
end
unreachable
unreachable
)
(func $loop-flow/forReturn (; 5 ;) (type $FUNCSIG$i) (result i32)
(func $loop-flow/forReturn (; 3 ;) (type $FUNCSIG$i) (result i32)
i32.const 1
return
)
(func $loop-flow/forThrow (; 6 ;) (type $FUNCSIG$i) (result i32)
block
i32.const 24
i32.const 48
i32.const 35
i32.const 4
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
)
(func $loop-flow/forContinue (; 7 ;) (type $FUNCSIG$i) (result i32)
loop $loop|0
br $loop|0
unreachable
end
unreachable
unreachable
)
(func $loop-flow/forAny (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $loop-flow/forAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
loop $loop|0
block $continue|0
local.get $0
@@ -126,55 +72,28 @@
i32.const 2
i32.eq
if
block
block
i32.const 64
i32.const 24
i32.const 48
i32.const 48
i32.const 54
i32.const 21
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
else
block
br $continue|0
unreachable
end
unreachable
end
unreachable
end
unreachable
unreachable
end
br $loop|0
unreachable
end
unreachable
unreachable
)
(func $loop-flow/doReturn (; 9 ;) (type $FUNCSIG$i) (result i32)
(func $loop-flow/doReturn (; 5 ;) (type $FUNCSIG$i) (result i32)
i32.const 1
return
)
(func $loop-flow/doThrow (; 10 ;) (type $FUNCSIG$i) (result i32)
block
i32.const 24
i32.const 48
i32.const 61
i32.const 4
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
)
(func $loop-flow/doAny (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $loop-flow/doAny (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
loop $continue|0
local.get $0
i32.const 1
@@ -187,36 +106,137 @@
i32.const 2
i32.eq
if
block
block
i32.const 64
i32.const 24
i32.const 48
i32.const 68
i32.const 78
i32.const 21
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
else
block
br $continue|0
unreachable
end
unreachable
end
unreachable
end
unreachable
unreachable
unreachable
end
unreachable
unreachable
)
(func $null (; 12 ;) (type $FUNCSIG$v)
(func $start:loop-flow (; 7 ;) (type $FUNCSIG$v)
call $loop-flow/whileReturn
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 7
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
call $loop-flow/whileAny
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 29
i32.const 0
call $~lib/builtins/abort
unreachable
end
call $loop-flow/forReturn
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 37
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
call $loop-flow/forAny
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 59
i32.const 0
call $~lib/builtins/abort
unreachable
end
call $loop-flow/doReturn
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 67
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
call $loop-flow/doAny
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 83
i32.const 0
call $~lib/builtins/abort
unreachable
end
)
(func $loop-flow/whileThrow (; 8 ;) (type $FUNCSIG$i) (result i32)
i32.const 64
i32.const 24
i32.const 11
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $loop-flow/whileContinue (; 9 ;) (type $FUNCSIG$i) (result i32)
loop $continue|0
br $continue|0
end
unreachable
)
(func $loop-flow/forThrow (; 10 ;) (type $FUNCSIG$i) (result i32)
i32.const 64
i32.const 24
i32.const 41
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $loop-flow/forContinue (; 11 ;) (type $FUNCSIG$i) (result i32)
loop $loop|0
br $loop|0
end
unreachable
)
(func $loop-flow/doThrow (; 12 ;) (type $FUNCSIG$i) (result i32)
i32.const 64
i32.const 24
i32.const 71
i32.const 4
call $~lib/builtins/abort
unreachable
)
(func $start (; 13 ;) (type $FUNCSIG$v)
call $start:loop-flow
)
(func $null (; 14 ;) (type $FUNCSIG$v)
)
)

@@ -504,7 +504,6 @@
f64.sub
local.get $11
f64.add
local.set $8
f64.const 2
local.get $4
f64.mul
@@ -513,7 +512,6 @@
local.get $10
f64.add
local.set $5
local.get $8
local.set $4
local.get $6
i32.const 1

@@ -601,18 +601,13 @@
local.get $3
i32.ge_u
if
block
br $break|1
unreachable
end
unreachable
end
local.get $18
i32.const 1
i32.add
local.set $18
br $continue|1
unreachable
end
unreachable
end
@@ -649,7 +644,6 @@
i32.add
local.set $18
br $continue|2
unreachable
end
unreachable
end
@@ -679,7 +673,6 @@
i32.const 1
i32.sub
f64.convert_i32_s
block $../../examples/mandelbrot/assembly/index/clamp<f64>|inlined.0 (result f64)
local.get $18
i32.const 1
i32.add
@@ -698,7 +691,6 @@
f64.max
local.get $22
f64.min
end
f64.mul
i32.trunc_f64_u
local.set $20
@@ -715,7 +707,6 @@
i32.add
local.set $12
br $loop|0
unreachable
end
unreachable
end

@@ -31,22 +31,18 @@
end
i32.eqz
br_if $break|0
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
local.get $2
@@ -54,7 +50,6 @@
i32.sub
local.set $2
br $continue|0
unreachable
end
unreachable
end
@@ -112,7 +107,6 @@
i32.sub
local.set $2
br $continue|1
unreachable
end
unreachable
end
@@ -179,22 +173,18 @@
i32.const 1
i32.and
if
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
end
@@ -230,58 +220,46 @@
local.get $1
i32.load
local.set $4
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
local.get $2
@@ -370,53 +348,40 @@
i32.sub
local.set $2
br $continue|3
unreachable
end
unreachable
end
block
br $break|2
unreachable
end
unreachable
end
local.get $1
i32.load
local.set $4
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
local.get $2
@@ -505,35 +470,26 @@
i32.sub
local.set $2
br $continue|4
unreachable
end
unreachable
end
block
br $break|2
unreachable
end
unreachable
end
local.get $1
i32.load
local.set $4
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
local.get $2
@@ -622,307 +578,238 @@
i32.sub
local.set $2
br $continue|5
unreachable
end
unreachable
end
block
br $break|2
unreachable
end
unreachable
end
end
local.get $2
i32.const 16
i32.and
if
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
end
@@ -930,148 +817,116 @@
i32.const 8
i32.and
if
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
end
@@ -1079,76 +934,60 @@
i32.const 4
i32.and
if
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
end
@@ -1156,40 +995,32 @@
i32.const 2
i32.and
if
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
end
@@ -1197,22 +1028,18 @@
i32.const 1
i32.and
if
block (result i32)
local.get $0
local.tee $6
i32.const 1
i32.add
local.set $0
local.get $6
end
block (result i32)
local.get $1
local.tee $6
i32.const 1
i32.add
local.set $1
local.get $6
end
i32.load8_u
i32.store8
end

@@ -52,26 +52,21 @@
i32.const 1
i32.sub
local.set $2
block (result i32)
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $0
local.get $4
end
block (result i32)
local.get $1
local.tee $4
i32.const 1
i32.add
local.set $1
local.get $4
end
i32.load8_u
i32.store8
br $continue|0
unreachable
end
unreachable
end
@@ -99,7 +94,6 @@
i32.add
local.set $1
br $continue|1
unreachable
end
unreachable
end
@@ -109,22 +103,18 @@
local.get $2
i32.eqz
br_if $break|2
block (result i32)
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $0
local.get $4
end
block (result i32)
local.get $1
local.tee $4
i32.const 1
i32.add
local.set $1
local.get $4
end
i32.load8_u
i32.store8
local.get $2
@@ -132,7 +122,6 @@
i32.sub
local.set $2
br $continue|2
unreachable
end
unreachable
end
@@ -172,7 +161,6 @@
i32.load8_u
i32.store8
br $continue|3
unreachable
end
unreachable
end
@@ -196,7 +184,6 @@
i64.load
i64.store
br $continue|4
unreachable
end
unreachable
end
@@ -218,7 +205,6 @@
i32.load8_u
i32.store8
br $continue|5
unreachable
end
unreachable
end

@@ -80,7 +80,6 @@
i32.and
local.tee $2
i32.sub
local.set $3
local.get $0
local.get $2
i32.add
@@ -92,7 +91,6 @@
i32.mul
local.tee $1
i32.store
local.get $3
i32.const -4
i32.and
local.tee $2

@@ -269,7 +269,6 @@
i32.add
local.set $0
br $continue|0
unreachable
end
unreachable
end

@@ -7,7 +7,6 @@
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$if (func (param f32) (result i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ji (func (param i32) (result i64)))
(type $FUNCSIG$iijijij (func (param i32 i64 i32 i64 i32 i64) (result i32)))
(type $FUNCSIG$i (func (result i32)))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
@@ -21,21 +20,19 @@
(data (i32.const 184) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y")
(data (i32.const 216) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8<D\a7\a4\d9|\9b\fb\10D\a4\a7LLv\bb\1a\9c@\b6\ef\8e\ab\8b,\84W\a6\10\ef\1f\d0)1\91\e9\e5\a4\10\9b\9d\0c\9c\a1\fb\9b\10\e7)\f4;b\d9 (\ac\85\cf\a7z^KD\80-\dd\ac\03@\e4!\bf\8f\ffD^/\9cg\8eA\b8\8c\9c\9d\173\d4\a9\1b\e3\b4\92\db\19\9e\d9w\df\ban\bf\96\ebk\ee\f0\9b;\02\87\af")
(data (i32.const 928) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00\e8\00\00\00\e8\00\00\00\b8\02\00\00W")
(data (i32.const 960) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 1016) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 1064) "\ae\00\00\00\01\00\00\00\00\00\00\00\ae\00\00\00<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\0d\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04")
(data (i32.const 1256) "\10\00\00\00\01\00\00\00\04\00\00\00\10\00\00\008\04\00\008\04\00\00\ae\00\00\00W")
(data (i32.const 1288) "(\00\00\00\01\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;")
(data (i32.const 1344) "\10\00\00\00\01\00\00\00\05\00\00\00\10\00\00\00\18\05\00\00\18\05\00\00(\00\00\00\n")
(data (i32.const 1376) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 1428) "\01\00\00\00\01")
(data (i32.const 1440) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\002\00.\000")
(data (i32.const 1464) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\003")
(data (i32.const 1488) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00-\005")
(data (i32.const 1512) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004")
(data (i32.const 1536) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002")
(data (i32.const 1560) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e")
(data (i32.const 1584) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e")
(data (i32.const 960) "\ae\00\00\00\01\00\00\00\00\00\00\00\ae\00\00\00<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\0d\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04")
(data (i32.const 1152) "\10\00\00\00\01\00\00\00\04\00\00\00\10\00\00\00\d0\03\00\00\d0\03\00\00\ae\00\00\00W")
(data (i32.const 1184) "(\00\00\00\01\00\00\00\00\00\00\00(\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;")
(data (i32.const 1240) "\10\00\00\00\01\00\00\00\05\00\00\00\10\00\00\00\b0\04\00\00\b0\04\00\00(\00\00\00\n")
(data (i32.const 1272) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 1324) "\01\00\00\00\01")
(data (i32.const 1336) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\002\00.\000")
(data (i32.const 1360) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\003")
(data (i32.const 1384) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00-\005")
(data (i32.const 1408) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004")
(data (i32.const 1432) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002")
(data (i32.const 1456) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e")
(data (i32.const 1480) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e")
(global $number/a (mut i32) (i32.const 1))
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
@@ -321,53 +318,7 @@
local.get $0
f64.ne
)
(func $~lib/array/Array<u64>#__get (; 10 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
local.get $0
i32.const 952
i32.load
i32.const 3
i32.shr_u
i32.ge_u
if
i32.const 976
i32.const 1032
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
end
i32.const 948
i32.load
local.get $0
i32.const 3
i32.shl
i32.add
i64.load
)
(func $~lib/array/Array<i16>#__get (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 1280
i32.load
i32.const 1
i32.shr_u
i32.ge_u
if
i32.const 976
i32.const 1032
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
end
i32.const 1276
i32.load
local.get $0
i32.const 1
i32.shl
i32.add
i32.load16_s
)
(func $~lib/util/number/genDigits (; 12 ;) (type $FUNCSIG$iijijij) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32)
(func $~lib/util/number/genDigits (; 10 ;) (type $FUNCSIG$iijijij) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
@@ -405,7 +356,7 @@
local.tee $6
call $~lib/util/number/decimalCount32
local.set $4
i32.const 1364
i32.const 1260
i32.load
local.set $12
loop $continue|0
@@ -767,7 +718,7 @@
i32.store16
local.get $2
)
(func $~lib/memory/memory.copy (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
@@ -942,7 +893,7 @@
end
end
)
(func $~lib/util/number/prettify (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/prettify (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $2
i32.eqz
@@ -1097,7 +1048,6 @@
i32.const 4
i32.add
local.tee $0
block (result i32)
local.get $3
i32.const 1
i32.sub
@@ -1112,7 +1062,6 @@
local.set $2
end
local.get $2
end
local.get $2
call $~lib/util/number/decimalCount32
i32.const 1
@@ -1155,7 +1104,6 @@
i32.const 4
i32.add
local.tee $2
block (result i32)
local.get $3
i32.const 1
i32.sub
@@ -1170,7 +1118,6 @@
local.set $0
end
local.get $0
end
local.get $0
call $~lib/util/number/decimalCount32
i32.const 1
@@ -1193,14 +1140,13 @@
end
end
)
(func $~lib/util/number/dtoa_core (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/dtoa_core (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i64)
(local $2 i64)
(local $3 i64)
(local $4 i64)
(local $5 i32)
(local $6 i64)
(local $7 f64)
(local $4 i32)
(local $5 i64)
(local $6 f64)
i64.const -9223372036854774784
global.set $~lib/util/number/_frc_plus
i64.const 9223372036854775296
@@ -1216,95 +1162,66 @@
f64.mul
f64.const 347
f64.add
local.tee $7
local.tee $6
i32.trunc_f64_s
local.tee $5
local.get $5
local.tee $4
local.get $4
f64.convert_i32_s
local.get $7
local.get $6
f64.ne
i32.add
i32.const 3
i32.shr_s
i32.const 1
i32.add
local.tee $5
local.tee $4
i32.const 3
i32.shl
i32.sub
global.set $~lib/util/number/_K
local.get $5
call $~lib/array/Array<u64>#__get
i32.const 948
i32.load
local.get $4
i32.const 3
i32.shl
i32.add
i64.load
global.set $~lib/util/number/_frc_pow
local.get $5
call $~lib/array/Array<i16>#__get
i32.const 1172
i32.load
local.get $4
i32.const 1
i32.shl
i32.add
i32.load16_s
global.set $~lib/util/number/_exp_pow
global.get $~lib/util/number/_frc_pow
local.tee $3
i64.const 4294967295
i64.and
local.set $2
global.get $~lib/util/number/_frc_plus
local.tee $4
local.tee $1
i64.const 4294967295
i64.and
local.tee $1
local.get $3
i64.const 32
i64.shr_u
local.tee $3
i64.mul
local.get $4
global.get $~lib/util/number/_frc_pow
local.tee $2
i64.const 32
i64.shr_u
local.tee $4
local.get $2
local.tee $5
i64.mul
local.get $1
local.get $2
i64.mul
i64.const 32
i64.shr_u
i64.add
local.tee $1
i64.const 4294967295
i64.and
i64.add
i64.const 2147483647
i64.add
i64.const 32
i64.shr_u
local.get $3
local.get $4
i64.mul
local.get $1
i64.const 32
i64.shr_u
i64.add
i64.add
i64.const 1
i64.sub
local.tee $4
local.get $3
global.get $~lib/util/number/_frc_minus
local.tee $1
i64.const 4294967295
i64.and
local.tee $6
i64.mul
local.tee $2
local.get $1
i64.const 32
i64.shr_u
local.tee $1
local.get $2
i64.mul
local.get $2
local.get $6
local.get $3
i64.mul
i64.const 32
i64.shr_u
i64.add
local.tee $6
local.tee $3
i64.const 4294967295
i64.and
i64.add
@@ -1313,15 +1230,14 @@
i64.const 32
i64.shr_u
local.get $1
local.get $3
local.get $5
i64.mul
local.get $6
local.get $3
i64.const 32
i64.shr_u
i64.add
i64.add
i64.const 1
i64.add
i64.sub
local.set $1
local.get $0
@@ -1331,7 +1247,7 @@
i64.mul
i64.const 0
i64.add
local.tee $2
local.tee $3
i64.const 4294967295
i64.and
i64.const 0
@@ -1340,10 +1256,10 @@
i64.add
i64.const 32
i64.shr_u
local.get $3
local.get $5
i64.const 2147483648
i64.mul
local.get $2
local.get $3
i64.const 32
i64.shr_u
i64.add
@@ -1352,25 +1268,63 @@
local.tee $0
i32.const 2
i32.add
local.get $4
local.get $1
global.get $~lib/util/number/_exp
local.get $0
i32.add
i32.const -64
i32.sub
local.get $1
global.get $~lib/util/number/_frc_minus
local.tee $1
i64.const 4294967295
i64.and
local.tee $3
local.get $5
i64.mul
local.get $1
i64.const 32
i64.shr_u
local.tee $1
local.get $2
i64.mul
local.get $2
local.get $3
i64.mul
i64.const 32
i64.shr_u
i64.add
local.tee $2
i64.const 4294967295
i64.and
i64.add
i64.const 2147483647
i64.add
i64.const 32
i64.shr_u
local.get $1
local.get $5
i64.mul
local.get $2
i64.const 32
i64.shr_u
i64.add
i64.add
i64.const 1
i64.add
i64.sub
call $~lib/util/number/genDigits
global.get $~lib/util/number/_K
call $~lib/util/number/prettify
)
(func $~lib/string/String#substring (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#substring (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
i32.eqz
if
i32.const 0
i32.const 1392
i32.const 1288
i32.const 196
i32.const 4
call $~lib/builtins/abort
@@ -1418,7 +1372,7 @@
local.tee $2
i32.eqz
if
i32.const 1440
i32.const 1336
return
end
local.get $3
@@ -1446,7 +1400,7 @@
call $~lib/memory/memory.copy
local.get $1
)
(func $~lib/util/number/dtoa (; 17 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/util/number/dtoa (; 15 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
f64.const 2
@@ -1477,13 +1431,13 @@
local.get $1
call $~lib/string/String#substring
)
(func $~lib/number/Bool#toString (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1576
i32.const 1600
(func $~lib/number/Bool#toString (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1472
i32.const 1496
local.get $0
select
)
(func $~lib/number/F32.isSafeInteger (; 19 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
(func $~lib/number/F32.isSafeInteger (; 17 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
local.get $0
f32.trunc
local.get $0
@@ -1495,7 +1449,7 @@
f32.le
select
)
(func $~lib/number/F32.isInteger (; 20 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
(func $~lib/number/F32.isInteger (; 18 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
local.get $0
f32.trunc
local.get $0
@@ -1508,7 +1462,7 @@
f32.eq
select
)
(func $~lib/number/F64.isSafeInteger (; 21 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/number/F64.isSafeInteger (; 19 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
f64.trunc
local.get $0
@@ -1520,7 +1474,7 @@
f64.le
select
)
(func $~lib/number/F64.isInteger (; 22 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/number/F64.isInteger (; 20 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
call $~lib/number/isFinite<f64>
if (result i32)
@@ -1532,9 +1486,9 @@
i32.const 0
end
)
(func $start:number (; 23 ;) (type $FUNCSIG$v)
(func $start:number (; 21 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 1616
i32.const 1520
global.set $~lib/rt/stub/startOffset
global.get $~lib/rt/stub/startOffset
global.set $~lib/rt/stub/offset
@@ -1552,7 +1506,7 @@
unreachable
end
call $~lib/util/number/dtoa
i32.const 1456
i32.const 1352
call $~lib/string/String.__eq
i32.eqz
if
@@ -1565,7 +1519,7 @@
end
i32.const 3
call $~lib/util/number/itoa32
i32.const 1480
i32.const 1376
call $~lib/string/String.__eq
i32.eqz
if
@@ -1578,7 +1532,7 @@
end
i32.const -5
call $~lib/util/number/itoa32
i32.const 1504
i32.const 1400
call $~lib/string/String.__eq
i32.eqz
if
@@ -1591,7 +1545,7 @@
end
i32.const 4
call $~lib/util/number/itoa32
i32.const 1528
i32.const 1424
call $~lib/string/String.__eq
i32.eqz
if
@@ -1608,7 +1562,7 @@
global.set $number/a
global.get $number/a
call $~lib/util/number/itoa32
i32.const 1552
i32.const 1448
call $~lib/string/String.__eq
i32.eqz
if
@@ -1638,7 +1592,7 @@
end
i32.const 1
call $~lib/number/Bool#toString
i32.const 1576
i32.const 1472
call $~lib/string/String.__eq
i32.eqz
if
@@ -1651,7 +1605,7 @@
end
i32.const 0
call $~lib/number/Bool#toString
i32.const 1600
i32.const 1496
call $~lib/string/String.__eq
i32.eqz
if
@@ -1687,7 +1641,7 @@
global.set $number/a
local.get $0
call $~lib/util/number/itoa32
i32.const 1552
i32.const 1448
call $~lib/string/String.__eq
i32.eqz
if
@@ -2150,10 +2104,10 @@
unreachable
end
)
(func $start (; 24 ;) (type $FUNCSIG$v)
(func $start (; 22 ;) (type $FUNCSIG$v)
call $start:number
)
(func $null (; 25 ;) (type $FUNCSIG$v)
(func $null (; 23 ;) (type $FUNCSIG$v)
nop
)
)

File diff suppressed because it is too large Load Diff

@@ -12,7 +12,6 @@
(local $0 i32)
(local $1 i32)
(local $2 i32)
block
i32.const 127
local.set $0
local.get $0
@@ -55,14 +54,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $0
local.tee $2
i32.const 1
i32.add
local.set $0
local.get $2
end
local.set $1
local.get $0
i32.const 24
@@ -80,14 +77,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $0
local.tee $2
i32.const 1
i32.sub
local.set $0
local.get $2
end
local.set $1
local.get $0
i32.const 24
@@ -205,8 +200,6 @@
call $~lib/builtins/abort
unreachable
end
end
block
i32.const 32767
local.set $1
local.get $1
@@ -249,14 +242,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $1
local.tee $2
i32.const 1
i32.add
local.set $1
local.get $2
end
local.set $0
local.get $1
i32.const 16
@@ -274,14 +265,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $1
local.tee $2
i32.const 1
i32.sub
local.set $1
local.get $2
end
local.set $0
local.get $1
i32.const 16
@@ -399,8 +388,6 @@
call $~lib/builtins/abort
unreachable
end
end
block
i32.const 0
local.set $0
local.get $0
@@ -439,14 +426,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $0
local.tee $2
i32.const 1
i32.sub
local.set $0
local.get $2
end
local.set $1
local.get $0
i32.const 255
@@ -462,14 +447,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $0
local.tee $2
i32.const 1
i32.add
local.set $0
local.get $2
end
local.set $1
local.get $0
i32.const 255
@@ -575,8 +558,6 @@
call $~lib/builtins/abort
unreachable
end
end
block
i32.const 0
local.set $1
local.get $1
@@ -615,14 +596,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $1
local.tee $2
i32.const 1
i32.sub
local.set $1
local.get $2
end
local.set $0
local.get $1
i32.const 65535
@@ -638,14 +617,12 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
local.get $1
local.tee $2
i32.const 1
i32.add
local.set $1
local.get $2
end
local.set $0
local.get $1
i32.const 65535
@@ -751,7 +728,6 @@
call $~lib/builtins/abort
unreachable
end
end
)
(func $start (; 2 ;) (type $FUNCSIG$v)
call $start:overflow

@@ -49,13 +49,9 @@
local.get $0
i32.eqz
if
block
local.get $0
call $~lib/rt/stub/__release
return
unreachable
end
unreachable
else
nop
end
@@ -69,13 +65,9 @@
local.get $0
i32.eqz
if
block
local.get $0
call $~lib/rt/stub/__release
return
unreachable
end
unreachable
end
local.get $0
call $~lib/rt/stub/__release
@@ -101,13 +93,9 @@
i32.const 0
i32.eq
if
block
local.get $0
call $~lib/rt/stub/__release
return
unreachable
end
unreachable
else
nop
end
@@ -122,13 +110,9 @@
i32.const 0
i32.eq
if
block
local.get $0
call $~lib/rt/stub/__release
return
unreachable
end
unreachable
end
local.get $0
call $~lib/rt/stub/__release
@@ -156,13 +140,9 @@
i32.ne
i32.eqz
if
block
local.get $0
call $~lib/rt/stub/__release
return
unreachable
end
unreachable
else
nop
end
@@ -178,13 +158,9 @@
i32.ne
i32.eqz
if
block
local.get $0
call $~lib/rt/stub/__release
return
unreachable
end
unreachable
end
local.get $0
call $~lib/rt/stub/__release
@@ -200,7 +176,6 @@
local.get $0
i32.eqz
br_if $break|0
block (result i32)
i32.const 0
local.tee $1
local.get $0
@@ -214,10 +189,8 @@
call $~lib/rt/stub/__release
end
local.get $1
end
local.set $0
br $continue|0
unreachable
end
unreachable
end
@@ -238,7 +211,6 @@
local.get $0
i32.eqz
br_if $break|0
block (result i32)
local.get $1
local.tee $2
local.get $0
@@ -252,10 +224,8 @@
call $~lib/rt/stub/__release
end
local.get $2
end
local.set $0
br $continue|0
unreachable
end
unreachable
end
@@ -280,7 +250,6 @@
br_if $break|0
local.get $1
if
block (result i32)
local.get $1
local.tee $2
local.get $0
@@ -294,11 +263,9 @@
call $~lib/rt/stub/__release
end
local.get $2
end
local.set $0
end
br $continue|0
unreachable
end
unreachable
end
@@ -417,7 +384,6 @@
local.get $1
call $~lib/rt/stub/__retain
drop
block (result i32)
local.get $1
local.tee $2
local.get $0
@@ -431,7 +397,6 @@
call $~lib/rt/stub/__release
end
local.get $2
end
local.set $0
local.get $0
call $~lib/rt/stub/__release

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@@ -451,7 +451,6 @@
i32.add
local.set $0
br $loop|0
unreachable
end
unreachable
end

@@ -1788,14 +1788,12 @@
i32.and
local.tee $1
i32.sub
local.set $2
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 0
i32.store
local.get $2
i32.const -4
i32.and
local.tee $1
@@ -2112,10 +2110,8 @@
if
i32.const 584
call $~lib/rt/pure/__retain
local.set $0
local.get $1
call $~lib/rt/pure/__release
local.get $0
return
end
local.get $2
@@ -2150,12 +2146,10 @@
select
local.get $1
call $~lib/string/String#concat
local.set $2
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
)
(func $~lib/rt/pure/markGray (; 36 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
@@ -2424,7 +2418,6 @@
i32.const 0
i32.store offset=12
local.get $0
local.set $1
loop $loop|0
local.get $3
i32.const 10
@@ -2467,7 +2460,6 @@
br $loop|0
end
end
local.get $1
call $~lib/rt/pure/__release
i32.const 600
call $~lib/rt/pure/__retain
@@ -2479,14 +2471,12 @@
local.tee $2
i32.const 672
call $~lib/string/String.__concat
local.set $3
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
call $~lib/rt/pure/__release
local.get $3
call $~lib/rt/pure/__release
i32.const 4
i32.const 6
@@ -2496,7 +2486,6 @@
i32.const 0
i32.store
local.get $0
local.set $3
i32.const 4
i32.const 7
call $~lib/rt/tlsf/__alloc
@@ -2518,7 +2507,6 @@
local.get $4
call $~lib/rt/pure/__release
end
local.get $3
local.get $2
i32.store
local.get $0

File diff suppressed because it is too large Load Diff

@@ -152,8 +152,6 @@
(func $retain-release/assignGlobal (; 8 ;) (type $FUNCSIG$v)
(local $0 i32)
global.get $retain-release/REF
local.set $0
local.get $0
global.set $retain-release/glo
)
(func $retain-release/assignField (; 9 ;) (type $FUNCSIG$v)

@@ -257,7 +257,6 @@
(func $retain-release/assignGlobal (; 16 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
block (result i32)
global.get $retain-release/REF
local.tee $0
global.get $retain-release/glo
@@ -271,7 +270,6 @@
call $~lib/rt/stub/__release
end
local.get $0
end
global.set $retain-release/glo
)
(func $retain-release/assignField (; 17 ;) (type $FUNCSIG$v)
@@ -279,7 +277,6 @@
(local $1 i32)
global.get $retain-release/TARGET
local.tee $0
block (result i32)
global.get $retain-release/REF
local.tee $1
local.get $0
@@ -294,7 +291,6 @@
call $~lib/rt/stub/__release
end
local.get $1
end
i32.store
)
(func $retain-release/scopeBlock (; 18 ;) (type $FUNCSIG$v)
@@ -315,7 +311,6 @@
global.get $retain-release/REF
call $~lib/rt/stub/__retain
local.set $1
block (result i32)
local.get $1
local.tee $2
local.get $0
@@ -329,7 +324,6 @@
call $~lib/rt/stub/__release
end
local.get $2
end
local.set $0
local.get $1
call $~lib/rt/stub/__release
@@ -347,7 +341,6 @@
global.get $retain-release/REF
call $~lib/rt/stub/__retain
local.set $1
block (result i32)
local.get $1
local.tee $2
local.get $0
@@ -361,7 +354,6 @@
call $~lib/rt/stub/__release
end
local.get $2
end
local.set $0
local.get $1
call $~lib/rt/stub/__release
@@ -377,7 +369,6 @@
local.set $1
local.get $0
if
block (result i32)
global.get $retain-release/REF
local.tee $2
local.get $1
@@ -391,13 +382,11 @@
call $~lib/rt/stub/__release
end
local.get $2
end
local.set $1
end
global.get $retain-release/REF
call $~lib/rt/stub/__retain
local.set $2
block (result i32)
local.get $2
local.tee $3
local.get $1
@@ -411,7 +400,6 @@
call $~lib/rt/stub/__release
end
local.get $3
end
local.set $1
local.get $2
call $~lib/rt/stub/__release
@@ -441,7 +429,6 @@
local.set $1
local.get $0
if
block (result i32)
global.get $retain-release/REF
local.tee $2
local.get $1
@@ -455,7 +442,6 @@
call $~lib/rt/stub/__release
end
local.get $2
end
local.set $1
end
local.get $1
@@ -502,7 +488,6 @@
local.get $1
call $~lib/rt/stub/__release
br $continue|0
unreachable
end
unreachable
end
@@ -530,7 +515,6 @@
local.get $1
call $~lib/rt/stub/__release
br $loop|0
unreachable
end
unreachable
end
@@ -538,7 +522,6 @@
(func $retain-release/scopeBreak (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
block $break|0
loop $continue|0
local.get $0
i32.eqz
br_if $break|0
@@ -548,10 +531,6 @@
local.get $1
call $~lib/rt/stub/__release
br $break|0
br $continue|0
unreachable
end
unreachable
end
)
(func $retain-release/scopeContinue (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
@@ -567,7 +546,6 @@
local.get $1
call $~lib/rt/stub/__release
br $continue|0
unreachable
end
unreachable
end
@@ -575,7 +553,6 @@
(func $retain-release/scopeThrow (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
block $break|0
block
local.get $0
i32.eqz
br_if $break|0
@@ -584,19 +561,12 @@
local.set $1
local.get $1
call $~lib/rt/stub/__release
block
i32.const 24
i32.const 56
i32.const 313
i32.const 4
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
)
(func $retain-release/scopeUnreachable (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
@@ -610,10 +580,6 @@
call $~lib/rt/stub/__retain
local.set $1
unreachable
local.get $1
call $~lib/rt/stub/__release
br $continue|0
unreachable
end
unreachable
end
@@ -636,10 +602,8 @@
)
(func $retain-release/receiveRefInline (; 36 ;) (type $FUNCSIG$v)
(local $0 i32)
block $retain-release/returnRefInline|inlined.0 (result i32)
global.get $retain-release/REF
call $~lib/rt/stub/__retain
end
local.tee $0
i32.eqz
drop
@@ -647,10 +611,8 @@
call $~lib/rt/stub/__release
)
(func $retain-release/receiveRefInlineDrop (; 37 ;) (type $FUNCSIG$v)
block $retain-release/returnRefInline|inlined.1 (result i32)
global.get $retain-release/REF
call $~lib/rt/stub/__retain
end
call $~lib/rt/stub/__release
)
(func $retain-release/provideRefIndirect (; 38 ;) (type $FUNCSIG$vi) (param $0 i32)
@@ -662,13 +624,11 @@
)
(func $retain-release/receiveRefIndirect (; 39 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
block (result i32)
i32.const 0
global.set $~lib/argc
local.get $0
call_indirect (type $FUNCSIG$i)
local.tee $1
end
i32.eqz
drop
local.get $1

@@ -238,11 +238,9 @@
i32.const 0
call $rt/instanceof/BlackCat#constructor
global.set $rt/instanceof/blackcat
block (result i32)
global.get $rt/instanceof/animal
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -292,11 +290,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $rt/instanceof/cat
drop
i32.const 1
end
i32.eqz
if
i32.const 0
@@ -345,11 +341,9 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $rt/instanceof/blackcat
drop
i32.const 1
end
i32.eqz
if
i32.const 0

File diff suppressed because it is too large Load Diff

@@ -36,7 +36,6 @@
i32.add
local.set $0
br $loop|0
unreachable
end
unreachable
end
@@ -56,16 +55,13 @@
i32.add
local.set $1
br $loop|1
unreachable
end
unreachable
end
block
i64.const 5
local.set $2
f32.const 10
local.set $3
end
i32.const 42
call $scoped/fn
)

@@ -41,20 +41,12 @@
i32.load offset=12
i32.ge_u
if
block
block
i32.const 24
i32.const 136
i32.const 106
i32.const 45
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $1
local.get $0
@@ -63,20 +55,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 184
i32.const 136
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -99,20 +83,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 184
i32.const 136
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -156,20 +132,12 @@
i32.load offset=12
i32.ge_u
if
block
block
i32.const 24
i32.const 136
i32.const 106
i32.const 45
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $1
local.get $0
@@ -178,20 +146,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 184
i32.const 136
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -277,7 +237,6 @@
i32.add
local.set $7
br $continue|0
unreachable
end
unreachable
end
@@ -314,7 +273,6 @@
i32.const 0
i32.eq
if
block (result i32)
i32.const 304
local.tee $3
local.get $1
@@ -328,7 +286,6 @@
call $~lib/rt/stub/__release
end
local.get $3
end
local.set $1
end
local.get $0
@@ -359,16 +316,12 @@
local.get $5
i32.gt_s
if
block
i32.const 0
local.set $3
local.get $1
call $~lib/rt/stub/__release
local.get $3
return
unreachable
end
unreachable
end
local.get $0
local.get $6
@@ -418,20 +371,12 @@
i32.load offset=12
i32.ge_u
if
block
block
i32.const 24
i32.const 136
i32.const 106
i32.const 45
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $1
local.get $0
@@ -440,20 +385,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 184
i32.const 136
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@@ -1875,10 +1875,8 @@
i32.const -1
i32.const 1073741808
call $~lib/arraybuffer/ArrayBuffer#slice
local.set $0
local.get $1
call $~lib/rt/pure/__release
local.get $0
local.tee $1
call $~lib/arraybuffer/ArrayBuffer#get:byteLength
i32.const 1
@@ -1895,10 +1893,8 @@
i32.const 1
i32.const 3
call $~lib/arraybuffer/ArrayBuffer#slice
local.set $0
local.get $1
call $~lib/rt/pure/__release
local.get $0
local.tee $1
call $~lib/arraybuffer/ArrayBuffer#get:byteLength
i32.const 2
@@ -1915,10 +1911,8 @@
i32.const 1
i32.const -1
call $~lib/arraybuffer/ArrayBuffer#slice
local.set $0
local.get $1
call $~lib/rt/pure/__release
local.get $0
local.tee $1
call $~lib/arraybuffer/ArrayBuffer#get:byteLength
i32.const 6
@@ -2073,7 +2067,6 @@
i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $0
local.set $6
local.get $0
call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array>
i32.eqz
@@ -2130,7 +2123,6 @@
call $~lib/rt/pure/__release
local.get $5
call $~lib/rt/pure/__release
local.get $6
call $~lib/rt/pure/__release
local.get $7
call $~lib/rt/pure/__release

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@@ -118,7 +118,6 @@
local.get $0
)
(func $~lib/date/Date#constructor (; 5 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
block (result i32)
local.get $0
i32.eqz
if
@@ -132,7 +131,6 @@
i64.const 0
i64.store
local.get $0
end
local.get $1
i64.store
local.get $0
@@ -155,7 +153,6 @@
(local $4 i32)
(local $5 i32)
(local $6 i64)
block $~lib/date/Date.UTC|inlined.0 (result i64)
i32.const 1970
local.set $2
i32.const 0
@@ -180,7 +177,6 @@
f64.convert_i64_s
call $~lib/bindings/Date/UTC
i64.trunc_f64_s
end
i64.const 0
i64.eq
i32.eqz
@@ -192,7 +188,6 @@
call $~lib/builtins/abort
unreachable
end
block $~lib/date/Date.UTC|inlined.1 (result i64)
i32.const 1970
local.set $5
i32.const 0
@@ -217,7 +212,6 @@
f64.convert_i64_s
call $~lib/bindings/Date/UTC
i64.trunc_f64_s
end
i64.const 0
i64.eq
i32.eqz
@@ -229,7 +223,6 @@
call $~lib/builtins/abort
unreachable
end
block $~lib/date/Date.UTC|inlined.2 (result i64)
i32.const 2018
local.set $5
i32.const 10
@@ -254,7 +247,6 @@
f64.convert_i64_s
call $~lib/bindings/Date/UTC
i64.trunc_f64_s
end
global.set $std/date/creationTime
global.get $std/date/creationTime
i64.const 1541847600001
@@ -268,10 +260,8 @@
call $~lib/builtins/abort
unreachable
end
block $~lib/date/Date.now|inlined.0 (result i64)
call $~lib/bindings/Date/now
i64.trunc_f64_s
end
global.get $std/date/creationTime
i64.gt_s
i32.eqz

@@ -46,7 +46,6 @@
i32.add
local.set $2
br $loop|0
unreachable
end
unreachable
end

@@ -40,7 +40,6 @@
i32.ne
if
block $break|0
block
i32.const 0
local.set $2
local.get $0
@@ -48,7 +47,6 @@
i32.const 1
i32.shl
local.set $3
end
loop $loop|0
local.get $2
local.get $3
@@ -69,7 +67,6 @@
i32.add
local.set $2
br $loop|0
unreachable
end
unreachable
end

@@ -6,19 +6,15 @@
(type $FUNCSIG$ff (func (param f32) (result f32)))
(type $FUNCSIG$if (func (param f32) (result i32)))
(type $FUNCSIG$fff (func (param f32 f32) (result f32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ffi (func (param f32 i32) (result f32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ji (func (param i32) (result i64)))
(import "Math" "cos" (func $~lib/bindings/Math/cos (param f64) (result f64)))
(import "Math" "sin" (func $~lib/bindings/Math/sin (param f64) (result f64)))
(import "Math" "tan" (func $~lib/bindings/Math/tan (param f64) (result f64)))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00)\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe")
(data (i32.const 56) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00\18\00\00\00\18\00\00\00 \00\00\00\04")
(data (i32.const 88) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 144) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(global $../../lib/libm/assembly/libm/E f64 (f64.const 2.718281828459045))
(global $../../lib/libm/assembly/libm/LN10 f64 (f64.const 2.302585092994046))
(global $../../lib/libm/assembly/libm/LN2 f64 (f64.const 0.6931471805599453))
@@ -121,11 +117,11 @@
(export "libmf.tan" (func $../../lib/libm/assembly/libmf/tan))
(export "libmf.tanh" (func $../../lib/libm/assembly/libmf/tanh))
(export "libmf.trunc" (func $../../lib/libm/assembly/libmf/trunc))
(func $../../lib/libm/assembly/libm/abs (; 4 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/abs (; 3 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.abs
)
(func $~lib/math/R (; 5 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/R (; 4 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.const 0.16666666666666666
local.get $0
@@ -168,7 +164,7 @@
f64.add
f64.div
)
(func $~lib/math/NativeMath.acos (; 6 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.acos (; 5 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i32)
@@ -292,11 +288,11 @@
f64.add
f64.mul
)
(func $../../lib/libm/assembly/libm/acos (; 7 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/acos (; 6 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.acos
)
(func $~lib/math/NativeMath.log1p (; 8 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log1p (; 7 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i32)
@@ -495,7 +491,7 @@
f64.mul
f64.add
)
(func $~lib/math/NativeMath.log (; 9 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log (; 8 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 i32)
(local $2 i64)
(local $3 f64)
@@ -666,7 +662,7 @@
f64.mul
f64.add
)
(func $~lib/math/NativeMath.acosh (; 10 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.acosh (; 9 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 i64)
local.get $0
i64.reinterpret_f64
@@ -720,11 +716,11 @@
f64.const 0.6931471805599453
f64.add
)
(func $../../lib/libm/assembly/libm/acosh (; 11 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/acosh (; 10 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.acosh
)
(func $~lib/math/NativeMath.asin (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.asin (; 11 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@@ -862,11 +858,11 @@
end
local.get $0
)
(func $../../lib/libm/assembly/libm/asin (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/asin (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.asin
)
(func $~lib/math/NativeMath.asinh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.asinh (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i64)
local.get $0
@@ -936,16 +932,16 @@
local.get $0
f64.copysign
)
(func $../../lib/libm/assembly/libm/asinh (; 15 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/asinh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.asinh
)
(func $~lib/number/isNaN<f64> (; 16 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/number/isNaN<f64> (; 15 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
local.get $0
f64.ne
)
(func $~lib/math/NativeMath.atan (; 17 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.atan (; 16 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@@ -1170,11 +1166,11 @@
local.get $3
f64.copysign
)
(func $../../lib/libm/assembly/libm/atan (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/atan (; 17 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.atan
)
(func $~lib/math/NativeMath.atanh (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.atanh (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i64)
(local $3 f64)
@@ -1231,11 +1227,11 @@
local.get $0
f64.copysign
)
(func $../../lib/libm/assembly/libm/atanh (; 20 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/atanh (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.atanh
)
(func $~lib/math/NativeMath.atan2 (; 21 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.atan2 (; 20 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@@ -1483,12 +1479,12 @@
i32.and
select
)
(func $../../lib/libm/assembly/libm/atan2 (; 22 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $../../lib/libm/assembly/libm/atan2 (; 21 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
local.get $0
local.get $1
call $~lib/math/NativeMath.atan2
)
(func $~lib/math/NativeMath.cbrt (; 23 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cbrt (; 22 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@@ -1610,22 +1606,22 @@
f64.mul
f64.add
)
(func $../../lib/libm/assembly/libm/cbrt (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/cbrt (; 23 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.cbrt
)
(func $../../lib/libm/assembly/libm/ceil (; 25 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/ceil (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.ceil
)
(func $~lib/number/isFinite<f64> (; 26 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/number/isFinite<f64> (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
local.get $0
f64.sub
f64.const 0
f64.eq
)
(func $~lib/math/NativeMath.clz32 (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.clz32 (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/number/isFinite<f64>
i32.eqz
@@ -1646,15 +1642,15 @@
i32.clz
f64.convert_i32_s
)
(func $../../lib/libm/assembly/libm/clz32 (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/clz32 (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.clz32
)
(func $../../lib/libm/assembly/libm/cos (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/cos (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/bindings/Math/cos
)
(func $~lib/math/NativeMath.expm1 (; 30 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.expm1 (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@@ -1926,7 +1922,7 @@
local.get $4
f64.mul
)
(func $~lib/math/NativeMath.scalbn (; 31 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64)
(func $~lib/math/NativeMath.scalbn (; 30 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64)
local.get $1
i32.const 1023
i32.gt_s
@@ -2003,7 +1999,7 @@
f64.reinterpret_i64
f64.mul
)
(func $~lib/math/NativeMath.exp (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.exp (; 31 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 i32)
(local $2 f64)
(local $3 i32)
@@ -2155,7 +2151,7 @@
local.get $1
call $~lib/math/NativeMath.scalbn
)
(func $~lib/math/NativeMath.cosh (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.cosh (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 i32)
(local $2 i64)
local.get $0
@@ -2219,28 +2215,28 @@
f64.const 2247116418577894884661631e283
f64.mul
)
(func $../../lib/libm/assembly/libm/cosh (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/cosh (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.cosh
)
(func $../../lib/libm/assembly/libm/exp (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/exp (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.exp
)
(func $../../lib/libm/assembly/libm/expm1 (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/expm1 (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.expm1
)
(func $../../lib/libm/assembly/libm/floor (; 37 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/floor (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.floor
)
(func $../../lib/libm/assembly/libm/fround (; 38 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/fround (; 37 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f32.demote_f64
f64.promote_f32
)
(func $~lib/math/NativeMath.hypot (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.hypot (; 38 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(local $2 i64)
(local $3 f64)
(local $4 i64)
@@ -2264,10 +2260,8 @@
i64.lt_u
if
local.get $4
local.set $11
local.get $2
local.set $4
local.get $11
local.set $2
end
local.get $4
@@ -2413,12 +2407,12 @@
f64.sqrt
f64.mul
)
(func $../../lib/libm/assembly/libm/hypot (; 40 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $../../lib/libm/assembly/libm/hypot (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
local.get $0
local.get $1
call $~lib/math/NativeMath.hypot
)
(func $~lib/math/NativeMath.imul (; 41 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.imul (; 40 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
local.get $0
local.get $1
f64.add
@@ -2451,16 +2445,16 @@
i32.mul
f64.convert_i32_s
)
(func $../../lib/libm/assembly/libm/imul (; 42 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $../../lib/libm/assembly/libm/imul (; 41 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
local.get $0
local.get $1
call $~lib/math/NativeMath.imul
)
(func $../../lib/libm/assembly/libm/log (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/log (; 42 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.log
)
(func $~lib/math/NativeMath.log10 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log10 (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i64)
@@ -2664,15 +2658,15 @@
local.get $1
f64.add
)
(func $../../lib/libm/assembly/libm/log10 (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/log10 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.log10
)
(func $../../lib/libm/assembly/libm/log1p (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/log1p (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.log1p
)
(func $~lib/math/NativeMath.log2 (; 47 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.log2 (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i64)
@@ -2869,21 +2863,21 @@
local.get $1
f64.add
)
(func $../../lib/libm/assembly/libm/log2 (; 48 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/log2 (; 47 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.log2
)
(func $../../lib/libm/assembly/libm/max (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $../../lib/libm/assembly/libm/max (; 48 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
local.get $0
local.get $1
f64.max
)
(func $../../lib/libm/assembly/libm/min (; 50 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $../../lib/libm/assembly/libm/min (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
local.get $0
local.get $1
f64.min
)
(func $~lib/math/NativeMath.pow (; 51 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.pow (; 50 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 f64)
(local $4 i32)
@@ -3795,12 +3789,12 @@
f64.const 1e-300
f64.mul
)
(func $../../lib/libm/assembly/libm/pow (; 52 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $../../lib/libm/assembly/libm/pow (; 51 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
local.get $0
local.get $1
call $~lib/math/NativeMath.pow
)
(func $../../lib/libm/assembly/libm/round (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/round (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.const 0.5
f64.add
@@ -3808,7 +3802,7 @@
local.get $0
f64.copysign
)
(func $../../lib/libm/assembly/libm/sign (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/sign (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.abs
f64.const 0
@@ -3821,11 +3815,11 @@
end
local.get $0
)
(func $../../lib/libm/assembly/libm/sin (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/sin (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/bindings/Math/sin
)
(func $~lib/math/NativeMath.sinh (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.sinh (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 f64)
(local $3 i32)
@@ -3902,19 +3896,19 @@
f64.mul
f64.mul
)
(func $../../lib/libm/assembly/libm/sinh (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/sinh (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.sinh
)
(func $../../lib/libm/assembly/libm/sqrt (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/sqrt (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.sqrt
)
(func $../../lib/libm/assembly/libm/tan (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/tan (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/bindings/Math/tan
)
(func $~lib/math/NativeMath.tanh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $~lib/math/NativeMath.tanh (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(local $1 f64)
(local $2 i32)
(local $3 i64)
@@ -3993,19 +3987,19 @@
local.get $0
f64.copysign
)
(func $../../lib/libm/assembly/libm/tanh (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/tanh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
call $~lib/math/NativeMath.tanh
)
(func $../../lib/libm/assembly/libm/trunc (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
(func $../../lib/libm/assembly/libm/trunc (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
local.get $0
f64.trunc
)
(func $../../lib/libm/assembly/libmf/abs (; 63 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/abs (; 62 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.abs
)
(func $~lib/math/Rf (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/Rf (; 63 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.const 0.16666586697101593
local.get $0
@@ -4024,7 +4018,7 @@
f32.add
f32.div
)
(func $~lib/math/NativeMathf.acos (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.acos (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f32)
(local $2 i32)
(local $3 i32)
@@ -4140,11 +4134,11 @@
f32.add
f32.mul
)
(func $../../lib/libm/assembly/libmf/acos (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/acos (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.acos
)
(func $~lib/math/NativeMathf.log1p (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.log1p (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f32)
(local $2 i32)
(local $3 i32)
@@ -4314,7 +4308,7 @@
f32.mul
f32.add
)
(func $~lib/math/NativeMathf.log (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.log (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
(local $2 f32)
(local $3 f32)
@@ -4448,7 +4442,7 @@
f32.mul
f32.add
)
(func $~lib/math/NativeMathf.acosh (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.acosh (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
local.get $0
i32.reinterpret_f32
@@ -4498,11 +4492,11 @@
f32.const 0.6931471824645996
f32.add
)
(func $../../lib/libm/assembly/libmf/acosh (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/acosh (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.acosh
)
(func $~lib/math/NativeMathf.asin (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.asin (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
(local $2 f32)
(local $3 f64)
@@ -4582,11 +4576,11 @@
local.get $0
f32.copysign
)
(func $../../lib/libm/assembly/libmf/asin (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/asin (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.asin
)
(func $~lib/math/NativeMathf.asinh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.asinh (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f32)
(local $2 i32)
local.get $0
@@ -4651,16 +4645,16 @@
local.get $0
f32.copysign
)
(func $../../lib/libm/assembly/libmf/asinh (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/asinh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.asinh
)
(func $~lib/number/isNaN<f32> (; 75 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
(func $~lib/number/isNaN<f32> (; 74 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
local.get $0
local.get $0
f32.ne
)
(func $~lib/math/NativeMathf.atan (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.atan (; 75 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
(local $2 f32)
(local $3 f32)
@@ -4858,11 +4852,11 @@
local.get $4
f32.copysign
)
(func $../../lib/libm/assembly/libmf/atan (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/atan (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.atan
)
(func $~lib/math/NativeMathf.atanh (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.atanh (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f32)
(local $2 i32)
local.get $0
@@ -4912,11 +4906,11 @@
local.get $0
f32.copysign
)
(func $../../lib/libm/assembly/libmf/atanh (; 79 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/atanh (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.atanh
)
(func $~lib/math/NativeMathf.atan2 (; 80 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $~lib/math/NativeMathf.atan2 (; 79 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@@ -5140,12 +5134,12 @@
i32.and
select
)
(func $../../lib/libm/assembly/libmf/atan2 (; 81 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $../../lib/libm/assembly/libmf/atan2 (; 80 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
local.get $0
local.get $1
call $~lib/math/NativeMathf.atan2
)
(func $~lib/math/NativeMathf.cbrt (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.cbrt (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f64)
(local $2 f64)
(local $3 i32)
@@ -5244,22 +5238,22 @@
f64.div
f32.demote_f64
)
(func $../../lib/libm/assembly/libmf/cbrt (; 83 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/cbrt (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.cbrt
)
(func $../../lib/libm/assembly/libmf/ceil (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/ceil (; 83 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.ceil
)
(func $~lib/number/isFinite<f32> (; 85 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
(func $~lib/number/isFinite<f32> (; 84 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
local.get $0
local.get $0
f32.sub
f32.const 0
f32.eq
)
(func $~lib/math/NativeMathf.clz32 (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.clz32 (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/number/isFinite<f32>
i32.eqz
@@ -5280,25 +5274,11 @@
i32.clz
f32.convert_i32_s
)
(func $../../lib/libm/assembly/libmf/clz32 (; 87 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/clz32 (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.clz32
)
(func $~lib/array/Array<u64>#__get (; 88 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
local.get $0
i32.const 80
i32.load
i32.const 3
i32.shr_u
i32.ge_u
if
i32.const 104
i32.const 160
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
end
(func $~lib/array/Array<u64>#__unchecked_get (; 87 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
i32.const 76
i32.load
local.get $0
@@ -5307,7 +5287,7 @@
i32.add
i64.load
)
(func $~lib/math/NativeMathf.cos (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.cos (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@@ -5412,12 +5392,12 @@
i32.const 6
i32.shr_s
local.tee $7
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $9
local.get $7
i32.const 1
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $5
local.get $4
i32.const 63
@@ -5435,7 +5415,7 @@
local.get $7
i32.const 2
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
i64.const 96
local.get $4
i64.extend_i32_s
@@ -5579,11 +5559,11 @@
end
local.get $0
)
(func $../../lib/libm/assembly/libmf/cos (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/cos (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.cos
)
(func $~lib/math/NativeMathf.expm1 (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.expm1 (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
(local $2 f32)
(local $3 f32)
@@ -5835,7 +5815,7 @@
local.get $4
f32.mul
)
(func $~lib/math/NativeMathf.scalbn (; 92 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32)
(func $~lib/math/NativeMathf.scalbn (; 91 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32)
local.get $1
i32.const 127
i32.gt_s
@@ -5911,7 +5891,7 @@
f32.reinterpret_i32
f32.mul
)
(func $~lib/math/NativeMathf.exp (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.exp (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
(local $2 i32)
(local $3 f32)
@@ -6039,7 +6019,7 @@
local.get $1
call $~lib/math/NativeMathf.scalbn
)
(func $~lib/math/NativeMathf.cosh (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.cosh (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
local.get $0
i32.reinterpret_f32
@@ -6098,26 +6078,26 @@
f32.const 1661534994731144841129758e11
f32.mul
)
(func $../../lib/libm/assembly/libmf/cosh (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/cosh (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.cosh
)
(func $../../lib/libm/assembly/libmf/exp (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/exp (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.exp
)
(func $../../lib/libm/assembly/libmf/expm1 (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/expm1 (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.expm1
)
(func $../../lib/libm/assembly/libmf/floor (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/floor (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.floor
)
(func $../../lib/libm/assembly/libmf/fround (; 99 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/fround (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
)
(func $~lib/math/NativeMathf.hypot (; 100 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $~lib/math/NativeMathf.hypot (; 99 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(local $2 i32)
(local $3 i32)
(local $4 f32)
@@ -6135,10 +6115,8 @@
i32.lt_u
if
local.get $3
local.set $5
local.get $2
local.set $3
local.get $5
local.set $2
end
local.get $3
@@ -6224,12 +6202,12 @@
f32.sqrt
f32.mul
)
(func $../../lib/libm/assembly/libmf/hypot (; 101 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $../../lib/libm/assembly/libmf/hypot (; 100 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
local.get $0
local.get $1
call $~lib/math/NativeMathf.hypot
)
(func $../../lib/libm/assembly/libmf/imul (; 102 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $../../lib/libm/assembly/libmf/imul (; 101 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
block $~lib/math/NativeMathf.imul|inlined.0 (result f32)
f32.const 0
local.get $0
@@ -6267,11 +6245,11 @@
f32.convert_i32_s
end
)
(func $../../lib/libm/assembly/libmf/log (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/log (; 102 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.log
)
(func $~lib/math/NativeMathf.log10 (; 104 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.log10 (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
(local $2 f32)
(local $3 i32)
@@ -6429,15 +6407,15 @@
f32.mul
f32.add
)
(func $../../lib/libm/assembly/libmf/log10 (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/log10 (; 104 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.log10
)
(func $../../lib/libm/assembly/libmf/log1p (; 106 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/log1p (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.log1p
)
(func $~lib/math/NativeMathf.log2 (; 107 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.log2 (; 106 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 i32)
(local $2 f32)
(local $3 i32)
@@ -6587,21 +6565,21 @@
f32.convert_i32_s
f32.add
)
(func $../../lib/libm/assembly/libmf/log2 (; 108 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/log2 (; 107 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.log2
)
(func $../../lib/libm/assembly/libmf/max (; 109 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $../../lib/libm/assembly/libmf/max (; 108 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
local.get $0
local.get $1
f32.max
)
(func $../../lib/libm/assembly/libmf/min (; 110 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $../../lib/libm/assembly/libmf/min (; 109 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
local.get $0
local.get $1
f32.min
)
(func $~lib/math/NativeMathf.pow (; 111 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $~lib/math/NativeMathf.pow (; 110 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(local $2 f32)
(local $3 f32)
(local $4 i32)
@@ -7387,12 +7365,12 @@
f32.const 1.0000000031710769e-30
f32.mul
)
(func $../../lib/libm/assembly/libmf/pow (; 112 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
(func $../../lib/libm/assembly/libmf/pow (; 111 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32)
local.get $0
local.get $1
call $~lib/math/NativeMathf.pow
)
(func $../../lib/libm/assembly/libmf/round (; 113 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/round (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.const 0.5
f32.add
@@ -7400,7 +7378,7 @@
local.get $0
f32.copysign
)
(func $../../lib/libm/assembly/libmf/sign (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/sign (; 113 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.abs
f32.const 0
@@ -7413,7 +7391,7 @@
end
local.get $0
)
(func $~lib/math/NativeMathf.sin (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.sin (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@@ -7521,12 +7499,12 @@
i32.const 6
i32.shr_s
local.tee $8
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $10
local.get $8
i32.const 1
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $5
local.get $4
i32.const 63
@@ -7544,7 +7522,7 @@
local.get $8
i32.const 2
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
i64.const 96
local.get $4
i64.extend_i32_s
@@ -7686,11 +7664,11 @@
end
local.get $0
)
(func $../../lib/libm/assembly/libmf/sin (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/sin (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.sin
)
(func $~lib/math/NativeMathf.sinh (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.sinh (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f32)
(local $2 i32)
(local $3 f32)
@@ -7762,15 +7740,15 @@
f32.mul
f32.mul
)
(func $../../lib/libm/assembly/libmf/sinh (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/sinh (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.sinh
)
(func $../../lib/libm/assembly/libmf/sqrt (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/sqrt (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.sqrt
)
(func $~lib/math/NativeMathf.tan (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.tan (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f64)
(local $2 i32)
(local $3 f64)
@@ -7887,12 +7865,12 @@
i32.const 6
i32.shr_s
local.tee $8
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $10
local.get $8
i32.const 1
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $6
local.get $4
i32.const 63
@@ -7910,7 +7888,7 @@
local.get $8
i32.const 2
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
i64.const 96
local.get $4
i64.extend_i32_s
@@ -7977,7 +7955,6 @@
local.get $9
select
end
local.set $2
global.get $~lib/math/rempio2f_y
local.tee $3
local.get $3
@@ -8017,7 +7994,6 @@
f64.mul
f64.add
local.set $1
local.get $2
i32.const 1
i32.and
if
@@ -8029,11 +8005,11 @@
local.get $1
f32.demote_f64
)
(func $../../lib/libm/assembly/libmf/tan (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/tan (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.tan
)
(func $~lib/math/NativeMathf.tanh (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $~lib/math/NativeMathf.tanh (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(local $1 f32)
(local $2 i32)
local.get $0
@@ -8107,15 +8083,15 @@
local.get $0
f32.copysign
)
(func $../../lib/libm/assembly/libmf/tanh (; 123 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/tanh (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
call $~lib/math/NativeMathf.tanh
)
(func $../../lib/libm/assembly/libmf/trunc (; 124 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
(func $../../lib/libm/assembly/libmf/trunc (; 123 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
local.get $0
f32.trunc
)
(func $null (; 125 ;) (type $FUNCSIG$v)
(func $null (; 124 ;) (type $FUNCSIG$v)
nop
)
)

File diff suppressed because it is too large Load Diff

@@ -1160,14 +1160,12 @@
i32.and
local.tee $1
i32.sub
local.set $2
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 0
i32.store
local.get $2
i32.const -4
i32.and
local.tee $1

File diff suppressed because it is too large Load Diff

@@ -67,10 +67,8 @@
(data (i32.const 8) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s")
(data (i32.const 48) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00)\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe")
(data (i32.const 96) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00@\00\00\00@\00\00\00 \00\00\00\04")
(data (i32.const 128) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 184) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 232) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s")
(data (i32.const 272) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.")
(data (i32.const 128) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s")
(data (i32.const 168) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.")
(global $~lib/math/rempio2f_y (mut f64) (f64.const 0))
(global $~lib/math/random_seeded (mut i32) (i32.const 0))
(global $~lib/math/random_state0_64 (mut i64) (i64.const 0))
@@ -232,7 +230,6 @@
local.get $0
local.get $1
f64.sub
local.set $0
local.get $1
i64.reinterpret_f64
i64.const 52
@@ -248,7 +245,6 @@
i32.add
local.set $3
end
local.get $0
i32.const 0
local.get $3
i32.const -1075
@@ -431,7 +427,6 @@
local.get $0
local.get $1
f32.sub
local.set $0
local.get $1
i32.reinterpret_f32
i32.const 23
@@ -446,7 +441,6 @@
i32.add
local.set $3
end
local.get $0
i32.const 0
local.get $3
i32.const -150
@@ -3389,21 +3383,7 @@
f32.const 0
call $std/math/check<f32>
)
(func $~lib/array/Array<u64>#__get (; 83 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
local.get $0
i32.const 120
i32.load
i32.const 3
i32.shr_u
i32.ge_u
if
i32.const 144
i32.const 200
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
end
(func $~lib/array/Array<u64>#__unchecked_get (; 83 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
i32.const 116
i32.load
local.get $0
@@ -3517,12 +3497,12 @@
i32.const 6
i32.shr_s
local.tee $7
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $9
local.get $7
i32.const 1
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $5
local.get $4
i32.const 63
@@ -3540,7 +3520,7 @@
local.get $7
i32.const 2
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
i64.const 96
local.get $4
i64.extend_i32_s
@@ -4734,10 +4714,8 @@
i64.lt_u
if
local.get $4
local.set $11
local.get $2
local.set $4
local.get $11
local.set $2
end
local.get $4
@@ -4919,10 +4897,8 @@
i32.lt_u
if
local.get $3
local.set $5
local.get $2
local.set $3
local.get $5
local.set $2
end
local.get $3
@@ -8071,7 +8047,7 @@
i64.eqz
if
i32.const 0
i32.const 248
i32.const 144
i32.const 1020
i32.const 4
call $~lib/builtins/abort
@@ -8101,8 +8077,8 @@
global.get $~lib/math/random_seeded
i32.eqz
if
i32.const 288
i32.const 248
i32.const 184
i32.const 144
i32.const 1029
i32.const 24
call $~lib/builtins/abort
@@ -8148,8 +8124,8 @@
global.get $~lib/math/random_seeded
i32.eqz
if
i32.const 288
i32.const 248
i32.const 184
i32.const 144
i32.const 2309
i32.const 24
call $~lib/builtins/abort
@@ -8278,7 +8254,6 @@
i64.const 63
i64.shr_u
i32.wrap_i64
local.set $8
i32.const 1
local.get $3
i64.const 2047
@@ -8500,7 +8475,6 @@
select
select
local.set $0
local.get $8
if
local.get $0
f64.neg
@@ -8543,7 +8517,6 @@
local.get $2
i32.const 31
i32.shr_u
local.set $8
local.get $3
i32.const 255
i32.eq
@@ -8667,7 +8640,6 @@
br $continue|1
end
end
block (result i32)
local.get $2
local.get $6
i32.ge_u
@@ -8683,7 +8655,6 @@
end
local.get $2
i32.eqz
end
if
i32.const -30
local.set $3
@@ -8757,7 +8728,6 @@
select
select
local.set $0
local.get $8
if
local.get $0
f32.neg
@@ -8881,12 +8851,12 @@
i32.const 6
i32.shr_s
local.tee $8
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $10
local.get $8
i32.const 1
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $5
local.get $4
i32.const 63
@@ -8904,7 +8874,7 @@
local.get $8
i32.const 2
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
i64.const 96
local.get $4
i64.extend_i32_s
@@ -9365,12 +9335,12 @@
i32.const 6
i32.shr_s
local.tee $8
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $10
local.get $8
i32.const 1
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
local.set $6
local.get $4
i32.const 63
@@ -9388,7 +9358,7 @@
local.get $8
i32.const 2
i32.add
call $~lib/array/Array<u64>#__get
call $~lib/array/Array<u64>#__unchecked_get
i64.const 96
local.get $4
i64.extend_i32_s
@@ -9455,7 +9425,6 @@
local.get $9
select
end
local.set $2
global.get $~lib/math/rempio2f_y
local.tee $3
local.get $3
@@ -9495,7 +9464,6 @@
f64.mul
f64.add
local.set $1
local.get $2
i32.const 1
i32.and
if

File diff suppressed because it is too large Load Diff

@@ -204,7 +204,6 @@
i64.sub
local.set $4
br $continue|0
unreachable
end
unreachable
end
@@ -507,7 +506,6 @@
i32.sub
local.set $4
br $continue|0
unreachable
end
unreachable
end

@@ -110,7 +110,6 @@
)
(func $std/new/AClass#constructor (; 2 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
local.get $0
block (result i32)
local.get $0
i32.eqz
if
@@ -127,7 +126,6 @@
f32.const 2
f32.store offset=4
local.get $0
end
i32.load
i32.const 1
i32.add

@@ -176,7 +176,6 @@
i32.add
local.set $7
br $continue|0
unreachable
end
unreachable
end
@@ -201,7 +200,6 @@
local.get $1
i32.eq
if
block
i32.const 1
local.set $2
local.get $0
@@ -210,9 +208,6 @@
call $~lib/rt/stub/__release
local.get $2
return
unreachable
end
unreachable
end
local.get $0
i32.const 0
@@ -225,7 +220,6 @@
i32.eq
end
if
block
i32.const 0
local.set $2
local.get $0
@@ -234,9 +228,6 @@
call $~lib/rt/stub/__release
local.get $2
return
unreachable
end
unreachable
end
local.get $0
call $~lib/string/String#get:length
@@ -246,7 +237,6 @@
call $~lib/string/String#get:length
i32.ne
if
block
i32.const 0
local.set $2
local.get $0
@@ -255,9 +245,6 @@
call $~lib/rt/stub/__release
local.get $2
return
unreachable
end
unreachable
end
local.get $0
i32.const 0
@@ -355,7 +342,6 @@
global.set $~lib/rt/stub/startOffset
global.get $~lib/rt/stub/startOffset
global.set $~lib/rt/stub/offset
block (result i32)
i32.const 8
i32.const 3
call $~lib/rt/stub/__alloc
@@ -368,9 +354,7 @@
i32.const 24
i32.store offset=4
local.get $0
end
call $std/object-literal/bar
block (result i32)
i32.const 4
i32.const 4
call $~lib/rt/stub/__alloc
@@ -380,9 +364,7 @@
i32.const 2
i32.store
local.get $1
end
call $std/object-literal/bar2
block (result i32)
i32.const 4
i32.const 4
call $~lib/rt/stub/__alloc
@@ -392,7 +374,6 @@
i32.const 3
i32.store
local.get $2
end
call $std/object-literal/Foo2#test
local.get $0
call $~lib/rt/stub/__release

@@ -656,7 +656,6 @@
unreachable
end
unreachable
unreachable
end
local.get $8
i32.const 1072693248
@@ -2729,7 +2728,6 @@
i32.const 2
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/shl
block (result i32)
global.get $std/operator-overloading/shl
i32.const 3
call $std/operator-overloading/Tester.shl
@@ -2746,7 +2744,6 @@
call $~lib/rt/stub/__release
end
local.get $12
end
global.set $std/operator-overloading/sres
global.get $std/operator-overloading/sres
i32.load
@@ -2922,7 +2919,6 @@
i32.const 1
call $std/operator-overloading/Tester#constructor
global.set $std/operator-overloading/incdec
block (result i32)
global.get $std/operator-overloading/incdec
call $std/operator-overloading/Tester#inc
local.tee $15
@@ -2938,7 +2934,6 @@
call $~lib/rt/stub/__release
end
local.get $16
end
global.set $std/operator-overloading/incdec
global.get $std/operator-overloading/incdec
i32.load
@@ -2961,7 +2956,6 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
global.get $std/operator-overloading/incdec
call $std/operator-overloading/Tester#dec
local.tee $16
@@ -2977,7 +2971,6 @@
call $~lib/rt/stub/__release
end
local.get $17
end
global.set $std/operator-overloading/incdec
global.get $std/operator-overloading/incdec
i32.load
@@ -3000,7 +2993,6 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 0
i32.const 0
i32.const 1
@@ -3009,10 +3001,7 @@
global.get $std/operator-overloading/incdec
call $~lib/rt/stub/__release
local.get $18
end
global.set $std/operator-overloading/incdec
block (result i32)
block (result i32)
global.get $std/operator-overloading/incdec
local.tee $18
call $std/operator-overloading/Tester#postInc
@@ -3029,10 +3018,8 @@
call $~lib/rt/stub/__release
end
local.get $19
end
global.set $std/operator-overloading/incdec
local.get $18
end
call $~lib/rt/stub/__retain
global.set $std/operator-overloading/tmp
global.get $std/operator-overloading/tmp
@@ -3077,9 +3064,6 @@
call $~lib/builtins/abort
unreachable
end
block (result i32)
block (result i32)
block (result i32)
global.get $std/operator-overloading/incdec
local.tee $18
call $std/operator-overloading/Tester#postDec
@@ -3096,10 +3080,8 @@
call $~lib/rt/stub/__release
end
local.get $20
end
global.set $std/operator-overloading/incdec
local.get $18
end
local.tee $21
global.get $std/operator-overloading/tmp
local.tee $18
@@ -3112,7 +3094,6 @@
call $~lib/rt/stub/__release
end
local.get $21
end
global.set $std/operator-overloading/tmp
global.get $std/operator-overloading/tmp
i32.load
@@ -3161,7 +3142,6 @@
i32.const 2
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais1
block (result i32)
global.get $std/operator-overloading/ais1
call $std/operator-overloading/TesterInlineStatic.postInc
local.tee $21
@@ -3177,7 +3157,6 @@
call $~lib/rt/stub/__release
end
local.get $20
end
global.set $std/operator-overloading/ais1
i32.const 0
i32.const 2
@@ -3216,7 +3195,6 @@
i32.const 2
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii1
block (result i32)
global.get $std/operator-overloading/aii1
call $std/operator-overloading/TesterInlineInstance#postInc
local.tee $18
@@ -3232,7 +3210,6 @@
call $~lib/rt/stub/__release
end
local.get $22
end
global.set $std/operator-overloading/aii1
i32.const 0
i32.const 2

File diff suppressed because it is too large Load Diff

@@ -1157,14 +1157,12 @@
i32.and
local.tee $1
i32.sub
local.set $2
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 0
i32.store
local.get $2
i32.const -4
i32.and
local.tee $1

File diff suppressed because it is too large Load Diff

@@ -399,14 +399,12 @@
i32.and
local.tee $1
i32.sub
local.set $2
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 0
i32.store
local.get $2
i32.const -4
i32.and
local.tee $1

@@ -57,20 +57,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 320
i32.const 376
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -184,22 +176,18 @@
end
i32.eqz
br_if $break|0
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
local.get $2
@@ -207,7 +195,6 @@
i32.sub
local.set $2
br $continue|0
unreachable
end
unreachable
end
@@ -265,7 +252,6 @@
i32.sub
local.set $2
br $continue|1
unreachable
end
unreachable
end
@@ -332,22 +318,18 @@
i32.const 1
i32.and
if
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
end
@@ -379,62 +361,49 @@
br_if $case2|2
br $break|2
end
block
local.get $1
i32.load
local.set $3
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
local.get $2
@@ -523,53 +492,40 @@
i32.sub
local.set $2
br $continue|3
unreachable
end
unreachable
end
br $break|2
unreachable
end
unreachable
end
block
local.get $1
i32.load
local.set $3
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
local.get $2
@@ -658,35 +614,26 @@
i32.sub
local.set $2
br $continue|4
unreachable
end
unreachable
end
br $break|2
unreachable
end
unreachable
end
block
local.get $1
i32.load
local.set $3
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
local.get $2
@@ -775,306 +722,238 @@
i32.sub
local.set $2
br $continue|5
unreachable
end
unreachable
end
br $break|2
unreachable
end
unreachable
end
end
local.get $2
i32.const 16
i32.and
if
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
end
@@ -1082,148 +961,116 @@
i32.const 8
i32.and
if
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
end
@@ -1231,76 +1078,60 @@
i32.const 4
i32.and
if
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
end
@@ -1308,40 +1139,32 @@
i32.const 2
i32.and
if
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
end
@@ -1349,22 +1172,18 @@
i32.const 1
i32.and
if
block (result i32)
local.get $0
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $5
end
block (result i32)
local.get $1
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $5
end
i32.load8_u
i32.store8
end
@@ -1436,26 +1255,21 @@
i32.const 1
i32.sub
local.set $3
block (result i32)
local.get $5
local.tee $6
i32.const 1
i32.add
local.set $5
local.get $6
end
block (result i32)
local.get $4
local.tee $6
i32.const 1
i32.add
local.set $4
local.get $6
end
i32.load8_u
i32.store8
br $continue|0
unreachable
end
unreachable
end
@@ -1483,7 +1297,6 @@
i32.add
local.set $4
br $continue|1
unreachable
end
unreachable
end
@@ -1493,22 +1306,18 @@
local.get $3
i32.eqz
br_if $break|2
block (result i32)
local.get $5
local.tee $6
i32.const 1
i32.add
local.set $5
local.get $6
end
block (result i32)
local.get $4
local.tee $6
i32.const 1
i32.add
local.set $4
local.get $6
end
i32.load8_u
i32.store8
local.get $3
@@ -1516,7 +1325,6 @@
i32.sub
local.set $3
br $continue|2
unreachable
end
unreachable
end
@@ -1555,7 +1363,6 @@
i32.load8_u
i32.store8
br $continue|3
unreachable
end
unreachable
end
@@ -1579,7 +1386,6 @@
i64.load
i64.store
br $continue|4
unreachable
end
unreachable
end
@@ -1601,7 +1407,6 @@
i32.load8_u
i32.store8
br $continue|5
unreachable
end
unreachable
end
@@ -1900,7 +1705,6 @@
i32.add
local.set $5
br $continue|0
unreachable
end
unreachable
end
@@ -1929,20 +1733,12 @@
i32.shr_u
i32.gt_u
if
block
block
i32.const 424
i32.const 376
i32.const 14
i32.const 47
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
i32.load
@@ -2037,20 +1833,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 320
i32.const 376
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -2113,20 +1901,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 320
i32.const 376
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1
@@ -2189,20 +1969,12 @@
i32.shr_u
i32.ge_u
if
block
block
i32.const 320
i32.const 376
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
unreachable
end
unreachable
unreachable
end
unreachable
end
local.get $0
local.get $1

File diff suppressed because it is too large Load Diff

@@ -15,7 +15,6 @@
(type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32)))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$ji (func (param i32) (result i64)))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32)))
(import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32)))
@@ -1689,10 +1688,8 @@
else
i32.const 1
end
local.set $1
local.get $0
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/string/String.fromCharCode (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -1834,12 +1831,10 @@
local.get $2
call $~lib/util/string/compareImpl
i32.eqz
local.set $2
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
return
end
local.get $0
@@ -1948,10 +1943,8 @@
local.get $3
call $~lib/util/string/compareImpl
i32.eqz
local.set $0
i32.const 528
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/string/String#endsWith (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
@@ -1996,10 +1989,8 @@
local.get $1
call $~lib/util/string/compareImpl
i32.eqz
local.set $0
i32.const 576
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/string/String#indexOf (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -2144,10 +2135,8 @@
if
local.get $0
call $~lib/rt/pure/__retain
local.set $0
local.get $2
call $~lib/rt/pure/__release
local.get $0
return
end
local.get $3
@@ -2197,10 +2186,8 @@
call $~lib/memory/memory.copy
local.get $1
call $~lib/rt/pure/__retain
local.set $0
local.get $2
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/string/String#padEnd (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -2245,10 +2232,8 @@
if
local.get $0
call $~lib/rt/pure/__retain
local.set $0
local.get $2
call $~lib/rt/pure/__release
local.get $0
return
end
local.get $5
@@ -2300,10 +2285,8 @@
end
local.get $1
call $~lib/rt/pure/__retain
local.set $0
local.get $2
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/string/String#lastIndexOf (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
@@ -2318,10 +2301,8 @@
if
local.get $0
call $~lib/string/String#get:length
local.set $0
local.get $1
call $~lib/rt/pure/__release
local.get $0
return
end
local.get $0
@@ -2508,7 +2489,6 @@
end
f64.const 1
end
local.set $6
local.get $3
i32.const 2
i32.gt_s
@@ -2668,7 +2648,6 @@
end
local.get $0
call $~lib/rt/pure/__release
local.get $6
local.get $5
f64.mul
return
@@ -2684,10 +2663,8 @@
drop
local.get $0
call $~lib/util/string/strtol<f64>
local.set $1
local.get $0
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/util/string/strtod (; 42 ;) (type $FUNCSIG$di) (param $0 i32) (result f64)
(local $1 i32)
@@ -2769,7 +2746,6 @@
end
f64.const 1
end
local.set $6
loop $continue|1
block $break|1
local.get $3
@@ -2872,7 +2848,6 @@
end
local.get $0
call $~lib/rt/pure/__release
local.get $6
local.get $4
f64.mul
return
@@ -2888,10 +2863,8 @@
drop
local.get $0
call $~lib/util/string/strtod
local.set $1
local.get $0
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/string/String#concat (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -2932,10 +2905,8 @@
if
i32.const 120
call $~lib/rt/pure/__retain
local.set $0
local.get $1
call $~lib/rt/pure/__release
local.get $0
return
end
local.get $2
@@ -2970,12 +2941,10 @@
select
local.get $1
call $~lib/string/String#concat
local.set $2
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
)
(func $~lib/string/String.__ne (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -2989,12 +2958,10 @@
local.get $1
call $~lib/string/String.__eq
i32.eqz
local.set $2
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
)
(func $~lib/string/String.__gt (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -3053,12 +3020,10 @@
call $~lib/util/string/compareImpl
i32.const 0
i32.gt_s
local.set $2
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
return
end
local.get $0
@@ -3123,12 +3088,10 @@
call $~lib/util/string/compareImpl
i32.const 0
i32.lt_s
local.set $2
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
return
end
local.get $0
@@ -3149,12 +3112,10 @@
local.get $1
call $~lib/string/String.__lt
i32.eqz
local.set $2
local.get $0
call $~lib/rt/pure/__release
local.get $1
call $~lib/rt/pure/__release
local.get $2
)
(func $~lib/string/String.__lte (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
@@ -3168,12 +3129,10 @@
local.get $0
call $~lib/string/String.__gt
i32.eqz
local.set $1
i32.const 120
call $~lib/rt/pure/__release
local.get $0
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/string/String#repeat (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -3570,14 +3529,12 @@
i32.and
local.tee $1
i32.sub
local.set $2
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 0
i32.store
local.get $2
i32.const -4
i32.and
local.tee $1
@@ -4008,10 +3965,8 @@
call $~lib/rt/__allocArray
call $~lib/rt/pure/__retain
end
local.set $0
local.get $1
call $~lib/rt/pure/__release
local.get $0
return
end
local.get $1
@@ -4330,7 +4285,6 @@
call $~lib/rt/pure/__retain
return
end
block (result i32)
local.get $0
i64.const 0
i64.lt_s
@@ -4344,7 +4298,6 @@
local.get $0
i64.const 4294967295
i64.le_u
end
if
local.get $0
i32.wrap_i64
@@ -4385,53 +4338,7 @@
local.get $3
call $~lib/rt/pure/__retain
)
(func $~lib/array/Array<u64>#__get (; 69 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
local.get $0
i32.const 4576
i32.load
i32.const 3
i32.shr_u
i32.ge_u
if
i32.const 232
i32.const 2304
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
end
i32.const 4572
i32.load
local.get $0
i32.const 3
i32.shl
i32.add
i64.load
)
(func $~lib/array/Array<i16>#__get (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 4800
i32.load
i32.const 1
i32.shr_u
i32.ge_u
if
i32.const 232
i32.const 2304
i32.const 109
i32.const 61
call $~lib/builtins/abort
unreachable
end
i32.const 4796
i32.load
local.get $0
i32.const 1
i32.shl
i32.add
i32.load16_s
)
(func $~lib/util/number/genDigits (; 71 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(func $~lib/util/number/genDigits (; 69 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(local $7 i32)
(local $8 i32)
(local $9 i64)
@@ -4830,7 +4737,7 @@
local.get $6
end
)
(func $~lib/util/number/prettify (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/prettify (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $2
i32.eqz
@@ -4985,7 +4892,6 @@
i32.const 4
i32.add
local.tee $0
block (result i32)
local.get $3
i32.const 1
i32.sub
@@ -5000,7 +4906,6 @@
local.set $2
end
local.get $2
end
local.get $2
call $~lib/util/number/decimalCount32
i32.const 1
@@ -5043,7 +4948,6 @@
i32.const 4
i32.add
local.tee $2
block (result i32)
local.get $3
i32.const 1
i32.sub
@@ -5058,7 +4962,6 @@
local.set $0
end
local.get $0
end
local.get $0
call $~lib/util/number/decimalCount32
i32.const 1
@@ -5081,37 +4984,30 @@
end
end
)
(func $~lib/util/number/dtoa_core (; 73 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/util/number/dtoa_core (; 71 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(local $2 i64)
(local $3 i32)
(local $4 i64)
(local $5 i32)
(local $5 i64)
(local $6 i64)
(local $7 i64)
(local $7 i32)
(local $8 i64)
(local $9 i32)
(local $9 i64)
(local $10 i32)
(local $11 i64)
(local $12 i64)
(local $13 i64)
(local $14 i64)
(local $15 i64)
(local $16 i64)
(local $17 i64)
(local $18 i64)
(local $11 i32)
local.get $1
f64.const 0
f64.lt
local.tee $9
if (result f64)
local.tee $10
if
local.get $0
i32.const 45
i32.store16
local.get $1
f64.neg
else
local.get $1
local.set $1
end
local.get $1
i64.reinterpret_f64
local.tee $2
i64.const 9218868437227405312
@@ -5119,57 +5015,57 @@
i64.const 52
i64.shr_u
i32.wrap_i64
local.set $5
local.tee $11
i32.const 0
i32.ne
local.set $7
local.get $2
i64.const 4503599627370495
i64.and
local.get $5
i32.const 0
i32.ne
local.tee $10
local.get $7
i64.extend_i32_u
i64.const 52
i64.shl
i64.add
local.tee $2
local.tee $5
i64.const 1
i64.shl
i64.const 1
i64.add
local.tee $6
local.tee $2
i64.clz
i32.wrap_i64
local.set $3
local.get $6
local.get $2
local.get $3
i64.extend_i32_s
i64.shl
global.set $~lib/util/number/_frc_plus
local.get $5
local.get $11
i32.const 1
local.get $10
local.get $7
select
i32.const 1075
i32.sub
local.tee $5
local.tee $7
i32.const 1
i32.sub
local.get $3
i32.sub
local.set $3
local.get $2
local.get $2
local.get $5
local.get $5
i64.const 4503599627370496
i64.eq
i32.const 1
i32.add
local.tee $10
local.tee $11
i64.extend_i32_s
i64.shl
i64.const 1
i64.sub
local.get $5
local.get $10
local.get $7
local.get $11
i32.sub
local.get $3
i32.sub
@@ -5204,69 +5100,50 @@
i32.shl
i32.sub
global.set $~lib/util/number/_K
i32.const 4572
i32.load
local.get $3
call $~lib/array/Array<u64>#__get
i32.const 3
i32.shl
i32.add
i64.load
global.set $~lib/util/number/_frc_pow
i32.const 4796
i32.load
local.get $3
call $~lib/array/Array<i16>#__get
i32.const 1
i32.shl
i32.add
i32.load16_s
global.set $~lib/util/number/_exp_pow
local.get $2
local.get $2
i64.clz
i32.wrap_i64
local.tee $3
i64.extend_i32_s
i64.shl
global.get $~lib/util/number/_frc_pow
local.tee $6
i64.const 4294967295
i64.and
local.tee $11
global.get $~lib/util/number/_frc_pow
local.tee $2
i64.const 4294967295
i64.and
local.tee $13
i64.mul
local.set $14
local.set $2
global.get $~lib/util/number/_frc_plus
local.tee $7
i64.const 4294967295
i64.and
local.tee $4
local.get $2
i64.const 4294967295
i64.and
local.tee $8
i64.mul
local.set $12
global.get $~lib/util/number/_frc_minus
local.tee $15
i64.const 4294967295
i64.and
local.tee $16
local.get $2
i64.const 4294967295
i64.and
local.tee $17
i64.mul
local.set $18
local.get $4
local.get $2
i64.const 32
i64.shr_u
local.tee $4
i64.mul
local.get $7
local.get $6
i64.const 32
i64.shr_u
local.tee $7
local.get $8
local.tee $6
i64.mul
local.get $8
i64.const 32
i64.shr_u
local.tee $8
local.get $2
i64.mul
local.get $2
local.get $4
i64.mul
local.get $12
i64.const 32
i64.shr_u
i64.add
local.tee $8
local.tee $4
i64.const 4294967295
i64.and
i64.add
@@ -5274,34 +5151,37 @@
i64.add
i64.const 32
i64.shr_u
local.get $4
local.get $7
i64.mul
local.get $6
local.get $8
i64.mul
local.get $4
i64.const 32
i64.shr_u
i64.add
i64.add
i64.const 1
i64.sub
local.tee $7
local.get $2
local.tee $8
local.get $6
global.get $~lib/util/number/_frc_minus
local.tee $4
i64.const 4294967295
i64.and
local.tee $9
i64.mul
local.get $4
i64.const 32
i64.shr_u
local.tee $4
local.get $16
local.get $2
i64.mul
local.get $15
i64.const 32
i64.shr_u
local.tee $8
local.get $17
local.get $2
local.get $9
i64.mul
local.get $18
i64.const 32
i64.shr_u
i64.add
local.tee $12
local.tee $9
i64.const 4294967295
i64.and
i64.add
@@ -5310,9 +5190,9 @@
i64.const 32
i64.shr_u
local.get $4
local.get $8
local.get $6
i64.mul
local.get $12
local.get $9
i64.const 32
i64.shr_u
i64.add
@@ -5321,29 +5201,38 @@
i64.add
i64.sub
local.set $4
local.get $9
local.get $10
i32.const 1
i32.shl
local.get $0
i32.add
local.get $0
local.get $2
i64.const 32
i64.shr_u
local.tee $2
local.get $11
i64.mul
local.get $6
local.get $5
local.get $5
i64.clz
i32.wrap_i64
local.tee $0
i64.extend_i32_s
i64.shl
local.tee $5
i64.const 4294967295
i64.and
local.tee $9
i64.mul
local.get $5
i64.const 32
i64.shr_u
local.tee $6
local.get $13
local.tee $5
local.get $2
i64.mul
local.get $2
local.get $9
i64.mul
local.get $14
i64.const 32
i64.shr_u
i64.add
local.tee $11
local.tee $2
i64.const 4294967295
i64.and
i64.add
@@ -5351,39 +5240,39 @@
i64.add
i64.const 32
i64.shr_u
local.get $2
local.get $5
local.get $6
i64.mul
local.get $11
local.get $2
i64.const 32
i64.shr_u
i64.add
i64.add
global.get $~lib/util/number/_exp_pow
local.tee $0
local.get $5
local.get $3
local.tee $3
local.get $7
local.get $0
i32.sub
i32.add
i32.const -64
i32.sub
local.get $7
local.get $8
global.get $~lib/util/number/_exp
local.get $0
local.get $3
i32.add
i32.const -64
i32.sub
local.get $4
local.get $9
local.get $10
call $~lib/util/number/genDigits
local.get $9
local.get $10
i32.sub
global.get $~lib/util/number/_K
call $~lib/util/number/prettify
local.get $9
local.get $10
i32.add
)
(func $~lib/string/String#substring (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#substring (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@@ -5470,7 +5359,7 @@
local.get $1
call $~lib/rt/pure/__retain
)
(func $~lib/util/number/dtoa (; 75 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/util/number/dtoa (; 73 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(local $1 i32)
(local $2 i32)
local.get $0
@@ -5521,12 +5410,10 @@
local.get $1
local.get $2
call $~lib/string/String#substring
local.set $2
local.get $1
call $~lib/rt/tlsf/__free
local.get $2
)
(func $start:std/string (; 76 ;) (type $FUNCSIG$v)
(func $start:std/string (; 74 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@@ -5849,20 +5736,16 @@
unreachable
end
global.get $std/string/str
local.set $0
i32.const 608
call $~lib/rt/pure/__retain
drop
local.get $0
i32.const 608
i32.const 0
call $~lib/string/String#indexOf
i32.const -1
i32.ne
local.set $0
i32.const 608
call $~lib/rt/pure/__release
local.get $0
i32.eqz
if
i32.const 0
@@ -7401,10 +7284,8 @@
i32.const 2464
i32.const 920
call $~lib/string/String#split
local.set $1
local.get $0
call $~lib/rt/pure/__release
local.get $1
local.tee $0
i32.load offset=12
i32.const 3
@@ -9000,11 +8881,11 @@
local.get $128
call $~lib/rt/pure/__release
)
(func $std/string/getString (; 77 ;) (type $FUNCSIG$i) (result i32)
(func $std/string/getString (; 75 ;) (type $FUNCSIG$i) (result i32)
global.get $std/string/str
call $~lib/rt/pure/__retain
)
(func $start (; 78 ;) (type $FUNCSIG$v)
(func $start (; 76 ;) (type $FUNCSIG$v)
global.get $~lib/started
if
return
@@ -9014,7 +8895,7 @@
end
call $start:std/string
)
(func $~lib/rt/pure/markGray (; 79 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/markGray (; 77 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@@ -9038,7 +8919,7 @@
call $~lib/rt/__visit_members
end
)
(func $~lib/rt/pure/scanBlack (; 80 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scanBlack (; 78 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
local.get $0
i32.load offset=4
@@ -9051,7 +8932,7 @@
i32.const 4
call $~lib/rt/__visit_members
)
(func $~lib/rt/pure/scan (; 81 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scan (; 79 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@@ -9085,7 +8966,7 @@
end
end
)
(func $~lib/rt/pure/collectWhite (; 82 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/collectWhite (; 80 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@@ -9118,7 +8999,7 @@
call $~lib/rt/tlsf/freeBlock
end
)
(func $~lib/rt/pure/__visit (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/pure/__visit (; 81 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.const 6708
i32.lt_u
@@ -9228,7 +9109,7 @@
unreachable
end
)
(func $~lib/array/Array<~lib/string/String>#__visit_impl (; 84 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<~lib/string/String>#__visit_impl (; 82 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
@@ -9261,7 +9142,7 @@
end
end
)
(func $~lib/rt/__visit_members (; 85 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/__visit_members (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
block $block$4$break
block $switch$1$default
block $switch$1$case$5
@@ -9290,7 +9171,7 @@
call $~lib/rt/pure/__visit
end
)
(func $null (; 86 ;) (type $FUNCSIG$v)
(func $null (; 84 ;) (type $FUNCSIG$v)
nop
)
)

File diff suppressed because it is too large Load Diff

@@ -208,14 +208,12 @@
i32.and
local.tee $1
i32.sub
local.set $2
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 0
i32.store
local.get $2
i32.const -4
i32.and
local.tee $1
@@ -497,7 +495,6 @@
i32.add
local.set $2
br $loop|0
unreachable
end
unreachable
end

File diff suppressed because it is too large Load Diff

@@ -2305,7 +2305,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $4
i32.load
local.tee $2
@@ -2320,7 +2319,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $2
i32.store
local.get $1
@@ -2431,7 +2429,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $4
i32.load
local.tee $2
@@ -2446,7 +2443,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $2
i32.store
local.get $1
@@ -2544,7 +2540,6 @@
i32.add
local.set $3
br $loop|0
unreachable
end
unreachable
end
@@ -2621,7 +2616,6 @@
i32.and
local.tee $2
i32.sub
local.set $3
local.get $0
local.get $2
i32.add
@@ -2633,7 +2627,6 @@
i32.mul
local.tee $0
i32.store
local.get $3
i32.const -4
i32.and
local.tee $3
@@ -3486,7 +3479,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $1
i32.load
local.tee $6
@@ -3501,7 +3493,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $2
i32.store
local.get $1
@@ -9114,10 +9105,8 @@
i32.const 2
i32.rem_s
i32.eqz
local.set $0
local.get $2
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/typedarray/Int8Array#every (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -9383,10 +9372,8 @@
i32.const 2
i32.rem_s
i32.eqz
local.set $0
local.get $2
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/typedarray/Int16Array#every (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -9594,10 +9581,8 @@
i32.const 2
i32.rem_s
i32.eqz
local.set $0
local.get $2
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/typedarray/Int32Array#every (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -9754,10 +9739,8 @@
i64.rem_s
i64.const 0
i64.eq
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/typedarray/Int64Array#every (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -9867,10 +9850,8 @@
i64.rem_u
i64.const 0
i64.eq
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
)
(func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 223 ;) (type $FUNCSIG$v)
(local $0 i32)
@@ -10076,10 +10057,8 @@
call $~lib/math/NativeMathf.mod
f32.const 0
f32.eq
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/typedarray/Float32Array#every (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -10344,10 +10323,8 @@
call $~lib/math/NativeMath.mod
f64.const 0
f64.eq
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/typedarray/Float64Array#every (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@@ -11940,7 +11917,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $0
local.set $5
local.get $2
i32.load
local.tee $1
@@ -11955,7 +11931,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $1
i32.store
local.get $0
@@ -12168,7 +12143,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $0
local.set $5
local.get $2
i32.load
local.tee $1
@@ -12183,7 +12157,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $1
i32.store
local.get $0
@@ -12454,7 +12427,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $1
i32.load
local.tee $6
@@ -12469,7 +12441,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $3
i32.store
local.get $1
@@ -12750,7 +12721,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $1
i32.load
local.tee $6
@@ -12765,7 +12735,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $3
i32.store
local.get $1
@@ -13196,7 +13165,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $1
i32.load
local.tee $6
@@ -13211,7 +13179,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $3
i32.store
local.get $1
@@ -13480,7 +13447,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $1
i32.load
local.tee $6
@@ -13495,7 +13461,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $3
i32.store
local.get $1
@@ -13710,7 +13675,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $1
i32.load
local.tee $6
@@ -13725,7 +13689,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $3
i32.store
local.get $1
@@ -13997,7 +13960,6 @@
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
local.tee $1
local.set $5
local.get $1
i32.load
local.tee $6
@@ -14012,7 +13974,6 @@
local.get $6
call $~lib/rt/pure/__release
end
local.get $5
local.get $3
i32.store
local.get $1

File diff suppressed because it is too large Load Diff

@@ -11,7 +11,6 @@
(start $start)
(func $switch/doSwitch (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block $break|0
block $case4|0
block $case3|0
block $case2|0
@@ -47,10 +46,6 @@
end
i32.const 23
return
unreachable
end
unreachable
unreachable
)
(func $switch/doSwitchDefaultOmitted (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
@@ -96,11 +91,7 @@
br_if $case0|0
br $case1|0
end
block
br $break|0
unreachable
end
unreachable
end
i32.const 2
return
@@ -123,17 +114,12 @@
i32.const 1
return
end
block
br $break|0
unreachable
end
unreachable
end
i32.const 2
)
(func $switch/doSwitchFallThroughCase (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block $break|0
block $case1|0
block $case0|0
local.get $0
@@ -147,12 +133,10 @@
i32.const 2
return
end
end
i32.const 1
)
(func $switch/doSwitchFallThroughDefault (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block $break|0
block $case1|0
block $case0|0
local.get $0
@@ -166,7 +150,6 @@
i32.const 1
return
end
end
i32.const 2
)
(func $switch/doSwitchEmpty (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)

@@ -86,39 +86,31 @@
i32.const -1
i32.xor
global.set $unary/i
block (result i32)
global.get $unary/i
i32.const 1
i32.add
global.set $unary/i
global.get $unary/i
end
global.set $unary/i
block (result i32)
global.get $unary/i
i32.const 1
i32.sub
global.set $unary/i
global.get $unary/i
end
global.set $unary/i
block (result i32)
global.get $unary/i
local.tee $0
i32.const 1
i32.add
global.set $unary/i
local.get $0
end
global.set $unary/i
block (result i32)
global.get $unary/i
local.tee $0
i32.const 1
i32.sub
global.set $unary/i
local.get $0
end
global.set $unary/i
global.get $unary/I
drop
@@ -175,39 +167,31 @@
i64.const -1
i64.xor
global.set $unary/I
block (result i64)
global.get $unary/I
i64.const 1
i64.add
global.set $unary/I
global.get $unary/I
end
global.set $unary/I
block (result i64)
global.get $unary/I
i64.const 1
i64.sub
global.set $unary/I
global.get $unary/I
end
global.set $unary/I
block (result i64)
global.get $unary/I
local.tee $1
i64.const 1
i64.add
global.set $unary/I
local.get $1
end
global.set $unary/I
block (result i64)
global.get $unary/I
local.tee $1
i64.const 1
i64.sub
global.set $unary/I
local.get $1
end
global.set $unary/I
global.get $unary/f
drop
@@ -251,39 +235,31 @@
f32.const 0
f32.eq
global.set $unary/i
block (result f32)
global.get $unary/f
f32.const 1
f32.add
global.set $unary/f
global.get $unary/f
end
global.set $unary/f
block (result f32)
global.get $unary/f
f32.const 1
f32.sub
global.set $unary/f
global.get $unary/f
end
global.set $unary/f
block (result f32)
global.get $unary/f
local.tee $2
f32.const 1
f32.add
global.set $unary/f
local.get $2
end
global.set $unary/f
block (result f32)
global.get $unary/f
local.tee $2
f32.const 1
f32.sub
global.set $unary/f
local.get $2
end
global.set $unary/f
global.get $unary/F
drop
@@ -329,39 +305,31 @@
f64.eq
i64.extend_i32_u
global.set $unary/I
block (result f64)
global.get $unary/F
f64.const 1
f64.add
global.set $unary/F
global.get $unary/F
end
global.set $unary/F
block (result f64)
global.get $unary/F
f64.const 1
f64.sub
global.set $unary/F
global.get $unary/F
end
global.set $unary/F
block (result f64)
global.get $unary/F
local.tee $3
f64.const 1
f64.add
global.set $unary/F
local.get $3
end
global.set $unary/F
block (result f64)
global.get $unary/F
local.tee $3
f64.const 1
f64.sub
global.set $unary/F
local.get $3
end
global.set $unary/F
)
(func $start (; 1 ;) (type $FUNCSIG$v)

@@ -326,7 +326,6 @@
call $~lib/builtins/abort
unreachable
end
block
i32.const 4
i32.const 4
i32.eq
@@ -351,7 +350,6 @@
call $~lib/builtins/abort
unreachable
end
end
i32.const 0
i32.const 0
i32.eq
@@ -508,7 +506,6 @@
call $~lib/builtins/abort
unreachable
end
block
i32.const 4
i32.const 4
i32.eq
@@ -533,7 +530,6 @@
call $~lib/builtins/abort
unreachable
end
end
i32.const 9
global.set $wasi/sig
)

@@ -27,7 +27,6 @@
i32.add
global.set $while/m
br $continue|0
unreachable
end
unreachable
end
@@ -86,7 +85,6 @@
i32.add
global.set $while/o
br $continue|2
unreachable
end
unreachable
end
@@ -115,7 +113,6 @@
unreachable
end
br $continue|1
unreachable
end
unreachable
end
@@ -161,14 +158,12 @@
global.set $while/m
block $break|3
loop $continue|3
block (result i32)
global.get $while/n
local.tee $0
i32.const 1
i32.sub
global.set $while/n
local.get $0
end
if (result i32)
global.get $while/m
i32.const 1
@@ -182,7 +177,6 @@
br_if $break|3
nop
br $continue|3
unreachable
end
unreachable
end