Fix lifetime issues in field inits/ctors and refactor inlining

This commit is contained in:
dcode 2019-06-05 00:18:26 +02:00
parent fa667386d9
commit bf597a06c6
11 changed files with 2711 additions and 3234 deletions

View File

@ -1173,9 +1173,7 @@ export class Compiler extends DiagnosticEmitter {
let classInstance = assert(instance.parent); assert(classInstance.kind == ElementKind.CLASS); let classInstance = assert(instance.parent); assert(classInstance.kind == ElementKind.CLASS);
if (!flow.isAny(FlowFlags.ANY_TERMINATING)) { if (!flow.isAny(FlowFlags.ANY_TERMINATING)) {
let thisLocalIndex = flow.is(FlowFlags.INLINE_CONTEXT) let thisLocal = assert(flow.lookupLocal(CommonSymbols.this_));
? assert(flow.lookupLocal(CommonSymbols.this_)).index
: 0;
// if `this` wasn't accessed before, allocate if necessary and initialize `this` // if `this` wasn't accessed before, allocate if necessary and initialize `this`
if (!flow.is(FlowFlags.ALLOCATES)) { if (!flow.is(FlowFlags.ALLOCATES)) {
@ -1187,9 +1185,9 @@ export class Compiler extends DiagnosticEmitter {
stmts.push( stmts.push(
module.if( module.if(
module.unary(nativeSizeType == NativeType.I64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32, module.unary(nativeSizeType == NativeType.I64 ? UnaryOp.EqzI64 : UnaryOp.EqzI32,
module.local_get(thisLocalIndex, nativeSizeType) module.local_get(thisLocal.index, nativeSizeType)
), ),
module.local_set(thisLocalIndex, module.local_set(thisLocal.index,
this.makeRetain( this.makeRetain(
this.makeAllocation(<Class>classInstance) this.makeAllocation(<Class>classInstance)
), ),
@ -1198,13 +1196,10 @@ export class Compiler extends DiagnosticEmitter {
); );
this.makeFieldInitialization(<Class>classInstance, stmts); this.makeFieldInitialization(<Class>classInstance, stmts);
} }
this.performAutoreleases(flow, stmts); // `this` is excluded anyway
// implicitly return `this`. unlike for normal functions, retaining the value isn't this.finishAutoreleases(flow, stmts);
// necessary because the allocation (constructor call) already did (RC=1) stmts.push(module.local_get(thisLocal.index, this.options.nativeSizeType));
stmts.push( flow.set(FlowFlags.RETURNS | FlowFlags.RETURNS_NONNULL);
module.local_get(thisLocalIndex, nativeSizeType)
);
flow.set(FlowFlags.RETURNS);
} }
// check that super has been called if this is a derived class // check that super has been called if this is a derived class
@ -5735,9 +5730,7 @@ export class Compiler extends DiagnosticEmitter {
// this.a = X // this.a = X
// this.b = Y // this.b = Y
// } // }
let stmts: ExpressionRef[] = [ let theCall = this.compileCallDirect(
module.local_set(thisLocal.index,
this.compileCallDirect(
this.ensureConstructor(baseClassInstance, expression), this.ensureConstructor(baseClassInstance, expression),
expression.arguments, expression.arguments,
expression, expression,
@ -5747,13 +5740,16 @@ export class Compiler extends DiagnosticEmitter {
this.makeRetain( this.makeRetain(
this.makeAllocation(<Class>classInstance) this.makeAllocation(<Class>classInstance)
) )
) ),
) ContextualFlags.SKIP_AUTORELEASE
) );
assert(this.skippedAutoreleases.has(theCall)); // guaranteed
let stmts: ExpressionRef[] = [
module.local_set(thisLocal.index, theCall)
]; ];
this.makeFieldInitialization(<Class>classInstance, stmts); this.makeFieldInitialization(<Class>classInstance, stmts);
// check that super had been called before accessing allocating `this` // check that super had been called before accessing `this`
if (flow.isAny( if (flow.isAny(
FlowFlags.ALLOCATES | FlowFlags.ALLOCATES |
FlowFlags.CONDITIONALLY_ALLOCATES FlowFlags.CONDITIONALLY_ALLOCATES
@ -6151,7 +6147,24 @@ export class Compiler extends DiagnosticEmitter {
); );
} else { } else {
this.currentInlineFunctions.push(instance); this.currentInlineFunctions.push(instance);
let expr = this.compileCallInlinePrechecked(instance, argumentExpressions, thisArg, (contextualFlags & ContextualFlags.WILL_DROP) != 0); let parameterTypes = signature.parameterTypes;
assert(numArguments <= parameterTypes.length);
// compile argument expressions
let args = new Array<ExpressionRef>(numArguments);
for (let i = 0; i < numArguments; ++i) {
args[i] = this.compileExpression(argumentExpressions[i], parameterTypes[i],
ContextualFlags.IMPLICIT | ContextualFlags.SKIP_AUTORELEASE
);
}
// make the inlined call (is aware of autoreleases)
let expr = this.makeCallInline(instance, args, thisArg, (contextualFlags & ContextualFlags.WILL_DROP) != 0);
if (this.currentType.isManaged) {
if (!(contextualFlags & ContextualFlags.SKIP_AUTORELEASE)) {
expr = this.makeAutorelease(expr, this.currentFlow);
} else {
this.skippedAutoreleases.add(expr);
}
}
this.currentInlineFunctions.pop(); this.currentInlineFunctions.pop();
return expr; return expr;
} }
@ -6190,47 +6203,7 @@ export class Compiler extends DiagnosticEmitter {
); );
} }
compileCallInline( makeCallInline(
instance: Function,
argumentExpressions: Expression[],
thisArg: ExpressionRef,
reportNode: Node,
canAlias: bool = false
): ExpressionRef {
var numArguments = argumentExpressions.length;
var signature = instance.signature;
if (!this.checkCallSignature( // reports
signature,
numArguments,
thisArg != 0,
reportNode
)) {
this.currentType = instance.signature.returnType;
return this.module.unreachable();
}
return this.compileCallInlinePrechecked(instance, argumentExpressions, thisArg, canAlias);
}
private compileCallInlinePrechecked(
instance: Function,
argumentExpressions: Expression[],
thisArg: ExpressionRef = 0,
immediatelyDropped: bool = false
): ExpressionRef {
var numArguments = argumentExpressions.length;
var signature = instance.signature;
var parameterTypes = signature.parameterTypes;
assert(numArguments <= parameterTypes.length);
var args = new Array<ExpressionRef>(numArguments);
for (let i = 0; i < numArguments; ++i) {
args[i] = this.compileExpression(argumentExpressions[i], parameterTypes[i],
ContextualFlags.IMPLICIT
);
}
return this.makeCallInlinePrechecked(instance, args, thisArg, immediatelyDropped);
}
makeCallInlinePrechecked(
instance: Function, instance: Function,
operands: ExpressionRef[] | null, operands: ExpressionRef[] | null,
thisArg: ExpressionRef = 0, thisArg: ExpressionRef = 0,
@ -6259,22 +6232,18 @@ export class Compiler extends DiagnosticEmitter {
let paramType = parameterTypes[i]; let paramType = parameterTypes[i];
let argumentLocal = flow.addScopedLocal(signature.getParameterName(i), paramType, usedLocals); let argumentLocal = flow.addScopedLocal(signature.getParameterName(i), paramType, usedLocals);
findUsedLocals(paramExpr, usedLocals); findUsedLocals(paramExpr, usedLocals);
// Normal function wouldn't know about wrap/nonnull states, but inlining does: // inlining is aware of wrap/nonnull states:
if (!previousFlow.canOverflow(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.WRAPPED); if (!previousFlow.canOverflow(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.WRAPPED);
if (flow.isNonnull(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.NONNULL); if (flow.isNonnull(paramExpr, paramType)) flow.setLocalFlag(argumentLocal.index, LocalFlags.NONNULL);
// inlining is aware of skipped autoreleases:
if (paramType.isManaged) { if (paramType.isManaged) {
if (!this.skippedAutoreleases.has(paramExpr)) paramExpr = this.makeRetain(paramExpr);
flow.setLocalFlag(argumentLocal.index, LocalFlags.RETAINED); flow.setLocalFlag(argumentLocal.index, LocalFlags.RETAINED);
body.unshift( }
module.local_set(argumentLocal.index,
this.makeRetain(paramExpr)
)
);
} else {
body.unshift( body.unshift(
module.local_set(argumentLocal.index, paramExpr) module.local_set(argumentLocal.index, paramExpr)
); );
} }
}
if (thisArg) { if (thisArg) {
let classInstance = assert(instance.parent); assert(classInstance.kind == ElementKind.CLASS); let classInstance = assert(instance.parent); assert(classInstance.kind == ElementKind.CLASS);
let thisType = assert(instance.signature.thisType); let thisType = assert(instance.signature.thisType);
@ -6335,8 +6304,6 @@ export class Compiler extends DiagnosticEmitter {
if (immediatelyDropped) { if (immediatelyDropped) {
expr = this.makeRelease(expr); expr = this.makeRelease(expr);
this.currentType = Type.void; this.currentType = Type.void;
} else {
expr = this.makeAutorelease(expr);
} }
} }
return expr; return expr;
@ -7845,7 +7812,8 @@ export class Compiler extends DiagnosticEmitter {
instance.prototype.setResolvedInstance("", instance); instance.prototype.setResolvedInstance("", instance);
classInstance.constructorInstance = instance; classInstance.constructorInstance = instance;
var previousFlow = this.currentFlow; var previousFlow = this.currentFlow;
this.currentFlow = instance.flow; var flow = instance.flow;
this.currentFlow = flow;
// generate body // generate body
var signature = instance.signature; var signature = instance.signature;
@ -7888,9 +7856,9 @@ export class Compiler extends DiagnosticEmitter {
); );
} }
this.makeFieldInitialization(classInstance, stmts); this.makeFieldInitialization(classInstance, stmts);
stmts.push( var body = this.performAutoreleasesWithValue(flow, module.local_get(0, nativeSizeType), classInstance.type, stmts);
module.local_get(0, nativeSizeType) flow.freeScopedLocals();
); this.currentFlow = previousFlow;
// make the function // make the function
var typeRef = this.ensureFunctionType(signature.parameterTypes, signature.returnType, signature.thisType); var typeRef = this.ensureFunctionType(signature.parameterTypes, signature.returnType, signature.thisType);
@ -7901,11 +7869,8 @@ export class Compiler extends DiagnosticEmitter {
if (numLocals > numOperands) { if (numLocals > numOperands) {
for (let i = numOperands; i < numLocals; ++i) varTypes.push(locals[i].type.toNativeType()); for (let i = numOperands; i < numLocals; ++i) varTypes.push(locals[i].type.toNativeType());
} }
var funcRef = module.addFunction(instance.internalName, typeRef, varTypes, var funcRef = module.addFunction(instance.internalName, typeRef, varTypes, body);
flatten(module, stmts, nativeSizeType)
);
instance.finalize(module, funcRef); instance.finalize(module, funcRef);
this.currentFlow = previousFlow;
return instance; return instance;
} }
@ -8926,12 +8891,16 @@ export class Compiler extends DiagnosticEmitter {
let nativeFieldType = fieldType.toNativeType(); let nativeFieldType = fieldType.toNativeType();
let initializerNode = field.prototype.initializerNode; let initializerNode = field.prototype.initializerNode;
if (initializerNode) { // use initializer if (initializerNode) { // use initializer
let initExpr = this.compileExpression(initializerNode, fieldType, // reports
ContextualFlags.IMPLICIT | ContextualFlags.SKIP_AUTORELEASE
);
if (fieldType.isManaged && !this.skippedAutoreleases.has(initExpr)) {
initExpr = this.makeRetain(initExpr);
}
stmts.push( stmts.push(
module.store(fieldType.byteSize, module.store(fieldType.byteSize,
module.local_get(thisLocalIndex, nativeSizeType), module.local_get(thisLocalIndex, nativeSizeType),
this.compileExpression(initializerNode, fieldType, // reports initExpr,
ContextualFlags.IMPLICIT
),
nativeFieldType, nativeFieldType,
field.memoryOffset field.memoryOffset
) )

View File

@ -140,7 +140,6 @@
local.get $0 local.get $0
) )
(func $call-super/B#constructor (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $call-super/B#constructor (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -151,7 +150,6 @@
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
end end
call $call-super/A#constructor call $call-super/A#constructor
local.tee $1
local.set $0 local.set $0
local.get $0 local.get $0
i32.const 2 i32.const 2
@ -237,7 +235,6 @@
local.get $0 local.get $0
) )
(func $call-super/D#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $call-super/D#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -248,7 +245,6 @@
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
end end
call $call-super/C#constructor call $call-super/C#constructor
local.tee $1
local.set $0 local.set $0
local.get $0 local.get $0
i32.const 2 i32.const 2
@ -347,6 +343,7 @@
) )
(func $call-super/F#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $call-super/F#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32) (local $1 i32)
(local $2 i32)
local.get $0 local.get $0
i32.eqz i32.eqz
if if
@ -364,6 +361,10 @@
i32.const 2 i32.const 2
i32.store offset=4 i32.store offset=4
local.get $0 local.get $0
local.set $2
local.get $1
call $~lib/rt/stub/__release
local.get $2
) )
(func $call-super/test3 (; 12 ;) (type $FUNCSIG$v) (func $call-super/test3 (; 12 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -416,6 +417,7 @@
) )
(func $call-super/H#constructor (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $call-super/H#constructor (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32) (local $1 i32)
(local $2 i32)
local.get $0 local.get $0
i32.eqz i32.eqz
if if
@ -433,6 +435,10 @@
i32.const 2 i32.const 2
i32.store offset=4 i32.store offset=4
local.get $0 local.get $0
local.set $2
local.get $1
call $~lib/rt/stub/__release
local.get $2
) )
(func $call-super/test4 (; 15 ;) (type $FUNCSIG$v) (func $call-super/test4 (; 15 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -485,6 +491,7 @@
) )
(func $call-super/J#constructor (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $call-super/J#constructor (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32) (local $1 i32)
(local $2 i32)
local.get $0 local.get $0
i32.eqz i32.eqz
if if
@ -502,6 +509,10 @@
i32.const 2 i32.const 2
i32.store offset=4 i32.store offset=4
local.get $0 local.get $0
local.set $2
local.get $1
call $~lib/rt/stub/__release
local.get $2
) )
(func $call-super/test5 (; 18 ;) (type $FUNCSIG$v) (func $call-super/test5 (; 18 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)

View File

@ -431,7 +431,6 @@
i32.store offset=4 i32.store offset=4
local.get $3 local.get $3
end end
local.tee $3
local.set $1 local.set $1
local.get $1 local.get $1
i32.const 3 i32.const 3
@ -444,8 +443,6 @@
i32.store offset=12 i32.store offset=12
local.get $1 local.get $1
end end
local.tee $3
call $~lib/rt/stub/__retain
local.set $4 local.set $4
local.get $4 local.get $4
i32.load i32.load
@ -499,8 +496,6 @@
call $~lib/builtins/abort call $~lib/builtins/abort
unreachable unreachable
end end
local.get $3
call $~lib/rt/stub/__release
local.get $4 local.get $4
call $~lib/rt/stub/__release call $~lib/rt/stub/__release
) )

View File

@ -3223,7 +3223,6 @@
local.get $0 local.get $0
) )
(func $~lib/array/Array<i32>#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/array/Array<i32>#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3236,7 +3235,6 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
i32.const 0 i32.const 0
@ -3806,7 +3804,6 @@
local.get $2 local.get $2
) )
(func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3819,25 +3816,18 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
i32.const 0 i32.const 0
i32.store offset=12 i32.store offset=12
local.get $1 local.get $1
if if
local.get $2
call $~lib/rt/pure/__release
block
i32.const 472 i32.const 472
i32.const 376 i32.const 376
i32.const 56 i32.const 56
i32.const 20 i32.const 20
call $~lib/builtins/abort call $~lib/builtins/abort
unreachable unreachable
unreachable
end
unreachable
end end
local.get $0 local.get $0
local.get $1 local.get $1
@ -3845,7 +3835,6 @@
local.get $0 local.get $0
) )
(func $~lib/array/Array<~lib/string/String>#constructor (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/array/Array<~lib/string/String>#constructor (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3858,25 +3847,18 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
i32.const 0 i32.const 0
i32.store offset=12 i32.store offset=12
local.get $1 local.get $1
if if
local.get $2
call $~lib/rt/pure/__release
block
i32.const 472 i32.const 472
i32.const 376 i32.const 376
i32.const 56 i32.const 56
i32.const 20 i32.const 20
call $~lib/builtins/abort call $~lib/builtins/abort
unreachable unreachable
unreachable
end
unreachable
end end
local.get $0 local.get $0
local.get $1 local.get $1

View File

@ -1,6 +1,7 @@
(module (module
(type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func)) (type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
@ -132,8 +133,12 @@
end end
local.get $0 local.get $0
) )
(func $rt/instanceof/Cat#constructor (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $~lib/rt/stub/__release (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $rt/instanceof/Cat#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32) (local $1 i32)
(local $2 i32)
local.get $0 local.get $0
i32.eqz i32.eqz
if if
@ -148,9 +153,14 @@
local.tee $1 local.tee $1
local.set $0 local.set $0
local.get $0 local.get $0
local.set $2
local.get $1
call $~lib/rt/stub/__release
local.get $2
) )
(func $rt/instanceof/BlackCat#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $rt/instanceof/BlackCat#constructor (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32) (local $1 i32)
(local $2 i32)
local.get $0 local.get $0
i32.eqz i32.eqz
if if
@ -165,8 +175,12 @@
local.tee $1 local.tee $1
local.set $0 local.set $0
local.get $0 local.get $0
local.set $2
local.get $1
call $~lib/rt/stub/__release
local.get $2
) )
(func $~lib/rt/__instanceof (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/rt/__instanceof (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32) (local $2 i32)
(local $3 i32) (local $3 i32)
local.get $0 local.get $0
@ -203,7 +217,7 @@
end end
i32.const 0 i32.const 0
) )
(func $start:rt/instanceof (; 7 ;) (type $FUNCSIG$v) (func $start:rt/instanceof (; 8 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
global.get $~lib/heap/__heap_base global.get $~lib/heap/__heap_base
i32.const 15 i32.const 15
@ -705,7 +719,7 @@
unreachable unreachable
end end
) )
(func $rt/instanceof/main (; 8 ;) (type $FUNCSIG$v) (func $rt/instanceof/main (; 9 ;) (type $FUNCSIG$v)
global.get $~lib/started global.get $~lib/started
i32.eqz i32.eqz
if if
@ -714,9 +728,9 @@
global.set $~lib/started global.set $~lib/started
end end
) )
(func $start (; 9 ;) (type $FUNCSIG$v) (func $start (; 10 ;) (type $FUNCSIG$v)
call $start:rt/instanceof call $start:rt/instanceof
) )
(func $null (; 10 ;) (type $FUNCSIG$v) (func $null (; 11 ;) (type $FUNCSIG$v)
) )
) )

