From 0932cf17edc96a4a1ad202e1b06a9947fa905917 Mon Sep 17 00:00:00 2001 From: dcode Date: Mon, 18 Mar 2019 16:09:49 +0100 Subject: [PATCH] use overloads for checked access --- src/builtins.ts | 111 +- src/compiler.ts | 70 +- std/assembly/array.ts | 20 +- std/assembly/typedarray.ts | 154 +- tests/compiler/nonNullAssertion.optimized.wat | 52 +- tests/compiler/nonNullAssertion.untouched.wat | 133 +- tests/compiler/std/array-access.optimized.wat | 124 +- tests/compiler/std/array-access.untouched.wat | 244 +- .../compiler/std/array-literal.optimized.wat | 269 +- .../compiler/std/array-literal.untouched.wat | 373 +- tests/compiler/std/array.optimized.wat | 1376 ++-- tests/compiler/std/array.untouched.wat | 2034 ++---- tests/compiler/std/dataview.optimized.wat | 375 +- tests/compiler/std/dataview.untouched.wat | 367 +- tests/compiler/std/static-array.optimized.wat | 632 +- tests/compiler/std/static-array.untouched.wat | 2285 ++++++- tests/compiler/std/string.optimized.wat | 470 +- tests/compiler/std/string.untouched.wat | 628 +- tests/compiler/std/typedarray.optimized.wat | 5279 ++++++-------- tests/compiler/std/typedarray.untouched.wat | 6035 ++++++----------- 20 files changed, 9141 insertions(+), 11890 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index d3cfa407..e5a6253c 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -4120,103 +4120,52 @@ export function compileBuiltinArrayGet( ); } - var flow = compiler.currentFlow; var usizeType = compiler.options.usizeType; var nativeSizeType = compiler.options.nativeSizeType; - var isUnchecked = flow.is(FlowFlags.UNCHECKED_CONTEXT); var ptrExpr: ExpressionRef; var constantOffset: i32 = 0; - if (isUnchecked) { - // precompute byteOffset into a constant and a dynamic part - dynamicOffset = module.precomputeExpression(dynamicOffset); - if (getExpressionId(dynamicOffset) == ExpressionId.Const) { - constantOffset = getConstValueI32(dynamicOffset); - dynamicOffset = 0; - } else if (getExpressionId(dynamicOffset) == ExpressionId.Binary) { - if (getBinaryOp(dynamicOffset) == BinaryOp.AddI32) { - let left = getBinaryLeft(dynamicOffset); - let right = getBinaryRight(dynamicOffset); - if (getExpressionId(left) == ExpressionId.Const) { - constantOffset = getConstValueI32(left); - dynamicOffset = right; - } else if (getExpressionId(right) == ExpressionId.Const) { - constantOffset = getConstValueI32(right); - dynamicOffset = left; - } + // precompute byteOffset into a constant and a dynamic part + dynamicOffset = module.precomputeExpression(dynamicOffset); + if (getExpressionId(dynamicOffset) == ExpressionId.Const) { + constantOffset = getConstValueI32(dynamicOffset); + dynamicOffset = 0; + } else if (getExpressionId(dynamicOffset) == ExpressionId.Binary) { + if (getBinaryOp(dynamicOffset) == BinaryOp.AddI32) { + let left = getBinaryLeft(dynamicOffset); + let right = getBinaryRight(dynamicOffset); + if (getExpressionId(left) == ExpressionId.Const) { + constantOffset = getConstValueI32(left); + dynamicOffset = right; + } else if (getExpressionId(right) == ExpressionId.Const) { + constantOffset = getConstValueI32(right); + dynamicOffset = left; } } - // ptr = this.dataStart - ptrExpr = module.createLoad(usizeType.byteSize, true, - compiler.compileExpression( - thisExpression, - target.type, - ConversionKind.IMPLICIT, - WrapMode.NONE - ), - nativeSizeType, (dataStart).memoryOffset - ); - // ptr = ptr + dynamicOffset - if (dynamicOffset) { - if (nativeSizeType == NativeType.I64) { - ptrExpr = module.createBinary(BinaryOp.AddI64, - ptrExpr, - module.createUnary(UnaryOp.ExtendU32, dynamicOffset) - ); - } else { - ptrExpr = module.createBinary(BinaryOp.AddI32, - ptrExpr, - dynamicOffset - ); - } - } - - } else /* checked */ { - let tempThis = flow.getTempLocal(usizeType, false); - let tempOffset = flow.getAndFreeTempLocal(Type.i32, false); - flow.freeTempLocal(tempThis); - - // ptr = (tempThis = this).dataStart - ptrExpr = module.createLoad(usizeType.byteSize, true, - module.createTeeLocal(tempThis.index, - compiler.compileExpression( - thisExpression, - target.type, - ConversionKind.IMPLICIT, - WrapMode.NONE - ) - ), - nativeSizeType, (dataStart).memoryOffset - ); - - // ptr = ptr + (tempOffset = dynamicOffset) + } + // ptr = this.dataStart + ptrExpr = module.createLoad(usizeType.byteSize, true, + compiler.compileExpression( + thisExpression, + target.type, + ConversionKind.IMPLICIT, + WrapMode.NONE + ), + nativeSizeType, (dataStart).memoryOffset + ); + // ptr = ptr + dynamicOffset + if (dynamicOffset) { if (nativeSizeType == NativeType.I64) { ptrExpr = module.createBinary(BinaryOp.AddI64, ptrExpr, - module.createUnary(UnaryOp.ExtendU32, - module.createTeeLocal(tempOffset.index, dynamicOffset) - ) + module.createUnary(UnaryOp.ExtendU32, dynamicOffset) ); } else { ptrExpr = module.createBinary(BinaryOp.AddI32, ptrExpr, - module.createTeeLocal(tempOffset.index, dynamicOffset) + dynamicOffset ); } - - // ptr = select(ptr, -1, tempOffset < tempThis.dataLength) - // triggers "RuntimeError: memory access out of bounds" if OOB - ptrExpr = module.createSelect( - ptrExpr, - usizeType.toNativeNegOne(module), - module.createBinary(BinaryOp.LtU32, - module.createGetLocal(tempOffset.index, NativeType.I32), - module.createLoad(4, false, - module.createGetLocal(tempThis.index, nativeSizeType), - NativeType.I32, (dataLength).memoryOffset - ) - ) - ); } compiler.currentType = outType; diff --git a/src/compiler.ts b/src/compiler.ts index a110de0c..af223c76 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -4722,18 +4722,20 @@ export class Compiler extends DiagnosticEmitter { case ElementKind.CLASS: { let elementExpression = resolver.currentElementExpression; if (elementExpression) { // indexed access - let arrayType = this.program.determineBuiltinArrayType(target); - if (arrayType) { - return compileBuiltinArraySet( - this, - target, - assert(this.resolver.currentThisExpression), - elementExpression, - valueExpression, - contextualType - ); - } let isUnchecked = flow.is(FlowFlags.UNCHECKED_CONTEXT); + if (isUnchecked) { + let arrayType = this.program.determineBuiltinArrayType(target); + if (arrayType) { + return compileBuiltinArraySet( + this, + target, + assert(this.resolver.currentThisExpression), + elementExpression, + valueExpression, + contextualType + ); + } + } let indexedSet = (target).lookupOverload(OperatorKind.INDEXED_SET, isUnchecked); if (!indexedSet) { let indexedGet = (target).lookupOverload(OperatorKind.INDEXED_GET, isUnchecked); @@ -4956,18 +4958,20 @@ export class Compiler extends DiagnosticEmitter { case ElementKind.CLASS: { let elementExpression = this.resolver.currentElementExpression; if (elementExpression) { - let arrayType = this.program.determineBuiltinArrayType(target); - if (arrayType) { - return compileBuiltinArraySetWithValue( - this, - target, - assert(this.resolver.currentThisExpression), - elementExpression, - valueWithCorrectType, - tee - ); - } let isUnchecked = flow.is(FlowFlags.UNCHECKED_CONTEXT); + if (isUnchecked) { + let arrayType = this.program.determineBuiltinArrayType(target); + if (arrayType) { + return compileBuiltinArraySetWithValue( + this, + target, + assert(this.resolver.currentThisExpression), + elementExpression, + valueWithCorrectType, + tee + ); + } + } let indexedGet = (target).lookupOverload(OperatorKind.INDEXED_GET, isUnchecked); if (!indexedGet) { this.error( @@ -5974,17 +5978,19 @@ export class Compiler extends DiagnosticEmitter { if (!target) return this.module.createUnreachable(); switch (target.kind) { case ElementKind.CLASS: { - let arrayType = this.program.determineBuiltinArrayType(target); - if (arrayType) { - return compileBuiltinArrayGet( - this, - target, - expression.expression, - expression.elementExpression, - contextualType - ); - } let isUnchecked = this.currentFlow.is(FlowFlags.UNCHECKED_CONTEXT); + if (isUnchecked) { + let arrayType = this.program.determineBuiltinArrayType(target); + if (arrayType) { + return compileBuiltinArrayGet( + this, + target, + expression.expression, + expression.elementExpression, + contextualType + ); + } + } let indexedGet = (target).lookupOverload(OperatorKind.INDEXED_GET, isUnchecked); if (!indexedGet) { this.error( diff --git a/std/assembly/array.ts b/std/assembly/array.ts index ef3fa4ad..e4af4d44 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -6,10 +6,9 @@ import { isArray as builtin_isArray } from "./builtins"; /** Ensures that the given array has _at least_ the specified capacity. */ function ensureCapacity(array: ArrayBufferView, minCapacity: i32, alignLog2: u32): void { - var oldData = array.data; - var oldCapacity = oldData.byteLength >>> alignLog2; - if (minCapacity > oldCapacity) { + if (minCapacity > array.dataLength >>> alignLog2) { if (minCapacity > (MAX_BYTELENGTH >>> alignLog2)) throw new RangeError("Invalid array length"); + let oldData = array.data; let newByteLength = minCapacity << alignLog2; let newData = REALLOCATE(changetype(oldData), newByteLength); // registers on move if (newData !== changetype(oldData)) { @@ -21,6 +20,11 @@ function ensureCapacity(array: ArrayBufferView, minCapacity: i32, alignLog2: u32 } export class Array extends ArrayBufferView { + + // Implementing ArrayBufferView isn't strictly necessary here but is done to allow glue code + // to work with typed and normal arrays interchangeably. Technically, normal arrays do not need + // `dataStart` (equals `data`) and `dataLength` (equals computed `data.byteLength`). + private length_: i32; static isArray(value: U): bool { @@ -59,8 +63,14 @@ export class Array extends ArrayBufferView { return -1; } - @operator("[]=") - private __set(index: i32, value: T): void { // unchecked is built-in + @operator("[]") // unchecked is built-in + private __get(index: i32): T { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: T): void { ensureCapacity(this, index + 1, alignof()); store(this.dataStart + (index << alignof()), value); if (isManaged()) LINK(value, this); diff --git a/std/assembly/typedarray.ts b/std/assembly/typedarray.ts index 5bd84687..93d7526b 100644 --- a/std/assembly/typedarray.ts +++ b/std/assembly/typedarray.ts @@ -1,10 +1,6 @@ import { ALLOCATE, REGISTER, ArrayBufferView } from "./runtime"; import { COMPARATOR, SORT as SORT_IMPL } from "./util/sort"; -// function clampToByte(value: i32): i32 { -// return ~(value >> 31) & (((255 - value) >> 31) | value); // & 255 -// } - export class Int8Array extends ArrayBufferView { // @ts-ignore: decorator @@ -23,6 +19,18 @@ export class Int8Array extends ArrayBufferView { return this.byteLength; } + @operator("[]") // unchecked is built-in + private __get(index: i32): i8 { + if (index >= this.dataLength) throw new Error("Offset out of bounds"); + return load(this.dataStart + index); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: native): void { + if (index >= this.dataLength) throw new Error("Offset out of bounds"); + store(this.dataStart + index, value); + } + fill(value: i32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int8Array { return FILL(this, value, start, end); } @@ -92,6 +100,18 @@ export class Uint8Array extends ArrayBufferView { return this.byteLength; } + @operator("[]") // unchecked is built-in + private __get(index: i32): u8 { + if (index >= this.dataLength) throw new Error("Offset out of bounds"); + return load(this.dataStart + index); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: native): void { + if (index >= this.dataLength) throw new Error("Offset out of bounds"); + store(this.dataStart + index, value); + } + fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8Array { return FILL(this, value, start, end); } @@ -143,18 +163,42 @@ export class Uint8Array extends ArrayBufferView { } } -export class Uint8ClampedArray extends Uint8Array { +export class Uint8ClampedArray extends ArrayBufferView { // @ts-ignore: decorator @lazy static readonly BYTES_PER_ELEMENT: usize = sizeof(); + constructor(length: i32) { + super(length, alignof()); + } + + get buffer(): ArrayBuffer { + return this.data; + } + + get length(): i32 { + return this.byteLength; + } + + @operator("[]") // unchecked is built-in + private __get(index: i32): u8 { + if (index >= this.dataLength) throw new Error("Offset out of bounds"); + return load(this.dataStart + index); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: native): void { + if (index >= this.dataLength) throw new Error("Offset out of bounds"); + store(this.dataStart + index, ~(value >> 31) & (((255 - value) >> 31) | value)); + } + fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8ClampedArray { - return changetype(super.fill(value, start, end)); // safe because '.fill' reuses 'this' + return FILL(this, value, start, end); } sort(comparator: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8ClampedArray { - return changetype(super.sort(comparator)); // safe because '.sort' reuses 'this' + return SORT(this, comparator); } subarray(begin: i32 = 0, end: i32 = 0x7fffffff): Uint8ClampedArray { @@ -218,6 +262,18 @@ export class Int16Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): i16 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: native): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: i32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int16Array { return FILL(this, value, start, end); } @@ -287,6 +343,18 @@ export class Uint16Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): u16 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: native): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint16Array { return FILL(this, value, start, end); } @@ -356,6 +424,18 @@ export class Int32Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): i32 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: i32): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: i32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int32Array { return FILL(this, value, start, end); } @@ -425,6 +505,18 @@ export class Uint32Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): u32 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: u32): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: u32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint32Array { return FILL(this, value, start, end); } @@ -494,6 +586,18 @@ export class Int64Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): i64 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: i64): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: i64, start: i32 = 0, end: i32 = i32.MAX_VALUE): Int64Array { return FILL(this, value, start, end); } @@ -563,6 +667,18 @@ export class Uint64Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): u64 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: u64): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: u64, start: i32 = 0, end: i32 = i32.MAX_VALUE): Uint64Array { return FILL(this, value, start, end); } @@ -632,6 +748,18 @@ export class Float32Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): f32 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: f32): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: f32, start: i32 = 0, end: i32 = i32.MAX_VALUE): Float32Array { return FILL(this, value, start, end); } @@ -701,6 +829,18 @@ export class Float64Array extends ArrayBufferView { return this.byteLength >>> alignof(); } + @operator("[]") // unchecked is built-in + private __get(index: i32): f64 { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + return load(this.dataStart + (index << alignof())); + } + + @operator("[]=") // unchecked is built-in + private __set(index: i32, value: f64): void { + if (index >= this.dataLength >>> alignof()) throw new Error("Offset out of bounds"); + store(this.dataStart + (index << alignof()), value); + } + fill(value: f64, start: i32 = 0, end: i32 = i32.MAX_VALUE): Float64Array { return FILL(this, value, start, end); } diff --git a/tests/compiler/nonNullAssertion.optimized.wat b/tests/compiler/nonNullAssertion.optimized.wat index 1d92c3f0..77e861e5 100644 --- a/tests/compiler/nonNullAssertion.optimized.wat +++ b/tests/compiler/nonNullAssertion.optimized.wat @@ -1,8 +1,11 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$v (func)) - (memory $0 0) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 8) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/argc (mut i32) (i32.const 0)) @@ -20,50 +23,55 @@ (export "testRet" (func $nonNullAssertion/testFn)) (export "testObjFn" (func $nonNullAssertion/testObjFn)) (export "testObjRet" (func $nonNullAssertion/testObjFn)) - (func $nonNullAssertion/testVar (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testVar (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 ) - (func $nonNullAssertion/testObj (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testObj (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load ) - (func $nonNullAssertion/testArr (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const -1 + (func $~lib/array/Array#__get (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 local.get $0 i32.load offset=8 - i32.lt_u - select - i32.load - ) - (func $nonNullAssertion/testAll (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end local.get $0 i32.load offset=4 - i32.const -1 - i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load i32.load ) - (func $nonNullAssertion/testFn (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testArr (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + call $~lib/array/Array#__get + ) + (func $nonNullAssertion/testAll (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + call $~lib/array/Array#__get + i32.load + ) + (func $nonNullAssertion/testFn (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 global.set $~lib/argc local.get $0 call_indirect (type $FUNCSIG$i) ) - (func $nonNullAssertion/testObjFn (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testObjFn (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 global.set $~lib/argc local.get $0 i32.load offset=4 call_indirect (type $FUNCSIG$i) ) - (func $null (; 6 ;) (type $FUNCSIG$v) + (func $null (; 8 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/nonNullAssertion.untouched.wat b/tests/compiler/nonNullAssertion.untouched.wat index 38bc6d36..a30d61ce 100644 --- a/tests/compiler/nonNullAssertion.untouched.wat +++ b/tests/compiler/nonNullAssertion.untouched.wat @@ -1,12 +1,19 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$v (func)) - (memory $0 0) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 8) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) + (global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0)) + (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) + (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) (global $~lib/argc (mut i32) (i32.const 0)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 8)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 44)) (export "memory" (memory $0)) (export "table" (table $0)) (export "testVar" (func $nonNullAssertion/testVar)) @@ -21,102 +28,92 @@ (export "testRet" (func $nonNullAssertion/testRet)) (export "testObjFn" (func $nonNullAssertion/testObjFn)) (export "testObjRet" (func $nonNullAssertion/testObjRet)) - (func $nonNullAssertion/testVar (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testVar (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 ) - (func $nonNullAssertion/testObj (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testObj (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load ) - (func $nonNullAssertion/testProp (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testProp (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load ) - (func $nonNullAssertion/testArr (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/array/Array#__get (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end local.get $0 - local.tee $1 i32.load offset=4 - i32.const 0 + local.get $1 i32.const 2 i32.shl - local.tee $2 i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select i32.load ) - (func $nonNullAssertion/testElem (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $nonNullAssertion/testArr (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - local.tee $1 - i32.load offset=4 i32.const 0 + call $~lib/array/Array#__get + ) + (func $~lib/array/Array#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl - local.tee $2 i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select i32.load ) - (func $nonNullAssertion/testAll (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $nonNullAssertion/testElem (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.load + call $~lib/array/Array#__get ) - (func $nonNullAssertion/testAll2 (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $nonNullAssertion/testAll (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.load ) - (func $nonNullAssertion/testFn (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testAll2 (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.load + ) + (func $nonNullAssertion/testFn (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 global.set $~lib/argc local.get $0 call_indirect (type $FUNCSIG$i) ) - (func $nonNullAssertion/testFn2 (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testFn2 (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 local.set $1 @@ -125,26 +122,26 @@ local.get $1 call_indirect (type $FUNCSIG$i) ) - (func $nonNullAssertion/testRet (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testRet (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 global.set $~lib/argc local.get $0 call_indirect (type $FUNCSIG$i) ) - (func $nonNullAssertion/testObjFn (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testObjFn (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 global.set $~lib/argc local.get $0 i32.load offset=4 call_indirect (type $FUNCSIG$i) ) - (func $nonNullAssertion/testObjRet (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $nonNullAssertion/testObjRet (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 global.set $~lib/argc local.get $0 i32.load offset=4 call_indirect (type $FUNCSIG$i) ) - (func $null (; 12 ;) (type $FUNCSIG$v) + (func $null (; 15 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index d3be53d0..784af276 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -1,13 +1,15 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) - (data (i32.const 8) "\01") - (data (i32.const 16) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data (i32.const 56) "\01\00\00\00\08\00\00\00n\00u\00l\00l") + (data (i32.const 8) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 48) "\01") + (data (i32.const 56) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data (i32.const 96) "\01\00\00\00\08\00\00\00n\00u\00l\00l") (table $0 1 funcref) (elem (i32.const 0) $null) (export "memory" (memory $0)) @@ -17,48 +19,50 @@ (export "stringArrayMethodCall" (func $std/array-access/stringArrayMethodCall)) (export "stringArrayArrayPropertyAccess" (func $std/array-access/stringArrayArrayPropertyAccess)) (export "stringArrayArrayMethodCall" (func $std/array-access/stringArrayArrayMethodCall)) - (func $std/array-access/i32ArrayArrayElementAccess (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const -1 - i32.const 0 + (func $~lib/array/Array>#__get (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 i32.load offset=8 - i32.lt_u - select - i32.load - local.tee $0 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 i32.load offset=4 - i32.const 4 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select i32.load ) - (func $std/array-access/stringArrayPropertyAccess (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-access/i32ArrayArrayElementAccess (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - i32.load offset=4 - i32.const -1 i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array>#__get + ) + (func $std/array-access/stringArrayPropertyAccess (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 0 + call $~lib/array/Array>#__get i32.const 8 i32.sub i32.load offset=4 i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 3 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 4 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - i32.const 16 + i32.const 56 local.set $3 local.get $1 i32.const 1 @@ -97,7 +101,7 @@ end local.get $4 ) - (func $~lib/string/String#startsWith (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#startsWith (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -105,13 +109,13 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 64 i32.const 161 i32.const 4 call $~lib/env/abort unreachable end - i32.const 12 + i32.const 52 i32.load i32.const 1 i32.shr_u @@ -144,69 +148,33 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $std/array-access/stringArrayMethodCall (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-access/stringArrayMethodCall (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array>#__get call $~lib/string/String#startsWith ) - (func $std/array-access/stringArrayArrayPropertyAccess (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-access/stringArrayArrayPropertyAccess (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array>#__get i32.const 8 i32.sub i32.load offset=4 i32.const 1 i32.shr_u ) - (func $std/array-access/stringArrayArrayMethodCall (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-access/stringArrayArrayMethodCall (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array>#__get call $~lib/string/String#startsWith ) - (func $null (; 8 ;) (type $FUNCSIG$v) + (func $null (; 9 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index 500f9ca0..27f875bb 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -1,20 +1,22 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) - (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) + (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $FUNCSIG$v (func)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) - (data (i32.const 8) "\01\00\00\00\00\00\00\00") - (data (i32.const 16) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data (i32.const 56) "\01\00\00\00\08\00\00\00n\00u\00l\00l\00") + (data (i32.const 8) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 48) "\01\00\00\00\00\00\00\00") + (data (i32.const 56) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") + (data (i32.const 96) "\01\00\00\00\08\00\00\00n\00u\00l\00l\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0)) (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 72)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 112)) (export "memory" (memory $0)) (export "table" (table $0)) (export "i32ArrayArrayElementAccess" (func $std/array-access/i32ArrayArrayElementAccess)) @@ -22,40 +24,83 @@ (export "stringArrayMethodCall" (func $std/array-access/stringArrayMethodCall)) (export "stringArrayArrayPropertyAccess" (func $std/array-access/stringArrayArrayPropertyAccess)) (export "stringArrayArrayMethodCall" (func $std/array-access/stringArrayArrayMethodCall)) - (func $std/array-access/i32ArrayArrayElementAccess (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/array/Array>#__get (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end local.get $0 - local.tee $1 i32.load offset=4 - i32.const 0 + local.get $1 i32.const 2 i32.shl - local.tee $2 i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - local.tee $1 - i32.load offset=4 - i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select i32.load ) - (func $~lib/string/String#get:length (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/array-access/i32ArrayArrayElementAccess (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array>#__get + i32.const 1 + call $~lib/array/Array#__get + ) + (func $~lib/array/Array#__get (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/string/String#get:length (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 global.get $~lib/runtime/HEADER_SIZE i32.sub @@ -63,27 +108,13 @@ i32.const 1 i32.shr_u ) - (func $std/array-access/stringArrayPropertyAccess (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $std/array-access/stringArrayPropertyAccess (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get call $~lib/string/String#get:length ) - (func $~lib/util/string/compareImpl (; 4 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 7 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -136,7 +167,7 @@ end local.get $5 ) - (func $~lib/string/String#startsWith (; 5 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#startsWith (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -149,7 +180,7 @@ i32.eqz if i32.const 0 - i32.const 24 + i32.const 64 i32.const 161 i32.const 4 call $~lib/env/abort @@ -159,7 +190,7 @@ i32.const 0 i32.eq if - i32.const 64 + i32.const 104 local.set $1 end local.get $2 @@ -203,98 +234,55 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $std/array-access/stringArrayMethodCall (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $std/array-access/stringArrayMethodCall (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 16 + call $~lib/array/Array#__get + i32.const 56 i32.const 0 call $~lib/string/String#startsWith ) - (func $std/array-access/stringArrayArrayPropertyAccess (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/array/Array>#__get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 16 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end local.get $0 - local.tee $1 i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/array-access/stringArrayArrayPropertyAccess (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - local.tee $1 - i32.load offset=4 + call $~lib/array/Array>#__get i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get call $~lib/string/String#get:length ) - (func $std/array-access/stringArrayArrayMethodCall (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $std/array-access/stringArrayArrayMethodCall (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - local.tee $1 - i32.load offset=4 + call $~lib/array/Array>#__get i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 16 + call $~lib/array/Array#__get + i32.const 56 i32.const 0 call $~lib/string/String#startsWith ) - (func $null (; 9 ;) (type $FUNCSIG$v) + (func $null (; 13 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 10b41a31..e5b3bd8e 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -12,16 +12,16 @@ (data (i32.const 8) "\01\00\00\00\03\00\00\00\00\01\02") (data (i32.const 24) "\02\00\00\00\10\00\00\00\10\00\00\00\10\00\00\00\03\00\00\00\03") (data (i32.const 48) "\03\00\00\00(\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") - (data (i32.const 96) "\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02") - (data (i32.const 120) "\04\00\00\00\10\00\00\00h\00\00\00h\00\00\00\0c\00\00\00\03") - (data (i32.const 144) "\01") - (data (i32.const 152) "\04\00\00\00\10\00\00\00\98\00\00\00\98") - (data (i32.const 176) "\03\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 216) "\03\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 264) "\03\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 96) "\03\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 136) "\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02") + (data (i32.const 160) "\04\00\00\00\10\00\00\00\90\00\00\00\90\00\00\00\0c\00\00\00\03") + (data (i32.const 184) "\01") + (data (i32.const 192) "\04\00\00\00\10\00\00\00\c0\00\00\00\c0") + (data (i32.const 216) "\03\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") + (data (i32.const 256) "\03\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 160)) + (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 200)) (global $std/array-literal/i (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -32,7 +32,49 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 104 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + ) + (func $~lib/array/Array#__get (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 104 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -94,7 +136,7 @@ global.set $~lib/allocator/arena/offset local.get $1 ) - (func $~lib/runtime/doAllocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/doAllocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 1 i32.const 32 @@ -115,7 +157,7 @@ i32.const 8 i32.add ) - (func $~lib/memory/memory.fill (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/memory/memory.fill (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 local.get $1 @@ -326,13 +368,13 @@ end end ) - (func $~lib/runtime/assertUnregistered (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/assertUnregistered (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.const 300 + i32.const 304 i32.le_u if i32.const 0 - i32.const 184 + i32.const 224 i32.const 191 i32.const 2 call $~lib/env/abort @@ -346,14 +388,14 @@ i32.ne if i32.const 0 - i32.const 184 + i32.const 224 i32.const 192 i32.const 2 call $~lib/env/abort unreachable end ) - (func $~lib/runtime/doRegister (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/doRegister (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 call $~lib/runtime/assertUnregistered local.get $0 @@ -363,14 +405,14 @@ i32.store local.get $0 ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 1073741816 i32.gt_u if i32.const 0 - i32.const 224 + i32.const 264 i32.const 24 i32.const 43 call $~lib/env/abort @@ -385,7 +427,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/runtime/ArrayBufferView#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/ArrayBufferView#constructor (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) i32.const 3 i32.const 1073741816 @@ -394,7 +436,7 @@ i32.gt_u if i32.const 0 - i32.const 184 + i32.const 224 i32.const 226 i32.const 57 call $~lib/env/abort @@ -435,7 +477,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/util/memory/memcpy (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1332,7 +1374,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 9 ;) (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 @@ -1526,7 +1568,7 @@ end end ) - (func $~lib/runtime/doReallocate (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/doReallocate (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1550,7 +1592,7 @@ i32.shl i32.const 0 local.get $0 - i32.const 300 + i32.const 304 i32.gt_u select i32.const 1 @@ -1590,11 +1632,11 @@ i32.eq if local.get $0 - i32.const 300 + i32.const 304 i32.le_u if i32.const 0 - i32.const 184 + i32.const 224 i32.const 100 i32.const 8 call $~lib/env/abort @@ -1620,15 +1662,11 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureCapacity (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 local.get $0 - i32.load - local.tee $3 - i32.const 8 - i32.sub - i32.load offset=4 + i32.load offset=8 local.get $2 i32.shr_u i32.gt_u @@ -1640,20 +1678,23 @@ i32.gt_u if i32.const 0 - i32.const 272 - i32.const 12 + i32.const 104 + i32.const 10 i32.const 64 call $~lib/env/abort unreachable end - local.get $3 - local.get $3 + local.get $0 + i32.load + local.tee $3 local.get $1 local.get $2 i32.shl local.tee $2 call $~lib/runtime/doReallocate - local.tee $1 + local.set $1 + local.get $1 + local.get $3 i32.ne if local.get $0 @@ -1668,7 +1709,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#__set (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -1693,7 +1734,7 @@ i32.store offset=12 end ) - (func $~lib/array/Array#__set (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -1720,19 +1761,19 @@ i32.store offset=12 end ) - (func $std/array-literal/Ref#constructor (; 14 ;) (type $FUNCSIG$i) (result i32) + (func $std/array-literal/Ref#constructor (; 16 ;) (type $FUNCSIG$i) (result i32) i32.const 0 call $~lib/runtime/doAllocate i32.const 6 call $~lib/runtime/doRegister ) - (func $std/array-literal/RefWithCtor#constructor (; 15 ;) (type $FUNCSIG$i) (result i32) + (func $std/array-literal/RefWithCtor#constructor (; 17 ;) (type $FUNCSIG$i) (result i32) i32.const 0 call $~lib/runtime/doAllocate i32.const 8 call $~lib/runtime/doRegister ) - (func $start:std/array-literal (; 16 ;) (type $FUNCSIG$v) + (func $start:std/array-literal (; 18 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 44 i32.load @@ -1746,15 +1787,9 @@ call $~lib/env/abort unreachable end - i32.const 36 - i32.load - i32.const -1 + i32.const 32 i32.const 0 - i32.const 40 - i32.load - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get if i32.const 0 i32.const 56 @@ -1763,17 +1798,9 @@ call $~lib/env/abort unreachable end - i32.const 36 - i32.load + i32.const 32 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - i32.const 40 - i32.load - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 1 i32.ne if @@ -1784,17 +1811,9 @@ call $~lib/env/abort unreachable end - i32.const 36 - i32.load + i32.const 32 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - i32.const 40 - i32.load - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 2 i32.ne if @@ -1805,7 +1824,7 @@ call $~lib/env/abort unreachable end - i32.const 140 + i32.const 180 i32.load i32.const 3 i32.ne @@ -1817,15 +1836,9 @@ call $~lib/env/abort unreachable end - i32.const 132 - i32.load - i32.const -1 + i32.const 168 i32.const 0 - i32.const 136 - i32.load - i32.lt_u - select - i32.load + call $~lib/array/Array#__get if i32.const 0 i32.const 56 @@ -1834,17 +1847,9 @@ call $~lib/env/abort unreachable end - i32.const 132 - i32.load - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - i32.const 136 - i32.load - i32.lt_u - select - i32.load + i32.const 168 + i32.const 1 + call $~lib/array/Array#__get i32.const 1 i32.ne if @@ -1855,17 +1860,9 @@ call $~lib/env/abort unreachable end - i32.const 132 - i32.load - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - i32.const 136 - i32.load - i32.lt_u - select - i32.load + i32.const 168 + i32.const 2 + call $~lib/array/Array#__get i32.const 2 i32.ne if @@ -1937,15 +1934,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get if i32.const 0 i32.const 56 @@ -1955,17 +1945,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.tee $0 - i32.load offset=4 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 1 i32.ne if @@ -1977,17 +1958,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.tee $0 - i32.load offset=4 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 2 i32.ne if @@ -2047,15 +2019,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get if i32.const 0 i32.const 56 @@ -2065,17 +2030,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 1 i32.ne if @@ -2087,17 +2043,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 2 i32.ne if @@ -2185,10 +2132,10 @@ unreachable end ) - (func $start (; 17 ;) (type $FUNCSIG$v) + (func $start (; 19 ;) (type $FUNCSIG$v) call $start:std/array-literal ) - (func $null (; 18 ;) (type $FUNCSIG$v) + (func $null (; 20 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 18b10bde..dcba2a8f 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -11,21 +11,21 @@ (data (i32.const 8) "\01\00\00\00\03\00\00\00\00\01\02") (data (i32.const 24) "\02\00\00\00\10\00\00\00\10\00\00\00\10\00\00\00\03\00\00\00\03\00\00\00") (data (i32.const 48) "\03\00\00\00(\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00") - (data (i32.const 96) "\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 120) "\04\00\00\00\10\00\00\00h\00\00\00h\00\00\00\0c\00\00\00\03\00\00\00") - (data (i32.const 144) "\01\00\00\00\00\00\00\00") - (data (i32.const 152) "\04\00\00\00\10\00\00\00\98\00\00\00\98\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 176) "\03\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 216) "\03\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 264) "\03\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 96) "\03\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 136) "\01\00\00\00\0c\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 160) "\04\00\00\00\10\00\00\00\90\00\00\00\90\00\00\00\0c\00\00\00\03\00\00\00") + (data (i32.const 184) "\01\00\00\00\00\00\00\00") + (data (i32.const 192) "\04\00\00\00\10\00\00\00\c0\00\00\00\c0\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 216) "\03\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") + (data (i32.const 256) "\03\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/array-literal/staticArrayI8 i32 (i32.const 32)) (global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0)) (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) - (global $std/array-literal/staticArrayI32 i32 (i32.const 128)) - (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 160)) + (global $std/array-literal/staticArrayI32 i32 (i32.const 168)) + (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 200)) (global $std/array-literal/i (mut i32) (i32.const 0)) (global $~lib/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -35,7 +35,7 @@ (global $std/array-literal/dynamicArrayI32 (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayRef (mut i32) (i32.const 0)) (global $std/array-literal/dynamicArrayRefWithCtor (mut i32) (i32.const 0)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 300)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 304)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) @@ -43,11 +43,57 @@ local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#get:length (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 0 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 104 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + ) + (func $~lib/array/Array#get:length (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/runtime/ADJUSTOBLOCK (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 104 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/runtime/ADJUSTOBLOCK (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 @@ -59,7 +105,7 @@ i32.sub i32.shl ) - (func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/memory/memory.allocate (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -144,7 +190,7 @@ end return ) - (func $~lib/runtime/doAllocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/doAllocate (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/runtime/ADJUSTOBLOCK @@ -160,7 +206,7 @@ global.get $~lib/runtime/HEADER_SIZE i32.add ) - (func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) @@ -416,14 +462,14 @@ end end ) - (func $~lib/runtime/assertUnregistered (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/assertUnregistered (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.get $~lib/memory/HEAP_BASE i32.gt_u i32.eqz if i32.const 0 - i32.const 184 + i32.const 224 i32.const 191 i32.const 2 call $~lib/env/abort @@ -438,14 +484,14 @@ i32.eqz if i32.const 0 - i32.const 184 + i32.const 224 i32.const 192 i32.const 2 call $~lib/env/abort unreachable end ) - (func $~lib/runtime/doRegister (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/doRegister (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 call $~lib/runtime/assertUnregistered local.get $0 @@ -455,7 +501,7 @@ i32.store local.get $0 ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $1 @@ -463,7 +509,7 @@ i32.gt_u if i32.const 0 - i32.const 224 + i32.const 264 i32.const 24 i32.const 43 call $~lib/env/abort @@ -488,11 +534,11 @@ call $~lib/runtime/doRegister end ) - (func $~lib/runtime/ALLOCATE (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/ALLOCATE (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/doAllocate ) - (func $~lib/runtime/ArrayBufferView#constructor (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/runtime/ArrayBufferView#constructor (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -502,7 +548,7 @@ i32.gt_u if i32.const 0 - i32.const 184 + i32.const 224 i32.const 226 i32.const 57 call $~lib/env/abort @@ -550,7 +596,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array#constructor (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -575,13 +621,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - i32.load offset=4 - ) - (func $~lib/util/memory/memcpy (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1782,7 +1822,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 @@ -2011,12 +2051,12 @@ end end ) - (func $~lib/memory/memory.free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 local.set $1 ) - (func $~lib/runtime/doReallocate (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/doReallocate (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2080,7 +2120,7 @@ i32.eqz if i32.const 0 - i32.const 184 + i32.const 224 i32.const 100 i32.const 8 call $~lib/env/abort @@ -2113,22 +2153,16 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureCapacity (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + local.get $1 local.get $0 - i32.load - local.set $3 - local.get $3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.load offset=8 local.get $2 i32.shr_u - local.set $4 - local.get $1 - local.get $4 i32.gt_u if local.get $1 @@ -2138,43 +2172,46 @@ i32.gt_u if i32.const 0 - i32.const 272 - i32.const 12 + i32.const 104 + i32.const 10 i32.const 64 call $~lib/env/abort unreachable end + local.get $0 + i32.load + local.set $3 local.get $1 local.get $2 i32.shl - local.set $5 + local.set $4 block $~lib/runtime/REALLOCATE|inlined.0 (result i32) local.get $3 + local.set $5 + local.get $4 local.set $6 local.get $5 - local.set $7 local.get $6 - local.get $7 call $~lib/runtime/doReallocate end - local.set $7 - local.get $7 + local.set $6 + local.get $6 local.get $3 i32.ne if local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 i32.store offset=4 end local.get $0 - local.get $5 + local.get $4 i32.store offset=8 end ) - (func $~lib/array/Array#__set (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -2201,7 +2238,7 @@ i32.store offset=12 end ) - (func $~lib/array/Array#constructor (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -2226,7 +2263,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array#__set (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -2253,7 +2290,7 @@ i32.store offset=12 end ) - (func $std/array-literal/Ref#constructor (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-literal/Ref#constructor (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.eqz @@ -2270,7 +2307,7 @@ end local.get $0 ) - (func $~lib/array/Array#constructor (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -2295,7 +2332,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array#__set (; 24 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -2322,11 +2359,11 @@ i32.store offset=12 end ) - (func $~lib/array/Array#get:length (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/array-literal/RefWithCtor#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array-literal/RefWithCtor#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.eqz @@ -2343,7 +2380,7 @@ end local.get $0 ) - (func $~lib/array/Array#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -2368,7 +2405,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array#__set (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 29 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -2395,17 +2432,15 @@ i32.store offset=12 end ) - (func $~lib/array/Array#get:length (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $start:std/array-literal (; 30 ;) (type $FUNCSIG$v) + (func $start:std/array-literal (; 31 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/array-literal/staticArrayI8 call $~lib/array/Array#get:length i32.const 3 @@ -2420,18 +2455,8 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.tee $0 - i32.load offset=4 i32.const 0 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 0 i32.eq i32.eqz @@ -2444,18 +2469,8 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.tee $0 - i32.load offset=4 i32.const 1 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 1 i32.eq i32.eqz @@ -2468,18 +2483,8 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.tee $0 - i32.load offset=4 i32.const 2 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 2 i32.eq i32.eqz @@ -2505,20 +2510,8 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 0 i32.eq i32.eqz @@ -2531,20 +2524,8 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1 i32.eq i32.eqz @@ -2557,20 +2538,8 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 2 i32.eq i32.eqz @@ -2609,12 +2578,12 @@ i32.const 0 i32.const 3 call $~lib/array/Array#constructor - local.set $2 - local.get $2 + local.set $0 + local.get $0 i32.const 0 global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 1 block (result i32) global.get $std/array-literal/i @@ -2624,7 +2593,7 @@ global.get $std/array-literal/i end call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 2 block (result i32) global.get $std/array-literal/i @@ -2634,7 +2603,7 @@ global.get $std/array-literal/i end call $~lib/array/Array#__set - local.get $2 + local.get $0 end global.set $std/array-literal/dynamicArrayI8 global.get $std/array-literal/dynamicArrayI8 @@ -2651,18 +2620,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.tee $2 - i32.load offset=4 i32.const 0 - local.tee $0 - i32.add - i32.const -1 - local.get $0 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 0 i32.eq i32.eqz @@ -2675,18 +2634,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.tee $2 - i32.load offset=4 i32.const 1 - local.tee $0 - i32.add - i32.const -1 - local.get $0 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 1 i32.eq i32.eqz @@ -2699,18 +2648,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.tee $2 - i32.load offset=4 i32.const 2 - local.tee $0 - i32.add - i32.const -1 - local.get $0 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.const 2 i32.eq i32.eqz @@ -2728,12 +2667,12 @@ i32.const 0 i32.const 3 call $~lib/array/Array#constructor - local.set $3 - local.get $3 + local.set $1 + local.get $1 i32.const 0 global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $3 + local.get $1 i32.const 1 block (result i32) global.get $std/array-literal/i @@ -2743,7 +2682,7 @@ global.get $std/array-literal/i end call $~lib/array/Array#__set - local.get $3 + local.get $1 i32.const 2 block (result i32) global.get $std/array-literal/i @@ -2753,7 +2692,7 @@ global.get $std/array-literal/i end call $~lib/array/Array#__set - local.get $3 + local.get $1 end global.set $std/array-literal/dynamicArrayI32 global.get $std/array-literal/dynamicArrayI32 @@ -2770,20 +2709,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.tee $3 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 0 i32.eq i32.eqz @@ -2796,20 +2723,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.tee $3 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1 i32.eq i32.eqz @@ -2822,20 +2737,8 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.tee $3 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 2 i32.eq i32.eqz @@ -2851,23 +2754,23 @@ i32.const 0 i32.const 3 call $~lib/array/Array#constructor - local.set $4 - local.get $4 + local.set $2 + local.get $2 i32.const 0 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $4 + local.get $2 end global.set $std/array-literal/dynamicArrayRef global.get $std/array-literal/dynamicArrayRef @@ -2887,23 +2790,23 @@ i32.const 0 i32.const 3 call $~lib/array/Array#constructor - local.set $5 - local.get $5 + local.set $3 + local.get $3 i32.const 0 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $5 + local.get $3 i32.const 1 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $5 + local.get $3 i32.const 2 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $5 + local.get $3 end global.set $std/array-literal/dynamicArrayRefWithCtor global.get $std/array-literal/dynamicArrayRefWithCtor @@ -2920,9 +2823,9 @@ unreachable end ) - (func $start (; 31 ;) (type $FUNCSIG$v) + (func $start (; 32 ;) (type $FUNCSIG$v) call $start:std/array-literal ) - (func $null (; 32 ;) (type $FUNCSIG$v) + (func $null (; 33 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index da02a44d..7a6281cd 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -8,10 +8,12 @@ (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) + (type $FUNCSIG$fii (func (param i32 i32) (result f32))) (type $FUNCSIG$d (func (result f64))) (type $FUNCSIG$vj (func (param i64))) (type $FUNCSIG$iff (func (param f32 f32) (result i32))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) + (type $FUNCSIG$dii (func (param i32 i32) (result f64))) (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) @@ -31,18 +33,18 @@ (data (i32.const 144) "\02\00\00\00\05\00\00\00\01\02\03\04\05") (data (i32.const 160) "\07\00\00\00\10\00\00\00\98\00\00\00\98\00\00\00\05\00\00\00\05") (data (i32.const 184) "\02\00\00\00\05\00\00\00\01\01\01\04\05") - (data (i32.const 200) "\02\00\00\00\05") - (data (i32.const 216) "\02\00\00\00\05\00\00\00\01\01") - (data (i32.const 232) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 248) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 264) "\02\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") - (data (i32.const 296) "\08\00\00\00\10\00\00\00\10\01\00\00\10\01\00\00\14\00\00\00\05") - (data (i32.const 320) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") - (data (i32.const 352) "\02\00\00\00\14") - (data (i32.const 384) "\02\00\00\00\14\00\00\00\01\00\00\00\01") - (data (i32.const 416) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data (i32.const 448) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data (i32.const 480) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 200) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 240) "\02\00\00\00\05") + (data (i32.const 256) "\02\00\00\00\05\00\00\00\01\01") + (data (i32.const 272) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 288) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 304) "\02\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") + (data (i32.const 336) "\08\00\00\00\10\00\00\008\01\00\008\01\00\00\14\00\00\00\05") + (data (i32.const 360) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") + (data (i32.const 392) "\02\00\00\00\14") + (data (i32.const 424) "\02\00\00\00\14\00\00\00\01\00\00\00\01") + (data (i32.const 456) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data (i32.const 488) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") (data (i32.const 520) "\02") (data (i32.const 528) "\02") (data (i32.const 536) "\04\00\00\00\10\00\00\00\18\02\00\00\18\02") @@ -226,7 +228,7 @@ (global $std/array/arr (mut i32) (i32.const 0)) (global $std/array/Null (mut i32) (i32.const 0)) (global $std/array/arr8 (mut i32) (i32.const 168)) - (global $std/array/arr32 (mut i32) (i32.const 304)) + (global $std/array/arr32 (mut i32) (i32.const 344)) (global $std/array/i (mut i32) (i32.const 0)) (global $std/array/other (mut i32) (i32.const 0)) (global $std/array/out (mut i32) (i32.const 0)) @@ -1904,7 +1906,26 @@ call $~lib/memory/memory.copy local.get $3 ) - (func $std/array/isArraysEqual (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $std/array/isArraysEqual (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -1930,27 +1951,11 @@ i32.lt_s if local.get $0 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/array/Array#__get local.get $1 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -1967,7 +1972,7 @@ end i32.const 1 ) - (func $~lib/array/Array#fill (; 15 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/array/Array#fill (; 16 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) local.get $0 @@ -2040,9 +2045,31 @@ end end ) - (func $std/array/isArraysEqual (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__get (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/array/isArraysEqual (; 18 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) local.get $2 i32.eqz if @@ -2069,31 +2096,12 @@ local.get $2 i32.lt_s if + local.get $0 local.get $3 - i32.const 2 - i32.shl - local.tee $4 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 - i32.load offset=4 - local.get $4 - i32.add - i32.const -1 - local.get $4 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $3 + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -2110,7 +2118,7 @@ end i32.const 1 ) - (func $~lib/runtime/doReallocate (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/doReallocate (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2206,16 +2214,12 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureCapacity (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $1 local.get $0 - i32.load - local.tee $2 - i32.const 8 - i32.sub - i32.load offset=4 + i32.load offset=8 i32.const 2 i32.shr_u i32.gt_u @@ -2225,20 +2229,22 @@ i32.gt_u if i32.const 0 - i32.const 488 - i32.const 12 + i32.const 208 + i32.const 10 i32.const 64 call $~lib/env/abort unreachable end - local.get $2 - local.get $2 + local.get $0 + i32.load + local.tee $2 local.get $1 i32.const 2 i32.shl local.tee $3 call $~lib/runtime/doReallocate local.tee $1 + local.get $2 i32.ne if local.get $0 @@ -2253,7 +2259,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#push (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 local.get $0 @@ -2276,7 +2282,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#pop (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2286,8 +2292,8 @@ i32.lt_s if i32.const 0 - i32.const 488 - i32.const 185 + i32.const 208 + i32.const 195 i32.const 20 call $~lib/env/abort unreachable @@ -2308,7 +2314,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#concat (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2345,7 +2351,7 @@ call $~lib/memory/memory.copy local.get $4 ) - (func $~lib/array/Array#copyWithin (; 22 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 24 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -2512,7 +2518,7 @@ end local.get $0 ) - (func $~lib/array/Array#unshift (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#unshift (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2541,7 +2547,7 @@ local.get $2 i32.store offset=12 ) - (func $~lib/array/Array#shift (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2553,8 +2559,8 @@ i32.lt_s if i32.const 0 - i32.const 488 - i32.const 243 + i32.const 208 + i32.const 253 i32.const 20 call $~lib/env/abort unreachable @@ -2586,7 +2592,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#reverse (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2633,7 +2639,7 @@ end end ) - (func $~lib/array/Array#indexOf (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -2697,7 +2703,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -2705,7 +2711,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2827,11 +2833,37 @@ i32.store offset=12 local.get $7 ) - (func $start:std/array~anonymous|0 (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__set (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $start:std/array~anonymous|0 (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz ) - (func $~lib/array/Array#findIndex (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2879,17 +2911,17 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -2897,7 +2929,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -2905,12 +2937,12 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2958,12 +2990,12 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -2971,12 +3003,12 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -2984,12 +3016,12 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3037,12 +3069,12 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3050,12 +3082,12 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3063,13 +3095,13 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 47 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 50 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i ) - (func $~lib/array/Array#forEach (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3112,7 +3144,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3121,7 +3153,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|19 (; 50 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/array/Array#pop drop @@ -3130,7 +3162,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|20 (; 51 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 i32.eqz @@ -3227,11 +3259,11 @@ end end ) - (func $start:std/array~anonymous|21 (; 52 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 55 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array#map (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#map (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3298,7 +3330,30 @@ end local.get $3 ) - (func $start:std/array~anonymous|22 (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__get (; 57 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $start:std/array~anonymous|22 (; 58 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3308,7 +3363,7 @@ global.set $std/array/i local.get $0 ) - (func $~lib/array/Array#map (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#map (; 59 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3360,14 +3415,14 @@ end end ) - (func $start:std/array~anonymous|23 (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|24 (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3377,12 +3432,12 @@ global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|25 (; 58 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3435,7 +3490,7 @@ end local.get $4 ) - (func $start:std/array~anonymous|26 (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3447,7 +3502,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add @@ -3456,7 +3511,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3468,12 +3523,12 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 63 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 67 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3517,7 +3572,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|31 (; 65 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 69 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.eqz if @@ -3528,7 +3583,7 @@ end local.get $0 ) - (func $start:std/array~anonymous|32 (; 66 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 70 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.eqz if @@ -3539,7 +3594,7 @@ end local.get $0 ) - (func $start:std/array~anonymous|33 (; 67 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 71 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 i32.const 1 call $~lib/array/Array#push @@ -3547,7 +3602,7 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 68 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 72 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/array/Array#pop drop @@ -3555,7 +3610,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 73 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3592,7 +3647,7 @@ end local.get $2 ) - (func $~lib/math/splitMix32 (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 74 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -3624,7 +3679,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 71 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 75 ;) (type $FUNCSIG$vj) (param $0 i64) (local $1 i64) local.get $0 i64.eqz @@ -3689,7 +3744,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 72 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 76 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -3771,7 +3826,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 73 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4027,7 +4082,7 @@ local.get $6 f32.store ) - (func $~lib/array/Array#sort (; 74 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#sort (; 78 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 f32) (local $4 f32) @@ -4035,8 +4090,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -4095,7 +4150,7 @@ call $~lib/util/sort/weakHeapSort end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 75 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 79 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4124,14 +4179,13 @@ i32.lt_s i32.sub ) - (func $std/array/isArraysEqual (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $3 f32) + (local $4 i32) local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 local.get $1 i32.load offset=12 i32.ne @@ -4147,84 +4201,46 @@ return end loop $repeat|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_s if - local.get $3 - i32.const 2 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load - local.tee $4 - local.get $4 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 f32.ne local.get $1 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - f32.load - local.tee $4 - local.get $4 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 f32.ne i32.ne if - local.get $3 - i32.const 2 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get local.get $1 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get f32.ne if i32.const 0 return end end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $repeat|0 end end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 77 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 81 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -4306,7 +4322,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 82 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4562,7 +4578,7 @@ local.get $6 f64.store ) - (func $~lib/array/Array#sort (; 79 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#sort (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 f64) (local $4 f64) @@ -4570,8 +4586,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -4630,7 +4646,7 @@ call $~lib/util/sort/weakHeapSort end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 80 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 84 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -4659,14 +4675,36 @@ i64.lt_s i32.sub ) - (func $std/array/isArraysEqual (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 85 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $std/array/isArraysEqual (; 86 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) + (local $3 f64) + (local $4 i32) local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 local.get $1 i32.load offset=12 i32.ne @@ -4682,84 +4720,46 @@ return end loop $repeat|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_s if - local.get $3 - i32.const 3 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load - local.tee $4 - local.get $4 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 f64.ne local.get $1 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - f64.load - local.tee $4 - local.get $4 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 f64.ne i32.ne if - local.get $3 - i32.const 3 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get local.get $1 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get f64.ne if i32.const 0 return end end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $repeat|0 end end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 82 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 87 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4841,7 +4841,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 83 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 88 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5097,7 +5097,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#sort (; 84 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 89 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5105,8 +5105,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -5170,12 +5170,12 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 85 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 90 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 86 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 91 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -5184,7 +5184,7 @@ i32.lt_u i32.sub ) - (func $std/array/createReverseOrderedArray (; 87 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 92 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/array/Array#constructor @@ -5198,18 +5198,14 @@ i32.lt_s if local.get $1 - i32.load offset=4 local.get $0 - i32.const 2 - i32.shl - i32.add local.get $1 i32.load offset=12 i32.const 1 i32.sub local.get $0 i32.sub - i32.store + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add @@ -5219,7 +5215,7 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 88 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 93 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -5266,7 +5262,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 89 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/array/Array#constructor @@ -5278,18 +5274,14 @@ i32.lt_s if local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add call $~lib/math/NativeMath.random local.get $0 i32.load offset=12 f64.convert_i32_s f64.mul i32.trunc_f64_s - i32.store + call $~lib/array/Array#__set local.get $1 i32.const 1 i32.add @@ -5299,52 +5291,29 @@ end local.get $0 ) - (func $std/array/isSorted (; 90 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 95 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) i32.const 1 local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $repeat|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if i32.const 2 global.set $~lib/argc + local.get $0 local.get $2 i32.const 1 i32.sub - i32.const 2 - i32.shl - local.tee $3 + call $~lib/array/Array#__get local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load local.get $2 - i32.const 2 - i32.shl - local.tee $3 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 call_indirect (type $FUNCSIG$iii) i32.const 0 @@ -5364,7 +5333,7 @@ end i32.const 1 ) - (func $std/array/assertSorted (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array#sort @@ -5380,17 +5349,17 @@ unreachable end ) - (func $std/array/assertSortedDefault (; 92 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 97 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.const 48 call $std/array/assertSorted ) - (func $start:std/array~anonymous|44 (; 93 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 98 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array>#constructor (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#constructor (; 99 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 16 call $~lib/runtime/doAllocate @@ -5407,34 +5376,9 @@ i32.store offset=12 local.get $1 ) - (func $~lib/runtime/assertRegistered (; 95 ;) (type $FUNCSIG$vi) (param $0 i32) - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const -1520547049 - i32.eq - if - i32.const 0 - i32.const 16 - i32.const 199 - i32.const 2 - call $~lib/env/abort - unreachable - end - ) - (func $~lib/runtime/doLink (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) - local.get $0 - call $~lib/runtime/assertRegistered - local.get $1 - call $~lib/runtime/assertRegistered - ) - (func $std/array/createReverseOrderedNestedArray (; 97 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 100 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) i32.const 512 call $~lib/array/Array>#constructor local.set $0 @@ -5444,42 +5388,22 @@ i32.load offset=12 i32.lt_s if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 local.get $0 - i32.load offset=4 - i32.add - local.set $4 + local.get $1 i32.const 1 call $~lib/array/Array#constructor - local.tee $2 + call $~lib/array/Array#__set local.get $0 - call $~lib/runtime/doLink - local.get $4 - local.get $2 - i32.store - local.get $3 - local.tee $2 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.load offset=4 + local.get $1 + call $~lib/array/Array#__get + i32.const 0 local.get $0 i32.load offset=12 i32.const 1 i32.sub local.get $1 i32.sub - i32.store + call $~lib/array/Array#__set local.get $1 i32.const 1 i32.add @@ -5489,28 +5413,16 @@ end local.get $0 ) - (func $start:std/array~anonymous|47 (; 98 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 101 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.sub ) - (func $~lib/array/Array>#sort (; 99 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 102 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5518,8 +5430,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -5571,7 +5483,7 @@ call $~lib/util/sort/insertionSort local.get $0 ) - (func $std/array/assertSorted> (; 100 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 103 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array>#sort @@ -5587,12 +5499,11 @@ unreachable end ) - (func $std/array/createReverseOrderedElementsArray (; 101 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 104 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) i32.const 16 call $~lib/runtime/doAllocate i32.const 12 @@ -5612,33 +5523,24 @@ i32.load offset=12 i32.lt_s if - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $3 local.get $0 i32.load offset=12 i32.const 1 i32.sub local.get $1 i32.sub - local.set $4 + local.set $2 i32.const 4 call $~lib/runtime/doAllocate i32.const 13 call $~lib/runtime/doRegister - local.tee $2 - local.get $4 - i32.store + local.tee $3 local.get $2 + i32.store local.get $0 - call $~lib/runtime/doLink + local.get $1 local.get $3 - local.get $2 - i32.store + call $~lib/array/Array#__set local.get $1 i32.const 1 i32.add @@ -5648,14 +5550,14 @@ end local.get $0 ) - (func $start:std/array~anonymous|48 (; 102 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 105 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load local.get $1 i32.load i32.sub ) - (func $~lib/util/string/compareImpl (; 103 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 106 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) loop $continue|0 local.get $2 @@ -5688,7 +5590,7 @@ end local.get $3 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 104 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5765,7 +5667,7 @@ select call $~lib/util/string/compareImpl ) - (func $std/array/assertSorted|trampoline (; 105 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSorted|trampoline (; 108 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) block $1of1 block $0of1 @@ -5784,7 +5686,7 @@ local.get $1 call $std/array/assertSorted> ) - (func $~lib/string/String.__eq (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 109 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -5830,13 +5732,12 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $std/array/isArraysEqual (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 local.get $1 i32.load offset=12 i32.ne @@ -5853,34 +5754,15 @@ end loop $repeat|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if + local.get $0 local.get $2 - i32.const 2 - i32.shl - local.tee $3 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 - i32.load offset=4 - local.get $3 - i32.add - i32.const -1 - local.get $3 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $2 + call $~lib/array/Array#__get call $~lib/string/String.__eq if local.get $2 @@ -5897,7 +5779,7 @@ end i32.const 1 ) - (func $~lib/string/String#charAt (; 108 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#charAt (; 111 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 2324 @@ -5923,7 +5805,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/string/String#concat (; 109 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 112 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5972,7 +5854,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/string/String.__concat (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 113 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 3440 local.get $0 @@ -5980,7 +5862,7 @@ local.get $1 call $~lib/string/String#concat ) - (func $std/array/createRandomString (; 111 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) i32.const 3264 @@ -6012,11 +5894,9 @@ end local.get $1 ) - (func $std/array/createRandomStringArray (; 112 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createRandomStringArray (; 115 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 16 call $~lib/runtime/doAllocate i32.const 14 @@ -6037,23 +5917,13 @@ i32.lt_s if local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $2 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_f64_s call $std/array/createRandomString - local.tee $3 - local.get $0 - call $~lib/runtime/doLink - local.get $2 - local.get $3 - i32.store + call $~lib/array/Array#__set local.get $1 i32.const 1 i32.add @@ -6063,7 +5933,7 @@ end local.get $0 ) - (func $~lib/string/String#substring (; 113 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 116 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6161,7 +6031,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#join_bool (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_bool (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6313,7 +6183,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/decimalCount32 (; 115 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 118 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 100000 i32.lt_u @@ -6367,7 +6237,7 @@ end end ) - (func $~lib/util/number/utoa32_lut (; 116 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 119 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) i32.const 4028 @@ -6477,7 +6347,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6519,7 +6389,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/itoa_stream (; 118 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 121 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -6563,7 +6433,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 119 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 122 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6681,12 +6551,12 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#join (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int ) - (func $~lib/util/number/utoa32 (; 121 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -6709,7 +6579,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/itoa_stream (; 122 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 125 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -6733,7 +6603,7 @@ call $~lib/util/number/utoa32_lut local.get $0 ) - (func $~lib/array/Array#join_int (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 126 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6851,12 +6721,12 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#join (; 124 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 127 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int ) - (func $~lib/util/number/genDigits (; 125 ;) (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 (; 128 ;) (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) @@ -7274,7 +7144,7 @@ local.get $7 end ) - (func $~lib/util/number/prettify (; 126 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 129 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -7535,7 +7405,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 127 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 130 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i64) (local $4 i64) @@ -7847,7 +7717,7 @@ local.get $12 i32.add ) - (func $~lib/util/number/dtoa (; 128 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 131 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -7892,7 +7762,7 @@ call $~lib/runtime/assertUnregistered local.get $1 ) - (func $~lib/util/number/dtoa_stream (; 129 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 132 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) local.get $1 i32.const 1 i32.shl @@ -7961,7 +7831,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_flt (; 133 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8077,7 +7947,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#join_str (; 131 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_str (; 134 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8244,44 +8114,18 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#join (; 132 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_str ) - (func $std/array/Ref#constructor (; 133 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/Ref#constructor (; 136 ;) (type $FUNCSIG$i) (result i32) i32.const 0 call $~lib/runtime/doAllocate i32.const 18 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#__set (; 134 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/ensureCapacity - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=12 - end - ) - (func $~lib/array/Array#join_ref (; 135 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_ref (; 137 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8414,12 +8258,12 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#toString (; 136 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 138 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa_stream (; 137 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 139 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -8474,7 +8318,7 @@ end local.get $1 ) - (func $~lib/array/Array#join_int (; 138 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 140 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8586,7 +8430,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/itoa_stream (; 139 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -8616,7 +8460,7 @@ call $~lib/util/number/utoa32_lut local.get $1 ) - (func $~lib/array/Array#join_int (; 140 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 142 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8732,7 +8576,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/decimalCount64 (; 141 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 143 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 i64.const 1000000000000000 i64.lt_u @@ -8786,7 +8630,7 @@ end end ) - (func $~lib/util/number/utoa64_lut (; 142 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 144 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8883,7 +8727,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 143 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 145 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8925,7 +8769,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/itoa_stream (; 144 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 146 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -8965,7 +8809,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 145 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 147 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9081,7 +8925,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/itoa64 (; 146 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 148 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9146,7 +8990,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/itoa_stream (; 147 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 149 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -9209,7 +9053,7 @@ end local.get $4 ) - (func $~lib/array/Array#join_int (; 148 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 150 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9325,12 +9169,12 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array#toString (; 149 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 151 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/array/Array>#join_arr (; 150 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#join_arr (; 152 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9423,7 +9267,7 @@ local.get $1 end ) - (func $~lib/util/number/itoa_stream (; 151 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 153 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -9453,7 +9297,7 @@ call $~lib/util/number/utoa32_lut local.get $1 ) - (func $~lib/array/Array#join_int (; 152 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 154 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9565,7 +9409,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/array/Array>#join_arr (; 153 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#join_arr (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9655,7 +9499,7 @@ local.get $1 end ) - (func $~lib/array/Array>#join_arr (; 154 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#join_arr (; 156 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9748,7 +9592,7 @@ local.get $1 end ) - (func $~lib/array/Array>>#join_arr (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>>#join_arr (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9838,7 +9682,7 @@ local.get $1 end ) - (func $start:std/array (; 156 ;) (type $FUNCSIG$v) + (func $start:std/array (; 158 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 6448 @@ -9909,7 +9753,7 @@ i32.const 2147483647 call $~lib/array/Array#fill global.get $std/array/arr8 - i32.const 208 + i32.const 248 i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray @@ -9929,7 +9773,7 @@ i32.const -3 call $~lib/array/Array#fill global.get $std/array/arr8 - i32.const 224 + i32.const 264 i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray @@ -9949,7 +9793,7 @@ i32.const 2147483647 call $~lib/array/Array#fill global.get $std/array/arr8 - i32.const 240 + i32.const 280 i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray @@ -9969,7 +9813,7 @@ i32.const 0 call $~lib/array/Array#fill global.get $std/array/arr8 - i32.const 256 + i32.const 296 i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray @@ -9989,7 +9833,7 @@ i32.const 3 call $~lib/array/Array#fill global.get $std/array/arr32 - i32.const 328 + i32.const 368 i32.const 8 i32.const 2 call $~lib/runtime/doWrapArray @@ -10010,7 +9854,7 @@ i32.const 2147483647 call $~lib/array/Array#fill global.get $std/array/arr32 - i32.const 360 + i32.const 400 i32.const 8 i32.const 2 call $~lib/runtime/doWrapArray @@ -10031,7 +9875,7 @@ i32.const -3 call $~lib/array/Array#fill global.get $std/array/arr32 - i32.const 392 + i32.const 432 i32.const 8 i32.const 2 call $~lib/runtime/doWrapArray @@ -10052,7 +9896,7 @@ i32.const 2147483647 call $~lib/array/Array#fill global.get $std/array/arr32 - i32.const 424 + i32.const 464 i32.const 8 i32.const 2 call $~lib/runtime/doWrapArray @@ -10073,7 +9917,7 @@ i32.const 0 call $~lib/array/Array#fill global.get $std/array/arr32 - i32.const 456 + i32.const 496 i32.const 8 i32.const 2 call $~lib/runtime/doWrapArray @@ -10117,15 +9961,8 @@ i32.const 42 call $~lib/array/Array#push global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.ne if @@ -10239,15 +10076,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -10291,15 +10121,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -10311,17 +10134,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -10365,15 +10179,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -10385,17 +10192,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -10407,17 +10205,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 45 i32.ne if @@ -10501,15 +10290,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -10521,17 +10303,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -10543,17 +10316,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 45 i32.ne if @@ -10616,15 +10380,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -10636,17 +10393,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -10658,17 +10406,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 45 i32.ne if @@ -10680,17 +10419,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/array/Array#__get i32.const 46 i32.ne if @@ -10702,17 +10432,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 4 + call $~lib/array/Array#__get i32.const 47 i32.ne if @@ -10755,17 +10476,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 45 i32.ne if @@ -11145,15 +10857,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.ne if @@ -11165,17 +10870,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -11187,17 +10883,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -11209,17 +10896,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/array/Array#__get i32.const 45 i32.ne if @@ -11263,15 +10941,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 41 i32.ne if @@ -11283,17 +10954,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 42 i32.ne if @@ -11305,17 +10967,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -11327,17 +10980,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -11349,17 +10993,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 4 + call $~lib/array/Array#__get i32.const 45 i32.ne if @@ -11414,15 +11049,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.ne if @@ -11434,17 +11062,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -11456,17 +11075,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -11478,17 +11088,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/array/Array#__get i32.const 45 i32.ne if @@ -11543,15 +11144,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.ne if @@ -11563,17 +11157,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -11585,17 +11170,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -11638,15 +11214,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -11658,17 +11227,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 43 i32.ne if @@ -11680,17 +11240,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 42 i32.ne if @@ -12056,15 +11607,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.ne if @@ -12076,17 +11620,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 42 i32.ne if @@ -12613,23 +12148,22 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.store - local.get $0 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__set + global.get $std/array/arr i32.const 1 - i32.store offset=4 - local.get $0 - i32.load offset=4 + i32.const 1 + call $~lib/array/Array#__set + global.get $std/array/arr i32.const 2 - i32.store offset=8 - local.get $0 - i32.load offset=4 + i32.const 2 + call $~lib/array/Array#__set + global.get $std/array/arr i32.const 3 - i32.store offset=12 - local.get $0 + i32.const 3 + call $~lib/array/Array#__set + global.get $std/array/arr i32.const 1 call $~lib/array/Array#findIndex global.set $std/array/i @@ -13104,8 +12638,6 @@ call $~lib/env/abort unreachable end - i32.const 0 - local.set $0 loop $repeat|0 local.get $0 i32.const 100 @@ -13149,25 +12681,11 @@ unreachable end global.get $std/array/newArr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get global.get $std/array/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f32.convert_i32_s f32.ne if @@ -14134,15 +13652,15 @@ local.get $0 i32.const 0 call $std/array/Ref#constructor - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.const 0 - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 i32.const 2 call $std/array/Ref#constructor - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 global.set $std/array/refArr global.get $std/array/refArr @@ -14311,14 +13829,14 @@ i32.const 4 i32.const 2 call $~lib/runtime/doWrapArray - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.const 6368 i32.const 4 i32.const 2 call $~lib/runtime/doWrapArray - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 global.set $std/array/subarr32 global.get $std/array/subarr32 @@ -14353,14 +13871,14 @@ i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.const 6424 i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 global.set $std/array/subarr8 global.get $std/array/subarr8 @@ -14408,11 +13926,11 @@ i32.const 8 i32.const 2 call $~lib/runtime/doWrapArray - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 i32.const 0 local.get $1 - call $~lib/array/Array#__set + call $~lib/array/Array#__set local.get $0 global.set $std/array/subarrU32 global.get $std/array/subarrU32 @@ -14429,10 +13947,10 @@ unreachable end ) - (func $start (; 157 ;) (type $FUNCSIG$v) + (func $start (; 159 ;) (type $FUNCSIG$v) call $start:std/array ) - (func $null (; 158 ;) (type $FUNCSIG$v) + (func $null (; 160 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index c3d97676..d3123898 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -8,12 +8,14 @@ (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) + (type $FUNCSIG$fii (func (param i32 i32) (result f32))) (type $FUNCSIG$d (func (result f64))) (type $FUNCSIG$vj (func (param i64))) (type $FUNCSIG$jj (func (param i64) (result i64))) (type $FUNCSIG$iff (func (param f32 f32) (result i32))) (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) + (type $FUNCSIG$dii (func (param i32 i32) (result f64))) (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) @@ -33,18 +35,18 @@ (data (i32.const 144) "\02\00\00\00\05\00\00\00\01\02\03\04\05") (data (i32.const 160) "\07\00\00\00\10\00\00\00\98\00\00\00\98\00\00\00\05\00\00\00\05\00\00\00") (data (i32.const 184) "\02\00\00\00\05\00\00\00\01\01\01\04\05") - (data (i32.const 200) "\02\00\00\00\05\00\00\00\00\00\00\00\00") - (data (i32.const 216) "\02\00\00\00\05\00\00\00\01\01\00\00\00") - (data (i32.const 232) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 248) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 264) "\02\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 296) "\08\00\00\00\10\00\00\00\10\01\00\00\10\01\00\00\14\00\00\00\05\00\00\00") - (data (i32.const 320) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 352) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 384) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 416) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 448) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 480) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 200) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 240) "\02\00\00\00\05\00\00\00\00\00\00\00\00") + (data (i32.const 256) "\02\00\00\00\05\00\00\00\01\01\00\00\00") + (data (i32.const 272) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 288) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 304) "\02\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 336) "\08\00\00\00\10\00\00\008\01\00\008\01\00\00\14\00\00\00\05\00\00\00") + (data (i32.const 360) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 392) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 424) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 456) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") + (data (i32.const 488) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") (data (i32.const 520) "\02\00\00\00\00\00\00\00") (data (i32.const 528) "\02\00\00\00\00\00\00\00") (data (i32.const 536) "\04\00\00\00\10\00\00\00\18\02\00\00\18\02\00\00\00\00\00\00\00\00\00\00") @@ -228,7 +230,7 @@ (global $std/array/str (mut i32) (i32.const 104)) (global $std/array/arr8 (mut i32) (i32.const 168)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) - (global $std/array/arr32 (mut i32) (i32.const 304)) + (global $std/array/arr32 (mut i32) (i32.const 344)) (global $std/array/i (mut i32) (i32.const 0)) (global $std/array/other (mut i32) (i32.const 0)) (global $std/array/out (mut i32) (i32.const 0)) @@ -2464,10 +2466,31 @@ local.get $0 i32.load offset=12 ) - (func $std/array/isArraysEqual (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__get (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 0 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + ) + (func $std/array/isArraysEqual (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $2 i32.eqz if @@ -2500,31 +2523,11 @@ i32.eqz br_if $break|0 local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/array/Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -2541,7 +2544,7 @@ end i32.const 1 ) - (func $~lib/array/Array#fill (; 27 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 28 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -2627,14 +2630,35 @@ end local.get $0 ) - (func $~lib/array/Array#get:length (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/array/isArraysEqual (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__get (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/array/isArraysEqual (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $2 i32.eqz if @@ -2667,35 +2691,11 @@ i32.eqz br_if $break|0 local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -2712,11 +2712,11 @@ end i32.const 1 ) - (func $~lib/array/Array#get:length (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/array/internalCapacity (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/internalCapacity (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.load @@ -2726,12 +2726,12 @@ i32.const 2 i32.shr_s ) - (func $~lib/memory/memory.free (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 local.set $1 ) - (func $~lib/runtime/doReallocate (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/doReallocate (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2828,22 +2828,16 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureCapacity (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + local.get $1 local.get $0 - i32.load - local.set $3 - local.get $3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.load offset=8 local.get $2 i32.shr_u - local.set $4 - local.get $1 - local.get $4 i32.gt_u if local.get $1 @@ -2853,43 +2847,46 @@ i32.gt_u if i32.const 0 - i32.const 488 - i32.const 12 + i32.const 208 + i32.const 10 i32.const 64 call $~lib/env/abort unreachable end + local.get $0 + i32.load + local.set $3 local.get $1 local.get $2 i32.shl - local.set $5 + local.set $4 block $~lib/runtime/REALLOCATE|inlined.0 (result i32) local.get $3 + local.set $5 + local.get $4 local.set $6 local.get $5 - local.set $7 local.get $6 - local.get $7 call $~lib/runtime/doReallocate end - local.set $7 - local.get $7 + local.set $6 + local.get $6 local.get $3 i32.ne if local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 i32.store offset=4 end local.get $0 - local.get $5 + local.get $4 i32.store offset=8 end ) - (func $~lib/array/Array#push (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.load offset=12 @@ -2915,7 +2912,30 @@ i32.store local.get $2 ) - (func $~lib/array/Array#pop (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/array/Array#pop (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2926,8 +2946,8 @@ i32.lt_s if i32.const 0 - i32.const 488 - i32.const 185 + i32.const 208 + i32.const 195 i32.const 20 call $~lib/env/abort unreachable @@ -2948,7 +2968,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#concat (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2994,7 +3014,7 @@ call $~lib/memory/memory.copy local.get $4 ) - (func $~lib/array/Array#copyWithin (; 38 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 41 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -3184,10 +3204,8 @@ end local.get $0 ) - (func $std/array/isArraysEqual (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $2 i32.eqz if @@ -3220,35 +3238,11 @@ i32.eqz br_if $break|0 local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -3265,7 +3259,7 @@ end i32.const 1 ) - (func $~lib/array/Array#unshift (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3298,7 +3292,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#shift (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3311,8 +3305,8 @@ i32.lt_s if i32.const 0 - i32.const 488 - i32.const 243 + i32.const 208 + i32.const 253 i32.const 20 call $~lib/env/abort unreachable @@ -3347,7 +3341,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3402,7 +3396,7 @@ end local.get $0 ) - (func $~lib/array/Array#indexOf (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3474,7 +3468,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -3482,7 +3476,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3622,12 +3616,39 @@ i32.store offset=12 local.get $6 ) - (func $start:std/array~anonymous|0 (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__set (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $start:std/array~anonymous|0 (; 50 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.eq ) - (func $~lib/array/Array#findIndex (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3686,17 +3707,17 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 53 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 50 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3705,12 +3726,12 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|4 (; 51 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|4 (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3718,12 +3739,12 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 53 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3783,12 +3804,12 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3797,12 +3818,12 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 58 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3810,12 +3831,12 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3874,12 +3895,12 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3888,12 +3909,12 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 64 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3901,13 +3922,13 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 65 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 69 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i ) - (func $~lib/array/Array#forEach (; 66 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 70 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3959,7 +3980,7 @@ unreachable end ) - (func $start:std/array~anonymous|17 (; 67 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 71 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3969,13 +3990,13 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|18 (; 68 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|18 (; 72 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|19 (; 69 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 73 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/array/Array#pop drop @@ -3984,7 +4005,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|20 (; 70 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 74 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 i32.const 0 @@ -4099,11 +4120,11 @@ end end ) - (func $start:std/array~anonymous|21 (; 71 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 75 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array#constructor (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -4128,7 +4149,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array#map (; 73 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 77 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4201,11 +4222,34 @@ end local.get $3 ) - (func $~lib/array/Array#get:length (; 74 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $start:std/array~anonymous|22 (; 75 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__get (; 79 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $start:std/array~anonymous|22 (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -4216,7 +4260,7 @@ global.set $std/array/i local.get $0 ) - (func $~lib/array/Array#map (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4288,14 +4332,14 @@ end local.get $3 ) - (func $start:std/array~anonymous|23 (; 77 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|24 (; 78 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -4305,12 +4349,12 @@ global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|25 (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 84 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 80 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 85 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4380,7 +4424,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|26 (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 86 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -4393,7 +4437,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 82 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $std/array/i local.get $0 i32.add @@ -4402,7 +4446,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -4414,12 +4458,12 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 84 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 89 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4477,12 +4521,12 @@ end local.get $3 ) - (func $start:std/array~anonymous|30 (; 86 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|30 (; 91 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $start:std/array~anonymous|31 (; 87 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 92 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4494,7 +4538,7 @@ i32.gt_s end ) - (func $~lib/array/Array#reduce (; 88 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4552,7 +4596,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|32 (; 89 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 94 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4564,7 +4608,7 @@ i32.gt_s end ) - (func $start:std/array~anonymous|33 (; 90 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 95 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 i32.const 1 call $~lib/array/Array#push @@ -4573,12 +4617,12 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|34 (; 91 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|34 (; 96 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 92 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 97 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/array/Array#pop drop @@ -4586,12 +4630,12 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|36 (; 93 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|36 (; 98 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 94 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -4636,12 +4680,12 @@ end local.get $3 ) - (func $start:std/array~anonymous|37 (; 95 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|37 (; 100 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $start:std/array~anonymous|38 (; 96 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|38 (; 101 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4653,7 +4697,7 @@ i32.gt_s end ) - (func $~lib/array/Array#reduceRight (; 97 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 102 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -4698,7 +4742,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|39 (; 98 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|39 (; 103 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -4710,7 +4754,7 @@ i32.gt_s end ) - (func $start:std/array~anonymous|40 (; 99 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|40 (; 104 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 i32.const 1 call $~lib/array/Array#push @@ -4719,12 +4763,12 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|41 (; 100 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|41 (; 105 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $start:std/array~anonymous|42 (; 101 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|42 (; 106 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/array/Array#pop drop @@ -4732,7 +4776,7 @@ local.get $1 i32.add ) - (func $~lib/math/murmurHash3 (; 102 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 107 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -4761,7 +4805,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 103 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 108 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -4796,7 +4840,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 104 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 109 ;) (type $FUNCSIG$vj) (param $0 i64) local.get $0 i64.eqz if @@ -4825,7 +4869,7 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/util/sort/insertionSort (; 105 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 110 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f32) (local $5 i32) @@ -4921,7 +4965,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 106 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 111 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5221,7 +5265,7 @@ local.get $10 f32.store ) - (func $~lib/array/Array#sort (; 107 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 112 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -5233,8 +5277,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -5307,7 +5351,7 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 108 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 113 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5340,7 +5384,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 109 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 114 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -5359,15 +5403,13 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/builtins/isNaN (; 110 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 115 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $std/array/isArraysEqual (; 111 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 116 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $2 i32.eqz if @@ -5402,71 +5444,23 @@ br_if $break|0 block local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get call $~lib/builtins/isNaN local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get call $~lib/builtins/isNaN i32.eq if br $continue|0 end local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get f32.ne if i32.const 0 @@ -5485,7 +5479,7 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 112 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 117 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -5581,7 +5575,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 113 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 118 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5881,7 +5875,7 @@ local.get $10 f64.store ) - (func $~lib/array/Array#sort (; 114 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 119 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -5893,8 +5887,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -5967,7 +5961,7 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 115 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 120 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -6000,7 +5994,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 116 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 121 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -6019,19 +6013,40 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array#get:length (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 122 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/builtins/isNaN (; 118 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/array/Array#__get (; 123 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/builtins/isNaN (; 124 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $std/array/isArraysEqual (; 119 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 125 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $2 i32.eqz if @@ -6066,71 +6081,23 @@ br_if $break|0 block local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get call $~lib/builtins/isNaN local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get call $~lib/builtins/isNaN i32.eq if br $continue|0 end local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get f64.ne if i32.const 0 @@ -6149,7 +6116,7 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 120 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 126 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6245,7 +6212,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 121 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 127 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6545,7 +6512,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 122 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6555,8 +6522,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -6629,12 +6596,12 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 124 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -6653,7 +6620,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/util/sort/insertionSort (; 125 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 131 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6749,7 +6716,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 126 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 132 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7049,7 +7016,7 @@ local.get $10 i32.store ) - (func $~lib/array/Array#sort (; 127 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7059,8 +7026,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -7133,7 +7100,7 @@ end local.get $0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 134 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -7142,7 +7109,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -7161,7 +7128,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $std/array/createReverseOrderedArray (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 136 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) i32.const 0 @@ -7179,18 +7146,14 @@ i32.eqz br_if $break|0 local.get $1 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - i32.add local.get $1 call $~lib/array/Array#get:length i32.const 1 i32.sub local.get $2 i32.sub - i32.store + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -7202,7 +7165,7 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 131 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 137 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -7259,7 +7222,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 138 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) i32.const 0 @@ -7277,18 +7240,14 @@ i32.eqz br_if $break|0 local.get $1 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - i32.add call $~lib/math/NativeMath.random local.get $1 call $~lib/array/Array#get:length f64.convert_i32_s f64.mul i32.trunc_f64_s - i32.store + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -7300,16 +7259,14 @@ end local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $std/array/isSorted (; 134 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 140 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) block $break|0 block i32.const 1 @@ -7328,37 +7285,13 @@ i32.const 2 global.set $~lib/argc local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 i32.const 1 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 call_indirect (type $FUNCSIG$iii) end @@ -7379,7 +7312,7 @@ end i32.const 1 ) - (func $std/array/assertSorted (; 135 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 141 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array#sort @@ -7395,7 +7328,7 @@ unreachable end ) - (func $std/array/assertSortedDefault (; 136 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/array/assertSortedDefault (; 142 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 block $~lib/util/sort/COMPARATOR|inlined.1 (result i32) i32.const 48 @@ -7403,27 +7336,27 @@ end call $std/array/assertSorted ) - (func $start:std/array~anonymous|43 (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|43 (; 143 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|44 (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $start:std/array~anonymous|45 (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|45 (; 145 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|46 (; 140 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|46 (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array>#constructor (; 141 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 147 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -7448,38 +7381,63 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array>#get:length (; 142 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 148 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/runtime/assertRegistered (; 143 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array>#__set (; 149 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - i32.load - global.get $~lib/runtime/HEADER_MAGIC - i32.ne - i32.eqz + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $~lib/array/Array>#__get (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u if i32.const 0 - i32.const 16 - i32.const 199 - i32.const 2 + i32.const 208 + i32.const 68 + i32.const 61 call $~lib/env/abort unreachable end - ) - (func $~lib/runtime/doLink (; 144 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 - call $~lib/runtime/assertRegistered + i32.load offset=4 local.get $1 - call $~lib/runtime/assertRegistered + i32.const 2 + i32.shl + i32.add + i32.load ) - (func $std/array/createReverseOrderedNestedArray (; 145 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 151 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) i32.const 0 local.get $0 call $~lib/array/Array>#constructor @@ -7496,46 +7454,22 @@ br_if $break|0 block local.get $1 - local.tee $3 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - i32.add - block $~lib/runtime/LINK,Array>>|inlined.0 (result i32) - i32.const 0 - i32.const 1 - call $~lib/array/Array#constructor - local.set $4 - local.get $4 - local.get $3 - call $~lib/runtime/doLink - local.get $4 - end - i32.store + i32.const 0 + i32.const 1 + call $~lib/array/Array#constructor + call $~lib/array/Array>#__set local.get $1 - local.tee $3 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.load offset=4 + call $~lib/array/Array>#__get + i32.const 0 local.get $1 call $~lib/array/Array>#get:length i32.const 1 i32.sub local.get $2 i32.sub - i32.store + call $~lib/array/Array#__set end local.get $2 i32.const 1 @@ -7548,42 +7482,16 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $start:std/array~anonymous|47 (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.sub ) - (func $~lib/util/sort/insertionSort> (; 147 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 153 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7679,7 +7587,7 @@ unreachable end ) - (func $~lib/array/Array>#sort (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7689,8 +7597,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -7753,11 +7661,9 @@ end local.get $0 ) - (func $std/array/isSorted> (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) block $break|0 block i32.const 1 @@ -7776,37 +7682,13 @@ i32.const 2 global.set $~lib/argc local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 i32.const 1 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array>#__get local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array>#__get local.get $1 call_indirect (type $FUNCSIG$iii) end @@ -7827,7 +7709,7 @@ end i32.const 1 ) - (func $std/array/assertSorted> (; 150 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 156 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array>#sort @@ -7843,7 +7725,7 @@ unreachable end ) - (func $~lib/array/Array>#constructor (; 151 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -7868,11 +7750,11 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array>#get:length (; 152 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 158 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/array/Proxy#constructor (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.eqz @@ -7892,11 +7774,36 @@ i32.store local.get $0 ) - (func $std/array/createReverseOrderedElementsArray (; 154 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#__set (; 160 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $std/array/createReverseOrderedElementsArray (; 161 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) i32.const 0 local.get $0 call $~lib/array/Array>#constructor @@ -7912,28 +7819,16 @@ i32.eqz br_if $break|0 local.get $1 - local.tee $3 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - i32.add - block $~lib/runtime/LINK,Array>>|inlined.0 (result i32) - i32.const 0 - local.get $1 - call $~lib/array/Array>#get:length - i32.const 1 - i32.sub - local.get $2 - i32.sub - call $std/array/Proxy#constructor - local.set $4 - local.get $4 - local.get $3 - call $~lib/runtime/doLink - local.get $4 - end - i32.store + i32.const 0 + local.get $1 + call $~lib/array/Array>#get:length + i32.const 1 + i32.sub + local.get $2 + i32.sub + call $std/array/Proxy#constructor + call $~lib/array/Array>#__set local.get $2 i32.const 1 i32.add @@ -7945,14 +7840,14 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load local.get $1 i32.load i32.sub ) - (func $~lib/util/sort/insertionSort> (; 156 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 163 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8048,7 +7943,7 @@ unreachable end ) - (func $~lib/array/Array>#sort (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8058,8 +7953,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -8122,11 +8017,32 @@ end local.get $0 ) - (func $std/array/isSorted> (; 158 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/array/isSorted> (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) block $break|0 block i32.const 1 @@ -8145,37 +8061,13 @@ i32.const 2 global.set $~lib/argc local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 i32.const 1 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array>#__get local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array>#__get local.get $1 call_indirect (type $FUNCSIG$iii) end @@ -8196,7 +8088,7 @@ end i32.const 1 ) - (func $std/array/assertSorted> (; 159 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 167 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array>#sort @@ -8212,7 +8104,7 @@ unreachable end ) - (func $~lib/util/sort/insertionSort (; 160 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 168 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8308,7 +8200,7 @@ unreachable end ) - (func $~lib/array/Array#sort (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8318,8 +8210,8 @@ i32.eqz if i32.const 0 - i32.const 488 - i32.const 347 + i32.const 208 + i32.const 357 i32.const 4 call $~lib/env/abort unreachable @@ -8382,15 +8274,36 @@ end local.get $0 ) - (func $~lib/array/Array#get:length (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 170 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/array/isSorted (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 208 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/array/isSorted (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) block $break|0 block i32.const 1 @@ -8409,37 +8322,13 @@ i32.const 2 global.set $~lib/argc local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 i32.const 1 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 call_indirect (type $FUNCSIG$iii) end @@ -8460,7 +8349,7 @@ end i32.const 1 ) - (func $std/array/assertSorted (; 164 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 173 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/array/Array#sort @@ -8476,7 +8365,7 @@ unreachable end ) - (func $~lib/string/String#get:length (; 165 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 174 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 global.get $~lib/runtime/HEADER_SIZE i32.sub @@ -8484,7 +8373,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 166 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 175 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -8537,7 +8426,7 @@ end local.get $5 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8610,7 +8499,7 @@ select call $~lib/util/string/compareImpl ) - (func $std/array/assertSorted|trampoline (; 168 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted|trampoline (; 177 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -8631,7 +8520,7 @@ local.get $1 call $std/array/assertSorted ) - (func $~lib/string/String.__eq (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -8675,16 +8564,14 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $~lib/string/String.__ne (; 170 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/string/String.__eq i32.eqz ) - (func $std/array/isArraysEqual (; 171 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 180 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $2 i32.eqz if @@ -8717,35 +8604,11 @@ i32.eqz br_if $break|0 local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get call $~lib/string/String.__ne if i32.const 0 @@ -8762,7 +8625,7 @@ end i32.const 1 ) - (func $~lib/array/Array#constructor (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -8787,7 +8650,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/string/String#charAt (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -8833,7 +8696,7 @@ call $~lib/runtime/doRegister end ) - (func $~lib/string/String#concat (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8892,7 +8755,7 @@ call $~lib/runtime/doRegister end ) - (func $~lib/string/String.__concat (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 184 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 3440 local.get $0 @@ -8902,7 +8765,7 @@ local.get $1 call $~lib/string/String#concat ) - (func $std/array/createRandomString (; 176 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -8944,11 +8807,36 @@ end local.get $1 ) - (func $std/array/createRandomStringArray (; 177 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__set (; 186 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $std/array/createRandomStringArray (; 187 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) i32.const 0 local.get $0 call $~lib/array/Array#constructor @@ -8964,25 +8852,13 @@ i32.eqz br_if $break|0 local.get $1 - local.tee $3 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - i32.add - block $~lib/runtime/LINK>|inlined.0 (result i32) - call $~lib/math/NativeMath.random - f64.const 32 - f64.mul - i32.trunc_f64_s - call $std/array/createRandomString - local.set $4 - local.get $4 - local.get $3 - call $~lib/runtime/doLink - local.get $4 - end - i32.store + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_f64_s + call $std/array/createRandomString + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -8994,7 +8870,7 @@ end local.get $1 ) - (func $~lib/string/String#substring (; 178 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 188 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9120,7 +8996,7 @@ call $~lib/runtime/doRegister end ) - (func $~lib/runtime/doDiscard (; 179 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/doDiscard (; 189 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/runtime/assertUnregistered local.get $0 @@ -9128,7 +9004,7 @@ i32.sub call $~lib/memory/memory.free ) - (func $~lib/array/Array#join_bool (; 180 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_bool (; 190 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9315,13 +9191,13 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 191 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_bool return ) - (func $~lib/util/number/decimalCount32 (; 182 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 192 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -9390,7 +9266,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa32_lut (; 183 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 193 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9533,7 +9409,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 184 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 194 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9597,12 +9473,12 @@ call $~lib/runtime/doRegister end ) - (func $~lib/util/number/itoa (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 195 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 186 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 196 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9661,7 +9537,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 187 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9807,13 +9683,13 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 188 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/util/number/utoa32 (; 189 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 199 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9857,12 +9733,12 @@ call $~lib/runtime/doRegister end ) - (func $~lib/util/number/itoa (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 200 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 191 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 201 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9901,7 +9777,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10047,20 +9923,20 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/builtins/isFinite (; 194 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 204 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/util/number/genDigits (; 195 ;) (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 (; 205 ;) (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 i64) (local $9 i64) @@ -10631,7 +10507,7 @@ end local.get $15 ) - (func $~lib/util/number/prettify (; 196 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 206 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10964,7 +10840,7 @@ unreachable unreachable ) - (func $~lib/util/number/dtoa_core (; 197 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 207 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -11410,7 +11286,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 198 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 208 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11466,7 +11342,7 @@ end local.get $4 ) - (func $~lib/util/number/dtoa_stream (; 199 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 209 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11540,7 +11416,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 200 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_flt (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11686,13 +11562,13 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 201 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_flt return ) - (func $~lib/array/Array#join_str (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_str (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11884,13 +11760,13 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 203 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_str return ) - (func $std/array/Ref#constructor (; 204 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Ref#constructor (; 214 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.eqz @@ -11907,7 +11783,7 @@ end local.get $0 ) - (func $~lib/array/Array#constructor (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 215 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -11932,7 +11808,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array#__set (; 206 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 216 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -11959,7 +11835,7 @@ i32.store offset=12 end ) - (func $~lib/array/Array#join_ref (; 207 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_ref (; 217 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12121,18 +11997,18 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 208 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_ref return ) - (func $~lib/array/Array#toString (; 209 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 219 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 210 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 220 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -12141,7 +12017,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 211 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 221 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12216,7 +12092,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 212 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12362,25 +12238,25 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 223 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 214 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 224 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 215 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 225 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 65535 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 216 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 226 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12425,7 +12301,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 217 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 227 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12571,18 +12447,18 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 228 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 219 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 229 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/util/number/decimalCount64 (; 220 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 230 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -12651,7 +12527,7 @@ unreachable unreachable ) - (func $~lib/util/number/utoa64_lut (; 221 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 231 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -12779,7 +12655,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 222 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 232 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12859,12 +12735,12 @@ call $~lib/runtime/doRegister end ) - (func $~lib/util/number/itoa (; 223 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 233 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 224 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 234 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12930,7 +12806,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 225 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 235 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13076,18 +12952,18 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 236 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 227 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 237 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa64 (; 228 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 238 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13189,12 +13065,12 @@ call $~lib/runtime/doRegister end ) - (func $~lib/util/number/itoa (; 229 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 239 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 230 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 240 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13282,7 +13158,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 231 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 241 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13428,50 +13304,23 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 232 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array#toString (; 233 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 243 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/array/Array#toString (; 234 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 244 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array#join ) - (func $~lib/array/Array>#__set (; 235 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - call $~lib/array/ensureCapacity - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=12 - end - ) - (func $~lib/array/Array>#join_arr (; 236 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#join_arr (; 245 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13575,18 +13424,18 @@ end local.get $3 ) - (func $~lib/array/Array>#join (; 237 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#join (; 246 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array>#join_arr return ) - (func $~lib/array/Array>#toString (; 238 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#toString (; 247 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array>#join ) - (func $~lib/array/Array>#constructor (; 239 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 248 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -13611,7 +13460,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array>#__set (; 240 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 249 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -13638,14 +13487,14 @@ i32.store offset=12 end ) - (func $~lib/util/number/itoa (; 241 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 250 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 242 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 251 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13690,7 +13539,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 243 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 252 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13836,13 +13685,13 @@ call $~lib/runtime/doRegister end ) - (func $~lib/array/Array#join (; 244 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array#join_int return ) - (func $~lib/array/Array>#join_arr (; 245 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#join_arr (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13946,18 +13795,18 @@ end local.get $3 ) - (func $~lib/array/Array>#join (; 246 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#join (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array>#join_arr return ) - (func $~lib/array/Array>#toString (; 247 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>#toString (; 256 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array>#join ) - (func $~lib/array/Array>#constructor (; 248 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 257 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -13982,7 +13831,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array>#__set (; 249 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 258 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -14009,7 +13858,7 @@ i32.store offset=12 end ) - (func $~lib/array/Array>>#constructor (; 250 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>>#constructor (; 259 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -14034,7 +13883,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array>>#__set (; 251 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>>#__set (; 260 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -14061,7 +13910,7 @@ i32.store offset=12 end ) - (func $~lib/array/Array>#join_arr (; 252 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#join_arr (; 261 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14165,13 +14014,13 @@ end local.get $3 ) - (func $~lib/array/Array>#join (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#join (; 262 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array>#join_arr return ) - (func $~lib/array/Array>>#join_arr (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>>#join_arr (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14275,25 +14124,24 @@ end local.get $3 ) - (func $~lib/array/Array>>#join (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>>#join (; 264 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 call $~lib/array/Array>>#join_arr return ) - (func $~lib/array/Array>>#toString (; 256 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array>>#toString (; 265 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 3512 call $~lib/array/Array>>#join ) - (func $start:std/array (; 257 ;) (type $FUNCSIG$v) + (func $start:std/array (; 266 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/HEAP_BASE i32.const 7 i32.add @@ -14423,7 +14271,7 @@ drop global.get $std/array/arr8 block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) - i32.const 208 + i32.const 248 local.set $0 local.get $0 i32.const 7 @@ -14449,7 +14297,7 @@ drop global.get $std/array/arr8 block $~lib/runtime/WRAPARRAY|inlined.2 (result i32) - i32.const 224 + i32.const 264 local.set $0 local.get $0 i32.const 7 @@ -14475,7 +14323,7 @@ drop global.get $std/array/arr8 block $~lib/runtime/WRAPARRAY|inlined.3 (result i32) - i32.const 240 + i32.const 280 local.set $0 local.get $0 i32.const 7 @@ -14501,7 +14349,7 @@ drop global.get $std/array/arr8 block $~lib/runtime/WRAPARRAY|inlined.4 (result i32) - i32.const 256 + i32.const 296 local.set $0 local.get $0 i32.const 7 @@ -14527,7 +14375,7 @@ drop global.get $std/array/arr32 block $~lib/runtime/WRAPARRAY|inlined.0 (result i32) - i32.const 328 + i32.const 368 local.set $0 local.get $0 i32.const 8 @@ -14553,7 +14401,7 @@ drop global.get $std/array/arr32 block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) - i32.const 360 + i32.const 400 local.set $0 local.get $0 i32.const 8 @@ -14579,7 +14427,7 @@ drop global.get $std/array/arr32 block $~lib/runtime/WRAPARRAY|inlined.2 (result i32) - i32.const 392 + i32.const 432 local.set $0 local.get $0 i32.const 8 @@ -14605,7 +14453,7 @@ drop global.get $std/array/arr32 block $~lib/runtime/WRAPARRAY|inlined.3 (result i32) - i32.const 424 + i32.const 464 local.set $0 local.get $0 i32.const 8 @@ -14631,7 +14479,7 @@ drop global.get $std/array/arr32 block $~lib/runtime/WRAPARRAY|inlined.4 (result i32) - i32.const 456 + i32.const 496 local.set $0 local.get $0 i32.const 8 @@ -14680,20 +14528,8 @@ call $~lib/array/Array#push drop global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.eq i32.eqz @@ -14803,20 +14639,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -14859,20 +14683,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -14885,20 +14697,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -14941,20 +14741,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -14967,20 +14755,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -14993,20 +14769,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 45 i32.eq i32.eqz @@ -15090,20 +14854,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -15116,20 +14868,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -15142,20 +14882,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 45 i32.eq i32.eqz @@ -15219,20 +14947,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -15245,20 +14961,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -15271,20 +14975,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 45 i32.eq i32.eqz @@ -15297,20 +14989,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 3 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 46 i32.eq i32.eqz @@ -15323,20 +15003,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 4 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 47 i32.eq i32.eqz @@ -15382,20 +15050,8 @@ unreachable end global.get $std/array/out - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 45 i32.eq i32.eqz @@ -15877,20 +15533,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.eq i32.eqz @@ -15903,20 +15547,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -15929,20 +15561,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -15955,20 +15575,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 3 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 45 i32.eq i32.eqz @@ -16011,20 +15619,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 41 i32.eq i32.eqz @@ -16037,20 +15633,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.eq i32.eqz @@ -16063,20 +15647,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -16089,20 +15661,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 3 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -16115,20 +15675,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 4 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 45 i32.eq i32.eqz @@ -16182,20 +15730,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.eq i32.eqz @@ -16208,20 +15744,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -16234,20 +15758,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -16260,20 +15772,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 3 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 45 i32.eq i32.eqz @@ -16327,20 +15827,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.eq i32.eqz @@ -16353,20 +15841,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -16379,20 +15855,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -16434,20 +15898,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -16460,20 +15912,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 43 i32.eq i32.eqz @@ -16486,20 +15926,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.eq i32.eqz @@ -16891,20 +16319,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 44 i32.eq i32.eqz @@ -16917,20 +16333,8 @@ unreachable end global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 42 i32.eq i32.eqz @@ -17610,21 +17014,21 @@ unreachable end global.get $std/array/arr - i32.load offset=4 i32.const 0 - i32.store + i32.const 0 + call $~lib/array/Array#__set global.get $std/array/arr - i32.load offset=4 i32.const 1 - i32.store offset=4 + i32.const 1 + call $~lib/array/Array#__set global.get $std/array/arr - i32.load offset=4 i32.const 2 - i32.store offset=8 + i32.const 2 + call $~lib/array/Array#__set global.get $std/array/arr - i32.load offset=4 i32.const 3 - i32.store offset=12 + i32.const 3 + call $~lib/array/Array#__set global.get $std/array/arr i32.const 1 call $~lib/array/Array#findIndex @@ -18204,35 +17608,11 @@ unreachable end global.get $std/array/newArr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get global.get $std/array/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f32.convert_i32_s f32.eq i32.eqz @@ -19250,22 +18630,22 @@ i32.const 0 i32.const 3 call $~lib/array/Array#constructor - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 end global.set $std/array/refArr global.get $std/array/refArr @@ -19336,8 +18716,8 @@ end block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) i32.const 5808 - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 20 i32.const 0 call $~lib/runtime/doWrapArray @@ -19356,8 +18736,8 @@ end block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) i32.const 5864 - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 21 i32.const 1 call $~lib/runtime/doWrapArray @@ -19376,8 +18756,8 @@ end block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) i32.const 5944 - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 16 i32.const 3 call $~lib/runtime/doWrapArray @@ -19396,8 +18776,8 @@ end block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) i32.const 6072 - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 22 i32.const 3 call $~lib/runtime/doWrapArray @@ -19429,8 +18809,8 @@ end block $~lib/runtime/WRAPARRAY|inlined.3 (result i32) i32.const 6304 - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 14 i32.const 2 call $~lib/runtime/doWrapArray @@ -19451,30 +18831,30 @@ i32.const 0 i32.const 2 call $~lib/array/Array>#constructor - local.set $3 - local.get $3 + local.set $2 + local.get $2 i32.const 0 block $~lib/runtime/WRAPARRAY|inlined.70 (result i32) i32.const 6352 - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 4 i32.const 2 call $~lib/runtime/doWrapArray end call $~lib/array/Array>#__set - local.get $3 + local.get $2 i32.const 1 block $~lib/runtime/WRAPARRAY|inlined.71 (result i32) i32.const 6368 - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 4 i32.const 2 call $~lib/runtime/doWrapArray end call $~lib/array/Array>#__set - local.get $3 + local.get $2 end global.set $std/array/subarr32 global.get $std/array/subarr32 @@ -19494,30 +18874,30 @@ i32.const 0 i32.const 2 call $~lib/array/Array>#constructor - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.const 0 block $~lib/runtime/WRAPARRAY|inlined.5 (result i32) i32.const 6408 - local.set $3 - local.get $3 + local.set $2 + local.get $2 i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray end call $~lib/array/Array>#__set - local.get $4 + local.get $3 i32.const 1 block $~lib/runtime/WRAPARRAY|inlined.6 (result i32) i32.const 6424 - local.set $3 - local.get $3 + local.set $2 + local.get $2 i32.const 7 i32.const 0 call $~lib/runtime/doWrapArray end call $~lib/array/Array>#__set - local.get $4 + local.get $3 end global.set $std/array/subarr8 global.get $std/array/subarr8 @@ -19537,29 +18917,29 @@ i32.const 0 i32.const 1 call $~lib/array/Array>>#constructor - local.set $6 - local.get $6 + local.set $5 + local.get $5 i32.const 0 block (result i32) i32.const 0 i32.const 1 call $~lib/array/Array>#constructor - local.set $5 - local.get $5 + local.set $4 + local.get $4 i32.const 0 block $~lib/runtime/WRAPARRAY|inlined.8 (result i32) i32.const 6440 - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.const 8 i32.const 2 call $~lib/runtime/doWrapArray end call $~lib/array/Array>#__set - local.get $5 + local.get $4 end call $~lib/array/Array>>#__set - local.get $6 + local.get $5 end global.set $std/array/subarrU32 global.get $std/array/subarrU32 @@ -19576,9 +18956,9 @@ unreachable end ) - (func $start (; 258 ;) (type $FUNCSIG$v) + (func $start (; 267 ;) (type $FUNCSIG$v) call $start:std/array ) - (func $null (; 259 ;) (type $FUNCSIG$v) + (func $null (; 268 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index b1122c5f..e155ad9c 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -3,6 +3,7 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$fiii (func (param i32 i32 i32) (result f32))) (type $FUNCSIG$jj (func (param i64) (result i64))) @@ -11,14 +12,14 @@ (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$vifi (func (param i32 f32 i32))) (type $FUNCSIG$vidi (func (param i32 f64 i32))) - (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$viji (func (param i32 i64 i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 48) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 96) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") - (data (i32.const 136) "\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") + (data (i32.const 96) "\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 144) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") + (data (i32.const 184) "\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -157,7 +158,7 @@ ) (func $~lib/runtime/assertUnregistered (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.const 176 + i32.const 224 i32.le_u if i32.const 0 @@ -231,7 +232,27 @@ i32.store offset=8 local.get $0 ) - (func $~lib/dataview/DataView#constructor (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__set (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 104 + i32.const 111 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/dataview/DataView#constructor (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) block (result i32) local.get $2 @@ -252,7 +273,7 @@ end if i32.const 0 - i32.const 104 + i32.const 152 i32.const 18 i32.const 47 call $~lib/env/abort @@ -268,7 +289,7 @@ i32.gt_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 19 i32.const 63 call $~lib/env/abort @@ -300,7 +321,7 @@ i32.store offset=8 local.get $3 ) - (func $~lib/dataview/DataView#getFloat32 (; 8 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $~lib/dataview/DataView#getFloat32 (; 9 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $1 i32.const 0 i32.lt_s @@ -313,7 +334,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 42 i32.const 6 call $~lib/env/abort @@ -346,7 +367,7 @@ f32.reinterpret_i32 end ) - (func $~lib/polyfills/bswap (; 9 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/polyfills/bswap (; 10 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 i64.const 8 i64.shr_u @@ -372,14 +393,14 @@ i64.const 32 i64.rotr ) - (func $~lib/dataview/DataView#getFloat64 (; 10 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/dataview/DataView#getFloat64 (; 11 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) i32.const 8 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 56 i32.const 7 call $~lib/env/abort @@ -398,14 +419,14 @@ f64.reinterpret_i64 end ) - (func $~lib/dataview/DataView#getInt8 (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/dataview/DataView#getInt8 (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 67 i32.const 49 call $~lib/env/abort @@ -417,7 +438,7 @@ i32.add i32.load8_s ) - (func $~lib/dataview/DataView#getInt16 (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getInt16 (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 0 i32.lt_s @@ -430,7 +451,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 75 i32.const 7 call $~lib/env/abort @@ -459,7 +480,7 @@ i32.or end ) - (func $~lib/dataview/DataView#getInt32 (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getInt32 (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 0 i32.lt_s @@ -472,7 +493,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 84 i32.const 7 call $~lib/env/abort @@ -501,7 +522,7 @@ i32.or end ) - (func $~lib/dataview/DataView#getInt64 (; 14 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/dataview/DataView#getInt64 (; 15 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i64) i32.const 8 local.get $0 @@ -509,7 +530,7 @@ i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 178 i32.const 6 call $~lib/env/abort @@ -527,14 +548,14 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#getUint8 (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/dataview/DataView#getUint8 (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 90 i32.const 49 call $~lib/env/abort @@ -546,7 +567,7 @@ i32.add i32.load8_u ) - (func $~lib/dataview/DataView#getUint16 (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getUint16 (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 0 i32.lt_s @@ -559,7 +580,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 98 i32.const 6 call $~lib/env/abort @@ -586,7 +607,7 @@ i32.or end ) - (func $~lib/dataview/DataView#getUint32 (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getUint32 (; 18 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 0 i32.lt_s @@ -599,7 +620,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 107 i32.const 6 call $~lib/env/abort @@ -628,7 +649,7 @@ i32.or end ) - (func $~lib/dataview/DataView#getUint64 (; 18 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/dataview/DataView#getUint64 (; 19 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i64) i32.const 8 local.get $0 @@ -636,7 +657,7 @@ i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 187 i32.const 6 call $~lib/env/abort @@ -654,14 +675,14 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#setFloat32 (; 19 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) + (func $~lib/dataview/DataView#setFloat32 (; 20 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32) i32.const 4 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 116 i32.const 6 call $~lib/env/abort @@ -692,14 +713,14 @@ i32.store end ) - (func $~lib/dataview/DataView#setFloat64 (; 20 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) + (func $~lib/dataview/DataView#setFloat64 (; 21 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32) i32.const 8 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 125 i32.const 6 call $~lib/env/abort @@ -720,14 +741,14 @@ i64.store end ) - (func $~lib/dataview/DataView#setInt8 (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/dataview/DataView#setInt8 (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 0 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 131 i32.const 49 call $~lib/env/abort @@ -738,14 +759,14 @@ i32.const 108 i32.store8 ) - (func $~lib/dataview/DataView#setInt16 (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setInt16 (; 23 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) i32.const 2 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 139 i32.const 6 call $~lib/env/abort @@ -774,14 +795,14 @@ local.get $1 i32.store16 ) - (func $~lib/dataview/DataView#setInt32 (; 23 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setInt32 (; 24 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) i32.const 4 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 147 i32.const 6 call $~lib/env/abort @@ -810,14 +831,14 @@ local.get $1 i32.store ) - (func $~lib/dataview/DataView#setInt64 (; 24 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/dataview/DataView#setInt64 (; 25 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) i32.const 8 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 196 i32.const 6 call $~lib/env/abort @@ -834,14 +855,14 @@ end i64.store ) - (func $~lib/dataview/DataView#setUint8 (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/dataview/DataView#setUint8 (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 0 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 152 i32.const 49 call $~lib/env/abort @@ -852,14 +873,14 @@ i32.const 238 i32.store8 ) - (func $~lib/dataview/DataView#setUint16 (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setUint16 (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) i32.const 2 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 160 i32.const 6 call $~lib/env/abort @@ -886,14 +907,14 @@ local.get $1 i32.store16 ) - (func $~lib/dataview/DataView#setUint32 (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setUint32 (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) i32.const 4 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 168 i32.const 6 call $~lib/env/abort @@ -922,14 +943,14 @@ local.get $1 i32.store ) - (func $~lib/dataview/DataView#setUint64 (; 28 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/dataview/DataView#setUint64 (; 29 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) i32.const 8 local.get $0 i32.load offset=8 i32.gt_s if i32.const 0 - i32.const 104 + i32.const 152 i32.const 204 i32.const 6 call $~lib/env/abort @@ -946,10 +967,9 @@ end i64.store ) - (func $start:std/dataview (; 29 ;) (type $FUNCSIG$v) + (func $start:std/dataview (; 30 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - i32.const 176 + i32.const 224 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset @@ -960,47 +980,46 @@ call $~lib/runtime/ArrayBufferView#constructor global.set $std/dataview/array global.get $std/dataview/array - local.tee $1 - local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 246 - i32.store8 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + i32.const 1 i32.const 224 - i32.store8 offset=1 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + i32.const 2 i32.const 88 - i32.store8 offset=2 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + i32.const 3 i32.const 159 - i32.store8 offset=3 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + i32.const 4 i32.const 130 - i32.store8 offset=4 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + i32.const 5 i32.const 101 - i32.store8 offset=5 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + i32.const 6 i32.const 67 - i32.store8 offset=6 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + i32.const 7 i32.const 95 - i32.store8 offset=7 - local.get $0 + call $~lib/typedarray/Uint8Array#__set + global.get $std/dataview/array + local.tee $0 i32.load local.get $0 i32.load offset=4 local.get $0 i32.load i32.sub - local.get $1 + local.get $0 i32.load offset=8 call $~lib/dataview/DataView#constructor global.set $std/dataview/view @@ -1012,7 +1031,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 16 i32.const 0 call $~lib/env/abort @@ -1026,7 +1045,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 17 i32.const 0 call $~lib/env/abort @@ -1040,7 +1059,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 18 i32.const 0 call $~lib/env/abort @@ -1054,7 +1073,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 19 i32.const 0 call $~lib/env/abort @@ -1068,7 +1087,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 20 i32.const 0 call $~lib/env/abort @@ -1082,7 +1101,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 22 i32.const 0 call $~lib/env/abort @@ -1096,7 +1115,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 23 i32.const 0 call $~lib/env/abort @@ -1110,7 +1129,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 24 i32.const 0 call $~lib/env/abort @@ -1124,7 +1143,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 25 i32.const 0 call $~lib/env/abort @@ -1138,7 +1157,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 26 i32.const 0 call $~lib/env/abort @@ -1151,7 +1170,7 @@ f64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 28 i32.const 0 call $~lib/env/abort @@ -1164,7 +1183,7 @@ f64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 29 i32.const 0 call $~lib/env/abort @@ -1177,7 +1196,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 31 i32.const 0 call $~lib/env/abort @@ -1190,7 +1209,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 32 i32.const 0 call $~lib/env/abort @@ -1203,7 +1222,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 33 i32.const 0 call $~lib/env/abort @@ -1216,7 +1235,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 34 i32.const 0 call $~lib/env/abort @@ -1229,7 +1248,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 35 i32.const 0 call $~lib/env/abort @@ -1242,7 +1261,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 36 i32.const 0 call $~lib/env/abort @@ -1255,7 +1274,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 37 i32.const 0 call $~lib/env/abort @@ -1268,7 +1287,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 38 i32.const 0 call $~lib/env/abort @@ -1284,7 +1303,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 40 i32.const 0 call $~lib/env/abort @@ -1300,7 +1319,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 41 i32.const 0 call $~lib/env/abort @@ -1316,7 +1335,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 42 i32.const 0 call $~lib/env/abort @@ -1332,7 +1351,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 43 i32.const 0 call $~lib/env/abort @@ -1348,7 +1367,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 44 i32.const 0 call $~lib/env/abort @@ -1364,7 +1383,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 45 i32.const 0 call $~lib/env/abort @@ -1380,7 +1399,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 46 i32.const 0 call $~lib/env/abort @@ -1396,7 +1415,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 48 i32.const 0 call $~lib/env/abort @@ -1412,7 +1431,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 49 i32.const 0 call $~lib/env/abort @@ -1428,7 +1447,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 50 i32.const 0 call $~lib/env/abort @@ -1444,7 +1463,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 51 i32.const 0 call $~lib/env/abort @@ -1460,7 +1479,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 52 i32.const 0 call $~lib/env/abort @@ -1476,7 +1495,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 53 i32.const 0 call $~lib/env/abort @@ -1492,7 +1511,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 54 i32.const 0 call $~lib/env/abort @@ -1506,7 +1525,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 56 i32.const 0 call $~lib/env/abort @@ -1520,7 +1539,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 57 i32.const 0 call $~lib/env/abort @@ -1534,7 +1553,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 58 i32.const 0 call $~lib/env/abort @@ -1548,7 +1567,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 59 i32.const 0 call $~lib/env/abort @@ -1562,7 +1581,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 60 i32.const 0 call $~lib/env/abort @@ -1576,7 +1595,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 62 i32.const 0 call $~lib/env/abort @@ -1590,7 +1609,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 63 i32.const 0 call $~lib/env/abort @@ -1604,7 +1623,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 64 i32.const 0 call $~lib/env/abort @@ -1618,7 +1637,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 65 i32.const 0 call $~lib/env/abort @@ -1632,7 +1651,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 66 i32.const 0 call $~lib/env/abort @@ -1645,7 +1664,7 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 68 i32.const 0 call $~lib/env/abort @@ -1658,7 +1677,7 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 69 i32.const 0 call $~lib/env/abort @@ -1671,7 +1690,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 71 i32.const 0 call $~lib/env/abort @@ -1684,7 +1703,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 72 i32.const 0 call $~lib/env/abort @@ -1697,7 +1716,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 73 i32.const 0 call $~lib/env/abort @@ -1710,7 +1729,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 74 i32.const 0 call $~lib/env/abort @@ -1723,7 +1742,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 75 i32.const 0 call $~lib/env/abort @@ -1736,7 +1755,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 76 i32.const 0 call $~lib/env/abort @@ -1749,7 +1768,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 77 i32.const 0 call $~lib/env/abort @@ -1762,7 +1781,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 78 i32.const 0 call $~lib/env/abort @@ -1778,7 +1797,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 80 i32.const 0 call $~lib/env/abort @@ -1794,7 +1813,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 81 i32.const 0 call $~lib/env/abort @@ -1810,7 +1829,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 82 i32.const 0 call $~lib/env/abort @@ -1826,7 +1845,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 83 i32.const 0 call $~lib/env/abort @@ -1842,7 +1861,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 84 i32.const 0 call $~lib/env/abort @@ -1858,7 +1877,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 85 i32.const 0 call $~lib/env/abort @@ -1874,7 +1893,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 86 i32.const 0 call $~lib/env/abort @@ -1890,7 +1909,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 88 i32.const 0 call $~lib/env/abort @@ -1906,7 +1925,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 89 i32.const 0 call $~lib/env/abort @@ -1922,7 +1941,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 90 i32.const 0 call $~lib/env/abort @@ -1938,7 +1957,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 91 i32.const 0 call $~lib/env/abort @@ -1954,7 +1973,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 92 i32.const 0 call $~lib/env/abort @@ -1970,7 +1989,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 93 i32.const 0 call $~lib/env/abort @@ -1986,7 +2005,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 94 i32.const 0 call $~lib/env/abort @@ -2000,7 +2019,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 96 i32.const 0 call $~lib/env/abort @@ -2014,7 +2033,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 97 i32.const 0 call $~lib/env/abort @@ -2028,7 +2047,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 98 i32.const 0 call $~lib/env/abort @@ -2042,7 +2061,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 99 i32.const 0 call $~lib/env/abort @@ -2056,7 +2075,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 100 i32.const 0 call $~lib/env/abort @@ -2070,7 +2089,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 102 i32.const 0 call $~lib/env/abort @@ -2084,7 +2103,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 103 i32.const 0 call $~lib/env/abort @@ -2098,7 +2117,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 104 i32.const 0 call $~lib/env/abort @@ -2112,7 +2131,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 105 i32.const 0 call $~lib/env/abort @@ -2126,7 +2145,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 106 i32.const 0 call $~lib/env/abort @@ -2139,7 +2158,7 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 108 i32.const 0 call $~lib/env/abort @@ -2152,7 +2171,7 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 109 i32.const 0 call $~lib/env/abort @@ -2170,7 +2189,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 112 i32.const 0 call $~lib/env/abort @@ -2188,7 +2207,7 @@ f32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 115 i32.const 0 call $~lib/env/abort @@ -2205,7 +2224,7 @@ f64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 118 i32.const 0 call $~lib/env/abort @@ -2222,7 +2241,7 @@ f64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 121 i32.const 0 call $~lib/env/abort @@ -2237,7 +2256,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 124 i32.const 0 call $~lib/env/abort @@ -2257,7 +2276,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 127 i32.const 0 call $~lib/env/abort @@ -2277,7 +2296,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 130 i32.const 0 call $~lib/env/abort @@ -2295,7 +2314,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 133 i32.const 0 call $~lib/env/abort @@ -2313,7 +2332,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 136 i32.const 0 call $~lib/env/abort @@ -2330,7 +2349,7 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 139 i32.const 0 call $~lib/env/abort @@ -2347,7 +2366,7 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 142 i32.const 0 call $~lib/env/abort @@ -2362,7 +2381,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 145 i32.const 0 call $~lib/env/abort @@ -2382,7 +2401,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 148 i32.const 0 call $~lib/env/abort @@ -2402,7 +2421,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 151 i32.const 0 call $~lib/env/abort @@ -2420,7 +2439,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 154 i32.const 0 call $~lib/env/abort @@ -2438,7 +2457,7 @@ i32.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 157 i32.const 0 call $~lib/env/abort @@ -2455,7 +2474,7 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 160 i32.const 0 call $~lib/env/abort @@ -2472,17 +2491,17 @@ i64.ne if i32.const 0 - i32.const 144 + i32.const 192 i32.const 163 i32.const 0 call $~lib/env/abort unreachable end ) - (func $start (; 30 ;) (type $FUNCSIG$v) + (func $start (; 31 ;) (type $FUNCSIG$v) call $start:std/dataview ) - (func $null (; 31 ;) (type $FUNCSIG$v) + (func $null (; 32 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index 0a3e00ee..f0a7ba27 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -18,8 +18,9 @@ (memory $0 1) (data (i32.const 8) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 48) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 96) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") - (data (i32.const 136) "\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") + (data (i32.const 96) "\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 144) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") + (data (i32.const 184) "\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0)) @@ -32,7 +33,7 @@ (global $std/dataview/array (mut i32) (i32.const 0)) (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) (global $std/dataview/view (mut i32) (i32.const 0)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 176)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 224)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) @@ -558,13 +559,33 @@ local.set $0 local.get $0 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__set (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 104 + i32.const 111 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 global.get $~lib/runtime/HEADER_SIZE i32.sub i32.load offset=4 ) - (func $~lib/dataview/DataView#constructor (; 12 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/dataview/DataView#constructor (; 13 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) local.get $3 @@ -582,7 +603,7 @@ i32.gt_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 18 i32.const 47 call $~lib/env/abort @@ -596,7 +617,7 @@ i32.gt_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 19 i32.const 63 call $~lib/env/abort @@ -641,22 +662,22 @@ i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Uint8Array#get:buffer (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#get:buffer (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load ) - (func $~lib/runtime/ArrayBufferView#get:byteOffset (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/ArrayBufferView#get:byteOffset (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load i32.sub ) - (func $~lib/runtime/ArrayBufferView#get:byteLength (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/ArrayBufferView#get:byteLength (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 ) - (func $~lib/polyfills/bswap (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const -16711936 i32.and @@ -670,7 +691,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getFloat32 (; 17 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $~lib/dataview/DataView#getFloat32 (; 18 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $1 i32.const 0 i32.lt_s @@ -683,7 +704,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 42 i32.const 6 call $~lib/env/abort @@ -708,7 +729,7 @@ f32.reinterpret_i32 end ) - (func $~lib/polyfills/bswap (; 18 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/polyfills/bswap (; 19 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -747,7 +768,7 @@ i64.rotr return ) - (func $~lib/dataview/DataView#getFloat64 (; 19 ;) (type $FUNCSIG$diii) (param $0 i32) (param $1 i32) (param $2 i32) (result f64) + (func $~lib/dataview/DataView#getFloat64 (; 20 ;) (type $FUNCSIG$diii) (param $0 i32) (param $1 i32) (param $2 i32) (result f64) local.get $1 i32.const 0 i32.lt_s @@ -760,7 +781,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 56 i32.const 7 call $~lib/env/abort @@ -785,14 +806,14 @@ f64.reinterpret_i64 end ) - (func $~lib/dataview/DataView#getInt8 (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/dataview/DataView#getInt8 (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 67 i32.const 49 call $~lib/env/abort @@ -804,7 +825,7 @@ i32.add i32.load8_s ) - (func $~lib/polyfills/bswap (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 8 i32.shl @@ -820,7 +841,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getInt16 (; 22 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getInt16 (; 23 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -834,7 +855,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 75 i32.const 7 call $~lib/env/abort @@ -856,7 +877,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/polyfills/bswap (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const -16711936 i32.and @@ -870,7 +891,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getInt32 (; 24 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getInt32 (; 25 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -884,7 +905,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 84 i32.const 7 call $~lib/env/abort @@ -906,7 +927,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/polyfills/bswap (; 25 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/polyfills/bswap (; 26 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -945,7 +966,7 @@ i64.rotr return ) - (func $~lib/dataview/DataView#getInt64 (; 26 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) + (func $~lib/dataview/DataView#getInt64 (; 27 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) (local $3 i64) local.get $1 i32.const 0 @@ -959,7 +980,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 178 i32.const 6 call $~lib/env/abort @@ -981,14 +1002,14 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#getUint8 (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/dataview/DataView#getUint8 (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 90 i32.const 49 call $~lib/env/abort @@ -1000,7 +1021,7 @@ i32.add i32.load8_u ) - (func $~lib/polyfills/bswap (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/polyfills/bswap (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 8 i32.shl @@ -1014,7 +1035,7 @@ i32.or return ) - (func $~lib/dataview/DataView#getUint16 (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getUint16 (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -1028,7 +1049,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 98 i32.const 6 call $~lib/env/abort @@ -1050,7 +1071,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#getUint32 (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#getUint32 (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 0 @@ -1064,7 +1085,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 107 i32.const 6 call $~lib/env/abort @@ -1086,7 +1107,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#getUint64 (; 31 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) + (func $~lib/dataview/DataView#getUint64 (; 32 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64) (local $3 i64) local.get $1 i32.const 0 @@ -1100,7 +1121,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 187 i32.const 6 call $~lib/env/abort @@ -1122,7 +1143,7 @@ call $~lib/polyfills/bswap end ) - (func $~lib/dataview/DataView#setFloat32 (; 32 ;) (type $FUNCSIG$viifi) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32) + (func $~lib/dataview/DataView#setFloat32 (; 33 ;) (type $FUNCSIG$viifi) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1135,7 +1156,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 116 i32.const 6 call $~lib/env/abort @@ -1162,7 +1183,7 @@ i32.store end ) - (func $~lib/dataview/DataView#setFloat64 (; 33 ;) (type $FUNCSIG$viidi) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32) + (func $~lib/dataview/DataView#setFloat64 (; 34 ;) (type $FUNCSIG$viidi) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1175,7 +1196,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 125 i32.const 6 call $~lib/env/abort @@ -1202,14 +1223,14 @@ i64.store end ) - (func $~lib/dataview/DataView#setInt8 (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setInt8 (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 131 i32.const 49 call $~lib/env/abort @@ -1222,7 +1243,7 @@ local.get $2 i32.store8 ) - (func $~lib/dataview/DataView#setInt16 (; 35 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setInt16 (; 36 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1235,7 +1256,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 139 i32.const 6 call $~lib/env/abort @@ -1256,7 +1277,7 @@ end i32.store16 ) - (func $~lib/dataview/DataView#setInt32 (; 36 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setInt32 (; 37 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1269,7 +1290,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 147 i32.const 6 call $~lib/env/abort @@ -1290,7 +1311,7 @@ end i32.store ) - (func $~lib/dataview/DataView#setInt64 (; 37 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) + (func $~lib/dataview/DataView#setInt64 (; 38 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1303,7 +1324,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 196 i32.const 6 call $~lib/env/abort @@ -1324,14 +1345,14 @@ end i64.store ) - (func $~lib/dataview/DataView#setUint8 (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setUint8 (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=8 i32.ge_u if i32.const 0 - i32.const 104 + i32.const 152 i32.const 152 i32.const 49 call $~lib/env/abort @@ -1344,7 +1365,7 @@ local.get $2 i32.store8 ) - (func $~lib/dataview/DataView#setUint16 (; 39 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setUint16 (; 40 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1357,7 +1378,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 160 i32.const 6 call $~lib/env/abort @@ -1378,7 +1399,7 @@ end i32.store16 ) - (func $~lib/dataview/DataView#setUint32 (; 40 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/dataview/DataView#setUint32 (; 41 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1391,7 +1412,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 168 i32.const 6 call $~lib/env/abort @@ -1412,7 +1433,7 @@ end i32.store ) - (func $~lib/dataview/DataView#setUint64 (; 41 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) + (func $~lib/dataview/DataView#setUint64 (; 42 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32) local.get $1 i32.const 0 i32.lt_s @@ -1425,7 +1446,7 @@ i32.or if i32.const 0 - i32.const 104 + i32.const 152 i32.const 204 i32.const 6 call $~lib/env/abort @@ -1446,7 +1467,7 @@ end i64.store ) - (func $start:std/dataview (; 42 ;) (type $FUNCSIG$v) + (func $start:std/dataview (; 43 ;) (type $FUNCSIG$v) global.get $~lib/memory/HEAP_BASE i32.const 7 i32.add @@ -1462,37 +1483,37 @@ call $~lib/typedarray/Uint8Array#constructor global.set $std/dataview/array global.get $std/dataview/array - i32.load offset=4 + i32.const 0 i32.const 246 - i32.store8 + call $~lib/typedarray/Uint8Array#__set global.get $std/dataview/array - i32.load offset=4 + i32.const 1 i32.const 224 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set global.get $std/dataview/array - i32.load offset=4 + i32.const 2 i32.const 88 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set global.get $std/dataview/array - i32.load offset=4 + i32.const 3 i32.const 159 - i32.store8 offset=3 + call $~lib/typedarray/Uint8Array#__set global.get $std/dataview/array - i32.load offset=4 + i32.const 4 i32.const 130 - i32.store8 offset=4 + call $~lib/typedarray/Uint8Array#__set global.get $std/dataview/array - i32.load offset=4 + i32.const 5 i32.const 101 - i32.store8 offset=5 + call $~lib/typedarray/Uint8Array#__set global.get $std/dataview/array - i32.load offset=4 + i32.const 6 i32.const 67 - i32.store8 offset=6 + call $~lib/typedarray/Uint8Array#__set global.get $std/dataview/array - i32.load offset=4 + i32.const 7 i32.const 95 - i32.store8 offset=7 + call $~lib/typedarray/Uint8Array#__set i32.const 0 global.get $std/dataview/array call $~lib/typedarray/Uint8Array#get:buffer @@ -1511,7 +1532,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 16 i32.const 0 call $~lib/env/abort @@ -1526,7 +1547,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 17 i32.const 0 call $~lib/env/abort @@ -1541,7 +1562,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 18 i32.const 0 call $~lib/env/abort @@ -1556,7 +1577,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 19 i32.const 0 call $~lib/env/abort @@ -1571,7 +1592,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 20 i32.const 0 call $~lib/env/abort @@ -1586,7 +1607,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 22 i32.const 0 call $~lib/env/abort @@ -1601,7 +1622,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 23 i32.const 0 call $~lib/env/abort @@ -1616,7 +1637,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 24 i32.const 0 call $~lib/env/abort @@ -1631,7 +1652,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 25 i32.const 0 call $~lib/env/abort @@ -1646,7 +1667,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 26 i32.const 0 call $~lib/env/abort @@ -1661,7 +1682,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 28 i32.const 0 call $~lib/env/abort @@ -1676,7 +1697,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 29 i32.const 0 call $~lib/env/abort @@ -1690,7 +1711,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 31 i32.const 0 call $~lib/env/abort @@ -1704,7 +1725,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 32 i32.const 0 call $~lib/env/abort @@ -1718,7 +1739,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 33 i32.const 0 call $~lib/env/abort @@ -1732,7 +1753,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 34 i32.const 0 call $~lib/env/abort @@ -1746,7 +1767,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 35 i32.const 0 call $~lib/env/abort @@ -1760,7 +1781,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 36 i32.const 0 call $~lib/env/abort @@ -1774,7 +1795,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 37 i32.const 0 call $~lib/env/abort @@ -1788,7 +1809,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 38 i32.const 0 call $~lib/env/abort @@ -1807,7 +1828,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 40 i32.const 0 call $~lib/env/abort @@ -1826,7 +1847,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 41 i32.const 0 call $~lib/env/abort @@ -1845,7 +1866,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 42 i32.const 0 call $~lib/env/abort @@ -1864,7 +1885,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 43 i32.const 0 call $~lib/env/abort @@ -1883,7 +1904,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 44 i32.const 0 call $~lib/env/abort @@ -1902,7 +1923,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 45 i32.const 0 call $~lib/env/abort @@ -1921,7 +1942,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 46 i32.const 0 call $~lib/env/abort @@ -1940,7 +1961,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 48 i32.const 0 call $~lib/env/abort @@ -1959,7 +1980,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 49 i32.const 0 call $~lib/env/abort @@ -1978,7 +1999,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 50 i32.const 0 call $~lib/env/abort @@ -1997,7 +2018,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 51 i32.const 0 call $~lib/env/abort @@ -2016,7 +2037,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 52 i32.const 0 call $~lib/env/abort @@ -2035,7 +2056,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 53 i32.const 0 call $~lib/env/abort @@ -2054,7 +2075,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 54 i32.const 0 call $~lib/env/abort @@ -2069,7 +2090,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 56 i32.const 0 call $~lib/env/abort @@ -2084,7 +2105,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 57 i32.const 0 call $~lib/env/abort @@ -2099,7 +2120,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 58 i32.const 0 call $~lib/env/abort @@ -2114,7 +2135,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 59 i32.const 0 call $~lib/env/abort @@ -2129,7 +2150,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 60 i32.const 0 call $~lib/env/abort @@ -2144,7 +2165,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 62 i32.const 0 call $~lib/env/abort @@ -2159,7 +2180,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 63 i32.const 0 call $~lib/env/abort @@ -2174,7 +2195,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 64 i32.const 0 call $~lib/env/abort @@ -2189,7 +2210,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 65 i32.const 0 call $~lib/env/abort @@ -2204,7 +2225,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 66 i32.const 0 call $~lib/env/abort @@ -2219,7 +2240,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 68 i32.const 0 call $~lib/env/abort @@ -2234,7 +2255,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 69 i32.const 0 call $~lib/env/abort @@ -2248,7 +2269,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 71 i32.const 0 call $~lib/env/abort @@ -2262,7 +2283,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 72 i32.const 0 call $~lib/env/abort @@ -2276,7 +2297,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 73 i32.const 0 call $~lib/env/abort @@ -2290,7 +2311,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 74 i32.const 0 call $~lib/env/abort @@ -2304,7 +2325,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 75 i32.const 0 call $~lib/env/abort @@ -2318,7 +2339,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 76 i32.const 0 call $~lib/env/abort @@ -2332,7 +2353,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 77 i32.const 0 call $~lib/env/abort @@ -2346,7 +2367,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 78 i32.const 0 call $~lib/env/abort @@ -2363,7 +2384,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 80 i32.const 0 call $~lib/env/abort @@ -2380,7 +2401,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 81 i32.const 0 call $~lib/env/abort @@ -2397,7 +2418,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 82 i32.const 0 call $~lib/env/abort @@ -2414,7 +2435,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 83 i32.const 0 call $~lib/env/abort @@ -2431,7 +2452,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 84 i32.const 0 call $~lib/env/abort @@ -2448,7 +2469,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 85 i32.const 0 call $~lib/env/abort @@ -2465,7 +2486,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 86 i32.const 0 call $~lib/env/abort @@ -2482,7 +2503,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 88 i32.const 0 call $~lib/env/abort @@ -2499,7 +2520,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 89 i32.const 0 call $~lib/env/abort @@ -2516,7 +2537,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 90 i32.const 0 call $~lib/env/abort @@ -2533,7 +2554,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 91 i32.const 0 call $~lib/env/abort @@ -2550,7 +2571,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 92 i32.const 0 call $~lib/env/abort @@ -2567,7 +2588,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 93 i32.const 0 call $~lib/env/abort @@ -2584,7 +2605,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 94 i32.const 0 call $~lib/env/abort @@ -2599,7 +2620,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 96 i32.const 0 call $~lib/env/abort @@ -2614,7 +2635,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 97 i32.const 0 call $~lib/env/abort @@ -2629,7 +2650,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 98 i32.const 0 call $~lib/env/abort @@ -2644,7 +2665,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 99 i32.const 0 call $~lib/env/abort @@ -2659,7 +2680,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 100 i32.const 0 call $~lib/env/abort @@ -2674,7 +2695,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 102 i32.const 0 call $~lib/env/abort @@ -2689,7 +2710,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 103 i32.const 0 call $~lib/env/abort @@ -2704,7 +2725,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 104 i32.const 0 call $~lib/env/abort @@ -2719,7 +2740,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 105 i32.const 0 call $~lib/env/abort @@ -2734,7 +2755,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 106 i32.const 0 call $~lib/env/abort @@ -2749,7 +2770,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 108 i32.const 0 call $~lib/env/abort @@ -2764,7 +2785,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 109 i32.const 0 call $~lib/env/abort @@ -2784,7 +2805,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 112 i32.const 0 call $~lib/env/abort @@ -2804,7 +2825,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 115 i32.const 0 call $~lib/env/abort @@ -2824,7 +2845,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 118 i32.const 0 call $~lib/env/abort @@ -2844,7 +2865,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 121 i32.const 0 call $~lib/env/abort @@ -2862,7 +2883,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 124 i32.const 0 call $~lib/env/abort @@ -2886,7 +2907,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 127 i32.const 0 call $~lib/env/abort @@ -2910,7 +2931,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 130 i32.const 0 call $~lib/env/abort @@ -2930,7 +2951,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 133 i32.const 0 call $~lib/env/abort @@ -2950,7 +2971,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 136 i32.const 0 call $~lib/env/abort @@ -2970,7 +2991,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 139 i32.const 0 call $~lib/env/abort @@ -2990,7 +3011,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 142 i32.const 0 call $~lib/env/abort @@ -3008,7 +3029,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 145 i32.const 0 call $~lib/env/abort @@ -3030,7 +3051,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 148 i32.const 0 call $~lib/env/abort @@ -3052,7 +3073,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 151 i32.const 0 call $~lib/env/abort @@ -3072,7 +3093,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 154 i32.const 0 call $~lib/env/abort @@ -3092,7 +3113,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 157 i32.const 0 call $~lib/env/abort @@ -3112,7 +3133,7 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 160 i32.const 0 call $~lib/env/abort @@ -3132,16 +3153,16 @@ i32.eqz if i32.const 0 - i32.const 144 + i32.const 192 i32.const 163 i32.const 0 call $~lib/env/abort unreachable end ) - (func $start (; 43 ;) (type $FUNCSIG$v) + (func $start (; 44 ;) (type $FUNCSIG$v) call $start:std/dataview ) - (func $null (; 44 ;) (type $FUNCSIG$v) + (func $null (; 45 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 4dc4e80b..0e885be7 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -1,6 +1,12 @@ (module (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$v (func)) + (type $FUNCSIG$ii (func (param i32) (result i32))) + (type $FUNCSIG$vii (func (param i32 i32))) + (type $FUNCSIG$ji (func (param i32) (result i64))) + (type $FUNCSIG$fi (func (param i32) (result f32))) + (type $FUNCSIG$di (func (param i32) (result f64))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\01\00\00\00\08\00\00\00\01\00\00\00\02") @@ -13,12 +19,488 @@ (data (i32.const 150) "\f4?\00\00\00\00\00\00\02@") (data (i32.const 160) "\05\00\00\00\10\00\00\00\90\00\00\00\90\00\00\00\10\00\00\00\02") (data (i32.const 184) "\06\00\00\00&\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 232) "\06\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 272) "\06\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (table $0 1 funcref) (elem (i32.const 0) $null) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start:std/static-array (; 1 ;) (type $FUNCSIG$v) + (func $~lib/array/Array#__get (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + i32.const 40 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + i32.const 36 + i32.load + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/memory/memory.fill (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.eqz + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.add + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 2 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 1 + i32.add + i32.const 0 + i32.store8 + local.get $0 + i32.const 2 + i32.add + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.add + local.tee $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 6 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 3 + i32.add + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $1 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.and + local.tee $2 + i32.sub + local.set $1 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 0 + i32.store + local.get $1 + i32.const -4 + i32.and + local.tee $1 + local.get $0 + i32.add + i32.const 4 + i32.sub + i32.const 0 + i32.store + local.get $1 + i32.const 8 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 4 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.add + local.tee $2 + i32.const 12 + i32.sub + i32.const 0 + i32.store + local.get $2 + i32.const 8 + i32.sub + i32.const 0 + i32.store + local.get $1 + i32.const 24 + i32.le_u + br_if $~lib/util/memory/memset|inlined.0 + local.get $0 + i32.const 12 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 16 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 20 + i32.add + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.add + local.tee $2 + i32.const 28 + i32.sub + i32.const 0 + i32.store + local.get $2 + i32.const 24 + i32.sub + i32.const 0 + i32.store + local.get $2 + i32.const 20 + i32.sub + i32.const 0 + i32.store + local.get $2 + i32.const 16 + i32.sub + i32.const 0 + i32.store + local.get $0 + i32.const 4 + i32.and + i32.const 24 + i32.add + local.tee $2 + local.get $0 + i32.add + local.set $0 + local.get $1 + local.get $2 + i32.sub + local.set $1 + loop $continue|0 + local.get $1 + i32.const 32 + i32.ge_u + if + local.get $0 + i64.const 0 + i64.store + local.get $0 + i32.const 8 + i32.add + i64.const 0 + i64.store + local.get $0 + i32.const 16 + i32.add + i64.const 0 + i64.store + local.get $0 + i32.const 24 + i32.add + i64.const 0 + i64.store + local.get $1 + i32.const 32 + i32.sub + local.set $1 + local.get $0 + i32.const 32 + i32.add + local.set $0 + br $continue|0 + end + end + end + ) + (func $~lib/runtime/doReallocate (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 8 + i32.sub + local.tee $3 + i32.load offset=4 + local.tee $2 + local.get $1 + i32.lt_u + if + i32.const 1 + i32.const 32 + local.get $2 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl + i32.const 0 + local.get $0 + i32.const 312 + i32.gt_u + select + i32.const 1 + i32.const 32 + local.get $1 + i32.const 7 + i32.add + i32.clz + i32.sub + i32.shl + i32.lt_u + if + unreachable + else + local.get $0 + local.get $2 + i32.add + local.get $1 + local.get $2 + i32.sub + call $~lib/memory/memory.fill + end + end + local.get $3 + local.get $1 + i32.store offset=4 + local.get $0 + ) + (func $~lib/array/ensureCapacity (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 1 + local.get $0 + i32.load offset=8 + local.get $1 + i32.shr_u + i32.gt_u + if + i32.const 1 + i32.const 1073741816 + local.get $1 + i32.shr_u + i32.gt_u + if + i32.const 0 + i32.const 240 + i32.const 10 + i32.const 64 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load + local.tee $3 + i32.const 1 + local.get $1 + i32.shl + local.tee $1 + call $~lib/runtime/doReallocate + local.set $2 + local.get $2 + local.get $3 + i32.ne + if + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + end + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/array/Array#__set (; 5 ;) (type $FUNCSIG$v) + i32.const 32 + i32.const 2 + call $~lib/array/ensureCapacity + i32.const 36 + i32.load + i32.const 2 + i32.store + i32.const 0 + i32.const 44 + i32.load + i32.ge_s + if + i32.const 44 + i32.const 1 + i32.store + end + ) + (func $~lib/array/Array#__get (; 6 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) + local.get $0 + i32.const 88 + i32.load + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + i32.const 84 + i32.load + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/array/Array#__set (; 7 ;) (type $FUNCSIG$v) + i32.const 80 + i32.const 3 + call $~lib/array/ensureCapacity + i32.const 84 + i32.load + i64.const 4 + i64.store + i32.const 0 + i32.const 92 + i32.load + i32.ge_s + if + i32.const 92 + i32.const 1 + i32.store + end + ) + (func $~lib/array/Array#__get (; 8 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + local.get $0 + i32.const 128 + i32.load + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + i32.const 124 + i32.load + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/array/Array#__set (; 9 ;) (type $FUNCSIG$v) + i32.const 120 + i32.const 2 + call $~lib/array/ensureCapacity + i32.const 124 + i32.load + f32.const 2.5 + f32.store + i32.const 0 + i32.const 132 + i32.load + i32.ge_s + if + i32.const 132 + i32.const 1 + i32.store + end + ) + (func $~lib/array/Array#__get (; 10 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + local.get $0 + i32.const 176 + i32.load + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + i32.const 172 + i32.load + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/array/Array#__set (; 11 ;) (type $FUNCSIG$v) + i32.const 168 + i32.const 3 + call $~lib/array/ensureCapacity + i32.const 172 + i32.load + f64.const 2.25 + f64.store + i32.const 0 + i32.const 180 + i32.load + i32.ge_s + if + i32.const 180 + i32.const 1 + i32.store + end + ) + (func $start:std/static-array (; 12 ;) (type $FUNCSIG$v) i32.const 44 i32.load i32.const 2 @@ -31,15 +513,8 @@ call $~lib/env/abort unreachable end - i32.const 36 - i32.load - i32.const -1 i32.const 0 - i32.const 40 - i32.load - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1 i32.ne if @@ -50,17 +525,8 @@ call $~lib/env/abort unreachable end - i32.const 36 - i32.load - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - i32.const 40 - i32.load - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 2 i32.ne if @@ -71,19 +537,9 @@ call $~lib/env/abort unreachable end - i32.const 36 - i32.load - i32.const 2 - i32.store - i32.const 36 - i32.load - i32.const -1 + call $~lib/array/Array#__set i32.const 0 - i32.const 40 - i32.load - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 2 i32.ne if @@ -106,15 +562,8 @@ call $~lib/env/abort unreachable end - i32.const 84 - i32.load - i32.const -1 i32.const 0 - i32.const 88 - i32.load - i32.lt_u - select - i64.load + call $~lib/array/Array#__get i64.const 3 i64.ne if @@ -125,17 +574,8 @@ call $~lib/env/abort unreachable end - i32.const 84 - i32.load - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - i32.const 88 - i32.load - i32.lt_u - select - i64.load + i32.const 1 + call $~lib/array/Array#__get i64.const 4 i64.ne if @@ -146,19 +586,9 @@ call $~lib/env/abort unreachable end - i32.const 84 - i32.load - i64.const 4 - i64.store - i32.const 84 - i32.load - i32.const -1 + call $~lib/array/Array#__set i32.const 0 - i32.const 88 - i32.load - i32.lt_u - select - i64.load + call $~lib/array/Array#__get i64.const 4 i64.ne if @@ -181,15 +611,8 @@ call $~lib/env/abort unreachable end - i32.const 124 - i32.load - i32.const -1 i32.const 0 - i32.const 128 - i32.load - i32.lt_u - select - f32.load + call $~lib/array/Array#__get f32.const 1.5 f32.ne if @@ -200,17 +623,8 @@ call $~lib/env/abort unreachable end - i32.const 124 - i32.load - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - i32.const 128 - i32.load - i32.lt_u - select - f32.load + i32.const 1 + call $~lib/array/Array#__get f32.const 2.5 f32.ne if @@ -221,19 +635,9 @@ call $~lib/env/abort unreachable end - i32.const 124 - i32.load - f32.const 2.5 - f32.store - i32.const 124 - i32.load - i32.const -1 + call $~lib/array/Array#__set i32.const 0 - i32.const 128 - i32.load - i32.lt_u - select - f32.load + call $~lib/array/Array#__get f32.const 2.5 f32.ne if @@ -256,15 +660,8 @@ call $~lib/env/abort unreachable end - i32.const 172 - i32.load - i32.const -1 i32.const 0 - i32.const 176 - i32.load - i32.lt_u - select - f64.load + call $~lib/array/Array#__get f64.const 1.25 f64.ne if @@ -275,17 +672,8 @@ call $~lib/env/abort unreachable end - i32.const 172 - i32.load - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - i32.const 176 - i32.load - i32.lt_u - select - f64.load + i32.const 1 + call $~lib/array/Array#__get f64.const 2.25 f64.ne if @@ -296,19 +684,9 @@ call $~lib/env/abort unreachable end - i32.const 172 - i32.load - f64.const 2.25 - f64.store - i32.const 172 - i32.load - i32.const -1 + call $~lib/array/Array#__set i32.const 0 - i32.const 176 - i32.load - i32.lt_u - select - f64.load + call $~lib/array/Array#__get f64.const 2.25 f64.ne if @@ -320,10 +698,10 @@ unreachable end ) - (func $start (; 2 ;) (type $FUNCSIG$v) + (func $start (; 13 ;) (type $FUNCSIG$v) call $start:std/static-array ) - (func $null (; 3 ;) (type $FUNCSIG$v) + (func $null (; 14 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index 24b6ac34..85a9a4dc 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -1,6 +1,15 @@ (module (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$vi (func (param i32))) + (type $FUNCSIG$jii (func (param i32 i32) (result i64))) + (type $FUNCSIG$viij (func (param i32 i32 i64))) + (type $FUNCSIG$fii (func (param i32 i32) (result f32))) + (type $FUNCSIG$viif (func (param i32 i32 f32))) + (type $FUNCSIG$dii (func (param i32 i32) (result f64))) + (type $FUNCSIG$viid (func (param i32 i32 f64))) (type $FUNCSIG$v (func)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) @@ -13,6 +22,8 @@ (data (i32.const 136) "\01\00\00\00\10\00\00\00\00\00\00\00\00\00\f4?\00\00\00\00\00\00\02@") (data (i32.const 160) "\05\00\00\00\10\00\00\00\90\00\00\00\90\00\00\00\10\00\00\00\02\00\00\00") (data (i32.const 184) "\06\00\00\00&\00\00\00s\00t\00d\00/\00s\00t\00a\00t\00i\00c\00-\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 232) "\06\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 272) "\06\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/static-array/i i32 (i32.const 32)) @@ -22,7 +33,8 @@ (global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0)) (global $~lib/runtime/HEADER_SIZE i32 (i32.const 8)) (global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 232)) + (global $~lib/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 312)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) @@ -30,21 +42,2078 @@ local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#get:length (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/runtime/ADJUSTOBLOCK (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + i32.const 1 + i32.const 32 + local.get $0 + global.get $~lib/runtime/HEADER_SIZE + i32.add + i32.const 1 + i32.sub + i32.clz + i32.sub + i32.shl + ) + (func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + unreachable + ) + (func $~lib/util/memory/memcpy (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + block $break|0 + loop $continue|0 + local.get $2 + if (result i32) + local.get $1 + i32.const 3 + i32.and + else + local.get $2 + end + if + block + 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 + i32.const 1 + i32.sub + local.set $2 + end + br $continue|0 + end + end + end + local.get $0 + i32.const 3 + i32.and + i32.const 0 + i32.eq + if + block $break|1 + loop $continue|1 + local.get $2 + i32.const 16 + i32.ge_u + if + block + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 8 + i32.add + i32.load + i32.store + local.get $0 + i32.const 12 + i32.add + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + end + br $continue|1 + end + end + end + local.get $2 + i32.const 8 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + local.get $2 + i32.const 4 + i32.and + if + local.get $0 + local.get $1 + i32.load + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + local.get $2 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + local.get $2 + 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 + return + end + local.get $2 + i32.const 32 + i32.ge_u + if + block $break|2 + block $case2|2 + block $case1|2 + block $case0|2 + local.get $0 + i32.const 3 + i32.and + local.set $5 + local.get $5 + i32.const 1 + i32.eq + br_if $case0|2 + local.get $5 + i32.const 2 + i32.eq + br_if $case1|2 + local.get $5 + i32.const 3 + i32.eq + 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 + i32.const 3 + i32.sub + local.set $2 + block $break|3 + loop $continue|3 + local.get $2 + i32.const 17 + i32.ge_u + if + block + local.get $1 + i32.const 1 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 5 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 9 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 24 + i32.shr_u + local.get $4 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 13 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 24 + i32.shr_u + local.get $3 + i32.const 8 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + end + br $continue|3 + end + end + 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 + i32.const 2 + i32.sub + local.set $2 + block $break|4 + loop $continue|4 + local.get $2 + i32.const 18 + i32.ge_u + if + block + local.get $1 + i32.const 2 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 6 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 10 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 16 + i32.shr_u + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 14 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 16 + i32.shr_u + local.get $3 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + end + br $continue|4 + end + end + 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 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + if + block + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + end + br $continue|5 + end + end + 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 + local.get $2 + 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 + local.get $2 + 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 + local.get $2 + 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 + local.get $2 + 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 + ) + (func $~lib/memory/memory.copy (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + block $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.eq + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + local.get $2 + i32.add + local.get $0 + i32.le_u + local.tee $3 + if (result i32) + local.get $3 + else + local.get $0 + local.get $2 + i32.add + local.get $1 + i32.le_u + end + if + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + block $break|0 + loop $continue|0 + local.get $0 + i32.const 7 + i32.and + if + block + local.get $2 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block (result i32) + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $3 + end + block (result i32) + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $3 + end + i32.load8_u + i32.store8 + end + br $continue|0 + end + end + end + block $break|1 + loop $continue|1 + local.get $2 + i32.const 8 + i32.ge_u + if + block + local.get $0 + local.get $1 + i64.load + i64.store + local.get $2 + i32.const 8 + i32.sub + local.set $2 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + end + br $continue|1 + end + end + end + end + block $break|2 + loop $continue|2 + local.get $2 + if + block + block (result i32) + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $3 + end + block (result i32) + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $3 + end + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + end + br $continue|2 + end + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + block $break|3 + loop $continue|3 + local.get $0 + local.get $2 + i32.add + i32.const 7 + i32.and + if + block + local.get $2 + i32.eqz + if + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.store8 + end + br $continue|3 + end + end + end + block $break|4 + loop $continue|4 + local.get $2 + i32.const 8 + i32.ge_u + if + block + local.get $2 + i32.const 8 + i32.sub + local.set $2 + local.get $0 + local.get $2 + i32.add + local.get $1 + local.get $2 + i32.add + i64.load + i64.store + end + br $continue|4 + end + end + end + end + block $break|5 + loop $continue|5 + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.store8 + br $continue|5 + end + end + end + end + end + ) + (func $~lib/memory/memory.fill (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + block $~lib/util/memory/memset|inlined.0 + local.get $2 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $0 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.add + i32.const 1 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $0 + i32.const 1 + i32.add + local.get $1 + i32.store8 + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.add + i32.const 2 + i32.sub + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.add + i32.const 3 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $0 + i32.const 3 + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.add + i32.const 4 + i32.sub + local.get $1 + i32.store8 + local.get $2 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.and + local.set $3 + local.get $0 + local.get $3 + i32.add + local.set $0 + local.get $2 + local.get $3 + i32.sub + local.set $2 + local.get $2 + i32.const -4 + i32.and + local.set $2 + i32.const -1 + i32.const 255 + i32.div_u + local.get $1 + i32.const 255 + i32.and + i32.mul + local.set $4 + local.get $0 + local.get $4 + i32.store + local.get $0 + local.get $2 + i32.add + i32.const 4 + i32.sub + local.get $4 + i32.store + local.get $2 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $4 + i32.store + local.get $0 + local.get $2 + i32.add + i32.const 12 + i32.sub + local.get $4 + i32.store + local.get $0 + local.get $2 + i32.add + i32.const 8 + i32.sub + local.get $4 + i32.store + local.get $2 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.store + local.get $0 + i32.const 16 + i32.add + local.get $4 + i32.store + local.get $0 + i32.const 20 + i32.add + local.get $4 + i32.store + local.get $0 + i32.const 24 + i32.add + local.get $4 + i32.store + local.get $0 + local.get $2 + i32.add + i32.const 28 + i32.sub + local.get $4 + i32.store + local.get $0 + local.get $2 + i32.add + i32.const 24 + i32.sub + local.get $4 + i32.store + local.get $0 + local.get $2 + i32.add + i32.const 20 + i32.sub + local.get $4 + i32.store + local.get $0 + local.get $2 + i32.add + i32.const 16 + i32.sub + local.get $4 + i32.store + i32.const 24 + local.get $0 + i32.const 4 + i32.and + i32.add + local.set $3 + local.get $0 + local.get $3 + i32.add + local.set $0 + local.get $2 + local.get $3 + i32.sub + local.set $2 + local.get $4 + i64.extend_i32_u + local.get $4 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $5 + block $break|0 + loop $continue|0 + local.get $2 + i32.const 32 + i32.ge_u + if + block + local.get $0 + local.get $5 + i64.store + local.get $0 + i32.const 8 + i32.add + local.get $5 + i64.store + local.get $0 + i32.const 16 + i32.add + local.get $5 + i64.store + local.get $0 + i32.const 24 + i32.add + local.get $5 + i64.store + local.get $2 + i32.const 32 + i32.sub + local.set $2 + local.get $0 + i32.const 32 + i32.add + local.set $0 + end + br $continue|0 + end + end + end + end + ) + (func $~lib/memory/memory.free (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + nop + ) + (func $~lib/runtime/doReallocate (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + global.get $~lib/runtime/HEADER_SIZE + i32.sub + local.set $2 + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + local.get $1 + i32.lt_u + if + local.get $1 + call $~lib/runtime/ADJUSTOBLOCK + local.set $4 + local.get $3 + call $~lib/runtime/ADJUSTOBLOCK + i32.const 0 + local.get $0 + global.get $~lib/memory/HEAP_BASE + i32.gt_u + select + local.get $4 + i32.lt_u + if + local.get $4 + call $~lib/memory/memory.allocate + local.set $5 + local.get $5 + local.get $2 + i32.load + i32.store + local.get $5 + global.get $~lib/runtime/HEADER_SIZE + i32.add + local.set $6 + local.get $6 + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + local.get $6 + local.get $3 + i32.add + i32.const 0 + local.get $1 + local.get $3 + i32.sub + call $~lib/memory/memory.fill + local.get $2 + i32.load + global.get $~lib/runtime/HEADER_MAGIC + i32.eq + if + local.get $0 + global.get $~lib/memory/HEAP_BASE + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 280 + i32.const 100 + i32.const 8 + call $~lib/env/abort + unreachable + end + local.get $2 + call $~lib/memory/memory.free + else + nop + end + local.get $5 + local.set $2 + local.get $6 + local.set $0 + else + local.get $0 + local.get $3 + i32.add + i32.const 0 + local.get $1 + local.get $3 + i32.sub + call $~lib/memory/memory.fill + end + else + nop + end + local.get $2 + local.get $1 + i32.store offset=4 + local.get $0 + ) + (func $~lib/array/ensureCapacity (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $0 + i32.load offset=8 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + global.get $~lib/runtime/MAX_BYTELENGTH + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 0 + i32.const 240 + i32.const 10 + i32.const 64 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load + local.set $3 + local.get $1 + local.get $2 + i32.shl + local.set $4 + block $~lib/runtime/REALLOCATE|inlined.0 (result i32) + local.get $3 + local.set $5 + local.get $4 + local.set $6 + local.get $5 + local.get $6 + call $~lib/runtime/doReallocate + end + local.set $6 + local.get $6 + local.get $3 + i32.ne + if + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.store offset=4 + end + local.get $0 + local.get $4 + i32.store offset=8 + end + ) + (func $~lib/array/Array#__set (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $~lib/array/Array#get:length (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#get:length (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 13 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $~lib/array/Array#__set (; 14 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $~lib/array/Array#get:length (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 16 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $~lib/array/Array#__set (; 17 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $~lib/array/Array#get:length (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $start:std/static-array (; 5 ;) (type $FUNCSIG$v) - (local $0 i32) - (local $1 i32) + (func $~lib/array/Array#__get (; 19 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 240 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/array/Array#__set (; 20 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 3 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=12 + end + ) + (func $start:std/static-array (; 21 ;) (type $FUNCSIG$v) global.get $std/static-array/i call $~lib/array/Array#get:length i32.const 2 @@ -59,20 +2128,8 @@ unreachable end global.get $std/static-array/i - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1 i32.eq i32.eqz @@ -85,20 +2142,8 @@ unreachable end global.get $std/static-array/i - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 2 i32.eq i32.eqz @@ -111,24 +2156,12 @@ unreachable end global.get $std/static-array/i - i32.load offset=4 - i32.const 2 - i32.store - global.get $std/static-array/i - local.tee $0 - i32.load offset=4 i32.const 0 i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__set + global.get $std/static-array/i + i32.const 0 + call $~lib/array/Array#__get i32.const 2 i32.eq i32.eqz @@ -154,20 +2187,8 @@ unreachable end global.get $std/static-array/I - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/array/Array#__get i64.const 3 i64.eq i32.eqz @@ -180,20 +2201,8 @@ unreachable end global.get $std/static-array/I - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/array/Array#__get i64.const 4 i64.eq i32.eqz @@ -206,24 +2215,12 @@ unreachable end global.get $std/static-array/I - i32.load offset=4 - i64.const 4 - i64.store - global.get $std/static-array/I - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i64.const 4 + call $~lib/array/Array#__set + global.get $std/static-array/I + i32.const 0 + call $~lib/array/Array#__get i64.const 4 i64.eq i32.eqz @@ -249,20 +2246,8 @@ unreachable end global.get $std/static-array/f - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get f32.const 1.5 f32.eq i32.eqz @@ -275,20 +2260,8 @@ unreachable end global.get $std/static-array/f - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/array/Array#__get f32.const 2.5 f32.eq i32.eqz @@ -301,24 +2274,12 @@ unreachable end global.get $std/static-array/f - i32.load offset=4 - f32.const 2.5 - f32.store - global.get $std/static-array/f - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + f32.const 2.5 + call $~lib/array/Array#__set + global.get $std/static-array/f + i32.const 0 + call $~lib/array/Array#__get f32.const 2.5 f32.eq i32.eqz @@ -344,20 +2305,8 @@ unreachable end global.get $std/static-array/F - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get f64.const 1.25 f64.eq i32.eqz @@ -370,20 +2319,8 @@ unreachable end global.get $std/static-array/F - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/array/Array#__get f64.const 2.25 f64.eq i32.eqz @@ -396,24 +2333,12 @@ unreachable end global.get $std/static-array/F - i32.load offset=4 - f64.const 2.25 - f64.store - global.get $std/static-array/F - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + f64.const 2.25 + call $~lib/array/Array#__set + global.get $std/static-array/F + i32.const 0 + call $~lib/array/Array#__get f64.const 2.25 f64.eq i32.eqz @@ -426,9 +2351,9 @@ unreachable end ) - (func $start (; 6 ;) (type $FUNCSIG$v) + (func $start (; 22 ;) (type $FUNCSIG$v) call $start:std/static-array ) - (func $null (; 7 ;) (type $FUNCSIG$v) + (func $null (; 23 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 306b866f..fa751ca7 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -3207,11 +3207,7 @@ (local $3 i32) local.get $1 local.get $0 - i32.load - local.tee $2 - i32.const 8 - i32.sub - i32.load offset=4 + i32.load offset=8 i32.const 2 i32.shr_u i32.gt_u @@ -3222,19 +3218,21 @@ if i32.const 0 i32.const 1440 - i32.const 12 + i32.const 10 i32.const 64 call $~lib/env/abort unreachable end - local.get $2 - local.get $2 + local.get $0 + i32.load + local.tee $2 local.get $1 i32.const 2 i32.shl local.tee $3 call $~lib/runtime/doReallocate local.tee $1 + local.get $2 i32.ne if local.get $0 @@ -3541,7 +3539,30 @@ end local.get $6 ) - (func $~lib/util/number/decimalCount32 (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#__get (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 1440 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/util/number/decimalCount32 (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 100000 i32.lt_u @@ -3595,7 +3616,7 @@ end end ) - (func $~lib/util/number/utoa32_lut (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) i32.const 2060 @@ -3705,7 +3726,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3747,7 +3768,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/utoa32 (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -3770,7 +3791,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/decimalCount64 (; 43 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 44 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 i64.const 1000000000000000 i64.lt_u @@ -3824,7 +3845,7 @@ end end ) - (func $~lib/util/number/utoa64_lut (; 44 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 45 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3921,7 +3942,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 45 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 46 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3963,7 +3984,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/itoa64 (; 46 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 47 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4028,7 +4049,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/genDigits (; 47 ;) (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 (; 48 ;) (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) @@ -4446,7 +4467,7 @@ local.get $7 end ) - (func $~lib/util/number/prettify (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $2 @@ -4707,7 +4728,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 49 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 50 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i64) (local $4 i64) @@ -5019,7 +5040,7 @@ local.get $12 i32.add ) - (func $~lib/string/String#substring (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5117,7 +5138,7 @@ i32.const 1 call $~lib/runtime/doRegister ) - (func $~lib/util/number/dtoa (; 51 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 52 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5162,7 +5183,7 @@ call $~lib/runtime/assertUnregistered local.get $1 ) - (func $start:std/string (; 52 ;) (type $FUNCSIG$v) + (func $start:std/string (; 53 ;) (type $FUNCSIG$v) (local $0 i32) global.get $std/string/str i32.const 16 @@ -6664,15 +6685,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq local.set $0 @@ -6714,15 +6728,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq local.set $0 @@ -6749,15 +6756,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1480 call $~lib/string/String.__eq local.set $0 @@ -6786,15 +6786,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -6803,17 +6796,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -6822,17 +6806,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -6861,15 +6836,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -6878,17 +6846,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -6897,17 +6856,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -6937,15 +6887,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -6954,17 +6897,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -6973,17 +6907,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq local.set $0 @@ -6992,17 +6917,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -7032,15 +6948,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq local.set $0 @@ -7049,17 +6958,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7068,17 +6968,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -7087,17 +6978,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -7127,15 +7009,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7144,17 +7019,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -7163,17 +7029,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -7182,17 +7039,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq local.set $0 @@ -7221,15 +7069,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7238,17 +7079,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -7257,17 +7089,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -7309,15 +7132,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7344,15 +7160,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7381,15 +7190,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7398,17 +7200,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -7417,17 +7210,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -7456,15 +7240,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7473,17 +7250,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -7492,17 +7260,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -7531,15 +7290,8 @@ local.tee $0 if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq local.set $0 @@ -7548,17 +7300,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq local.set $0 @@ -7567,17 +7310,8 @@ end if global.get $std/string/sa - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq local.set $0 @@ -8776,13 +8510,13 @@ unreachable end ) - (func $std/string/getString (; 53 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 54 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str ) - (func $start (; 54 ;) (type $FUNCSIG$v) + (func $start (; 55 ;) (type $FUNCSIG$v) call $start:std/string ) - (func $null (; 55 ;) (type $FUNCSIG$v) + (func $null (; 56 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 432d6c85..6e5eeebe 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -3854,18 +3854,12 @@ i32.store offset=12 local.get $0 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - global.get $~lib/runtime/HEADER_SIZE - i32.sub - i32.load offset=4 - ) - (func $~lib/memory/memory.free (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 local.set $1 ) - (func $~lib/runtime/doReallocate (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/doReallocate (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3962,22 +3956,16 @@ i32.store offset=4 local.get $0 ) - (func $~lib/array/ensureCapacity (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureCapacity (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + local.get $1 local.get $0 - i32.load - local.set $3 - local.get $3 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.load offset=8 local.get $2 i32.shr_u - local.set $4 - local.get $1 - local.get $4 i32.gt_u if local.get $1 @@ -3988,42 +3976,45 @@ if i32.const 0 i32.const 1440 - i32.const 12 + i32.const 10 i32.const 64 call $~lib/env/abort unreachable end + local.get $0 + i32.load + local.set $3 local.get $1 local.get $2 i32.shl - local.set $5 + local.set $4 block $~lib/runtime/REALLOCATE|inlined.0 (result i32) local.get $3 + local.set $5 + local.get $4 local.set $6 local.get $5 - local.set $7 local.get $6 - local.get $7 call $~lib/runtime/doReallocate end - local.set $7 - local.get $7 + local.set $6 + local.get $6 local.get $3 i32.ne if local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 i32.store offset=4 end local.get $0 - local.get $5 + local.get $4 i32.store offset=8 end ) - (func $~lib/array/Array#__set (; 42 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 local.get $1 i32.const 1 @@ -4050,7 +4041,7 @@ i32.store offset=12 end ) - (func $~lib/array/Array#push (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 i32.load offset=12 @@ -4076,7 +4067,7 @@ i32.store local.get $2 ) - (func $~lib/runtime/assertRegistered (; 44 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/assertRegistered (; 43 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.get $~lib/runtime/HEADER_SIZE i32.sub @@ -4093,13 +4084,13 @@ unreachable end ) - (func $~lib/runtime/doLink (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/runtime/doLink (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 call $~lib/runtime/assertRegistered local.get $1 call $~lib/runtime/assertRegistered ) - (func $~lib/string/String#split (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4410,10 +4401,33 @@ end local.get $10 ) - (func $~lib/array/Array#get:length (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) + (func $~lib/array/Array#__get (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 1440 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) (func $~lib/util/number/decimalCount32 (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 @@ -8242,20 +8256,8 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq else @@ -8300,20 +8302,8 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq else @@ -8340,20 +8330,8 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1480 call $~lib/string/String.__eq else @@ -8380,75 +8358,33 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -8470,75 +8406,33 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -8560,99 +8454,43 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 3 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -8674,99 +8512,43 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 3 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -8788,99 +8570,43 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 3 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 312 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -8902,75 +8628,33 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -9010,20 +8694,8 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else @@ -9050,20 +8722,8 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else @@ -9090,75 +8750,33 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -9180,75 +8798,33 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -9270,75 +8846,33 @@ local.tee $2 if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 336 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 824 call $~lib/string/String.__eq else local.get $2 end local.tee $2 - i32.const 0 - i32.ne if (result i32) global.get $std/string/sa - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 1520 call $~lib/string/String.__eq else local.get $2 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 8a1e5dc1..6e9cc653 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -5,14 +5,20 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$viid (func (param i32 i32 f64))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) + (type $FUNCSIG$dii (func (param i32 i32) (result f64))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$v (func)) + (type $FUNCSIG$viij (func (param i32 i32 i64))) (type $FUNCSIG$jjjii (func (param i64 i64 i32 i32) (result i64))) + (type $FUNCSIG$viif (func (param i32 i32 f32))) (type $FUNCSIG$fffii (func (param f32 f32 i32 i32) (result f32))) (type $FUNCSIG$dddii (func (param f64 f64 i32 i32) (result f64))) (type $FUNCSIG$jjii (func (param i64 i32 i32) (result i64))) + (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$ffii (func (param f32 i32 i32) (result f32))) + (type $FUNCSIG$fii (func (param i32 i32) (result f32))) (type $FUNCSIG$ddii (func (param f64 i32 i32) (result f64))) (type $FUNCSIG$ijii (func (param i64 i32 i32) (result i32))) (type $FUNCSIG$ifii (func (param f32 i32 i32) (result i32))) @@ -21,7 +27,6 @@ (type $FUNCSIG$vjii (func (param i64 i32 i32))) (type $FUNCSIG$vfii (func (param f32 i32 i32))) (type $FUNCSIG$vdii (func (param f64 i32 i32))) - (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$fi (func (param i32) (result f32))) (type $FUNCSIG$di (func (param i32) (result f64))) (type $FUNCSIG$ff (func (param f32) (result f32))) @@ -31,33 +36,35 @@ (data (i32.const 8) "\01\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 56) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 96) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 144) "\02\00\00\00\05\00\00\00\01\01\01\04\05") - (data (i32.const 160) "\02\00\00\00\05") - (data (i32.const 176) "\02\00\00\00\05\00\00\00\01\01") - (data (i32.const 192) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 208) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 224) "\02\00\00\00\03") - (data (i32.const 240) "\02\00\00\00\05\00\00\00\01\00\00\00\02") - (data (i32.const 256) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") - (data (i32.const 288) "\02\00\00\00\14") - (data (i32.const 320) "\02\00\00\00\14\00\00\00\01\00\00\00\01") - (data (i32.const 352) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data (i32.const 384) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") - (data (i32.const 416) "\02\00\00\00\0c") - (data (i32.const 440) "\02\00\00\00\14\00\00\00\01") - (data (i32.const 464) "\02") - (data (i32.const 472) "\01\00\00\00\1e\00\00\00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 512) "\01\00\00\00(\00\00\00f\00a\00i\00l\00 \00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 560) "\02\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e") - (data (i32.const 584) "\10\00\00\00\10\00\00\008\02\00\008\02\00\00\0c\00\00\00\03") - (data (i32.const 608) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 664) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00i\00n\00d\00e\00x\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 720) "\01\00\00\00>\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00s\00e\00l\00f\00 \00p\00a\00r\00a\00m\00e\00t\00e\00r\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 792) "\01\00\00\006\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00c\00a\00l\00l\00 \00c\00o\00u\00n\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 856) "\02\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") - (data (i32.const 904) "\10\00\00\00\10\00\00\00`\03\00\00`\03\00\00$\00\00\00\t") - (data (i32.const 928) "\01\00\00\00B\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 1008) "\01\00\00\00V\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 144) "\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 192) "\02\00\00\00\05\00\00\00\01\01\01\04\05") + (data (i32.const 208) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 248) "\02\00\00\00\05") + (data (i32.const 264) "\02\00\00\00\05\00\00\00\01\01") + (data (i32.const 280) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 296) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 312) "\02\00\00\00\03") + (data (i32.const 328) "\02\00\00\00\05\00\00\00\01\00\00\00\02") + (data (i32.const 344) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05") + (data (i32.const 376) "\02\00\00\00\14") + (data (i32.const 408) "\02\00\00\00\14\00\00\00\01\00\00\00\01") + (data (i32.const 440) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data (i32.const 472) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02") + (data (i32.const 504) "\02\00\00\00\0c") + (data (i32.const 528) "\02\00\00\00\14\00\00\00\01") + (data (i32.const 552) "\02") + (data (i32.const 560) "\01\00\00\00\1e\00\00\00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 600) "\01\00\00\00(\00\00\00f\00a\00i\00l\00 \00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 648) "\02\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e") + (data (i32.const 672) "\10\00\00\00\10\00\00\00\90\02\00\00\90\02\00\00\0c\00\00\00\03") + (data (i32.const 696) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 752) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00i\00n\00d\00e\00x\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 808) "\01\00\00\00>\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00s\00e\00l\00f\00 \00p\00a\00r\00a\00m\00e\00t\00e\00r\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 880) "\01\00\00\006\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00c\00a\00l\00l\00 \00c\00o\00u\00n\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 944) "\02\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 992) "\10\00\00\00\10\00\00\00\b8\03\00\00\b8\03\00\00$\00\00\00\t") + (data (i32.const 1016) "\01\00\00\00B\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h") + (data (i32.const 1096) "\01\00\00\00V\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") (table $0 112 funcref) (elem (i32.const 0) $null $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -76,8 +83,8 @@ (global $std/typedarray/multisubarr3 (mut i32) (i32.const 0)) (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) - (global $std/typedarray/forEachValues (mut i32) (i32.const 592)) - (global $std/typedarray/testArrayReverseValues (mut i32) (i32.const 912)) + (global $std/typedarray/forEachValues (mut i32) (i32.const 680)) + (global $std/typedarray/testArrayReverseValues (mut i32) (i32.const 1000)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) @@ -391,7 +398,7 @@ ) (func $~lib/runtime/assertUnregistered (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 - i32.const 1104 + i32.const 1192 i32.le_u if i32.const 0 @@ -507,17 +514,12 @@ i32.const 0 call $~lib/runtime/ArrayBufferView#constructor ) - (func $~lib/typedarray/Uint8Array#constructor (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + i32.const 12 + call $~lib/runtime/doAllocate + i32.const 5 + call $~lib/runtime/doRegister local.get $0 - if (result i32) - local.get $0 - else - i32.const 12 - call $~lib/runtime/doAllocate - i32.const 5 - call $~lib/runtime/doRegister - end - local.get $1 i32.const 0 call $~lib/runtime/ArrayBufferView#constructor ) @@ -527,7 +529,8 @@ i32.const 6 call $~lib/runtime/doRegister local.get $0 - call $~lib/typedarray/Uint8Array#constructor + i32.const 0 + call $~lib/runtime/ArrayBufferView#constructor ) (func $~lib/typedarray/Int16Array#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 12 @@ -642,7 +645,6 @@ call $~lib/env/abort unreachable end - i32.const 0 local.get $0 call $~lib/typedarray/Uint8Array#constructor local.tee $1 @@ -1066,7 +1068,54 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#subarray (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#__set (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 435 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $~lib/typedarray/Int32Array#__get (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 429 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Int32Array#subarray (; 22 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -1153,7 +1202,31 @@ i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Float64Array#subarray (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#__set (; 23 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 840 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + ) + (func $~lib/typedarray/Float64Array#subarray (; 24 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -1240,7 +1313,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/util/sort/insertionSort (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -1322,7 +1395,7 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (; 23 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1578,7 +1651,7 @@ local.get $6 f64.store ) - (func $~lib/typedarray/Float64Array#sort (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#sort (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 f64) (local $4 f64) @@ -1638,7 +1711,7 @@ end end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 25 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 28 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -1667,7 +1740,101 @@ i64.lt_s i32.sub ) - (func $~lib/typedarray/Int8Array#fill (; 26 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/typedarray/Float64Array#__get (; 29 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 834 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 192 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + local.get $2 + i32.or + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 186 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int8Array#__set (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 30 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Int8Array#fill (; 33 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) local.get $0 @@ -1734,7 +1901,7 @@ call $~lib/memory/memory.fill end ) - (func $~lib/util/memory/memcpy (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2631,7 +2798,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 35 ;) (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 @@ -2825,7 +2992,7 @@ end end ) - (func $~lib/runtime/doWrapArray (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/runtime/doWrapArray (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) i32.const 16 @@ -2860,7 +3027,45 @@ call $~lib/memory/memory.copy local.get $3 ) - (func $std/typedarray/isInt8ArrayEqual (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#__get (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 24 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $~lib/array/Array#__get (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 216 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + ) + (func $std/typedarray/isInt8ArrayEqual (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2881,27 +3086,11 @@ i32.lt_s if local.get $0 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get local.get $1 - i32.load offset=4 local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -2918,7 +3107,7 @@ end i32.const 1 ) - (func $~lib/typedarray/Int8Array#subarray (; 31 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -2999,7 +3188,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/typedarray/Int32Array#fill (; 32 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/typedarray/Int32Array#fill (; 41 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) local.get $0 @@ -3075,10 +3264,32 @@ end end ) - (func $std/typedarray/isInt32ArrayEqual (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 216 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/isInt32ArrayEqual (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $1 i32.load offset=12 local.get $0 @@ -3094,37 +3305,18 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 + local.set $3 loop $repeat|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if + local.get $0 local.get $2 - i32.const 2 - i32.shl - local.tee $3 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get local.get $1 - i32.load offset=4 - local.get $3 - i32.add - i32.const -1 - local.get $3 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $2 + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -3141,12 +3333,12 @@ end i32.const 1 ) - (func $std/typedarray/testReduce~anonymous|0 (; 34 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce~anonymous|0 (; 44 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int8Array#reduce (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduce (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3183,22 +3375,22 @@ end local.get $2 ) - (func $std/typedarray/testReduce (; 36 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 46 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 call $~lib/typedarray/Int8Array#reduce i32.const 255 @@ -3214,7 +3406,27 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#reduce (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__set (; 47 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 111 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Uint8Array#reduce (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3251,23 +3463,22 @@ end local.get $3 ) - (func $std/typedarray/testReduce (; 38 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 49 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#reduce @@ -3284,22 +3495,22 @@ unreachable end ) - (func $std/typedarray/testReduce (; 39 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 50 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 4 call $~lib/typedarray/Uint8Array#reduce @@ -3316,7 +3527,31 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#reduce (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#__set (; 51 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 273 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $~lib/typedarray/Int16Array#reduce (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3357,22 +3592,22 @@ end local.get $2 ) - (func $std/typedarray/testReduce (; 41 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 53 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 call $~lib/typedarray/Int16Array#reduce i32.const 65535 @@ -3388,7 +3623,31 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#reduce (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__set (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 354 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $~lib/typedarray/Uint16Array#reduce (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3429,22 +3688,22 @@ end local.get $2 ) - (func $std/typedarray/testReduce (; 43 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 56 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 call $~lib/typedarray/Uint16Array#reduce i32.const 65535 @@ -3460,7 +3719,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reduce (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduce (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3501,22 +3760,22 @@ end local.get $3 ) - (func $std/typedarray/testReduce (; 45 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 58 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 7 call $~lib/typedarray/Int32Array#reduce @@ -3531,22 +3790,46 @@ unreachable end ) - (func $std/typedarray/testReduce (; 46 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint32Array#__set (; 59 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 516 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $std/typedarray/testReduce (; 60 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 8 call $~lib/typedarray/Int32Array#reduce @@ -3561,12 +3844,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 47 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $~lib/typedarray/Int64Array#__set (; 61 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 597 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce~anonymous|0 (; 62 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Int64Array#reduce (; 48 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#reduce (; 63 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i32) (local $3 i64) (local $4 i32) @@ -3607,22 +3914,22 @@ end local.get $3 ) - (func $std/typedarray/testReduce (; 49 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 64 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 9 call $~lib/typedarray/Int64Array#reduce @@ -3637,22 +3944,46 @@ unreachable end ) - (func $std/typedarray/testReduce (; 50 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint64Array#__set (; 65 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 678 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce (; 66 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 10 call $~lib/typedarray/Int64Array#reduce @@ -3667,12 +3998,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 51 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $~lib/typedarray/Float32Array#__set (; 67 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 759 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + ) + (func $std/typedarray/testReduce~anonymous|0 (; 68 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $0 local.get $1 f32.add ) - (func $~lib/typedarray/Float32Array#reduce (; 52 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + (func $~lib/typedarray/Float32Array#reduce (; 69 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -3713,22 +4068,22 @@ end local.get $2 ) - (func $std/typedarray/testReduce (; 53 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 70 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 call $~lib/typedarray/Float32Array#reduce f32.const 6 @@ -3742,12 +4097,12 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 54 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduce~anonymous|0 (; 71 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $0 local.get $1 f64.add ) - (func $~lib/typedarray/Float64Array#reduce (; 55 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/typedarray/Float64Array#reduce (; 72 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -3788,22 +4143,22 @@ end local.get $2 ) - (func $std/typedarray/testReduce (; 56 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 73 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 call $~lib/typedarray/Float64Array#reduce f64.const 6 @@ -3817,7 +4172,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#reduceRight (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduceRight (; 74 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3855,22 +4210,22 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight (; 58 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 75 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 call $~lib/typedarray/Int8Array#reduceRight i32.const 255 @@ -3886,7 +4241,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#reduceRight (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduceRight (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3924,23 +4279,22 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight (; 60 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 77 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 14 call $~lib/typedarray/Uint8Array#reduceRight @@ -3957,22 +4311,22 @@ unreachable end ) - (func $std/typedarray/testReduceRight (; 61 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 78 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 15 call $~lib/typedarray/Uint8Array#reduceRight @@ -3989,7 +4343,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#reduceRight (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduceRight (; 79 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4031,22 +4385,22 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight (; 63 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 80 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 call $~lib/typedarray/Int16Array#reduceRight i32.const 65535 @@ -4062,7 +4416,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#reduceRight (; 64 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduceRight (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4104,22 +4458,22 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight (; 65 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 82 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 call $~lib/typedarray/Uint16Array#reduceRight i32.const 65535 @@ -4135,7 +4489,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reduceRight (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduceRight (; 83 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4177,22 +4531,22 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight (; 67 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 84 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 18 call $~lib/typedarray/Int32Array#reduceRight @@ -4207,22 +4561,22 @@ unreachable end ) - (func $std/typedarray/testReduceRight (; 68 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 85 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 19 call $~lib/typedarray/Int32Array#reduceRight @@ -4237,7 +4591,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#reduceRight (; 69 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int64Array#reduceRight (; 86 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) (local $2 i32) (local $3 i64) (local $4 i32) @@ -4279,22 +4633,22 @@ end local.get $3 ) - (func $std/typedarray/testReduceRight (; 70 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 87 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 20 call $~lib/typedarray/Int64Array#reduceRight @@ -4309,22 +4663,22 @@ unreachable end ) - (func $std/typedarray/testReduceRight (; 71 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 88 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 21 call $~lib/typedarray/Int64Array#reduceRight @@ -4339,7 +4693,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#reduceRight (; 72 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) + (func $~lib/typedarray/Float32Array#reduceRight (; 89 ;) (type $FUNCSIG$fi) (param $0 i32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -4381,22 +4735,22 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight (; 73 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 90 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 call $~lib/typedarray/Float32Array#reduceRight f32.const 6 @@ -4410,7 +4764,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#reduceRight (; 74 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/typedarray/Float64Array#reduceRight (; 91 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -4452,22 +4806,22 @@ end local.get $2 ) - (func $std/typedarray/testReduceRight (; 75 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 92 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 call $~lib/typedarray/Float64Array#reduceRight f64.const 6 @@ -4481,12 +4835,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int8Array#map (; 77 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#map (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4532,33 +4886,27 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 78 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 95 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 call $~lib/typedarray/Int8Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne if @@ -4570,16 +4918,8 @@ unreachable end local.get $0 - i32.load offset=4 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne if @@ -4591,16 +4931,8 @@ unreachable end local.get $0 - i32.load offset=4 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 9 i32.ne if @@ -4612,7 +4944,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#map (; 79 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#map (; 96 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4625,7 +4957,6 @@ i32.load offset=8 local.tee $2 local.set $4 - i32.const 0 local.get $2 call $~lib/typedarray/Uint8Array#constructor local.tee $2 @@ -4659,34 +4990,46 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 80 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint8Array#__get (; 97 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 105 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $std/typedarray/testArrayMap (; 98 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 call $~lib/typedarray/Uint8Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne if @@ -4698,16 +5041,8 @@ unreachable end local.get $0 - i32.load offset=4 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne if @@ -4719,16 +5054,8 @@ unreachable end local.get $0 - i32.load offset=4 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.ne if @@ -4740,7 +5067,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8ClampedArray#map (; 81 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#map (; 99 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4786,35 +5113,27 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 82 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 100 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 call $~lib/typedarray/Uint8ClampedArray#map - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne if @@ -4825,18 +5144,9 @@ call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 1 - i32.add - i32.const -1 - i32.const 1 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne if @@ -4848,16 +5158,8 @@ unreachable end local.get $0 - i32.load offset=4 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.ne if @@ -4869,7 +5171,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#map (; 83 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#map (; 101 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4924,33 +5226,50 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 84 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Int16Array#__get (; 102 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 267 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $std/typedarray/testArrayMap (; 103 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 call $~lib/typedarray/Int16Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne if @@ -4962,16 +5281,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 1 + call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne if @@ -4983,16 +5294,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 2 + call $~lib/typedarray/Int16Array#__get i32.const 9 i32.ne if @@ -5004,7 +5307,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#map (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#map (; 104 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5059,33 +5362,50 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 86 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint16Array#__get (; 105 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 348 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $std/typedarray/testArrayMap (; 106 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 call $~lib/typedarray/Uint16Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne if @@ -5097,16 +5417,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 1 + call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne if @@ -5118,16 +5430,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 2 + call $~lib/typedarray/Uint16Array#__get i32.const 9 i32.ne if @@ -5139,7 +5443,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#map (; 87 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#map (; 107 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5194,33 +5498,27 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 88 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 108 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 call $~lib/typedarray/Int32Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne if @@ -5232,16 +5530,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne if @@ -5253,16 +5543,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/typedarray/Int32Array#__get i32.const 9 i32.ne if @@ -5274,7 +5556,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#map (; 89 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#map (; 109 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5329,33 +5611,50 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 90 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint32Array#__get (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 510 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/testArrayMap (; 111 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 call $~lib/typedarray/Uint32Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne if @@ -5367,16 +5666,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne if @@ -5388,16 +5679,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/typedarray/Uint32Array#__get i32.const 9 i32.ne if @@ -5409,12 +5692,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 91 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap~anonymous|0 (; 112 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 local.get $0 i64.mul ) - (func $~lib/typedarray/Int64Array#map (; 92 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#map (; 113 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5469,33 +5752,50 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 93 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Int64Array#__get (; 114 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 591 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap (; 115 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 call $~lib/typedarray/Int64Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne if @@ -5507,16 +5807,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 1 + call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne if @@ -5528,16 +5820,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 2 + call $~lib/typedarray/Int64Array#__get i64.const 9 i64.ne if @@ -5549,7 +5833,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#map (; 94 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#map (; 116 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5604,33 +5888,50 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 95 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint64Array#__get (; 117 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 672 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap (; 118 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 call $~lib/typedarray/Uint64Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne if @@ -5642,16 +5943,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 1 + call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne if @@ -5663,16 +5956,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 2 + call $~lib/typedarray/Uint64Array#__get i64.const 9 i64.ne if @@ -5684,12 +5969,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 96 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 119 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $0 local.get $0 f32.mul ) - (func $~lib/typedarray/Float32Array#map (; 97 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#map (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5744,33 +6029,50 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 98 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Float32Array#__get (; 121 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 753 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/testArrayMap (; 122 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 call $~lib/typedarray/Float32Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne if @@ -5782,16 +6084,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 1 + call $~lib/typedarray/Float32Array#__get f32.const 4 f32.ne if @@ -5803,16 +6097,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 2 + call $~lib/typedarray/Float32Array#__get f32.const 9 f32.ne if @@ -5824,12 +6110,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 99 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $std/typedarray/testArrayMap~anonymous|0 (; 123 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $0 local.get $0 f64.mul ) - (func $~lib/typedarray/Float64Array#map (; 100 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#map (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5884,33 +6170,27 @@ end local.get $2 ) - (func $std/typedarray/testArrayMap (; 101 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 125 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 call $~lib/typedarray/Float64Array#map local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne if @@ -5922,16 +6202,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 1 + call $~lib/typedarray/Float64Array#__get f64.const 4 f64.ne if @@ -5943,16 +6215,8 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 2 + call $~lib/typedarray/Float64Array#__get f64.const 9 f64.ne if @@ -5964,14 +6228,14 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 102 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 126 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Int8Array#some (; 103 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#some (; 127 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6010,28 +6274,28 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 104 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.eqz ) - (func $std/typedarray/testArraySome (; 105 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 129 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 35 call $~lib/typedarray/Int8Array#some @@ -6056,7 +6320,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#some (; 106 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6095,23 +6359,22 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome (; 107 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 131 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 37 call $~lib/typedarray/Uint8Array#some @@ -6136,22 +6399,22 @@ unreachable end ) - (func $std/typedarray/testArraySome (; 108 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 132 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 39 call $~lib/typedarray/Uint8Array#some @@ -6176,14 +6439,14 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 109 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 133 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Int16Array#some (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (; 134 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6226,28 +6489,28 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 111 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 135 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.eqz ) - (func $std/typedarray/testArraySome (; 112 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 136 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 41 call $~lib/typedarray/Int16Array#some @@ -6272,7 +6535,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#some (; 113 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#some (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6315,22 +6578,22 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome (; 114 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 138 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 43 call $~lib/typedarray/Uint16Array#some @@ -6355,12 +6618,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 115 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 139 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Int32Array#some (; 116 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (; 140 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6403,26 +6666,26 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 117 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 141 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz ) - (func $std/typedarray/testArraySome (; 118 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 142 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 45 call $~lib/typedarray/Int32Array#some @@ -6447,22 +6710,22 @@ unreachable end ) - (func $std/typedarray/testArraySome (; 119 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 143 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 47 call $~lib/typedarray/Int32Array#some @@ -6487,12 +6750,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 120 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 144 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Int64Array#some (; 121 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#some (; 145 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6535,27 +6798,27 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 122 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 146 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome (; 123 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 147 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 49 call $~lib/typedarray/Int64Array#some @@ -6580,22 +6843,22 @@ unreachable end ) - (func $std/typedarray/testArraySome (; 124 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 148 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 51 call $~lib/typedarray/Int64Array#some @@ -6620,12 +6883,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 125 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 149 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $~lib/typedarray/Float32Array#some (; 126 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6668,27 +6931,27 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 127 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 151 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome (; 128 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 152 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f32.const 2 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 4 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 6 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 53 call $~lib/typedarray/Float32Array#some @@ -6713,12 +6976,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 129 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 153 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $~lib/typedarray/Float64Array#some (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#some (; 154 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6761,27 +7024,27 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 131 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 155 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 0 f64.eq ) - (func $std/typedarray/testArraySome (; 132 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 156 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f64.const 2 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 4 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 6 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 55 call $~lib/typedarray/Float64Array#some @@ -6806,7 +7069,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#findIndex (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6848,36 +7111,36 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 134 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 135 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 159 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 57 call $~lib/typedarray/Int8Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -6890,7 +7153,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -6898,7 +7161,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#findIndex (; 136 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#findIndex (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6940,30 +7203,29 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex (; 137 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 161 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 59 call $~lib/typedarray/Uint8Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -6976,7 +7238,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -6984,29 +7246,29 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex (; 138 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 162 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 61 call $~lib/typedarray/Uint8Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7019,7 +7281,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7027,7 +7289,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#findIndex (; 139 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7073,36 +7335,36 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 140 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 164 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 141 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 165 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 63 call $~lib/typedarray/Int16Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7115,7 +7377,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7123,7 +7385,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#findIndex (; 142 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#findIndex (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7169,29 +7431,29 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex (; 143 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 167 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 65 call $~lib/typedarray/Uint16Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7204,7 +7466,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7212,7 +7474,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#findIndex (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7258,34 +7520,34 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 145 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 169 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 146 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 170 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 67 call $~lib/typedarray/Int32Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7298,7 +7560,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7306,29 +7568,29 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex (; 147 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 171 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 69 call $~lib/typedarray/Int32Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7341,7 +7603,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7349,7 +7611,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#findIndex (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7395,34 +7657,34 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 149 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 173 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex (; 150 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 174 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 71 call $~lib/typedarray/Int64Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7435,7 +7697,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7443,29 +7705,29 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex (; 151 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 175 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 73 call $~lib/typedarray/Int64Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7478,7 +7740,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7486,7 +7748,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#findIndex (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#findIndex (; 176 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7532,34 +7794,34 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 153 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 177 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex (; 154 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 178 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 75 call $~lib/typedarray/Float32Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7572,7 +7834,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7580,7 +7842,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#findIndex (; 155 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (; 179 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7626,34 +7888,34 @@ end local.get $0 ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 156 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 180 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 4 f64.eq ) - (func $std/typedarray/testArrayFindIndex (; 157 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 181 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 77 call $~lib/typedarray/Float64Array#findIndex i32.const 1 i32.ne if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -7666,7 +7928,7 @@ i32.const -1 i32.ne if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -7674,7 +7936,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 182 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -7684,7 +7946,7 @@ i32.rem_s i32.eqz ) - (func $~lib/typedarray/Int8Array#every (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#every (; 183 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7724,22 +7986,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 160 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 184 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 79 call $~lib/typedarray/Int8Array#every @@ -7764,13 +8026,13 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 161 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 185 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.and i32.eqz ) - (func $~lib/typedarray/Uint8Array#every (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#every (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7810,23 +8072,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 163 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 187 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 81 call $~lib/typedarray/Uint8Array#every @@ -7851,22 +8112,22 @@ unreachable end ) - (func $std/typedarray/testArrayEvery (; 164 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 188 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 83 call $~lib/typedarray/Uint8Array#every @@ -7891,7 +8152,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 165 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 189 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -7901,7 +8162,7 @@ i32.rem_s i32.eqz ) - (func $~lib/typedarray/Int16Array#every (; 166 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#every (; 190 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7945,22 +8206,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 167 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 191 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 85 call $~lib/typedarray/Int16Array#every @@ -7985,7 +8246,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#every (; 168 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#every (; 192 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8029,22 +8290,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 169 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 193 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 87 call $~lib/typedarray/Uint16Array#every @@ -8069,13 +8330,13 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 170 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 194 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.rem_s i32.eqz ) - (func $~lib/typedarray/Int32Array#every (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (; 195 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8119,22 +8380,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 172 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 196 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 89 call $~lib/typedarray/Int32Array#every @@ -8159,22 +8420,22 @@ unreachable end ) - (func $std/typedarray/testArrayEvery (; 173 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 197 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 91 call $~lib/typedarray/Int32Array#every @@ -8199,14 +8460,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 174 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 198 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_s i64.const 0 i64.eq ) - (func $~lib/typedarray/Int64Array#every (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#every (; 199 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8250,22 +8511,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 176 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 200 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 93 call $~lib/typedarray/Int64Array#every @@ -8290,29 +8551,29 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 177 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 201 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_u i64.const 0 i64.eq ) - (func $std/typedarray/testArrayEvery (; 178 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 202 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 95 call $~lib/typedarray/Int64Array#every @@ -8337,7 +8598,7 @@ unreachable end ) - (func $~lib/math/NativeMathf.mod (; 179 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 203 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8488,13 +8749,13 @@ local.get $0 f32.mul ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 180 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 204 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.mod f32.const 0 f32.eq ) - (func $~lib/typedarray/Float32Array#every (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8538,22 +8799,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 182 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 206 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f32.const 2 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 4 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 6 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 97 call $~lib/typedarray/Float32Array#every @@ -8578,7 +8839,7 @@ unreachable end ) - (func $~lib/math/NativeMath.mod (; 183 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 207 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -8737,13 +8998,13 @@ local.get $0 f64.mul ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 184 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 208 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 call $~lib/math/NativeMath.mod f64.const 0 f64.eq ) - (func $~lib/typedarray/Float64Array#every (; 185 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 209 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8787,22 +9048,22 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery (; 186 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 210 ;) (type $FUNCSIG$v) (local $0 i32) i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 - i32.load offset=4 + i32.const 0 f64.const 2 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 4 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 6 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 99 call $~lib/typedarray/Float64Array#every @@ -8827,31 +9088,18 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 187 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 211 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.const 255 i32.and - local.get $1 - i32.const 2 - i32.shl - local.tee $0 global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 - i32.add - i32.const -1 - local.get $0 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $1 + call $~lib/array/Array#__get i32.const 255 i32.and i32.ne if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -8862,7 +9110,7 @@ global.get $std/typedarray/forEachCallCount i32.ne if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -8873,7 +9121,7 @@ global.get $std/typedarray/forEachSelf i32.ne if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -8885,7 +9133,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int8Array#forEach (; 188 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int8Array#forEach (; 212 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8918,66 +9166,51 @@ end end ) - (func $std/typedarray/testArrayForEach (; 189 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 213 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 offset=1 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 offset=2 - local.get $1 call $~lib/typedarray/Int8Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -8985,7 +9218,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#forEach (; 190 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 214 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9018,68 +9251,46 @@ end end ) - (func $std/typedarray/testArrayForEach (; 191 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 215 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount - i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 offset=1 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 offset=2 - local.get $1 i32.const 102 call $~lib/typedarray/Uint8Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9087,113 +9298,46 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 192 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 216 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get i32.const 255 i32.and - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.sub - i32.const 31 - i32.shr_s - local.get $0 - i32.or - i32.and - i32.store8 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get i32.const 255 i32.and - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.sub - i32.const 31 - i32.shr_s - local.get $0 - i32.or - i32.and - i32.store8 offset=1 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get i32.const 255 i32.and - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.sub - i32.const 31 - i32.shr_s - local.get $0 - i32.or - i32.and - i32.store8 offset=2 - local.get $1 i32.const 103 call $~lib/typedarray/Uint8Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9201,31 +9345,18 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 193 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 217 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.const 65535 i32.and - local.get $1 - i32.const 2 - i32.shl - local.tee $0 global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 - i32.add - i32.const -1 - local.get $0 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $1 + call $~lib/array/Array#__get i32.const 65535 i32.and i32.ne if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -9236,7 +9367,7 @@ global.get $std/typedarray/forEachCallCount i32.ne if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -9247,7 +9378,7 @@ global.get $std/typedarray/forEachSelf i32.ne if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -9259,7 +9390,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int16Array#forEach (; 194 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Int16Array#forEach (; 218 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9296,66 +9427,51 @@ end end ) - (func $std/typedarray/testArrayForEach (; 195 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 219 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 offset=2 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 offset=4 - local.get $1 call $~lib/typedarray/Int16Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9363,7 +9479,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#forEach (; 196 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 220 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9400,66 +9516,45 @@ end end ) - (func $std/typedarray/testArrayForEach (; 197 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 221 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 offset=2 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 offset=4 - local.get $1 call $~lib/typedarray/Uint16Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9467,27 +9562,14 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 198 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $0 - local.get $1 - i32.const 2 - i32.shl - local.tee $0 + (func $std/typedarray/testArrayForEach~anonymous|0 (; 222 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 - i32.add - i32.const -1 + local.get $1 + call $~lib/array/Array#__get local.get $0 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load i32.ne if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -9498,7 +9580,7 @@ global.get $std/typedarray/forEachCallCount i32.ne if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -9509,7 +9591,7 @@ global.get $std/typedarray/forEachSelf i32.ne if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -9521,7 +9603,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int32Array#forEach (; 199 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 223 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9558,67 +9640,40 @@ end end ) - (func $std/typedarray/testArrayForEach (; 200 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 224 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=8 - local.get $1 i32.const 106 call $~lib/typedarray/Int32Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9626,67 +9681,40 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 201 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 225 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=8 - local.get $1 i32.const 107 call $~lib/typedarray/Int32Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9694,29 +9722,15 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 202 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 226 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) local.get $0 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 global.get $std/typedarray/forEachValues - local.tee $4 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $1 + call $~lib/array/Array#__get i64.extend_i32_s i64.ne if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -9727,7 +9741,7 @@ global.get $std/typedarray/forEachCallCount i32.ne if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -9738,7 +9752,7 @@ global.get $std/typedarray/forEachSelf i32.ne if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -9750,7 +9764,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int64Array#forEach (; 203 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 227 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9787,67 +9801,43 @@ end end ) - (func $std/typedarray/testArrayForEach (; 204 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 228 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=8 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=16 - local.get $1 i32.const 108 call $~lib/typedarray/Int64Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9855,67 +9845,43 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 205 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 229 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $1 - i32.load offset=4 + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=8 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=16 - local.get $1 i32.const 109 call $~lib/typedarray/Int64Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -9923,29 +9889,15 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 206 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 230 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) local.get $0 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 global.get $std/typedarray/forEachValues - local.tee $4 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $1 + call $~lib/array/Array#__get f32.convert_i32_s f32.ne if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -9956,7 +9908,7 @@ global.get $std/typedarray/forEachCallCount i32.ne if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -9967,7 +9919,7 @@ global.get $std/typedarray/forEachSelf i32.ne if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -9979,7 +9931,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float32Array#forEach (; 207 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float32Array#forEach (; 231 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10016,69 +9968,42 @@ end end ) - (func $std/typedarray/testArrayForEach (; 208 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 232 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get f32.convert_i32_s - f32.store - local.get $1 - i32.load offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get f32.convert_i32_s - f32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get f32.convert_i32_s - f32.store offset=8 - local.get $1 + call $~lib/typedarray/Float32Array#__set + local.get $0 call $~lib/typedarray/Float32Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -10086,29 +10011,15 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 209 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 233 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) local.get $0 - local.get $1 - i32.const 2 - i32.shl - local.tee $3 global.get $std/typedarray/forEachValues - local.tee $4 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $1 + call $~lib/array/Array#__get f64.convert_i32_s f64.ne if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -10119,7 +10030,7 @@ global.get $std/typedarray/forEachCallCount i32.ne if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -10130,7 +10041,7 @@ global.get $std/typedarray/forEachSelf i32.ne if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -10142,7 +10053,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float64Array#forEach (; 210 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/typedarray/Float64Array#forEach (; 234 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10179,69 +10090,42 @@ end end ) - (func $std/typedarray/testArrayForEach (; 211 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 235 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 global.set $std/typedarray/forEachSelf - local.get $1 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $2 - local.tee $0 - i32.load offset=4 - i32.const -1 + local.get $0 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get f64.convert_i32_s - f64.store - local.get $1 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + global.get $std/typedarray/forEachValues + i32.const 1 + call $~lib/array/Array#__get f64.convert_i32_s - f64.store offset=8 - local.get $1 - i32.load offset=4 - local.get $2 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get f64.convert_i32_s - f64.store offset=16 - local.get $1 + call $~lib/typedarray/Float64Array#__set + local.get $0 call $~lib/typedarray/Float64Array#forEach global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -10249,7 +10133,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#reverse (; 212 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 236 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10297,61 +10181,45 @@ end local.get $0 ) - (func $std/typedarray/testArrayReverse (; 213 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 237 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $std/typedarray/testArrayReverseValues local.set $1 i32.const 9 call $~lib/typedarray/Int8Array#constructor - local.set $3 + local.set $2 i32.const 9 call $~lib/typedarray/Int8Array#constructor - local.set $4 + local.set $3 loop $repeat|0 block $break|0 local.get $0 i32.const 9 i32.ge_s br_if $break|0 - local.get $3 - i32.load offset=4 + local.get $2 local.get $0 - i32.add + local.get $1 local.get $0 - i32.const 2 + call $~lib/array/Array#__get + i32.const 24 i32.shl - local.tee $2 - local.get $1 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 - local.get $4 - i32.load offset=4 + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $3 local.get $0 - i32.add local.get $1 - i32.load offset=4 - local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 + local.get $0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 1 i32.add @@ -10359,7 +10227,7 @@ br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Int8Array#reverse drop i32.const 0 @@ -10370,38 +10238,21 @@ i32.const 9 i32.ge_s br_if $break|1 - local.get $3 - i32.load offset=4 + local.get $2 local.get $0 - i32.add - i32.const -1 - local.get $0 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Int8Array#__get + local.get $1 i32.const 8 local.get $0 i32.sub - i32.const 2 + call $~lib/array/Array#__get + i32.const 24 i32.shl - local.tee $2 - local.get $1 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 255 - i32.and + i32.const 24 + i32.shr_s i32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -10417,25 +10268,18 @@ unreachable end end - local.get $4 + local.get $3 i32.const 4 i32.const 8 call $~lib/typedarray/Int8Array#subarray call $~lib/typedarray/Int8Array#reverse local.tee $0 - local.tee $1 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 8 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 @@ -10443,63 +10287,38 @@ unreachable end local.get $0 - local.tee $1 - i32.load offset=4 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 7 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - i32.load offset=4 + local.get $0 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 6 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - i32.load offset=4 + local.get $0 i32.const 3 - i32.add - i32.const -1 - i32.const 3 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -10507,7 +10326,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#reverse (; 214 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 238 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10555,7 +10374,7 @@ end local.get $0 ) - (func $~lib/typedarray/Uint8Array#subarray (; 215 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 239 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10606,63 +10425,41 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 216 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 240 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $std/typedarray/testArrayReverseValues local.set $1 - i32.const 0 + i32.const 9 + call $~lib/typedarray/Uint8Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Uint8Array#constructor local.set $3 - i32.const 0 - i32.const 9 - call $~lib/typedarray/Uint8Array#constructor - local.set $4 loop $repeat|0 block $break|0 local.get $0 i32.const 9 i32.ge_s br_if $break|0 + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $3 - i32.load offset=4 local.get $0 - i32.add + local.get $1 local.get $0 - i32.const 2 - i32.shl - local.tee $2 - local.get $1 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 - local.get $4 - i32.load offset=4 - local.get $0 - i32.add - local.get $1 - i32.load offset=4 - local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store8 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 1 i32.add @@ -10670,7 +10467,7 @@ br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Uint8Array#reverse drop i32.const 0 @@ -10681,38 +10478,19 @@ i32.const 9 i32.ge_s br_if $break|1 - local.get $3 - i32.load offset=4 + local.get $2 local.get $0 - i32.add - i32.const -1 - local.get $0 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get + local.get $1 i32.const 8 local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $2 - local.get $1 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and i32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -10728,23 +10506,16 @@ unreachable end end - local.get $4 + local.get $3 call $~lib/typedarray/Uint8Array#subarray call $~lib/typedarray/Uint8Array#reverse local.tee $0 - local.tee $1 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 8 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 @@ -10752,63 +10523,38 @@ unreachable end local.get $0 - local.tee $1 - i32.load offset=4 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 7 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - i32.load offset=4 + local.get $0 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 6 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - i32.load offset=4 + local.get $0 i32.const 3 - i32.add - i32.const -1 - i32.const 3 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 5 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -10816,7 +10562,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 217 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 241 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10867,92 +10613,41 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 218 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 242 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/testArrayReverseValues + local.set $1 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#constructor local.set $2 i32.const 9 call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $4 - i32.const 9 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $5 + local.set $3 loop $repeat|0 block $break|0 local.get $0 i32.const 9 i32.ge_s br_if $break|0 - local.get $4 - i32.load offset=4 + local.get $2 local.get $0 - i32.add + local.get $1 local.get $0 - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - i32.load offset=4 - i32.add - i32.const -1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 255 - i32.and - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 - local.get $5 - i32.load offset=4 local.get $0 - i32.add - local.get $2 - i32.load offset=4 - local.get $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + local.get $1 + local.get $0 + call $~lib/array/Array#__get i32.const 255 i32.and - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 1 i32.add @@ -10960,7 +10655,7 @@ br $repeat|0 end end - local.get $4 + local.get $2 call $~lib/typedarray/Uint8Array#reverse drop i32.const 0 @@ -10971,38 +10666,19 @@ i32.const 9 i32.ge_s br_if $break|1 - local.get $4 - i32.load offset=4 + local.get $2 local.get $0 - i32.add - i32.const -1 - local.get $0 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $1 i32.const 8 local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $3 - local.get $2 - i32.load offset=4 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and i32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -11018,87 +10694,55 @@ unreachable end end - local.get $5 + local.get $3 call $~lib/typedarray/Uint8ClampedArray#subarray call $~lib/typedarray/Uint8Array#reverse - local.tee $2 - local.tee $1 - i32.load offset=4 - i32.const -1 + local.tee $0 i32.const 0 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 8 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $2 - local.tee $1 - i32.load offset=4 + local.get $0 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - i32.load offset=4 + local.get $0 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 6 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - i32.load offset=4 + local.get $0 i32.const 3 - i32.add - i32.const -1 - i32.const 3 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -11106,7 +10750,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#reverse (; 219 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 243 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11160,7 +10804,7 @@ end local.get $0 ) - (func $~lib/typedarray/Int16Array#subarray (; 220 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 244 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11217,172 +10861,116 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 221 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 245 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Int16Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Int16Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Int16Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 + local.get $2 + local.get $0 local.get $1 - i32.const 1 + local.get $0 + call $~lib/array/Array#__get + i32.const 16 i32.shl - local.tee $5 + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $3 - i32.load offset=4 - i32.add + local.get $0 local.get $1 - i32.const 2 + local.get $0 + call $~lib/array/Array#__get + i32.const 16 i32.shl - local.tee $2 + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 - local.get $4 - i32.load offset=4 - local.get $5 - i32.add - local.get $0 - i32.load offset=4 - local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 - local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $repeat|1 block $break|1 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + local.get $0 + call $~lib/typedarray/Int16Array#__get + local.get $1 i32.const 8 - local.get $1 + local.get $0 i32.sub - i32.const 2 + call $~lib/array/Array#__get + i32.const 16 i32.shl - local.tee $2 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 65535 - i32.and + i32.const 16 + i32.shr_s i32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 call $~lib/typedarray/Int16Array#subarray call $~lib/typedarray/Int16Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + call $~lib/typedarray/Int16Array#__get i32.const 8 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 2 - i32.add - i32.const -1 - i32.const 2 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 1 + call $~lib/typedarray/Int16Array#__get i32.const 7 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -11390,20 +10978,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 2 + call $~lib/typedarray/Int16Array#__get i32.const 6 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -11411,20 +10991,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - i32.const -1 - i32.const 6 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 3 + call $~lib/typedarray/Int16Array#__get i32.const 5 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -11432,7 +11004,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#reverse (; 222 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 246 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11486,7 +11058,7 @@ end local.get $0 ) - (func $~lib/typedarray/Uint16Array#subarray (; 223 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 247 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11543,172 +11115,110 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 224 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 248 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Uint16Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Uint16Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Uint16Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 + local.get $2 + local.get $0 local.get $1 - i32.const 1 - i32.shl - local.tee $5 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $3 - i32.load offset=4 - i32.add + local.get $0 local.get $1 - i32.const 2 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 - local.get $4 - i32.load offset=4 - local.get $5 - i32.add - local.get $0 - i32.load offset=4 - local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store16 - local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Uint16Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $repeat|1 block $break|1 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + local.get $0 + call $~lib/typedarray/Uint16Array#__get + local.get $1 i32.const 8 - local.get $1 + local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $2 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 65535 i32.and i32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 call $~lib/typedarray/Uint16Array#subarray call $~lib/typedarray/Uint16Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + call $~lib/typedarray/Uint16Array#__get i32.const 8 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 2 - i32.add - i32.const -1 - i32.const 2 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 1 + call $~lib/typedarray/Uint16Array#__get i32.const 7 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -11716,20 +11226,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 2 + call $~lib/typedarray/Uint16Array#__get i32.const 6 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -11737,20 +11239,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - i32.const -1 - i32.const 6 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 3 + call $~lib/typedarray/Uint16Array#__get i32.const 5 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -11758,7 +11252,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reverse (; 225 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 249 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11812,168 +11306,106 @@ end local.get $0 ) - (func $std/typedarray/testArrayReverse (; 226 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 250 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Int32Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Int32Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Int32Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $2 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 local.get $2 - i32.const 2 - i32.shl - local.tee $1 + local.get $0 + local.get $1 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $3 - i32.load offset=4 - i32.add local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.const -1 local.get $1 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $4 - i32.load offset=4 - local.get $1 - i32.add + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $2 i32.const 1 i32.add - local.set $2 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Int32Array#reverse drop i32.const 0 - local.set $2 + local.set $0 loop $repeat|1 block $break|1 - local.get $2 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 local.get $2 - i32.const 2 - i32.shl - local.tee $1 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#__get local.get $1 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load i32.const 8 - local.get $2 + local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $1 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 i32.const 4 i32.const 8 call $~lib/typedarray/Int32Array#subarray call $~lib/typedarray/Int32Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 8 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/typedarray/Int32Array#__get i32.const 7 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -11981,20 +11413,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/typedarray/Int32Array#__get i32.const 6 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -12002,20 +11426,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/typedarray/Int32Array#__get i32.const 5 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -12023,7 +11439,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#subarray (; 227 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 251 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12080,166 +11496,104 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 228 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 252 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Uint32Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Uint32Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Uint32Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $2 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 local.get $2 - i32.const 2 - i32.shl - local.tee $1 + local.get $0 + local.get $1 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $3 - i32.load offset=4 - i32.add local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.const -1 local.get $1 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $4 - i32.load offset=4 - local.get $1 - i32.add + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $2 i32.const 1 i32.add - local.set $2 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Int32Array#reverse drop i32.const 0 - local.set $2 + local.set $0 loop $repeat|1 block $break|1 - local.get $2 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 local.get $2 - i32.const 2 - i32.shl - local.tee $1 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 + local.get $0 + call $~lib/typedarray/Uint32Array#__get local.get $1 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load i32.const 8 - local.get $2 + local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $1 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 call $~lib/typedarray/Uint32Array#subarray call $~lib/typedarray/Int32Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Uint32Array#__get i32.const 8 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/typedarray/Uint32Array#__get i32.const 7 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -12247,20 +11601,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/typedarray/Uint32Array#__get i32.const 6 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -12268,20 +11614,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/typedarray/Uint32Array#__get i32.const 5 i32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -12289,7 +11627,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#reverse (; 229 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 253 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12343,7 +11681,7 @@ end local.get $0 ) - (func $~lib/typedarray/Int64Array#subarray (; 230 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 254 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12400,170 +11738,107 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 231 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 255 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Int64Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Int64Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Int64Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 + local.get $2 + local.get $0 local.get $1 - i32.const 3 - i32.shl - local.tee $5 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $3 - i32.load offset=4 - i32.add + local.get $0 local.get $1 - i32.const 2 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $4 - i32.load offset=4 - local.get $5 - i32.add - local.get $0 - i32.load offset=4 - local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Int64Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $repeat|1 block $break|1 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 - local.get $1 - i32.const 3 - i32.shl - local.tee $2 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i64.load + local.get $0 + call $~lib/typedarray/Int64Array#__get + local.get $1 i32.const 8 - local.get $1 + local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $2 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s + call $~lib/array/Array#__get + i64.extend_i32_s i64.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#subarray call $~lib/typedarray/Int64Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Int64Array#__get i64.const 8 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 1 + call $~lib/typedarray/Int64Array#__get i64.const 7 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -12571,20 +11846,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 2 + call $~lib/typedarray/Int64Array#__get i64.const 6 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -12592,20 +11859,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - i32.const -1 - i32.const 24 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 3 + call $~lib/typedarray/Int64Array#__get i64.const 5 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -12613,7 +11872,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#subarray (; 232 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 256 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12670,170 +11929,107 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 233 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 257 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Uint64Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Uint64Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Uint64Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 + local.get $2 + local.get $0 local.get $1 - i32.const 3 - i32.shl - local.tee $5 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $3 - i32.load offset=4 - i32.add + local.get $0 local.get $1 - i32.const 2 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $4 - i32.load offset=4 - local.get $5 - i32.add - local.get $0 - i32.load offset=4 - local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Int64Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $repeat|1 block $break|1 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 - local.get $1 - i32.const 3 - i32.shl - local.tee $2 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i64.load + local.get $0 + call $~lib/typedarray/Uint64Array#__get + local.get $1 i32.const 8 - local.get $1 + local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $2 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load32_s + call $~lib/array/Array#__get + i64.extend_i32_s i64.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 call $~lib/typedarray/Uint64Array#subarray call $~lib/typedarray/Int64Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Uint64Array#__get i64.const 8 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 1 + call $~lib/typedarray/Uint64Array#__get i64.const 7 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -12841,20 +12037,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 2 + call $~lib/typedarray/Uint64Array#__get i64.const 6 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -12862,20 +12050,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - i32.const -1 - i32.const 24 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 3 + call $~lib/typedarray/Uint64Array#__get i64.const 5 i64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -12883,7 +12063,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#reverse (; 234 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 258 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12937,7 +12117,7 @@ end local.get $0 ) - (func $~lib/typedarray/Float32Array#subarray (; 235 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 259 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12994,169 +12174,107 @@ i32.store offset=8 local.get $0 ) - (func $std/typedarray/testArrayReverse (; 236 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 260 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Float32Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Float32Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Float32Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $2 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 local.get $2 - i32.const 2 - i32.shl - local.tee $1 + local.get $0 + local.get $1 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set local.get $3 - i32.load offset=4 - i32.add local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.const -1 local.get $1 local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f32.convert_i32_s - f32.store - local.get $4 - i32.load offset=4 - local.get $1 - i32.add + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - f32.convert_i32_s - f32.store - local.get $2 i32.const 1 i32.add - local.set $2 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Float32Array#reverse drop i32.const 0 - local.set $2 + local.set $0 loop $repeat|1 block $break|1 - local.get $2 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 local.get $2 - i32.const 2 - i32.shl - local.tee $1 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 + local.get $0 + call $~lib/typedarray/Float32Array#__get local.get $1 - local.get $3 - i32.load offset=8 - i32.lt_u - select - f32.load i32.const 8 - local.get $2 + local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $1 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f32.convert_i32_s f32.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 call $~lib/typedarray/Float32Array#subarray call $~lib/typedarray/Float32Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/typedarray/Float32Array#__get f32.const 8 f32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 1 + call $~lib/typedarray/Float32Array#__get f32.const 7 f32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -13164,20 +12282,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 2 + call $~lib/typedarray/Float32Array#__get f32.const 6 f32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -13185,20 +12295,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - i32.const -1 - i32.const 12 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 3 + call $~lib/typedarray/Float32Array#__get f32.const 5 f32.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -13206,7 +12308,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#reverse (; 237 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 261 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -13260,175 +12362,109 @@ end local.get $0 ) - (func $std/typedarray/testArrayReverse (; 238 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 262 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/testArrayReverseValues - local.set $0 + local.set $1 + i32.const 9 + call $~lib/typedarray/Float64Array#constructor + local.set $2 i32.const 9 call $~lib/typedarray/Float64Array#constructor local.set $3 - i32.const 9 - call $~lib/typedarray/Float64Array#constructor - local.set $4 loop $repeat|0 block $break|0 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|0 + local.get $2 + local.get $0 local.get $1 - i32.const 3 - i32.shl - local.tee $5 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set local.get $3 - i32.load offset=4 - i32.add + local.get $0 local.get $1 - i32.const 2 - i32.shl - local.tee $2 local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f64.convert_i32_s - f64.store - local.get $4 - i32.load offset=4 - local.get $5 - i32.add + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 - local.get $2 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load - f64.convert_i32_s - f64.store - local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|0 end end - local.get $3 + local.get $2 call $~lib/typedarray/Float64Array#reverse drop i32.const 0 - local.set $1 + local.set $0 loop $repeat|1 block $break|1 - local.get $1 + local.get $0 i32.const 9 i32.ge_s br_if $break|1 - local.get $1 - i32.const 3 - i32.shl - local.tee $2 - local.get $3 - i32.load offset=4 - i32.add - i32.const -1 local.get $2 - local.get $3 - i32.load offset=8 - i32.lt_u - select - f64.load + local.get $0 + call $~lib/typedarray/Float64Array#__get + local.get $1 i32.const 8 - local.get $1 + local.get $0 i32.sub - i32.const 2 - i32.shl - local.tee $2 - local.get $0 - i32.load offset=4 - i32.add - i32.const -1 - local.get $2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f64.convert_i32_s f64.ne if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 call $~lib/env/abort unreachable else - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $repeat|1 end unreachable end end - local.get $4 + local.get $3 i32.const 4 i32.const 8 call $~lib/typedarray/Float64Array#subarray call $~lib/typedarray/Float64Array#reverse - local.tee $1 local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 8 f64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $1 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 1 + call $~lib/typedarray/Float64Array#__get f64.const 7 f64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 @@ -13436,20 +12472,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 2 + call $~lib/typedarray/Float64Array#__get f64.const 6 f64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 @@ -13457,20 +12485,12 @@ unreachable end local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - i32.const -1 - i32.const 24 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 3 + call $~lib/typedarray/Float64Array#__get f64.const 5 f64.ne if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -13478,10 +12498,10 @@ unreachable end ) - (func $start:std/typedarray (; 239 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 263 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - i32.const 1104 + i32.const 1192 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset @@ -13493,19 +12513,18 @@ call $~lib/typedarray/Int32Array#constructor global.set $std/typedarray/arr global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr i32.const 1 - i32.store - local.get $0 - i32.load offset=4 i32.const 2 - i32.store offset=4 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr + i32.const 2 i32.const 3 - i32.store offset=8 - local.get $0 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr i32.load offset=8 i32.const 2 i32.shr_u @@ -13546,15 +12565,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne if @@ -13566,17 +12578,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 - i32.const 4 - i32.add - i32.const -1 - i32.const 4 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne if @@ -13588,17 +12591,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne if @@ -13657,15 +12651,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne if @@ -13680,39 +12667,38 @@ call $~lib/typedarray/Float64Array#constructor global.set $std/typedarray/af64 global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 + i32.const 1 f64.const 2 - f64.store offset=8 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 + i32.const 2 f64.const 7 - f64.store offset=16 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 + i32.const 3 f64.const 6 - f64.store offset=24 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 + i32.const 4 f64.const 5 - f64.store offset=32 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 + i32.const 5 f64.const 4 - f64.store offset=40 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 + i32.const 6 f64.const 3 - f64.store offset=48 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 + i32.const 7 f64.const 8 - f64.store offset=56 - local.get $0 + call $~lib/typedarray/Float64Array#__set + global.get $std/typedarray/af64 i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray @@ -13782,31 +12768,15 @@ block (result i32) block (result i32) global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq local.tee $0 if global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 - i32.const 8 - i32.add - i32.const -1 - i32.const 8 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 1 + call $~lib/typedarray/Float64Array#__get f64.const 5 f64.eq local.set $0 @@ -13815,17 +12785,8 @@ end if global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 - i32.const 16 - i32.add - i32.const -1 - i32.const 16 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 2 + call $~lib/typedarray/Float64Array#__get f64.const 6 f64.eq local.set $0 @@ -13834,17 +12795,8 @@ end if global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 - i32.const 24 - i32.add - i32.const -1 - i32.const 24 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 3 + call $~lib/typedarray/Float64Array#__get f64.const 7 f64.eq local.set $0 @@ -13863,27 +12815,20 @@ call $~lib/typedarray/Uint8ClampedArray#constructor global.set $std/typedarray/clampedArr global.get $std/typedarray/clampedArr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.store8 - local.get $0 - i32.load offset=4 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $std/typedarray/clampedArr + i32.const 1 i32.const 2 - i32.store8 offset=1 - local.get $0 - i32.load offset=4 - i32.const -1 - i32.store8 offset=2 - local.get $0 - i32.load offset=4 - i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $std/typedarray/clampedArr + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $std/typedarray/clampedArr i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get if i32.const 0 i32.const 16 @@ -13893,17 +12838,8 @@ unreachable end global.get $std/typedarray/clampedArr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.add - i32.const -1 - i32.const 1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne if @@ -13915,17 +12851,8 @@ unreachable end global.get $std/typedarray/clampedArr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.add - i32.const -1 - i32.const 2 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 255 i32.ne if @@ -13940,33 +12867,32 @@ call $~lib/typedarray/Int8Array#constructor global.set $std/typedarray/arr8 global.get $std/typedarray/arr8 - local.tee $0 - i32.load offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/arr8 i32.const 1 - i32.store8 - local.get $0 - i32.load offset=4 i32.const 2 - i32.store8 offset=1 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/arr8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/arr8 i32.const 3 - i32.store8 offset=2 - local.get $0 - i32.load offset=4 i32.const 4 - i32.store8 offset=3 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/arr8 + i32.const 4 i32.const 5 - i32.store8 offset=4 - local.get $0 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/arr8 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int8Array#fill global.get $std/typedarray/arr8 - i32.const 152 + i32.const 200 i32.const 15 i32.const 0 call $~lib/runtime/doWrapArray @@ -13986,7 +12912,7 @@ i32.const 2147483647 call $~lib/typedarray/Int8Array#fill global.get $std/typedarray/arr8 - i32.const 168 + i32.const 256 i32.const 15 i32.const 0 call $~lib/runtime/doWrapArray @@ -14006,7 +12932,7 @@ i32.const -3 call $~lib/typedarray/Int8Array#fill global.get $std/typedarray/arr8 - i32.const 184 + i32.const 272 i32.const 15 i32.const 0 call $~lib/runtime/doWrapArray @@ -14026,7 +12952,7 @@ i32.const 2147483647 call $~lib/typedarray/Int8Array#fill global.get $std/typedarray/arr8 - i32.const 200 + i32.const 288 i32.const 15 i32.const 0 call $~lib/runtime/doWrapArray @@ -14046,7 +12972,7 @@ i32.const 0 call $~lib/typedarray/Int8Array#fill global.get $std/typedarray/arr8 - i32.const 216 + i32.const 304 i32.const 15 i32.const 0 call $~lib/runtime/doWrapArray @@ -14111,7 +13037,7 @@ unreachable end global.get $std/typedarray/sub8 - i32.const 232 + i32.const 320 i32.const 15 i32.const 0 call $~lib/runtime/doWrapArray @@ -14126,7 +13052,7 @@ unreachable end global.get $std/typedarray/arr8 - i32.const 248 + i32.const 336 i32.const 15 i32.const 0 call $~lib/runtime/doWrapArray @@ -14144,33 +13070,32 @@ call $~lib/typedarray/Int32Array#constructor global.set $std/typedarray/arr32 global.get $std/typedarray/arr32 - local.tee $0 - i32.load offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr32 i32.const 1 - i32.store - local.get $0 - i32.load offset=4 i32.const 2 - i32.store offset=4 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr32 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr32 i32.const 3 - i32.store offset=8 - local.get $0 - i32.load offset=4 i32.const 4 - i32.store offset=12 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr32 + i32.const 4 i32.const 5 - i32.store offset=16 - local.get $0 + call $~lib/typedarray/Int32Array#__set + global.get $std/typedarray/arr32 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#fill global.get $std/typedarray/arr32 - i32.const 264 + i32.const 352 i32.const 16 i32.const 2 call $~lib/runtime/doWrapArray @@ -14190,7 +13115,7 @@ i32.const 2147483647 call $~lib/typedarray/Int32Array#fill global.get $std/typedarray/arr32 - i32.const 296 + i32.const 384 i32.const 16 i32.const 2 call $~lib/runtime/doWrapArray @@ -14210,7 +13135,7 @@ i32.const -3 call $~lib/typedarray/Int32Array#fill global.get $std/typedarray/arr32 - i32.const 328 + i32.const 416 i32.const 16 i32.const 2 call $~lib/runtime/doWrapArray @@ -14230,7 +13155,7 @@ i32.const 2147483647 call $~lib/typedarray/Int32Array#fill global.get $std/typedarray/arr32 - i32.const 360 + i32.const 448 i32.const 16 i32.const 2 call $~lib/runtime/doWrapArray @@ -14250,7 +13175,7 @@ i32.const 0 call $~lib/typedarray/Int32Array#fill global.get $std/typedarray/arr32 - i32.const 392 + i32.const 480 i32.const 16 i32.const 2 call $~lib/runtime/doWrapArray @@ -14317,7 +13242,7 @@ unreachable end global.get $std/typedarray/sub32 - i32.const 424 + i32.const 512 i32.const 16 i32.const 2 call $~lib/runtime/doWrapArray @@ -14332,7 +13257,7 @@ unreachable end global.get $std/typedarray/arr32 - i32.const 448 + i32.const 536 i32.const 16 i32.const 2 call $~lib/runtime/doWrapArray @@ -14353,45 +13278,37 @@ call $~lib/typedarray/Int8Array#constructor global.set $std/typedarray/multisubarr global.get $std/typedarray/multisubarr - local.tee $0 - i32.load offset=4 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/multisubarr i32.const 1 - i32.store8 - local.get $0 - i32.load offset=4 i32.const 2 - i32.store8 offset=1 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/multisubarr + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/multisubarr i32.const 3 - i32.store8 offset=2 - local.get $0 - i32.load offset=4 i32.const 4 - i32.store8 offset=3 - local.get $0 - i32.load offset=4 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/multisubarr + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/multisubarr i32.const 5 - i32.store8 offset=4 - local.get $0 - i32.load offset=4 i32.const 6 - i32.store8 offset=5 - local.get $0 + call $~lib/typedarray/Int8Array#__set + global.get $std/typedarray/multisubarr i32.const 1 i32.const 6 call $~lib/typedarray/Int8Array#subarray global.set $std/typedarray/multisubarr1 global.get $std/typedarray/multisubarr1 - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne if @@ -14448,15 +13365,8 @@ call $~lib/typedarray/Int8Array#subarray global.set $std/typedarray/multisubarr2 global.get $std/typedarray/multisubarr2 - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne if @@ -14513,15 +13423,8 @@ call $~lib/typedarray/Int8Array#subarray global.set $std/typedarray/multisubarr3 global.get $std/typedarray/multisubarr3 - local.tee $0 - i32.load offset=4 - i32.const -1 i32.const 0 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne if @@ -14661,10 +13564,10 @@ call $std/typedarray/testArrayReverse call $std/typedarray/testArrayReverse ) - (func $start (; 240 ;) (type $FUNCSIG$v) + (func $start (; 264 ;) (type $FUNCSIG$v) call $start:std/typedarray ) - (func $null (; 241 ;) (type $FUNCSIG$v) + (func $null (; 265 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index e7a38fc9..e34ee878 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -5,17 +5,23 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$viii (func (param i32 i32 i32))) + (type $FUNCSIG$viid (func (param i32 i32 f64))) (type $FUNCSIG$idd (func (param f64 f64) (result i32))) + (type $FUNCSIG$dii (func (param i32 i32) (result f64))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$v (func)) + (type $FUNCSIG$viij (func (param i32 i32 i64))) (type $FUNCSIG$jjjii (func (param i64 i64 i32 i32) (result i64))) (type $FUNCSIG$jiij (func (param i32 i32 i64) (result i64))) + (type $FUNCSIG$viif (func (param i32 i32 f32))) (type $FUNCSIG$fffii (func (param f32 f32 i32 i32) (result f32))) (type $FUNCSIG$fiif (func (param i32 i32 f32) (result f32))) (type $FUNCSIG$dddii (func (param f64 f64 i32 i32) (result f64))) (type $FUNCSIG$diid (func (param i32 i32 f64) (result f64))) (type $FUNCSIG$jjii (func (param i64 i32 i32) (result i64))) + (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$ffii (func (param f32 i32 i32) (result f32))) + (type $FUNCSIG$fii (func (param i32 i32) (result f32))) (type $FUNCSIG$ddii (func (param f64 i32 i32) (result f64))) (type $FUNCSIG$ijii (func (param i64 i32 i32) (result i32))) (type $FUNCSIG$ifii (func (param f32 i32 i32) (result i32))) @@ -31,32 +37,34 @@ (data (i32.const 8) "\01\00\00\00\"\00\00\00s\00t\00d\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 56) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 96) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 144) "\02\00\00\00\05\00\00\00\01\01\01\04\05") - (data (i32.const 160) "\02\00\00\00\05\00\00\00\00\00\00\00\00") - (data (i32.const 176) "\02\00\00\00\05\00\00\00\01\01\00\00\00") - (data (i32.const 192) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 208) "\02\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 224) "\02\00\00\00\03\00\00\00\00\00\00") - (data (i32.const 240) "\02\00\00\00\05\00\00\00\01\00\00\00\02") - (data (i32.const 256) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 288) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 320) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 352) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 384) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 416) "\02\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 440) "\02\00\00\00\14\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00") - (data (i32.const 472) "\01\00\00\00\1e\00\00\00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 512) "\01\00\00\00(\00\00\00f\00a\00i\00l\00 \00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 560) "\02\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e\00\00\00") - (data (i32.const 584) "\10\00\00\00\10\00\00\008\02\00\008\02\00\00\0c\00\00\00\03\00\00\00") - (data (i32.const 608) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 664) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00i\00n\00d\00e\00x\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 720) "\01\00\00\00>\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00s\00e\00l\00f\00 \00p\00a\00r\00a\00m\00e\00t\00e\00r\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 792) "\01\00\00\006\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00c\00a\00l\00l\00 \00c\00o\00u\00n\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 856) "\02\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") - (data (i32.const 904) "\10\00\00\00\10\00\00\00`\03\00\00`\03\00\00$\00\00\00\t\00\00\00") - (data (i32.const 928) "\01\00\00\00B\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 1008) "\01\00\00\00V\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 144) "\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 192) "\02\00\00\00\05\00\00\00\01\01\01\04\05") + (data (i32.const 208) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 248) "\02\00\00\00\05\00\00\00\00\00\00\00\00") + (data (i32.const 264) "\02\00\00\00\05\00\00\00\01\01\00\00\00") + (data (i32.const 280) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 296) "\02\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 312) "\02\00\00\00\03\00\00\00\00\00\00") + (data (i32.const 328) "\02\00\00\00\05\00\00\00\01\00\00\00\02") + (data (i32.const 344) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 376) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 408) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 440) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") + (data (i32.const 472) "\02\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") + (data (i32.const 504) "\02\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 528) "\02\00\00\00\14\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00") + (data (i32.const 560) "\01\00\00\00\1e\00\00\00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 600) "\01\00\00\00(\00\00\00f\00a\00i\00l\00 \00r\00e\00s\00u\00l\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 648) "\02\00\00\00\0c\00\00\00\n\00\00\00\0c\00\00\00\0e\00\00\00") + (data (i32.const 672) "\10\00\00\00\10\00\00\00\90\02\00\00\90\02\00\00\0c\00\00\00\03\00\00\00") + (data (i32.const 696) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 752) "\01\00\00\00,\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00i\00n\00d\00e\00x\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 808) "\01\00\00\00>\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00s\00e\00l\00f\00 \00p\00a\00r\00a\00m\00e\00t\00e\00r\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 880) "\01\00\00\006\00\00\00f\00o\00r\00E\00a\00c\00h\00 \00c\00a\00l\00l\00 \00c\00o\00u\00n\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 944) "\02\00\00\00$\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") + (data (i32.const 992) "\10\00\00\00\10\00\00\00\b8\03\00\00\b8\03\00\00$\00\00\00\t\00\00\00") + (data (i32.const 1016) "\01\00\00\00B\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") + (data (i32.const 1096) "\01\00\00\00V\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") (table $0 112 funcref) (elem (i32.const 0) $null $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduce~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testReduceRight~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArrayMap~anonymous|0 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArraySome~anonymous|0 $std/typedarray/testArraySome~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayFindIndex~anonymous|0 $std/typedarray/testArrayFindIndex~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayEvery~anonymous|0 $std/typedarray/testArrayEvery~anonymous|1 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0 $std/typedarray/testArrayForEach~anonymous|0) (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) @@ -93,9 +101,9 @@ (global $std/typedarray/multisubarr3 (mut i32) (i32.const 0)) (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) - (global $std/typedarray/forEachValues (mut i32) (i32.const 592)) - (global $std/typedarray/testArrayReverseValues (mut i32) (i32.const 912)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 1104)) + (global $std/typedarray/forEachValues (mut i32) (i32.const 680)) + (global $std/typedarray/testArrayReverseValues (mut i32) (i32.const 1000)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 1192)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) @@ -662,25 +670,27 @@ (func $~lib/typedarray/Uint8ClampedArray#constructor (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 - i32.eqz - if - block $~lib/runtime/REGISTER|inlined.0 (result i32) - i32.const 12 - call $~lib/runtime/ALLOCATE - local.set $2 - local.get $2 - i32.const 6 - call $~lib/runtime/doRegister - end - local.set $0 + if (result i32) + local.get $0 + else + i32.const 12 + call $~lib/runtime/ALLOCATE + local.set $2 + local.get $2 + i32.const 6 + call $~lib/runtime/doRegister end - local.get $0 local.get $1 - call $~lib/typedarray/Uint8Array#constructor + i32.const 0 + call $~lib/runtime/ArrayBufferView#constructor local.set $0 local.get $0 ) - (func $~lib/typedarray/Int16Array#constructor (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#get:length (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + local.get $0 + call $~lib/runtime/ArrayBufferView#get:byteLength + ) + (func $~lib/typedarray/Int16Array#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -699,13 +709,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int16Array#get:length (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#get:length (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) - (func $~lib/typedarray/Uint16Array#constructor (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#constructor (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -724,13 +734,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint16Array#get:length (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#get:length (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 1 i32.shr_u ) - (func $~lib/typedarray/Int32Array#constructor (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#constructor (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -749,13 +759,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int32Array#get:length (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#get:length (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) - (func $~lib/typedarray/Uint32Array#constructor (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#constructor (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -774,13 +784,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint32Array#get:length (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#get:length (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) - (func $~lib/typedarray/Int64Array#constructor (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#constructor (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -799,13 +809,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Int64Array#get:length (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#get:length (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) - (func $~lib/typedarray/Uint64Array#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -824,13 +834,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Uint64Array#get:length (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#get:length (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) - (func $~lib/typedarray/Float32Array#constructor (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#constructor (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -849,13 +859,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Float32Array#get:length (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#get:length (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 2 i32.shr_u ) - (func $~lib/typedarray/Float64Array#constructor (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#constructor (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 if (result i32) @@ -874,13 +884,13 @@ local.set $0 local.get $0 ) - (func $~lib/typedarray/Float64Array#get:length (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#get:length (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/runtime/ArrayBufferView#get:byteLength i32.const 3 i32.shr_u ) - (func $std/typedarray/testInstantiate (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $std/typedarray/testInstantiate (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1015,7 +1025,7 @@ unreachable end local.get $3 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.get $0 i32.eq i32.eqz @@ -1388,7 +1398,54 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#subarray (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#__set (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 435 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $~lib/typedarray/Int32Array#__get (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 429 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $~lib/typedarray/Int32Array#subarray (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1502,7 +1559,31 @@ i32.store offset=8 local.get $7 ) - (func $~lib/typedarray/Float64Array#subarray (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#__set (; 38 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 840 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + f64.store + ) + (func $~lib/typedarray/Float64Array#subarray (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1616,7 +1697,7 @@ i32.store offset=8 local.get $7 ) - (func $~lib/util/sort/insertionSort (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 i32) @@ -1712,12 +1793,12 @@ unreachable end ) - (func $~lib/memory/memory.free (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 local.set $1 ) - (func $~lib/util/sort/weakHeapSort (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 42 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2017,7 +2098,7 @@ local.get $10 f64.store ) - (func $~lib/typedarray/Float64Array#sort (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2101,7 +2182,7 @@ local.get $2 end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 40 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 44 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -2134,7 +2215,7 @@ i64.lt_s i32.sub ) - (func $~lib/typedarray/Float64Array#sort|trampoline (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#sort|trampoline (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -2153,7 +2234,101 @@ local.get $1 call $~lib/typedarray/Float64Array#sort ) - (func $~lib/typedarray/Int8Array#fill (; 42 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Float64Array#__get (; 46 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 834 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (; 47 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 192 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + local.get $2 + i32.or + i32.and + i32.store8 + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 186 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $~lib/typedarray/Int8Array#__set (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 30 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $~lib/typedarray/Int8Array#fill (; 50 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -2241,13 +2416,13 @@ end local.get $4 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 global.get $~lib/runtime/HEADER_SIZE i32.sub i32.load offset=4 ) - (func $~lib/util/memory/memcpy (; 44 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3448,7 +3623,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 45 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) block $~lib/util/memory/memmove|inlined.0 local.get $0 @@ -3677,7 +3852,7 @@ end end ) - (func $~lib/runtime/doWrapArray (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/runtime/doWrapArray (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3714,15 +3889,55 @@ call $~lib/memory/memory.copy local.get $3 ) - (func $~lib/array/Array#get:length (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/typedarray/isInt8ArrayEqual (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#__get (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 24 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $~lib/array/Array#__get (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 0 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 216 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_s + ) + (func $std/typedarray/isInt8ArrayEqual (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $1 @@ -3747,31 +3962,11 @@ i32.eqz br_if $break|0 local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $2 - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -3788,7 +3983,7 @@ end i32.const 1 ) - (func $~lib/typedarray/Int8Array#subarray (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3902,7 +4097,7 @@ i32.store offset=8 local.get $7 ) - (func $~lib/typedarray/Int32Array#fill (; 50 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int32Array#fill (; 60 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -4000,15 +4195,36 @@ end local.get $4 ) - (func $~lib/array/Array#get:length (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $std/typedarray/isInt32ArrayEqual (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 216 + i32.const 68 + i32.const 61 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/isInt32ArrayEqual (; 63 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $0 call $~lib/typedarray/Int32Array#get:length local.get $1 @@ -4033,35 +4249,11 @@ i32.eqz br_if $break|0 local.get $0 - local.tee $4 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get local.get $1 - local.tee $4 - i32.load offset=4 local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.ne if i32.const 0 @@ -4078,12 +4270,12 @@ end i32.const 1 ) - (func $std/typedarray/testReduce~anonymous|0 (; 53 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce~anonymous|0 (; 64 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int8Array#reduce (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduce (; 65 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4140,7 +4332,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 55 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 66 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4148,17 +4340,17 @@ call $~lib/typedarray/Int8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 2 i32.const 0 @@ -4181,12 +4373,32 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 56 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__set (; 67 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 111 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + i32.store8 + ) + (func $std/typedarray/testReduce~anonymous|0 (; 68 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8Array#reduce (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduce (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4243,7 +4455,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 58 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 70 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4251,17 +4463,17 @@ call $~lib/typedarray/Uint8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 3 i32.const 0 @@ -4282,12 +4494,12 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 59 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce~anonymous|0 (; 71 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8ClampedArray#reduce (; 60 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reduce (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4308,7 +4520,7 @@ i32.const 0 local.set $7 local.get $3 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $8 end loop $repeat|0 @@ -4344,71 +4556,31 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 61 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 73 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 4 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#reduce - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -4423,12 +4595,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 62 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int16Array#__set (; 74 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 273 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $std/typedarray/testReduce~anonymous|0 (; 75 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int16Array#reduce (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduce (; 76 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4485,7 +4681,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 64 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 77 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4493,17 +4689,17 @@ call $~lib/typedarray/Int16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 5 i32.const 0 @@ -4526,12 +4722,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 65 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__set (; 78 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 354 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $std/typedarray/testReduce~anonymous|0 (; 79 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint16Array#reduce (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduce (; 80 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4588,7 +4808,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 67 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 81 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4596,17 +4816,17 @@ call $~lib/typedarray/Uint16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 6 i32.const 0 @@ -4627,12 +4847,12 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 68 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduce~anonymous|0 (; 82 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int32Array#reduce (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduce (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4689,7 +4909,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 70 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 84 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4697,17 +4917,17 @@ call $~lib/typedarray/Int32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 7 i32.const 0 @@ -4726,12 +4946,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 71 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint32Array#__set (; 85 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 516 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + ) + (func $std/typedarray/testReduce~anonymous|0 (; 86 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint32Array#reduce (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reduce (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4788,7 +5032,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 73 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 88 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -4796,17 +5040,17 @@ call $~lib/typedarray/Uint32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 8 i32.const 0 @@ -4825,12 +5069,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 74 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $~lib/typedarray/Int64Array#__set (; 89 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 597 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce~anonymous|0 (; 90 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Int64Array#reduce (; 75 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Int64Array#reduce (; 91 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -4887,7 +5155,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 76 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 92 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -4895,17 +5163,17 @@ call $~lib/typedarray/Int64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 9 i64.const 0 @@ -4924,12 +5192,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 77 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $~lib/typedarray/Uint64Array#__set (; 93 ;) (type $FUNCSIG$viij) (param $0 i32) (param $1 i32) (param $2 i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 678 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $std/typedarray/testReduce~anonymous|0 (; 94 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Uint64Array#reduce (; 78 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Uint64Array#reduce (; 95 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -4986,7 +5278,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 79 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 96 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -4994,17 +5286,17 @@ call $~lib/typedarray/Uint64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 10 i64.const 0 @@ -5023,12 +5315,36 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 80 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $~lib/typedarray/Float32Array#__set (; 97 ;) (type $FUNCSIG$viif) (param $0 i32) (param $1 i32) (param $2 f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 759 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + ) + (func $std/typedarray/testReduce~anonymous|0 (; 98 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $0 local.get $1 f32.add ) - (func $~lib/typedarray/Float32Array#reduce (; 81 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (func $~lib/typedarray/Float32Array#reduce (; 99 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -5085,7 +5401,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 82 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 100 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -5093,17 +5409,17 @@ call $~lib/typedarray/Float32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 11 f32.const 0 @@ -5122,12 +5438,12 @@ unreachable end ) - (func $std/typedarray/testReduce~anonymous|0 (; 83 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduce~anonymous|0 (; 101 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $0 local.get $1 f64.add ) - (func $~lib/typedarray/Float64Array#reduce (; 84 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (func $~lib/typedarray/Float64Array#reduce (; 102 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5184,7 +5500,7 @@ end local.get $5 ) - (func $std/typedarray/testReduce (; 85 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduce (; 103 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -5192,17 +5508,17 @@ call $~lib/typedarray/Float64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 12 f64.const 0 @@ -5221,12 +5537,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 86 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 104 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int8Array#reduceRight (; 87 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#reduceRight (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5280,7 +5596,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 88 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 106 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5288,17 +5604,17 @@ call $~lib/typedarray/Int8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 13 i32.const 0 @@ -5321,12 +5637,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 89 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 107 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8Array#reduceRight (; 90 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reduceRight (; 108 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5380,7 +5696,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 91 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 109 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5388,17 +5704,17 @@ call $~lib/typedarray/Uint8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 14 i32.const 0 @@ -5419,12 +5735,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 92 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 110 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint8ClampedArray#reduceRight (; 93 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reduceRight (; 111 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5441,7 +5757,7 @@ local.set $6 block $break|0 local.get $3 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length i32.const 1 i32.sub local.set $7 @@ -5478,71 +5794,31 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 94 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 112 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 15 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#reduceRight - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -5557,12 +5833,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 95 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 113 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int16Array#reduceRight (; 96 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#reduceRight (; 114 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5616,7 +5892,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 97 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 115 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5624,17 +5900,17 @@ call $~lib/typedarray/Int16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 16 i32.const 0 @@ -5657,12 +5933,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 98 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 116 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint16Array#reduceRight (; 99 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reduceRight (; 117 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5716,7 +5992,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 100 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 118 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5724,17 +6000,17 @@ call $~lib/typedarray/Uint16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 17 i32.const 0 @@ -5755,12 +6031,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 101 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 119 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Int32Array#reduceRight (; 102 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#reduceRight (; 120 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5814,7 +6090,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 103 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 121 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5822,17 +6098,17 @@ call $~lib/typedarray/Int32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 18 i32.const 0 @@ -5851,12 +6127,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 104 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 122 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/typedarray/Uint32Array#reduceRight (; 105 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reduceRight (; 123 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5910,7 +6186,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 106 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 124 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) i32.const 0 @@ -5918,17 +6194,17 @@ call $~lib/typedarray/Uint32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 19 i32.const 0 @@ -5947,12 +6223,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 107 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduceRight~anonymous|0 (; 125 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Int64Array#reduceRight (; 108 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Int64Array#reduceRight (; 126 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -6006,7 +6282,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 109 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 127 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -6014,17 +6290,17 @@ call $~lib/typedarray/Int64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 20 i64.const 0 @@ -6043,12 +6319,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 110 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $std/typedarray/testReduceRight~anonymous|0 (; 128 ;) (type $FUNCSIG$jjjii) (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $~lib/typedarray/Uint64Array#reduceRight (; 111 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) + (func $~lib/typedarray/Uint64Array#reduceRight (; 129 ;) (type $FUNCSIG$jiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -6102,7 +6378,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 112 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 130 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i64) i32.const 0 @@ -6110,17 +6386,17 @@ call $~lib/typedarray/Uint64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 21 i64.const 0 @@ -6139,12 +6415,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 113 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $std/typedarray/testReduceRight~anonymous|0 (; 131 ;) (type $FUNCSIG$fffii) (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $0 local.get $1 f32.add ) - (func $~lib/typedarray/Float32Array#reduceRight (; 114 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) + (func $~lib/typedarray/Float32Array#reduceRight (; 132 ;) (type $FUNCSIG$fiif) (param $0 i32) (param $1 i32) (param $2 f32) (result f32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -6198,7 +6474,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 115 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 133 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f32) i32.const 0 @@ -6206,17 +6482,17 @@ call $~lib/typedarray/Float32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 22 f32.const 0 @@ -6235,12 +6511,12 @@ unreachable end ) - (func $std/typedarray/testReduceRight~anonymous|0 (; 116 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $std/typedarray/testReduceRight~anonymous|0 (; 134 ;) (type $FUNCSIG$dddii) (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $0 local.get $1 f64.add ) - (func $~lib/typedarray/Float64Array#reduceRight (; 117 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) + (func $~lib/typedarray/Float64Array#reduceRight (; 135 ;) (type $FUNCSIG$diid) (param $0 i32) (param $1 i32) (param $2 f64) (result f64) (local $3 i32) (local $4 i32) (local $5 f64) @@ -6294,7 +6570,7 @@ end local.get $5 ) - (func $std/typedarray/testReduceRight (; 118 ;) (type $FUNCSIG$v) + (func $std/typedarray/testReduceRight (; 136 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) i32.const 0 @@ -6302,17 +6578,17 @@ call $~lib/typedarray/Float64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 23 f64.const 0 @@ -6331,12 +6607,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 119 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 137 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int8Array#map (; 120 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#map (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6401,44 +6677,32 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 121 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 139 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 24 call $~lib/typedarray/Int8Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 1 i32.eq i32.eqz @@ -6451,18 +6715,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 4 i32.eq i32.eqz @@ -6475,18 +6729,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 9 i32.eq i32.eqz @@ -6499,12 +6743,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 122 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 140 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint8Array#map (; 123 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#map (; 141 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6569,44 +6813,51 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 124 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint8Array#__get (; 142 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 105 + i32.const 44 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + i32.load8_u + ) + (func $std/typedarray/testArrayMap (; 143 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 25 call $~lib/typedarray/Uint8Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.eq i32.eqz @@ -6619,18 +6870,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.eq i32.eqz @@ -6643,18 +6884,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.eq i32.eqz @@ -6667,12 +6898,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 125 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 144 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint8ClampedArray#map (; 126 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#map (; 145 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6685,7 +6916,7 @@ local.get $1 local.set $3 local.get $2 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $4 local.get $2 i32.load offset=4 @@ -6737,83 +6968,32 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 127 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 146 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 26 call $~lib/typedarray/Uint8ClampedArray#map - local.set $2 - local.get $2 - local.tee $1 - i32.load offset=4 - i32.const 0 - local.tee $3 - i32.add - i32.const -1 - local.get $3 + local.set $1 local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.eq i32.eqz @@ -6825,19 +7005,9 @@ call $~lib/env/abort unreachable end - local.get $2 - local.tee $1 - i32.load offset=4 - i32.const 1 - local.tee $3 - i32.add - i32.const -1 - local.get $3 local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.eq i32.eqz @@ -6849,19 +7019,9 @@ call $~lib/env/abort unreachable end - local.get $2 - local.tee $1 - i32.load offset=4 - i32.const 2 - local.tee $3 - i32.add - i32.const -1 - local.get $3 local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.eq i32.eqz @@ -6874,12 +7034,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 147 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int16Array#map (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#map (; 148 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6944,46 +7104,55 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 130 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Int16Array#__get (; 149 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 267 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $std/typedarray/testArrayMap (; 150 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 27 call $~lib/typedarray/Int16Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 1 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + call $~lib/typedarray/Int16Array#__get i32.const 1 i32.eq i32.eqz @@ -6996,20 +7165,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 1 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + call $~lib/typedarray/Int16Array#__get i32.const 4 i32.eq i32.eqz @@ -7022,20 +7179,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 1 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + call $~lib/typedarray/Int16Array#__get i32.const 9 i32.eq i32.eqz @@ -7048,12 +7193,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 131 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 151 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint16Array#map (; 132 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#map (; 152 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7118,46 +7263,55 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 133 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint16Array#__get (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 348 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $std/typedarray/testArrayMap (; 154 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 28 call $~lib/typedarray/Uint16Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 1 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.eq i32.eqz @@ -7170,20 +7324,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 1 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.eq i32.eqz @@ -7196,20 +7338,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 1 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + call $~lib/typedarray/Uint16Array#__get i32.const 9 i32.eq i32.eqz @@ -7222,12 +7352,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 134 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 155 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Int32Array#map (; 135 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#map (; 156 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7292,46 +7422,32 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 136 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 157 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 29 call $~lib/typedarray/Int32Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 1 i32.eq i32.eqz @@ -7344,20 +7460,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 4 i32.eq i32.eqz @@ -7370,20 +7474,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 9 i32.eq i32.eqz @@ -7396,12 +7488,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 137 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $~lib/typedarray/Uint32Array#map (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#map (; 159 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7466,46 +7558,55 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 139 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint32Array#__get (; 160 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 510 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + ) + (func $std/typedarray/testArrayMap (; 161 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 30 call $~lib/typedarray/Uint32Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.eq i32.eqz @@ -7518,20 +7619,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.eq i32.eqz @@ -7544,20 +7633,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Uint32Array#__get i32.const 9 i32.eq i32.eqz @@ -7570,12 +7647,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 140 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap~anonymous|0 (; 162 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 local.get $0 i64.mul ) - (func $~lib/typedarray/Int64Array#map (; 141 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#map (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7640,46 +7717,55 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 142 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Int64Array#__get (; 164 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 591 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap (; 165 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 31 call $~lib/typedarray/Int64Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Int64Array#__get i64.const 1 i64.eq i32.eqz @@ -7692,20 +7778,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Int64Array#__get i64.const 4 i64.eq i32.eqz @@ -7718,20 +7792,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Int64Array#__get i64.const 9 i64.eq i32.eqz @@ -7744,12 +7806,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 143 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $std/typedarray/testArrayMap~anonymous|0 (; 166 ;) (type $FUNCSIG$jjii) (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 local.get $0 i64.mul ) - (func $~lib/typedarray/Uint64Array#map (; 144 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#map (; 167 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7814,46 +7876,55 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 145 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Uint64Array#__get (; 168 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 672 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/testArrayMap (; 169 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 32 call $~lib/typedarray/Uint64Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.eq i32.eqz @@ -7866,20 +7937,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.eq i32.eqz @@ -7892,20 +7951,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Uint64Array#__get i64.const 9 i64.eq i32.eqz @@ -7918,12 +7965,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 146 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $std/typedarray/testArrayMap~anonymous|0 (; 170 ;) (type $FUNCSIG$ffii) (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $0 local.get $0 f32.mul ) - (func $~lib/typedarray/Float32Array#map (; 147 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#map (; 171 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7988,46 +8035,55 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 148 ;) (type $FUNCSIG$v) + (func $~lib/typedarray/Float32Array#__get (; 172 ;) (type $FUNCSIG$fii) (param $0 i32) (param $1 i32) (result f32) + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 0 + i32.const 152 + i32.const 753 + i32.const 63 + call $~lib/env/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/testArrayMap (; 173 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 33 call $~lib/typedarray/Float32Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/typedarray/Float32Array#__get f32.const 1 f32.eq i32.eqz @@ -8040,20 +8096,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/typedarray/Float32Array#__get f32.const 4 f32.eq i32.eqz @@ -8066,20 +8110,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/typedarray/Float32Array#__get f32.const 9 f32.eq i32.eqz @@ -8092,12 +8124,12 @@ unreachable end ) - (func $std/typedarray/testArrayMap~anonymous|0 (; 149 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $std/typedarray/testArrayMap~anonymous|0 (; 174 ;) (type $FUNCSIG$ddii) (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $0 local.get $0 f64.mul ) - (func $~lib/typedarray/Float64Array#map (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#map (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8162,46 +8194,32 @@ end local.get $6 ) - (func $std/typedarray/testArrayMap (; 151 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayMap (; 176 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 34 call $~lib/typedarray/Float64Array#map local.set $1 local.get $1 - local.tee $2 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 1 f64.eq i32.eqz @@ -8214,20 +8232,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 1 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq i32.eqz @@ -8240,20 +8246,8 @@ unreachable end local.get $1 - local.tee $2 - i32.load offset=4 i32.const 2 - i32.const 3 - i32.shl - local.tee $3 - i32.add - i32.const -1 - local.get $3 - local.get $2 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 9 f64.eq i32.eqz @@ -8266,7 +8260,7 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 152 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 177 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -8275,7 +8269,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int8Array#some (; 153 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#some (; 178 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8335,7 +8329,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 154 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 179 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -8344,7 +8338,7 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome (; 155 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 180 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8353,17 +8347,17 @@ call $~lib/typedarray/Int8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 35 call $~lib/typedarray/Int8Array#some @@ -8398,14 +8392,14 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 156 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 181 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8Array#some (; 157 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (; 182 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8465,14 +8459,14 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 158 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 183 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome (; 159 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 184 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8481,17 +8475,17 @@ call $~lib/typedarray/Uint8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 37 call $~lib/typedarray/Uint8Array#some @@ -8526,14 +8520,14 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 160 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 185 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8ClampedArray#some (; 161 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#some (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8552,7 +8546,7 @@ i32.const 0 local.set $5 local.get $2 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $6 end loop $repeat|0 @@ -8593,78 +8587,38 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 162 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 187 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome (; 163 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 188 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 39 call $~lib/typedarray/Uint8ClampedArray#some - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 0 i32.ne i32.eqz @@ -8679,8 +8633,8 @@ local.get $0 i32.const 40 call $~lib/typedarray/Uint8ClampedArray#some - local.set $3 - local.get $3 + local.set $2 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -8694,7 +8648,7 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 164 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 189 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -8703,7 +8657,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int16Array#some (; 165 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (; 190 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8763,7 +8717,7 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 166 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 191 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -8772,7 +8726,7 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome (; 167 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 192 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8781,17 +8735,17 @@ call $~lib/typedarray/Int16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 41 call $~lib/typedarray/Int16Array#some @@ -8826,14 +8780,14 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 168 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 193 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint16Array#some (; 169 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#some (; 194 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8893,14 +8847,14 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 170 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 195 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome (; 171 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 196 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -8909,17 +8863,17 @@ call $~lib/typedarray/Uint16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 43 call $~lib/typedarray/Uint16Array#some @@ -8954,12 +8908,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 172 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 197 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Int32Array#some (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (; 198 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9019,12 +8973,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 174 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 199 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome (; 175 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 200 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9033,17 +8987,17 @@ call $~lib/typedarray/Int32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 45 call $~lib/typedarray/Int32Array#some @@ -9078,12 +9032,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 176 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 201 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint32Array#some (; 177 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#some (; 202 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9143,12 +9097,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 178 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 203 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome (; 179 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 204 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9157,17 +9111,17 @@ call $~lib/typedarray/Uint32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 47 call $~lib/typedarray/Uint32Array#some @@ -9202,12 +9156,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 180 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 205 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Int64Array#some (; 181 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#some (; 206 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9267,12 +9221,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 182 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 207 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome (; 183 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 208 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9281,17 +9235,17 @@ call $~lib/typedarray/Int64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 49 call $~lib/typedarray/Int64Array#some @@ -9326,12 +9280,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 184 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 209 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Uint64Array#some (; 185 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#some (; 210 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9391,12 +9345,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 186 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 211 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome (; 187 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 212 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9405,17 +9359,17 @@ call $~lib/typedarray/Uint64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 51 call $~lib/typedarray/Uint64Array#some @@ -9450,12 +9404,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 188 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 213 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $~lib/typedarray/Float32Array#some (; 189 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (; 214 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9515,12 +9469,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 190 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 215 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome (; 191 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 216 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9529,17 +9483,17 @@ call $~lib/typedarray/Float32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f32.const 2 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 4 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 6 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 53 call $~lib/typedarray/Float32Array#some @@ -9574,12 +9528,12 @@ unreachable end ) - (func $std/typedarray/testArraySome~anonymous|0 (; 192 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|0 (; 217 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $~lib/typedarray/Float64Array#some (; 193 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#some (; 218 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9639,12 +9593,12 @@ i32.const 0 end ) - (func $std/typedarray/testArraySome~anonymous|1 (; 194 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome~anonymous|1 (; 219 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 0 f64.eq ) - (func $std/typedarray/testArraySome (; 195 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArraySome (; 220 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9653,17 +9607,17 @@ call $~lib/typedarray/Float64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f64.const 2 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 4 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 6 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 55 call $~lib/typedarray/Float64Array#some @@ -9698,7 +9652,7 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 196 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 221 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -9707,7 +9661,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int8Array#findIndex (; 197 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (; 222 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9767,7 +9721,7 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 198 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 223 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -9776,7 +9730,7 @@ i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 199 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 224 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9785,17 +9739,17 @@ call $~lib/typedarray/Int8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 57 call $~lib/typedarray/Int8Array#findIndex @@ -9805,7 +9759,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -9821,7 +9775,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -9829,14 +9783,14 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 200 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 225 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8Array#findIndex (; 201 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#findIndex (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9896,14 +9850,14 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 202 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 227 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 203 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 228 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9912,17 +9866,17 @@ call $~lib/typedarray/Uint8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 59 call $~lib/typedarray/Uint8Array#findIndex @@ -9932,7 +9886,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -9948,7 +9902,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -9956,14 +9910,14 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 204 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 229 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint8ClampedArray#findIndex (; 205 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#findIndex (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9982,7 +9936,7 @@ i32.const 0 local.set $5 local.get $2 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $6 end loop $repeat|0 @@ -10023,83 +9977,43 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 206 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 231 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 207 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 232 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 61 call $~lib/typedarray/Uint8ClampedArray#findIndex - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 1 i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10109,13 +10023,13 @@ local.get $0 i32.const 62 call $~lib/typedarray/Uint8ClampedArray#findIndex - local.set $3 - local.get $3 + local.set $2 + local.get $2 i32.const -1 i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10123,7 +10037,7 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 208 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 233 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -10132,7 +10046,7 @@ i32.const 2 i32.eq ) - (func $~lib/typedarray/Int16Array#findIndex (; 209 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (; 234 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10192,7 +10106,7 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 210 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 235 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -10201,7 +10115,7 @@ i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 211 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 236 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10210,17 +10124,17 @@ call $~lib/typedarray/Int16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 63 call $~lib/typedarray/Int16Array#findIndex @@ -10230,7 +10144,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10246,7 +10160,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10254,14 +10168,14 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 212 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 237 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint16Array#findIndex (; 213 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#findIndex (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10321,14 +10235,14 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 214 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 239 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 215 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 240 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10337,17 +10251,17 @@ call $~lib/typedarray/Uint16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 65 call $~lib/typedarray/Uint16Array#findIndex @@ -10357,7 +10271,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10373,7 +10287,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10381,12 +10295,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 216 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 241 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Int32Array#findIndex (; 217 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10446,12 +10360,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 218 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 243 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 219 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 244 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10460,17 +10374,17 @@ call $~lib/typedarray/Int32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 67 call $~lib/typedarray/Int32Array#findIndex @@ -10480,7 +10394,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10496,7 +10410,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10504,12 +10418,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 220 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 245 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $~lib/typedarray/Uint32Array#findIndex (; 221 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#findIndex (; 246 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10569,12 +10483,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 222 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 247 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex (; 223 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 248 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10583,17 +10497,17 @@ call $~lib/typedarray/Uint32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 69 call $~lib/typedarray/Uint32Array#findIndex @@ -10603,7 +10517,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10619,7 +10533,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10627,12 +10541,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 224 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 249 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Int64Array#findIndex (; 225 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (; 250 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10692,12 +10606,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 226 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 251 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex (; 227 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 252 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10706,17 +10620,17 @@ call $~lib/typedarray/Int64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 71 call $~lib/typedarray/Int64Array#findIndex @@ -10726,7 +10640,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10742,7 +10656,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10750,12 +10664,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 228 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 253 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $~lib/typedarray/Uint64Array#findIndex (; 229 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#findIndex (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10815,12 +10729,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 230 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 255 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex (; 231 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 256 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10829,17 +10743,17 @@ call $~lib/typedarray/Uint64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 1 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 2 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 3 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 73 call $~lib/typedarray/Uint64Array#findIndex @@ -10849,7 +10763,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10865,7 +10779,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10873,12 +10787,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 232 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 257 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $~lib/typedarray/Float32Array#findIndex (; 233 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#findIndex (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10938,12 +10852,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 234 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 259 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex (; 235 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 260 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -10952,17 +10866,17 @@ call $~lib/typedarray/Float32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f32.const 1 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 2 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 3 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 75 call $~lib/typedarray/Float32Array#findIndex @@ -10972,7 +10886,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -10988,7 +10902,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -10996,12 +10910,12 @@ unreachable end ) - (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 236 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|0 (; 261 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $~lib/typedarray/Float64Array#findIndex (; 237 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (; 262 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11061,12 +10975,12 @@ i32.const -1 end ) - (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 238 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex~anonymous|1 (; 263 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 4 f64.eq ) - (func $std/typedarray/testArrayFindIndex (; 239 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayFindIndex (; 264 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11075,17 +10989,17 @@ call $~lib/typedarray/Float64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 3 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 77 call $~lib/typedarray/Float64Array#findIndex @@ -11095,7 +11009,7 @@ i32.eq i32.eqz if - i32.const 480 + i32.const 568 i32.const 16 i32.const 365 i32.const 2 @@ -11111,7 +11025,7 @@ i32.eq i32.eqz if - i32.const 520 + i32.const 608 i32.const 16 i32.const 368 i32.const 2 @@ -11119,7 +11033,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 240 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 265 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -11130,7 +11044,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Int8Array#every (; 241 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#every (; 266 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11197,7 +11111,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 242 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 267 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -11206,7 +11120,7 @@ i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery (; 243 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 268 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11215,17 +11129,17 @@ call $~lib/typedarray/Int8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 79 call $~lib/typedarray/Int8Array#every @@ -11260,7 +11174,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 244 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 269 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -11269,7 +11183,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint8Array#every (; 245 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#every (; 270 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11336,14 +11250,14 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 246 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 271 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery (; 247 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 272 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11352,17 +11266,17 @@ call $~lib/typedarray/Uint8Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store8 offset=1 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 81 call $~lib/typedarray/Uint8Array#every @@ -11397,7 +11311,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 248 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 273 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and @@ -11406,7 +11320,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint8ClampedArray#every (; 249 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#every (; 274 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11425,7 +11339,7 @@ i32.const 0 local.set $5 local.get $2 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $6 end loop $repeat|0 @@ -11473,78 +11387,38 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 250 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 275 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery (; 251 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 276 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 83 call $~lib/typedarray/Uint8ClampedArray#every - local.set $2 - local.get $2 + local.set $1 + local.get $1 i32.const 0 i32.ne i32.eqz @@ -11559,8 +11433,8 @@ local.get $0 i32.const 84 call $~lib/typedarray/Uint8ClampedArray#every - local.set $3 - local.get $3 + local.set $2 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -11574,7 +11448,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 252 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 277 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -11585,7 +11459,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Int16Array#every (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#every (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11652,7 +11526,7 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 254 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 279 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 16 i32.shl @@ -11661,7 +11535,7 @@ i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery (; 255 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 280 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11670,17 +11544,17 @@ call $~lib/typedarray/Int16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 85 call $~lib/typedarray/Int16Array#every @@ -11715,7 +11589,7 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 256 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 281 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and @@ -11724,7 +11598,7 @@ i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint16Array#every (; 257 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#every (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11791,14 +11665,14 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 258 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 283 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery (; 259 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 284 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11807,17 +11681,17 @@ call $~lib/typedarray/Uint16Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store16 offset=2 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 87 call $~lib/typedarray/Uint16Array#every @@ -11852,14 +11726,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 260 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 285 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.rem_s i32.const 0 i32.eq ) - (func $~lib/typedarray/Int32Array#every (; 261 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (; 286 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11926,12 +11800,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 262 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 287 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery (; 263 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 288 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11940,17 +11814,17 @@ call $~lib/typedarray/Int32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 89 call $~lib/typedarray/Int32Array#every @@ -11985,14 +11859,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 264 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 289 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.rem_u i32.const 0 i32.eq ) - (func $~lib/typedarray/Uint32Array#every (; 265 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#every (; 290 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12059,12 +11933,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 266 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 291 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery (; 267 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 292 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12073,17 +11947,17 @@ call $~lib/typedarray/Uint32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i32.const 2 - i32.store + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i32.const 4 - i32.store offset=4 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i32.const 6 - i32.store offset=8 + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 91 call $~lib/typedarray/Uint32Array#every @@ -12118,14 +11992,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 268 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 293 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_s i64.const 0 i64.eq ) - (func $~lib/typedarray/Int64Array#every (; 269 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#every (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12192,12 +12066,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 270 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 295 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $std/typedarray/testArrayEvery (; 271 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 296 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12206,17 +12080,17 @@ call $~lib/typedarray/Int64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 93 call $~lib/typedarray/Int64Array#every @@ -12251,14 +12125,14 @@ unreachable end ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 272 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 297 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.rem_u i64.const 0 i64.eq ) - (func $~lib/typedarray/Uint64Array#every (; 273 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#every (; 298 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12325,12 +12199,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 274 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 299 ;) (type $FUNCSIG$ijii) (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $std/typedarray/testArrayEvery (; 275 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 300 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12339,17 +12213,17 @@ call $~lib/typedarray/Uint64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 i64.const 2 - i64.store + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 i64.const 4 - i64.store offset=8 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 i64.const 6 - i64.store offset=16 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 95 call $~lib/typedarray/Uint64Array#every @@ -12384,7 +12258,7 @@ unreachable end ) - (func $~lib/math/NativeMathf.mod (; 276 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 301 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12640,14 +12514,14 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 277 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 302 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 call $~lib/math/NativeMathf.mod f32.const 0 f32.eq ) - (func $~lib/typedarray/Float32Array#every (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (; 303 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12714,12 +12588,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 279 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 304 ;) (type $FUNCSIG$ifii) (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $std/typedarray/testArrayEvery (; 280 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 305 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12728,17 +12602,17 @@ call $~lib/typedarray/Float32Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f32.const 2 - f32.store + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f32.const 4 - f32.store offset=4 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f32.const 6 - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 97 call $~lib/typedarray/Float32Array#every @@ -12773,7 +12647,7 @@ unreachable end ) - (func $~lib/math/NativeMath.mod (; 281 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 306 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -13031,14 +12905,14 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/typedarray/testArrayEvery~anonymous|0 (; 282 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|0 (; 307 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 call $~lib/math/NativeMath.mod f64.const 0 f64.eq ) - (func $~lib/typedarray/Float64Array#every (; 283 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (; 308 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13105,12 +12979,12 @@ i32.const 1 end ) - (func $std/typedarray/testArrayEvery~anonymous|1 (; 284 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayEvery~anonymous|1 (; 309 ;) (type $FUNCSIG$idii) (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $std/typedarray/testArrayEvery (; 285 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayEvery (; 310 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -13119,17 +12993,17 @@ call $~lib/typedarray/Float64Array#constructor local.set $0 local.get $0 - i32.load offset=4 + i32.const 0 f64.const 2 - f64.store + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 1 f64.const 4 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 + i32.const 2 f64.const 6 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 99 call $~lib/typedarray/Float64Array#every @@ -13164,32 +13038,18 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 286 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 311 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 i32.const 24 i32.shl i32.const 24 i32.shr_s - local.get $5 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -13197,7 +13057,7 @@ i32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -13209,7 +13069,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -13221,7 +13081,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -13233,7 +13093,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int8Array#forEach (; 287 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#forEach (; 312 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13278,10 +13138,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 288 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 313 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -13291,71 +13149,35 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get i32.const 24 i32.shl i32.const 24 i32.shr_s - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.store8 offset=1 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 24 i32.shl i32.const 24 i32.shr_s - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 101 call $~lib/typedarray/Int8Array#forEach @@ -13364,7 +13186,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -13372,36 +13194,22 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 289 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 314 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 i32.const 255 i32.and - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -13413,7 +13221,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -13425,7 +13233,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -13437,7 +13245,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint8Array#forEach (; 290 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (; 315 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13482,10 +13290,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 291 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 316 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -13495,65 +13301,29 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get i32.const 255 i32.and - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 255 - i32.and - i32.store8 offset=1 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 255 i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 102 call $~lib/typedarray/Uint8Array#forEach @@ -13562,7 +13332,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -13570,36 +13340,22 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 292 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 317 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 i32.const 255 i32.and - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -13611,7 +13367,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -13623,7 +13379,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -13635,7 +13391,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint8ClampedArray#forEach (; 293 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#forEach (; 318 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13647,7 +13403,7 @@ i32.const 0 local.set $3 local.get $0 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $4 end loop $repeat|0 @@ -13680,10 +13436,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 294 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 319 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -13693,104 +13447,29 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 255 - i32.and - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 255 - i32.and - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - i32.and - i32.store8 offset=1 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 255 i32.and - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get i32.const 255 - local.get $1 - i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or i32.and - i32.store8 offset=2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 103 call $~lib/typedarray/Uint8ClampedArray#forEach @@ -13799,7 +13478,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -13807,32 +13486,18 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 295 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 320 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 i32.const 16 i32.shl i32.const 16 i32.shr_s - local.get $5 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -13840,7 +13505,7 @@ i32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -13852,7 +13517,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -13864,7 +13529,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -13876,7 +13541,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int16Array#forEach (; 296 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#forEach (; 321 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13921,10 +13586,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 297 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 322 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -13934,71 +13597,35 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get i32.const 16 i32.shl i32.const 16 i32.shr_s - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.store16 offset=2 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 16 i32.shl i32.const 16 i32.shr_s - i32.store16 offset=4 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 104 call $~lib/typedarray/Int16Array#forEach @@ -14007,7 +13634,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -14015,36 +13642,22 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 298 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 323 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 i32.const 65535 i32.and - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -14056,7 +13669,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -14068,7 +13681,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -14080,7 +13693,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint16Array#forEach (; 299 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint16Array#forEach (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14125,10 +13738,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 300 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 325 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -14138,65 +13749,29 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + global.get $std/typedarray/forEachValues + i32.const 0 + call $~lib/array/Array#__get i32.const 65535 i32.and - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.const 65535 - i32.and - i32.store16 offset=2 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get i32.const 65535 i32.and - i32.store16 offset=4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 105 call $~lib/typedarray/Uint16Array#forEach @@ -14205,7 +13780,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -14213,32 +13788,18 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 301 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 326 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 - local.get $5 + local.get $3 i32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -14250,7 +13811,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -14262,7 +13823,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -14274,7 +13835,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int32Array#forEach (; 302 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#forEach (; 327 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14319,10 +13880,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 303 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 328 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -14332,59 +13891,23 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=4 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 2 + global.get $std/typedarray/forEachValues i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=8 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 106 call $~lib/typedarray/Int32Array#forEach @@ -14393,7 +13916,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -14401,32 +13924,18 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 304 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 329 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 - local.get $5 + local.get $3 i32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -14438,7 +13947,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -14450,7 +13959,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -14462,7 +13971,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint32Array#forEach (; 305 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint32Array#forEach (; 330 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14507,10 +14016,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 306 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 331 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -14520,59 +14027,23 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=4 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 2 + global.get $std/typedarray/forEachValues i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store offset=8 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 107 call $~lib/typedarray/Uint32Array#forEach @@ -14581,7 +14052,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -14589,33 +14060,19 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 307 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 332 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 - local.get $5 + local.get $3 i64.extend_i32_s i64.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -14627,7 +14084,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -14639,7 +14096,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -14651,7 +14108,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Int64Array#forEach (; 308 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int64Array#forEach (; 333 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14696,10 +14153,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 309 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 334 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -14709,59 +14164,26 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=8 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 2 + global.get $std/typedarray/forEachValues i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=16 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 108 call $~lib/typedarray/Int64Array#forEach @@ -14770,7 +14192,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -14778,33 +14200,19 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 310 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 335 ;) (type $FUNCSIG$vjii) (param $0 i64) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 - local.get $5 + local.get $3 i64.extend_i32_s i64.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -14816,7 +14224,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -14828,7 +14236,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -14840,7 +14248,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Uint64Array#forEach (; 311 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint64Array#forEach (; 336 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14885,10 +14293,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 312 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 337 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -14898,59 +14304,26 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=8 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 2 + global.get $std/typedarray/forEachValues i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store offset=16 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 109 call $~lib/typedarray/Uint64Array#forEach @@ -14959,7 +14332,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -14967,33 +14340,19 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 313 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 338 ;) (type $FUNCSIG$vfii) (param $0 f32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 - local.get $5 + local.get $3 f32.convert_i32_s f32.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -15005,7 +14364,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -15017,7 +14376,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -15029,7 +14388,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float32Array#forEach (; 314 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float32Array#forEach (; 339 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15074,10 +14433,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 315 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 340 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -15087,62 +14444,26 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - f32.convert_i32_s - f32.store - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - f32.convert_i32_s - f32.store offset=4 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get f32.convert_i32_s - f32.store offset=8 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 110 call $~lib/typedarray/Float32Array#forEach @@ -15151,7 +14472,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -15159,33 +14480,19 @@ unreachable end ) - (func $std/typedarray/testArrayForEach~anonymous|0 (; 316 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayForEach~anonymous|0 (; 341 ;) (type $FUNCSIG$vdii) (param $0 f64) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $std/typedarray/forEachValues - local.tee $3 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - local.tee $4 - i32.add - i32.const -1 - local.get $4 - local.get $3 - i32.load offset=8 - i32.lt_u - select - i32.load - local.set $5 + call $~lib/array/Array#__get + local.set $3 local.get $0 - local.get $5 + local.get $3 f64.convert_i32_s f64.eq i32.eqz if - i32.const 616 + i32.const 704 i32.const 16 i32.const 425 i32.const 4 @@ -15197,7 +14504,7 @@ i32.eq i32.eqz if - i32.const 672 + i32.const 760 i32.const 16 i32.const 426 i32.const 4 @@ -15209,7 +14516,7 @@ i32.eq i32.eqz if - i32.const 728 + i32.const 816 i32.const 16 i32.const 427 i32.const 4 @@ -15221,7 +14528,7 @@ i32.add global.set $std/typedarray/forEachCallCount ) - (func $~lib/typedarray/Float64Array#forEach (; 317 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Float64Array#forEach (; 342 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15266,10 +14573,8 @@ unreachable end ) - (func $std/typedarray/testArrayForEach (; 318 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayForEach (; 343 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) - (local $2 i32) i32.const 0 global.set $std/typedarray/forEachCallCount i32.const 0 @@ -15279,62 +14584,26 @@ local.get $0 global.set $std/typedarray/forEachSelf local.get $0 - i32.load offset=4 - global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - f64.convert_i32_s - f64.store - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 1 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load - f64.convert_i32_s - f64.store offset=8 - local.get $0 - i32.load offset=4 global.get $std/typedarray/forEachValues - local.tee $1 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $2 - i32.add - i32.const -1 - local.get $2 - local.get $1 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/array/Array#__get f64.convert_i32_s - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + global.get $std/typedarray/forEachValues + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 111 call $~lib/typedarray/Float64Array#forEach @@ -15343,7 +14612,7 @@ i32.eq i32.eqz if - i32.const 800 + i32.const 888 i32.const 16 i32.const 430 i32.const 2 @@ -15351,7 +14620,7 @@ unreachable end ) - (func $~lib/typedarray/Int8Array#reverse (; 319 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (; 344 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15421,14 +14690,12 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse (; 320 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 345 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -15452,53 +14719,25 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 24 i32.shl i32.const 24 i32.shr_s - i32.store8 + call $~lib/typedarray/Int8Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 24 i32.shl i32.const 24 i32.shr_s - i32.store8 + call $~lib/typedarray/Int8Array#__set end local.get $3 i32.const 1 @@ -15522,35 +14761,13 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 24 i32.shl i32.const 24 @@ -15558,7 +14775,7 @@ i32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -15579,97 +14796,57 @@ i32.const 8 call $~lib/typedarray/Int8Array#subarray call $~lib/typedarray/Int8Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + i32.const 0 + call $~lib/typedarray/Int8Array#__get i32.const 8 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + i32.const 1 + call $~lib/typedarray/Int8Array#__get i32.const 7 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + i32.const 2 + call $~lib/typedarray/Int8Array#__get i32.const 6 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + i32.const 3 + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -15677,7 +14854,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8Array#reverse (; 321 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (; 346 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15747,7 +14924,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint8Array#subarray (; 322 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#subarray (; 347 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15861,14 +15038,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 323 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 348 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -15892,49 +15067,21 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and - i32.store8 + call $~lib/typedarray/Uint8Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and - i32.store8 + call $~lib/typedarray/Uint8Array#__set end local.get $3 i32.const 1 @@ -15958,41 +15105,19 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and i32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -16013,97 +15138,57 @@ i32.const 8 call $~lib/typedarray/Uint8Array#subarray call $~lib/typedarray/Uint8Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 0 + call $~lib/typedarray/Uint8Array#__get i32.const 8 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 1 + call $~lib/typedarray/Uint8Array#__get i32.const 7 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 2 + call $~lib/typedarray/Uint8Array#__get i32.const 6 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 3 + call $~lib/typedarray/Uint8Array#__get i32.const 5 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -16111,7 +15196,7 @@ unreachable end ) - (func $~lib/typedarray/Uint8ClampedArray#reverse (; 324 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#reverse (; 349 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16129,7 +15214,7 @@ i32.const 0 local.set $3 local.get $1 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length i32.const 1 i32.sub local.set $4 @@ -16181,7 +15266,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (; 325 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (; 350 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16196,7 +15281,7 @@ local.get $2 local.set $5 local.get $3 - call $~lib/typedarray/Uint8Array#get:length + call $~lib/typedarray/Uint8ClampedArray#get:length local.set $6 local.get $4 i32.const 0 @@ -16295,14 +15380,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 326 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 351 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -16326,75 +15409,21 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and - local.tee $4 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $4 - i32.sub - i32.const 31 - i32.shr_s - local.get $4 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $2 - i32.load offset=4 local.get $3 - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and - local.tee $4 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $4 - i32.sub - i32.const 31 - i32.shr_s - local.get $4 - i32.or - i32.and - i32.store8 + call $~lib/typedarray/Uint8ClampedArray#__set end local.get $3 i32.const 1 @@ -16418,41 +15447,19 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 255 i32.and i32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -16473,97 +15480,57 @@ i32.const 8 call $~lib/typedarray/Uint8ClampedArray#subarray call $~lib/typedarray/Uint8ClampedArray#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 8 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 6 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -16571,7 +15538,7 @@ unreachable end ) - (func $~lib/typedarray/Int16Array#reverse (; 327 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (; 352 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16641,7 +15608,7 @@ end local.get $1 ) - (func $~lib/typedarray/Int16Array#subarray (; 328 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (; 353 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16755,14 +15722,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 329 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 354 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -16786,57 +15751,25 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 1 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 16 i32.shl i32.const 16 i32.shr_s - i32.store16 + call $~lib/typedarray/Int16Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 1 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 16 i32.shl i32.const 16 i32.shr_s - i32.store16 + call $~lib/typedarray/Int16Array#__set end local.get $3 i32.const 1 @@ -16860,37 +15793,13 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + call $~lib/typedarray/Int16Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 16 i32.shl i32.const 16 @@ -16898,7 +15807,7 @@ i32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -16919,105 +15828,57 @@ i32.const 8 call $~lib/typedarray/Int16Array#subarray call $~lib/typedarray/Int16Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 0 + call $~lib/typedarray/Int16Array#__get i32.const 8 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 1 + call $~lib/typedarray/Int16Array#__get i32.const 7 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 2 + call $~lib/typedarray/Int16Array#__get i32.const 6 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_s + i32.const 3 + call $~lib/typedarray/Int16Array#__get i32.const 5 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -17025,7 +15886,7 @@ unreachable end ) - (func $~lib/typedarray/Uint16Array#reverse (; 330 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (; 355 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -17095,7 +15956,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint16Array#subarray (; 331 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#subarray (; 356 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17209,14 +16070,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 332 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 357 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -17240,53 +16099,21 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 1 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 65535 i32.and - i32.store16 + call $~lib/typedarray/Uint16Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 1 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 65535 i32.and - i32.store16 + call $~lib/typedarray/Uint16Array#__set end local.get $3 i32.const 1 @@ -17310,43 +16137,19 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + call $~lib/typedarray/Uint16Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.const 65535 i32.and i32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -17367,105 +16170,57 @@ i32.const 8 call $~lib/typedarray/Uint16Array#subarray call $~lib/typedarray/Uint16Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 0 + call $~lib/typedarray/Uint16Array#__get i32.const 8 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 1 + call $~lib/typedarray/Uint16Array#__get i32.const 7 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 2 + call $~lib/typedarray/Uint16Array#__get i32.const 6 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 1 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load16_u + i32.const 3 + call $~lib/typedarray/Uint16Array#__get i32.const 5 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -17473,7 +16228,7 @@ unreachable end ) - (func $~lib/typedarray/Int32Array#reverse (; 333 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (; 358 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -17543,14 +16298,12 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse (; 334 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 359 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -17574,49 +16327,17 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set end local.get $3 i32.const 1 @@ -17640,41 +16361,17 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -17695,105 +16392,57 @@ i32.const 8 call $~lib/typedarray/Int32Array#subarray call $~lib/typedarray/Int32Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 0 + call $~lib/typedarray/Int32Array#__get i32.const 8 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/typedarray/Int32Array#__get i32.const 7 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/typedarray/Int32Array#__get i32.const 6 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/typedarray/Int32Array#__get i32.const 5 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -17801,7 +16450,7 @@ unreachable end ) - (func $~lib/typedarray/Uint32Array#reverse (; 335 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#reverse (; 360 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -17871,7 +16520,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint32Array#subarray (; 336 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#subarray (; 361 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17985,14 +16634,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 337 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 362 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -18016,49 +16663,17 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load - i32.store + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set end local.get $3 i32.const 1 @@ -18082,41 +16697,17 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Uint32Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get i32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -18137,105 +16728,57 @@ i32.const 8 call $~lib/typedarray/Uint32Array#subarray call $~lib/typedarray/Uint32Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 0 + call $~lib/typedarray/Uint32Array#__get i32.const 8 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 1 + call $~lib/typedarray/Uint32Array#__get i32.const 7 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 2 + call $~lib/typedarray/Uint32Array#__get i32.const 6 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + i32.const 3 + call $~lib/typedarray/Uint32Array#__get i32.const 5 i32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -18243,7 +16786,7 @@ unreachable end ) - (func $~lib/typedarray/Int64Array#reverse (; 338 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (; 363 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -18313,7 +16856,7 @@ end local.get $1 ) - (func $~lib/typedarray/Int64Array#subarray (; 339 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (; 364 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -18427,14 +16970,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 340 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 365 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -18458,49 +16999,19 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set end local.get $3 i32.const 1 @@ -18524,41 +17035,18 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Int64Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load32_s + call $~lib/array/Array#__get + i64.extend_i32_s i64.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -18579,105 +17067,57 @@ i32.const 8 call $~lib/typedarray/Int64Array#subarray call $~lib/typedarray/Int64Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 0 + call $~lib/typedarray/Int64Array#__get i64.const 8 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 1 + call $~lib/typedarray/Int64Array#__get i64.const 7 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 2 + call $~lib/typedarray/Int64Array#__get i64.const 6 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 3 + call $~lib/typedarray/Int64Array#__get i64.const 5 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -18685,7 +17125,7 @@ unreachable end ) - (func $~lib/typedarray/Uint64Array#reverse (; 341 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Uint64Array#reverse (; 366 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -18755,7 +17195,7 @@ end local.get $1 ) - (func $~lib/typedarray/Uint64Array#subarray (; 342 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#subarray (; 367 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -18869,14 +17309,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 343 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 368 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -18900,49 +17338,19 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load32_s - i64.store + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set end local.get $3 i32.const 1 @@ -18966,41 +17374,18 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + call $~lib/typedarray/Uint64Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load32_s + call $~lib/array/Array#__get + i64.extend_i32_s i64.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -19021,105 +17406,57 @@ i32.const 8 call $~lib/typedarray/Uint64Array#subarray call $~lib/typedarray/Uint64Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 0 + call $~lib/typedarray/Uint64Array#__get i64.const 8 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 1 + call $~lib/typedarray/Uint64Array#__get i64.const 7 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 2 + call $~lib/typedarray/Uint64Array#__get i64.const 6 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - i64.load + i32.const 3 + call $~lib/typedarray/Uint64Array#__get i64.const 5 i64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -19127,7 +17464,7 @@ unreachable end ) - (func $~lib/typedarray/Float32Array#reverse (; 344 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (; 369 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -19197,7 +17534,7 @@ end local.get $1 ) - (func $~lib/typedarray/Float32Array#subarray (; 345 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (; 370 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -19311,14 +17648,12 @@ i32.store offset=8 local.get $7 ) - (func $std/typedarray/testArrayReverse (; 346 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 371 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -19342,51 +17677,19 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f32.convert_i32_s - f32.store + call $~lib/typedarray/Float32Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f32.convert_i32_s - f32.store + call $~lib/typedarray/Float32Array#__set end local.get $3 i32.const 1 @@ -19410,42 +17713,18 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + call $~lib/typedarray/Float32Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f32.convert_i32_s f32.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -19466,105 +17745,57 @@ i32.const 8 call $~lib/typedarray/Float32Array#subarray call $~lib/typedarray/Float32Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 0 + call $~lib/typedarray/Float32Array#__get f32.const 8 f32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 1 + call $~lib/typedarray/Float32Array#__get f32.const 7 f32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 2 + call $~lib/typedarray/Float32Array#__get f32.const 6 f32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - f32.load + i32.const 3 + call $~lib/typedarray/Float32Array#__get f32.const 5 f32.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -19572,7 +17803,7 @@ unreachable end ) - (func $~lib/typedarray/Float64Array#reverse (; 347 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (; 372 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -19642,14 +17873,12 @@ end local.get $1 ) - (func $std/typedarray/testArrayReverse (; 348 ;) (type $FUNCSIG$v) + (func $std/typedarray/testArrayReverse (; 373 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $std/typedarray/testArrayReverseValues local.set $0 i32.const 0 @@ -19673,51 +17902,19 @@ br_if $break|0 block local.get $1 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f64.convert_i32_s - f64.store + call $~lib/typedarray/Float64Array#__set local.get $2 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - i32.add local.get $0 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f64.convert_i32_s - f64.store + call $~lib/typedarray/Float64Array#__set end local.get $3 i32.const 1 @@ -19741,42 +17938,18 @@ i32.eqz br_if $break|1 local.get $1 - local.tee $4 - i32.load offset=4 local.get $3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get local.get $0 - local.tee $4 - i32.load offset=4 i32.const 8 local.get $3 i32.sub - i32.const 2 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 - local.get $4 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/array/Array#__get f64.convert_i32_s f64.eq i32.eqz if - i32.const 936 + i32.const 1024 i32.const 16 i32.const 461 i32.const 4 @@ -19797,105 +17970,57 @@ i32.const 8 call $~lib/typedarray/Float64Array#subarray call $~lib/typedarray/Float64Array#reverse - local.set $6 - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 0 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 + local.set $4 local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 0 + call $~lib/typedarray/Float64Array#__get f64.const 8 f64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 466 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 1 + call $~lib/typedarray/Float64Array#__get f64.const 7 f64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 467 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 2 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 2 + call $~lib/typedarray/Float64Array#__get f64.const 6 f64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 468 i32.const 2 call $~lib/env/abort unreachable end - local.get $6 - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.const 3 - i32.shl - local.tee $5 - i32.add - i32.const -1 - local.get $5 local.get $4 - i32.load offset=8 - i32.lt_u - select - f64.load + i32.const 3 + call $~lib/typedarray/Float64Array#__get f64.const 5 f64.eq i32.eqz if - i32.const 1016 + i32.const 1104 i32.const 16 i32.const 469 i32.const 2 @@ -19903,9 +18028,8 @@ unreachable end ) - (func $start:std/typedarray (; 349 ;) (type $FUNCSIG$v) + (func $start:std/typedarray (; 374 ;) (type $FUNCSIG$v) (local $0 i32) - (local $1 i32) global.get $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32.const 1 i32.eq @@ -20057,17 +18181,17 @@ call $~lib/typedarray/Int32Array#constructor global.set $std/typedarray/arr global.get $std/typedarray/arr - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr call $~lib/typedarray/Int32Array#get:length i32.const 3 @@ -20110,20 +18234,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 1 i32.eq i32.eqz @@ -20136,20 +18248,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 2 i32.eq i32.eqz @@ -20162,20 +18262,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 3 i32.eq i32.eqz @@ -20236,20 +18324,8 @@ unreachable end global.get $std/typedarray/arr - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 2 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load + call $~lib/typedarray/Int32Array#__get i32.const 2 i32.eq i32.eqz @@ -20266,37 +18342,37 @@ call $~lib/typedarray/Float64Array#constructor global.set $std/typedarray/af64 global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 0 f64.const 1 - f64.store + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 1 f64.const 2 - f64.store offset=8 + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 2 f64.const 7 - f64.store offset=16 + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 3 f64.const 6 - f64.store offset=24 + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 4 f64.const 5 - f64.store offset=32 + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 5 f64.const 4 - f64.store offset=40 + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 6 f64.const 3 - f64.store offset=48 + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 - i32.load offset=4 + i32.const 7 f64.const 8 - f64.store offset=56 + call $~lib/typedarray/Float64Array#__set global.get $std/typedarray/af64 i32.const 2 i32.const 6 @@ -20354,94 +18430,40 @@ end drop global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 i32.const 0 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq local.tee $0 if (result i32) global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 i32.const 1 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 5 f64.eq else local.get $0 end local.tee $0 - i32.const 0 - i32.ne if (result i32) global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 i32.const 2 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 6 f64.eq else local.get $0 end local.tee $0 - i32.const 0 - i32.ne if (result i32) global.get $std/typedarray/af64 - local.tee $0 - i32.load offset=4 i32.const 3 - i32.const 3 - i32.shl - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - f64.load + call $~lib/typedarray/Float64Array#__get f64.const 7 f64.eq else local.get $0 end - i32.const 0 - i32.ne i32.eqz if i32.const 0 @@ -20456,69 +18478,20 @@ call $~lib/typedarray/Uint8ClampedArray#constructor global.set $std/typedarray/clampedArr global.get $std/typedarray/clampedArr - i32.load offset=4 - i32.const -32 - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - local.get $0 - i32.or - i32.and - i32.store8 - global.get $std/typedarray/clampedArr - i32.load offset=4 - i32.const 2 - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - local.get $0 - i32.or - i32.and - i32.store8 offset=1 - global.get $std/typedarray/clampedArr - i32.load offset=4 - i32.const 256 - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - local.get $0 - i32.or - i32.and - i32.store8 offset=2 - global.get $std/typedarray/clampedArr - local.tee $0 - i32.load offset=4 i32.const 0 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $std/typedarray/clampedArr + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $std/typedarray/clampedArr + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $std/typedarray/clampedArr + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 0 i32.eq i32.eqz @@ -20531,18 +18504,8 @@ unreachable end global.get $std/typedarray/clampedArr - local.tee $0 - i32.load offset=4 i32.const 1 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.eq i32.eqz @@ -20555,18 +18518,8 @@ unreachable end global.get $std/typedarray/clampedArr - local.tee $0 - i32.load offset=4 i32.const 2 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_u + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 255 i32.eq i32.eqz @@ -20583,25 +18536,25 @@ call $~lib/typedarray/Int8Array#constructor global.set $std/typedarray/arr8 global.get $std/typedarray/arr8 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/arr8 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/arr8 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/arr8 - i32.load offset=4 + i32.const 3 i32.const 4 - i32.store8 offset=3 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/arr8 - i32.load offset=4 + i32.const 4 i32.const 5 - i32.store8 offset=4 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/arr8 i32.const 1 i32.const 1 @@ -20610,7 +18563,7 @@ drop global.get $std/typedarray/arr8 block $~lib/runtime/WRAPARRAY|inlined.0 (result i32) - i32.const 152 + i32.const 200 local.set $0 local.get $0 i32.const 15 @@ -20635,7 +18588,7 @@ drop global.get $std/typedarray/arr8 block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) - i32.const 168 + i32.const 256 local.set $0 local.get $0 i32.const 15 @@ -20660,7 +18613,7 @@ drop global.get $std/typedarray/arr8 block $~lib/runtime/WRAPARRAY|inlined.2 (result i32) - i32.const 184 + i32.const 272 local.set $0 local.get $0 i32.const 15 @@ -20685,7 +18638,7 @@ drop global.get $std/typedarray/arr8 block $~lib/runtime/WRAPARRAY|inlined.3 (result i32) - i32.const 200 + i32.const 288 local.set $0 local.get $0 i32.const 15 @@ -20710,7 +18663,7 @@ drop global.get $std/typedarray/arr8 block $~lib/runtime/WRAPARRAY|inlined.4 (result i32) - i32.const 216 + i32.const 304 local.set $0 local.get $0 i32.const 15 @@ -20779,7 +18732,7 @@ end global.get $std/typedarray/sub8 block $~lib/runtime/WRAPARRAY|inlined.5 (result i32) - i32.const 232 + i32.const 320 local.set $0 local.get $0 i32.const 15 @@ -20798,7 +18751,7 @@ end global.get $std/typedarray/arr8 block $~lib/runtime/WRAPARRAY|inlined.6 (result i32) - i32.const 248 + i32.const 336 local.set $0 local.get $0 i32.const 15 @@ -20820,25 +18773,25 @@ call $~lib/typedarray/Int32Array#constructor global.set $std/typedarray/arr32 global.get $std/typedarray/arr32 - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr32 - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store offset=4 + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr32 - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store offset=8 + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr32 - i32.load offset=4 + i32.const 3 i32.const 4 - i32.store offset=12 + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr32 - i32.load offset=4 + i32.const 4 i32.const 5 - i32.store offset=16 + call $~lib/typedarray/Int32Array#__set global.get $std/typedarray/arr32 i32.const 1 i32.const 1 @@ -20847,7 +18800,7 @@ drop global.get $std/typedarray/arr32 block $~lib/runtime/WRAPARRAY|inlined.0 (result i32) - i32.const 264 + i32.const 352 local.set $0 local.get $0 i32.const 16 @@ -20872,7 +18825,7 @@ drop global.get $std/typedarray/arr32 block $~lib/runtime/WRAPARRAY|inlined.1 (result i32) - i32.const 296 + i32.const 384 local.set $0 local.get $0 i32.const 16 @@ -20897,7 +18850,7 @@ drop global.get $std/typedarray/arr32 block $~lib/runtime/WRAPARRAY|inlined.2 (result i32) - i32.const 328 + i32.const 416 local.set $0 local.get $0 i32.const 16 @@ -20922,7 +18875,7 @@ drop global.get $std/typedarray/arr32 block $~lib/runtime/WRAPARRAY|inlined.3 (result i32) - i32.const 360 + i32.const 448 local.set $0 local.get $0 i32.const 16 @@ -20947,7 +18900,7 @@ drop global.get $std/typedarray/arr32 block $~lib/runtime/WRAPARRAY|inlined.4 (result i32) - i32.const 392 + i32.const 480 local.set $0 local.get $0 i32.const 16 @@ -21020,7 +18973,7 @@ end global.get $std/typedarray/sub32 block $~lib/runtime/WRAPARRAY|inlined.5 (result i32) - i32.const 424 + i32.const 512 local.set $0 local.get $0 i32.const 16 @@ -21039,7 +18992,7 @@ end global.get $std/typedarray/arr32 block $~lib/runtime/WRAPARRAY|inlined.6 (result i32) - i32.const 448 + i32.const 536 local.set $0 local.get $0 i32.const 16 @@ -21065,47 +19018,37 @@ call $~lib/typedarray/Int8Array#constructor global.set $std/typedarray/multisubarr global.get $std/typedarray/multisubarr - i32.load offset=4 + i32.const 0 i32.const 1 - i32.store8 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/multisubarr - i32.load offset=4 + i32.const 1 i32.const 2 - i32.store8 offset=1 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/multisubarr - i32.load offset=4 + i32.const 2 i32.const 3 - i32.store8 offset=2 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/multisubarr - i32.load offset=4 + i32.const 3 i32.const 4 - i32.store8 offset=3 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/multisubarr - i32.load offset=4 + i32.const 4 i32.const 5 - i32.store8 offset=4 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/multisubarr - i32.load offset=4 + i32.const 5 i32.const 6 - i32.store8 offset=5 + call $~lib/typedarray/Int8Array#__set global.get $std/typedarray/multisubarr i32.const 1 i32.const 6 call $~lib/typedarray/Int8Array#subarray global.set $std/typedarray/multisubarr1 global.get $std/typedarray/multisubarr1 - local.tee $0 - i32.load offset=4 i32.const 0 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 2 i32.eq i32.eqz @@ -21162,18 +19105,8 @@ call $~lib/typedarray/Int8Array#subarray global.set $std/typedarray/multisubarr2 global.get $std/typedarray/multisubarr2 - local.tee $0 - i32.load offset=4 i32.const 0 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 3 i32.eq i32.eqz @@ -21230,18 +19163,8 @@ call $~lib/typedarray/Int8Array#subarray global.set $std/typedarray/multisubarr3 global.get $std/typedarray/multisubarr3 - local.tee $0 - i32.load offset=4 i32.const 0 - local.tee $1 - i32.add - i32.const -1 - local.get $1 - local.get $0 - i32.load offset=8 - i32.lt_u - select - i32.load8_s + call $~lib/typedarray/Int8Array#__get i32.const 4 i32.eq i32.eqz @@ -21381,9 +19304,9 @@ call $std/typedarray/testArrayReverse call $std/typedarray/testArrayReverse ) - (func $start (; 350 ;) (type $FUNCSIG$v) + (func $start (; 375 ;) (type $FUNCSIG$v) call $start:std/typedarray ) - (func $null (; 351 ;) (type $FUNCSIG$v) + (func $null (; 376 ;) (type $FUNCSIG$v) ) )