View File

@ -3693,7 +3693,6 @@
local.get $0 local.get $0
) )
(func $~lib/array/Array<i32>#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/array/Array<i32>#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3706,7 +3705,6 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
i32.const 0 i32.const 0
@ -3783,7 +3781,6 @@
local.get $1 local.get $1
) )
(func $~lib/typedarray/Uint8Array#constructor (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint8Array#constructor (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3796,7 +3793,6 @@
local.get $1 local.get $1
i32.const 0 i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )

View File

@ -2784,7 +2784,6 @@
local.get $0 local.get $0
) )
(func $~lib/typedarray/Uint8Array#constructor (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint8Array#constructor (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -2797,7 +2796,6 @@
local.get $1 local.get $1
i32.const 0 i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -2840,7 +2838,6 @@
local.get $4 local.get $4
) )
(func $~lib/typedarray/Int32Array#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Int32Array#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -2853,7 +2850,6 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -2937,6 +2933,8 @@
local.get $0 local.get $0
local.get $3 local.get $3
i32.store offset=8 i32.store offset=8
local.get $1
call $~lib/rt/stub/__release
local.get $0 local.get $0
) )
(func $~lib/typedarray/Uint8Array#get:buffer (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $~lib/typedarray/Uint8Array#get:buffer (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)

View File

@ -202,7 +202,6 @@
local.get $0 local.get $0
) )
(func $~lib/typedarray/Uint8Array#constructor (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint8Array#constructor (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -215,7 +214,6 @@
local.get $1 local.get $1
i32.const 0 i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -325,6 +323,8 @@
local.get $0 local.get $0
local.get $3 local.get $3
i32.store offset=8 i32.store offset=8
local.get $1
call $~lib/rt/stub/__release
local.get $0 local.get $0
) )
(func $~lib/typedarray/Uint8Array#get:buffer (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $~lib/typedarray/Uint8Array#get:buffer (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)

View File

@ -1787,10 +1787,7 @@
(local $4 i32) (local $4 i32)
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 f32)
(local $8 i32)
(local $9 i32)
(local $10 f32)
block $std/pointer/Pointer<std/pointer/Entry>#constructor|inlined.0 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#constructor|inlined.0 (result i32)
i32.const 0 i32.const 0
local.set $1 local.set $1
@ -1799,19 +1796,15 @@
local.get $0 local.get $0
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
end end
local.tee $1
call $~lib/rt/stub/__retain
global.set $std/pointer/one global.set $std/pointer/one
block $std/pointer/Pointer<std/pointer/Entry>#constructor|inlined.1 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#constructor|inlined.1 (result i32)
i32.const 0 i32.const 0
local.set $2 local.set $1
i32.const 24 i32.const 24
local.set $0 local.set $0
local.get $0 local.get $0
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
end end
local.tee $2
call $~lib/rt/stub/__retain
global.set $std/pointer/two global.set $std/pointer/two
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.0 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.0 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
@ -1831,8 +1824,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.1 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.1 (result i32)
global.get $std/pointer/two global.get $std/pointer/two
local.set $0 local.set $1
local.get $0 local.get $1
end end
i32.const 24 i32.const 24
i32.eq i32.eq
@ -1855,8 +1848,8 @@
i32.store i32.store
block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.1 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.1 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
local.set $0 local.set $1
local.get $0 local.get $1
br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.1 br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.1
end end
i32.const 2 i32.const 2
@ -1881,8 +1874,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.3 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.3 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
local.set $0 local.set $1
local.get $0 local.get $1
br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.3 br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.3
end end
i32.load offset=4 i32.load offset=4
@ -1900,13 +1893,13 @@
global.get $std/pointer/one global.get $std/pointer/one
global.get $std/pointer/two global.get $std/pointer/two
call $std/pointer/Pointer<std/pointer/Entry>#add call $std/pointer/Pointer<std/pointer/Entry>#add
local.tee $0 local.tee $1
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
global.set $std/pointer/add global.set $std/pointer/add
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.2 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.2 (result i32)
global.get $std/pointer/add global.get $std/pointer/add
local.set $3 local.set $0
local.get $3 local.get $0
end end
i32.const 32 i32.const 32
i32.eq i32.eq
@ -1922,13 +1915,13 @@
global.get $std/pointer/two global.get $std/pointer/two
global.get $std/pointer/one global.get $std/pointer/one
call $std/pointer/Pointer<std/pointer/Entry>#sub call $std/pointer/Pointer<std/pointer/Entry>#sub
local.tee $3 local.tee $0
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
global.set $std/pointer/sub global.set $std/pointer/sub
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.3 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.3 (result i32)
global.get $std/pointer/sub global.get $std/pointer/sub
local.set $4 local.set $2
local.get $4 local.get $2
end end
i32.const 16 i32.const 16
i32.eq i32.eq
@ -1943,8 +1936,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.4 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.4 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
local.set $4 local.set $2
local.get $4 local.get $2
end end
i32.const 8 i32.const 8
i32.eq i32.eq
@ -1961,19 +1954,19 @@
block (result i32) block (result i32)
global.get $std/pointer/one global.get $std/pointer/one
call $std/pointer/Pointer<std/pointer/Entry>#inc call $std/pointer/Pointer<std/pointer/Entry>#inc
local.tee $4 local.tee $2
local.tee $5 local.tee $3
global.get $std/pointer/one global.get $std/pointer/one
local.tee $6 local.tee $4
i32.ne i32.ne
if if
local.get $5 local.get $3
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
drop drop
local.get $6 local.get $4
call $~lib/rt/stub/__release call $~lib/rt/stub/__release
end end
local.get $5 local.get $3
end end
global.set $std/pointer/one global.set $std/pointer/one
global.get $std/pointer/one global.get $std/pointer/one
@ -1994,8 +1987,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.5 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.5 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
local.set $6 local.set $4
local.get $6 local.get $4
end end
i32.const 16 i32.const 16
i32.eq i32.eq
@ -2010,8 +2003,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.6 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.6 (result i32)
global.get $std/pointer/two global.get $std/pointer/two
local.set $5 local.set $3
local.get $5 local.get $3
end end
i32.const 24 i32.const 24
i32.eq i32.eq
@ -2027,43 +2020,43 @@
block (result i32) block (result i32)
global.get $std/pointer/two global.get $std/pointer/two
call $std/pointer/Pointer<std/pointer/Entry>#dec call $std/pointer/Pointer<std/pointer/Entry>#dec
local.tee $5 local.tee $3
local.tee $6 local.tee $4
global.get $std/pointer/two global.get $std/pointer/two
local.tee $7 local.tee $5
i32.ne i32.ne
if if
local.get $6 local.get $4
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
drop drop
local.get $7 local.get $5
call $~lib/rt/stub/__release call $~lib/rt/stub/__release
end end
local.get $6 local.get $4
end end
global.set $std/pointer/two global.set $std/pointer/two
block (result i32) block (result i32)
global.get $std/pointer/two global.get $std/pointer/two
call $std/pointer/Pointer<std/pointer/Entry>#dec call $std/pointer/Pointer<std/pointer/Entry>#dec
local.tee $6 local.tee $4
local.tee $7 local.tee $5
global.get $std/pointer/two global.get $std/pointer/two
local.tee $8 local.tee $6
i32.ne i32.ne
if if
local.get $7 local.get $5
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
drop drop
local.get $8 local.get $6
call $~lib/rt/stub/__release call $~lib/rt/stub/__release
end end
local.get $7 local.get $5
end end
global.set $std/pointer/two global.set $std/pointer/two
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.7 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.7 (result i32)
global.get $std/pointer/two global.get $std/pointer/two
local.set $8 local.set $6
local.get $8 local.get $6
end end
i32.const 8 i32.const 8
i32.eq i32.eq
@ -2078,8 +2071,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.4 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.4 (result i32)
global.get $std/pointer/two global.get $std/pointer/two
local.set $7 local.set $5
local.get $7 local.get $5
br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.4 br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.4
end end
i32.load i32.load
@ -2096,8 +2089,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.5 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.5 (result i32)
global.get $std/pointer/two global.get $std/pointer/two
local.set $8 local.set $6
local.get $8 local.get $6
br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.5 br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.5
end end
i32.load offset=4 i32.load offset=4
@ -2115,20 +2108,20 @@
global.get $std/pointer/one global.get $std/pointer/one
block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.6 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.6 (result i32)
global.get $std/pointer/two global.get $std/pointer/two
local.set $7 local.set $5
local.get $7 local.get $5
br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.6 br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.6
end end
call $std/pointer/Pointer<std/pointer/Entry>#set:value call $std/pointer/Pointer<std/pointer/Entry>#set:value
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.8 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.8 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
local.set $8 local.set $6
local.get $8 local.get $6
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.9 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:offset|inlined.9 (result i32)
global.get $std/pointer/two global.get $std/pointer/two
local.set $7 local.set $5
local.get $7 local.get $5
end end
i32.ne i32.ne
i32.eqz i32.eqz
@ -2142,8 +2135,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.7 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.7 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
local.set $8 local.set $6
local.get $8 local.get $6
br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.7 br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.7
end end
i32.load i32.load
@ -2160,8 +2153,8 @@
end end
block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.8 (result i32) block $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.8 (result i32)
global.get $std/pointer/one global.get $std/pointer/one
local.set $7 local.set $5
local.get $7 local.get $5
br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.8 br $std/pointer/Pointer<std/pointer/Entry>#get:value|inlined.8
end end
i32.load offset=4 i32.load offset=4
@ -2178,14 +2171,12 @@
end end
block $std/pointer/Pointer<f32>#constructor|inlined.0 (result i32) block $std/pointer/Pointer<f32>#constructor|inlined.0 (result i32)
i32.const 0 i32.const 0
local.set $7 local.set $5
i32.const 0 i32.const 0
local.set $8 local.set $6
local.get $8 local.get $6
call $~lib/rt/stub/__retain call $~lib/rt/stub/__retain
end end
local.tee $7
call $~lib/rt/stub/__retain
global.set $std/pointer/buf global.set $std/pointer/buf
global.get $std/pointer/buf global.get $std/pointer/buf
i32.const 0 i32.const 0
@ -2197,11 +2188,11 @@
call $std/pointer/Pointer<f32>#set call $std/pointer/Pointer<f32>#set
block $std/pointer/Pointer<f32>#get|inlined.0 (result f32) block $std/pointer/Pointer<f32>#get|inlined.0 (result f32)
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $9 local.set $5
i32.const 0 i32.const 0
local.set $8 local.set $6
local.get $9 local.get $5
local.get $8 local.get $6
i32.const 4 i32.const 4
i32.mul i32.mul
i32.add i32.add
@ -2220,11 +2211,11 @@
end end
block $std/pointer/Pointer<f32>#get|inlined.1 (result f32) block $std/pointer/Pointer<f32>#get|inlined.1 (result f32)
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $9 local.set $5
i32.const 1 i32.const 1
local.set $8 local.set $6
local.get $9 local.get $5
local.get $8 local.get $6
i32.const 4 i32.const 4
i32.mul i32.mul
i32.add i32.add
@ -2243,11 +2234,11 @@
end end
block $std/pointer/Pointer<f32>#get|inlined.2 (result f32) block $std/pointer/Pointer<f32>#get|inlined.2 (result f32)
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $9 local.set $5
i32.const 0 i32.const 0
local.set $8 local.set $6
local.get $9 local.get $5
local.get $8 local.get $6
i32.const 4 i32.const 4
i32.mul i32.mul
i32.add i32.add
@ -2266,11 +2257,11 @@
end end
block $std/pointer/Pointer<f32>#get|inlined.3 (result f32) block $std/pointer/Pointer<f32>#get|inlined.3 (result f32)
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $9 local.set $5
i32.const 1 i32.const 1
local.set $8 local.set $6
local.get $9 local.get $5
local.get $8 local.get $6
i32.const 4 i32.const 4
i32.mul i32.mul
i32.add i32.add
@ -2315,26 +2306,26 @@
end end
block $std/pointer/Pointer<f32>#set|inlined.0 block $std/pointer/Pointer<f32>#set|inlined.0
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $9 local.set $5
i32.const 2 i32.const 2
local.set $8 local.set $6
f32.const 1.2999999523162842 f32.const 1.2999999523162842
local.set $10 local.set $7
local.get $9 local.get $5
local.get $8 local.get $6
i32.const 4 i32.const 4
i32.mul i32.mul
i32.add i32.add
local.get $10 local.get $7
f32.store f32.store
end end
block $std/pointer/Pointer<f32>#get|inlined.4 (result f32) block $std/pointer/Pointer<f32>#get|inlined.4 (result f32)
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $9 local.set $5
i32.const 2 i32.const 2
local.set $8 local.set $6
local.get $9 local.get $5
local.get $8 local.get $6
i32.const 4 i32.const 4
i32.mul i32.mul
i32.add i32.add
@ -2353,11 +2344,11 @@
end end
block $std/pointer/Pointer<f32>#get|inlined.5 (result f32) block $std/pointer/Pointer<f32>#get|inlined.5 (result f32)
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $9 local.set $5
i32.const 2 i32.const 2
local.set $8 local.set $6
local.get $9 local.get $5
local.get $8 local.get $6
i32.const 4 i32.const 4
i32.mul i32.mul
i32.add i32.add
@ -2392,8 +2383,8 @@
call $std/pointer/Pointer<f32>#set:value call $std/pointer/Pointer<f32>#set:value
block $std/pointer/Pointer<f32>#get:value|inlined.0 (result f32) block $std/pointer/Pointer<f32>#get:value|inlined.0 (result f32)
global.get $std/pointer/buf global.get $std/pointer/buf
local.set $8 local.set $6
local.get $8 local.get $6
f32.load f32.load
br $std/pointer/Pointer<f32>#get:value|inlined.0 br $std/pointer/Pointer<f32>#get:value|inlined.0
end end
@ -2431,12 +2422,6 @@
call $~lib/rt/stub/__release call $~lib/rt/stub/__release
local.get $4 local.get $4
call $~lib/rt/stub/__release call $~lib/rt/stub/__release
local.get $5
call $~lib/rt/stub/__release
local.get $6
call $~lib/rt/stub/__release
local.get $7
call $~lib/rt/stub/__release
) )
(func $start (; 14 ;) (type $FUNCSIG$v) (func $start (; 14 ;) (type $FUNCSIG$v)
call $start:std/pointer call $start:std/pointer

File diff suppressed because it is too large Load Diff

View File

@ -3288,7 +3288,6 @@
local.get $0 local.get $0
) )
(func $~lib/typedarray/Int8Array#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Int8Array#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3301,7 +3300,6 @@
local.get $1 local.get $1
i32.const 0 i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3321,7 +3319,6 @@
call $~lib/arraybuffer/ArrayBufferView#get:byteLength call $~lib/arraybuffer/ArrayBufferView#get:byteLength
) )
(func $~lib/typedarray/Uint8Array#constructor (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint8Array#constructor (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3334,7 +3331,6 @@
local.get $1 local.get $1
i32.const 0 i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3343,7 +3339,6 @@
call $~lib/arraybuffer/ArrayBufferView#get:byteLength call $~lib/arraybuffer/ArrayBufferView#get:byteLength
) )
(func $~lib/typedarray/Uint8ClampedArray#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint8ClampedArray#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3356,7 +3351,6 @@
local.get $1 local.get $1
i32.const 0 i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3365,7 +3359,6 @@
call $~lib/arraybuffer/ArrayBufferView#get:byteLength call $~lib/arraybuffer/ArrayBufferView#get:byteLength
) )
(func $~lib/typedarray/Int16Array#constructor (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Int16Array#constructor (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3378,7 +3371,6 @@
local.get $1 local.get $1
i32.const 1 i32.const 1
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3389,7 +3381,6 @@
i32.shr_u i32.shr_u
) )
(func $~lib/typedarray/Uint16Array#constructor (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint16Array#constructor (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3402,7 +3393,6 @@
local.get $1 local.get $1
i32.const 1 i32.const 1
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3413,7 +3403,6 @@
i32.shr_u i32.shr_u
) )
(func $~lib/typedarray/Int32Array#constructor (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Int32Array#constructor (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3426,7 +3415,6 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3437,7 +3425,6 @@
i32.shr_u i32.shr_u
) )
(func $~lib/typedarray/Uint32Array#constructor (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint32Array#constructor (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3450,7 +3437,6 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3461,7 +3447,6 @@
i32.shr_u i32.shr_u
) )
(func $~lib/typedarray/Int64Array#constructor (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Int64Array#constructor (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3474,7 +3459,6 @@
local.get $1 local.get $1
i32.const 3 i32.const 3
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3485,7 +3469,6 @@
i32.shr_u i32.shr_u
) )
(func $~lib/typedarray/Uint64Array#constructor (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint64Array#constructor (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3498,7 +3481,6 @@
local.get $1 local.get $1
i32.const 3 i32.const 3
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3509,7 +3491,6 @@
i32.shr_u i32.shr_u
) )
(func $~lib/typedarray/Float32Array#constructor (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Float32Array#constructor (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3522,7 +3503,6 @@
local.get $1 local.get $1
i32.const 2 i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -3533,7 +3513,6 @@
i32.shr_u i32.shr_u
) )
(func $~lib/typedarray/Float64Array#constructor (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Float64Array#constructor (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0 local.get $0
if (result i32) if (result i32)
local.get $0 local.get $0
@ -3546,7 +3525,6 @@
local.get $1 local.get $1
i32.const 3 i32.const 3
call $~lib/arraybuffer/ArrayBufferView#constructor call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $2
local.set $0 local.set $0
local.get $0 local.get $0
) )
@ -4141,7 +4119,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -4256,13 +4233,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $~lib/typedarray/Float64Array#__set (; 55 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) (func $~lib/typedarray/Float64Array#__set (; 55 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64)
local.get $1 local.get $1
@ -4296,7 +4266,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -4411,13 +4380,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $~lib/util/sort/insertionSort<f64> (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/util/sort/insertionSort<f64> (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32) (local $3 i32)
@ -5161,12 +5123,6 @@
end end
local.get $3 local.get $3
end end
local.tee $5
call $~lib/rt/pure/__retain
local.set $4
local.get $5
call $~lib/rt/pure/__release
local.get $4
) )
(func $~lib/util/sort/COMPARATOR<f64>~anonymous|0 (; 61 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (func $~lib/util/sort/COMPARATOR<f64>~anonymous|0 (; 61 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32)
(local $2 i64) (local $2 i64)
@ -5323,7 +5279,6 @@
(local $9 i32) (local $9 i32)
(local $10 i32) (local $10 i32)
(local $11 i32) (local $11 i32)
block $~lib/typedarray/FILL<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $7 local.set $7
@ -5403,13 +5358,6 @@
call $~lib/memory/memory.fill call $~lib/memory/memory.fill
end end
local.get $7 local.get $7
end
local.tee $9
call $~lib/rt/pure/__retain
local.set $8
local.get $9
call $~lib/rt/pure/__release
local.get $8
) )
(func $~lib/rt/__allocArray (; 68 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (func $~lib/rt/__allocArray (; 68 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32) (local $4 i32)
@ -5581,7 +5529,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -5696,13 +5643,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $~lib/typedarray/Int32Array#fill (; 75 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (func $~lib/typedarray/Int32Array#fill (; 75 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32) (local $4 i32)
@ -5713,7 +5653,6 @@
(local $9 i32) (local $9 i32)
(local $10 i32) (local $10 i32)
(local $11 i32) (local $11 i32)
block $~lib/typedarray/FILL<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $7 local.set $7
@ -5803,13 +5742,6 @@
unreachable unreachable
end end
local.get $7 local.get $7
end
local.tee $9
call $~lib/rt/pure/__retain
local.set $8
local.get $9
call $~lib/rt/pure/__release
local.get $8
) )
(func $~lib/array/Array<i32>#get:length (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $~lib/array/Array<i32>#get:length (; 76 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0 local.get $0
@ -8723,7 +8655,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -8789,13 +8720,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 155 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> (; 155 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -8894,7 +8818,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -8960,13 +8883,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $~lib/typedarray/Uint8Array#__get (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint8Array#__get (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1 local.get $1
@ -9084,7 +9000,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -9150,13 +9065,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 162 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> (; 162 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -9255,7 +9163,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -9321,13 +9228,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $~lib/typedarray/Int16Array#__get (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Int16Array#__get (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1 local.get $1
@ -9449,7 +9349,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -9515,13 +9414,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $~lib/typedarray/Uint16Array#__get (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint16Array#__get (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1 local.get $1
@ -9643,7 +9535,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -9709,13 +9600,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 173 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> (; 173 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -9814,7 +9698,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -9880,13 +9763,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $~lib/typedarray/Uint32Array#__get (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/typedarray/Uint32Array#__get (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1 local.get $1
@ -10008,7 +9884,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -10074,13 +9949,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $~lib/typedarray/Int64Array#__get (; 180 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (func $~lib/typedarray/Int64Array#__get (; 180 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
local.get $1 local.get $1
@ -10202,7 +10070,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -10268,13 +10135,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $~lib/typedarray/Uint64Array#__get (; 184 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (func $~lib/typedarray/Uint64Array#__get (; 184 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
local.get $1 local.get $1
@ -10396,7 +10256,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -10462,13 +10321,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $~lib/typedarray/Float32Array#__get (; 188 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) (func $~lib/typedarray/Float32Array#__get (; 188 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32)
local.get $1 local.get $1
@ -10590,7 +10442,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $3 local.set $3
@ -10656,13 +10507,6 @@
local.get $6 local.get $6
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $8
call $~lib/rt/pure/__retain
local.set $7
local.get $8
call $~lib/rt/pure/__release
local.get $7
) )
(func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 192 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> (; 192 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -18285,7 +18129,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 i32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -18346,13 +18189,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 363 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (; 363 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -18547,7 +18383,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 i32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -18608,13 +18443,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Uint8Array#subarray (; 365 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Uint8Array#subarray (; 365 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -18624,7 +18452,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -18739,13 +18566,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 366 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (; 366 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -18934,7 +18754,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 i32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -18995,13 +18814,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Uint8ClampedArray#subarray (; 368 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Uint8ClampedArray#subarray (; 368 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -19011,7 +18823,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -19126,13 +18937,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 369 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (; 369 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -19321,7 +19125,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 i32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -19382,13 +19185,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Int16Array#subarray (; 371 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Int16Array#subarray (; 371 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -19398,7 +19194,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -19513,13 +19308,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 372 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (; 372 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -19714,7 +19502,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 i32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -19775,13 +19562,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Uint16Array#subarray (; 374 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Uint16Array#subarray (; 374 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -19791,7 +19571,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -19906,13 +19685,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 375 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (; 375 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -20101,7 +19873,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 i32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -20162,13 +19933,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 377 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (; 377 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -20351,7 +20115,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i32) (local $7 i32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -20412,13 +20175,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Uint32Array#subarray (; 379 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Uint32Array#subarray (; 379 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -20428,7 +20184,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -20543,13 +20298,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 380 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> (; 380 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -20732,7 +20480,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i64) (local $7 i64)
block $~lib/typedarray/REVERSE<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -20793,13 +20540,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Int64Array#subarray (; 382 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Int64Array#subarray (; 382 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -20809,7 +20549,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -20924,13 +20663,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 383 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (; 383 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -21116,7 +20848,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 i64) (local $7 i64)
block $~lib/typedarray/REVERSE<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -21177,13 +20908,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Uint64Array#subarray (; 385 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Uint64Array#subarray (; 385 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -21193,7 +20917,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -21308,13 +21031,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 386 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (; 386 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -21500,7 +21216,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 f32) (local $7 f32)
block $~lib/typedarray/REVERSE<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -21561,13 +21276,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $~lib/typedarray/Float32Array#subarray (; 388 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/typedarray/Float32Array#subarray (; 388 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32) (local $3 i32)
@ -21577,7 +21285,6 @@
(local $7 i32) (local $7 i32)
(local $8 i32) (local $8 i32)
(local $9 i32) (local $9 i32)
block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $5 local.set $5
@ -21692,13 +21399,6 @@
local.get $5 local.get $5
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
local.get $9 local.get $9
end
local.tee $7
call $~lib/rt/pure/__retain
local.set $6
local.get $7
call $~lib/rt/pure/__release
local.get $6
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 389 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (; 389 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
@ -21884,7 +21584,6 @@
(local $5 i32) (local $5 i32)
(local $6 i32) (local $6 i32)
(local $7 f64) (local $7 f64)
block $~lib/typedarray/REVERSE<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32)
local.get $0 local.get $0
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
local.set $1 local.set $1
@ -21945,13 +21644,6 @@
unreachable unreachable
end end
local.get $1 local.get $1
end
local.tee $2
call $~lib/rt/pure/__retain
local.set $1
local.get $2
call $~lib/rt/pure/__release
local.get $1
) )
(func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 391 ;) (type $FUNCSIG$v) (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (; 391 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)