finalize GC wiring

This commit is contained in:
dcode 2019-03-30 13:58:20 +01:00
parent 6a790321aa
commit 3e3c393856
33 changed files with 4605 additions and 2723 deletions

View File

@ -2370,6 +2370,15 @@ export function compileCall(
let typeRef = module.getFunctionTypeBySignature(nativeReturnType, nativeParamTypes);
if (!typeRef) typeRef = module.addFunctionType(typeName, nativeReturnType, nativeParamTypes);
compiler.currentType = returnType;
// if the index expression is precomputable to a constant value, emit a direct call
if (getExpressionId(arg0 = module.precomputeExpression(arg0)) == ExpressionId.Const) {
assert(getExpressionType(arg0) == NativeType.I32);
let index = getConstValueI32(arg0);
let functionTable = compiler.functionTable;
if (index >= 0 && index < functionTable.length) {
return module.createCall(functionTable[index], operandExprs, nativeReturnType);
}
}
// of course this can easily result in a 'RuntimeError: function signature mismatch' trap and
// thus must be used with care. it exists because it *might* be useful in specific scenarios.
return module.createCallIndirect(arg0, operandExprs, typeName);
@ -3620,8 +3629,16 @@ export function compileCall(
compiler.currentType = Type.u32;
if (!type) return module.createUnreachable();
let classReference = type.classReference;
if (!classReference) return module.createUnreachable();
return module.createI32(classReference.id);
if (!classReference || classReference.hasDecorator(DecoratorFlags.UNMANAGED)) {
compiler.error(
DiagnosticCode.Operation_not_supported,
reportNode.range
);
return module.createUnreachable();
}
let classId = classReference.ensureClassId(compiler); // involves compile steps
compiler.currentType = Type.u32;
return module.createI32(classId);
}
case BuiltinSymbols.iterateRoots: {
if (
@ -4093,127 +4110,6 @@ export function compileIterateRoots(compiler: Compiler): void {
);
}
/** Ensures that the specified class's GC hook exists and returns its function table index. */
export function ensureGCHook(
compiler: Compiler,
classInstance: Class
): u32 {
var program = compiler.program;
assert(classInstance.type.isManaged(program));
// check if the GC hook has already been created
{
let existingIndex = classInstance.gcHookIndex;
if (existingIndex != <u32>-1) return existingIndex;
}
// check if the class implements a custom GC function (only valid for library elements)
var members = classInstance.members;
if (classInstance.isDeclaredInLibrary) {
if (members !== null && members.has("__iter")) {
let iterPrototype = assert(members.get("__iter"));
assert(iterPrototype.kind == ElementKind.FUNCTION_PROTOTYPE);
let iterInstance = assert(program.resolver.resolveFunction(<FunctionPrototype>iterPrototype, null));
assert(iterInstance.is(CommonFlags.PRIVATE | CommonFlags.INSTANCE));
assert(!iterInstance.isAny(CommonFlags.AMBIENT | CommonFlags.VIRTUAL));
let signature = iterInstance.signature;
let parameterTypes = signature.parameterTypes;
assert(parameterTypes.length == 1);
assert(parameterTypes[0].signatureReference);
assert(signature.returnType == Type.void);
iterInstance.internalName = classInstance.internalName + "~iter";
assert(compiler.compileFunction(iterInstance));
let index = compiler.ensureFunctionTableEntry(iterInstance);
classInstance.gcHookIndex = index;
return index;
}
}
var module = compiler.module;
var options = compiler.options;
var nativeSizeType = options.nativeSizeType;
var nativeSizeSize = options.usizeType.byteSize;
var body = new Array<ExpressionRef>();
// nothing to mark if 'this' is null
body.push(
module.createIf(
module.createUnary(
options.isWasm64
? UnaryOp.EqzI64
: UnaryOp.EqzI32,
module.createGetLocal(0, nativeSizeType)
),
module.createReturn()
)
);
// remember the function index so we don't recurse infinitely
var functionTable = compiler.functionTable;
var gcHookIndex = functionTable.length;
functionTable.push("<placeholder>");
classInstance.gcHookIndex = gcHookIndex;
// if the class extends a base class, call its hook first
var baseInstance = classInstance.base;
if (baseInstance) {
assert(baseInstance.type.isManaged(program));
body.push(
module.createCallIndirect(
module.createI32(
ensureGCHook(compiler, <Class>baseInstance.type.classReference)
),
[
module.createGetLocal(0, nativeSizeType), // this
module.createGetLocal(1, NativeType.I32) // fn
],
"FUNCSIG$" + (nativeSizeType == NativeType.I64 ? "vji" : "vii")
)
);
}
// mark instances assigned to own fields that are again references
if (members) {
for (let member of members.values()) {
if (member.kind == ElementKind.FIELD) {
if ((<Field>member).parent === classInstance) {
let type = (<Field>member).type;
if (type.isManaged(program)) {
let offset = (<Field>member).memoryOffset;
assert(offset >= 0);
body.push( // fn(fieldValue)
module.createCallIndirect(
module.createGetLocal(1, NativeType.I32),
[
module.createLoad(
nativeSizeSize,
false,
module.createGetLocal(0, nativeSizeType),
nativeSizeType,
offset
),
],
"FUNCSIG$vi"
)
);
}
}
}
}
}
// add the function to the module and return its table index
var funcName = classInstance.internalName + "~iter";
module.addFunction(
funcName,
compiler.ensureFunctionType(null, Type.void, options.usizeType),
null,
module.createBlock(null, body)
);
functionTable[gcHookIndex] = funcName;
return gcHookIndex;
}
// Helpers
/** Evaluates the constant type of a type argument *or* expression. */

View File

@ -71,7 +71,8 @@ import {
DecoratorFlags,
PropertyPrototype,
File,
mangleInternalName
mangleInternalName,
CollectorKind
} from "./program";
import {
@ -448,7 +449,7 @@ export class Compiler extends DiagnosticEmitter {
// expose module capabilities
var capabilities = Capability.NONE;
if (program.options.isWasm64) capabilities |= Capability.WASM64;
if (program.gcImplemented) capabilities |= Capability.GC;
if (program.collectorKind != CollectorKind.NONE) capabilities |= Capability.GC;
if (capabilities != 0) {
module.addGlobal(BuiltinSymbols.capabilities, NativeType.I32, false, module.createI32(capabilities));
module.addGlobalExport(BuiltinSymbols.capabilities, ".capabilities");
@ -1408,7 +1409,7 @@ export class Compiler extends DiagnosticEmitter {
} else {
let length = stringValue.length;
let buffer = new Uint8Array(rtHeaderSize + (length << 1));
program.writeRuntimeHeader(buffer, 0, stringInstance, length << 1);
program.writeRuntimeHeader(buffer, 0, stringInstance.ensureClassId(this), length << 1);
for (let i = 0; i < length; ++i) {
writeI16(stringValue.charCodeAt(i), buffer, rtHeaderSize + (i << 1));
}
@ -1434,7 +1435,7 @@ export class Compiler extends DiagnosticEmitter {
var runtimeHeaderSize = program.runtimeHeaderSize;
var buf = new Uint8Array(runtimeHeaderSize + byteLength);
program.writeRuntimeHeader(buf, 0, bufferInstance, byteLength);
program.writeRuntimeHeader(buf, 0, bufferInstance.ensureClassId(this), byteLength);
var pos = runtimeHeaderSize;
var nativeType = elementType.toNativeType();
switch (nativeType) {
@ -1521,7 +1522,7 @@ export class Compiler extends DiagnosticEmitter {
var arrayLength = i32(bufferLength / elementType.byteSize);
var buf = new Uint8Array(runtimeHeaderSize + arrayInstanceSize);
program.writeRuntimeHeader(buf, 0, arrayInstance, arrayInstanceSize);
program.writeRuntimeHeader(buf, 0, arrayInstance.ensureClassId(this), arrayInstanceSize);
var bufferAddress32 = i64_low(bufferSegment.offset) + runtimeHeaderSize;
assert(!program.options.isWasm64); // TODO
@ -6820,7 +6821,7 @@ export class Compiler extends DiagnosticEmitter {
// makeArray(length, classId, alignLog2, staticBuffer)
let expr = this.makeCallDirect(assert(program.makeArrayInstance), [
module.createI32(length),
module.createI32(arrayInstance.id),
module.createI32(arrayInstance.ensureClassId(this)),
program.options.isWasm64
? module.createI64(elementType.alignLog2)
: module.createI32(elementType.alignLog2),
@ -6854,7 +6855,7 @@ export class Compiler extends DiagnosticEmitter {
module.createSetLocal(tempThis.index,
this.makeCallDirect(makeArrayInstance, [
module.createI32(length),
module.createI32(arrayInstance.id),
module.createI32(arrayInstance.ensureClassId(this)),
program.options.isWasm64
? module.createI64(elementType.alignLog2)
: module.createI32(elementType.alignLog2),
@ -8115,7 +8116,7 @@ export class Compiler extends DiagnosticEmitter {
? module.createI64(classInstance.currentMemoryOffset)
: module.createI32(classInstance.currentMemoryOffset)
], reportNode),
module.createI32(classInstance.id)
module.createI32(classInstance.ensureClassId(this))
], reportNode);
}
}
@ -8320,7 +8321,7 @@ export class Compiler extends DiagnosticEmitter {
module.createBreak(label,
module.createBinary(BinaryOp.EqI32, // classId == class.id
module.createTeeLocal(idTemp.index, idExpr),
module.createI32(classInstance.id)
module.createI32(classInstance.ensureClassId(this))
),
module.createI32(1) // ? true
)
@ -8335,6 +8336,134 @@ export class Compiler extends DiagnosticEmitter {
flow.popBreakLabel();
return module.createBlock(label, conditions, NativeType.I32);
}
/** Reserves the function index / class id for the following `makeIterate` operation. */
makeIterateReserve(classInstance: Class): u32 {
var functionTable = this.functionTable;
var functionIndex = functionTable.length;
functionTable.push(classInstance.iterateName);
return functionIndex;
}
/** Makes the managed iteration function of the specified class. */
makeIterate(classInstance: Class, functionIndex: i32): void {
var program = this.program;
assert(classInstance.type.isManaged(program));
// check if the class implements a custom iteration function (only valid for library elements)
var members = classInstance.members;
if (classInstance.isDeclaredInLibrary) {
if (members !== null && members.has("__iterate")) {
let iterPrototype = members.get("__iterate")!;
assert(iterPrototype.kind == ElementKind.FUNCTION_PROTOTYPE);
let iterInstance = assert(program.resolver.resolveFunction(<FunctionPrototype>iterPrototype, null));
assert(iterInstance.is(CommonFlags.PRIVATE | CommonFlags.INSTANCE));
assert(iterInstance.hasDecorator(DecoratorFlags.UNSAFE));
assert(!iterInstance.isAny(CommonFlags.AMBIENT | CommonFlags.VIRTUAL));
let signature = iterInstance.signature;
let parameterTypes = signature.parameterTypes;
assert(parameterTypes.length == 1);
assert(parameterTypes[0].signatureReference);
assert(signature.returnType == Type.void);
iterInstance.internalName = classInstance.iterateName;
assert(this.compileFunction(iterInstance));
this.ensureFunctionTableEntry(iterInstance);
return;
}
}
var module = this.module;
var options = this.options;
var nativeSizeType = options.nativeSizeType;
var nativeSizeSize = options.usizeType.byteSize;
// var signatureStr = Signature.makeSignatureString([ Type.u32 ], Type.void, options.usizeType);
var body = new Array<ExpressionRef>();
// nothing to mark if 'this' is null (should not happen)
// body.push(
// module.createIf(
// module.createUnary(
// options.isWasm64
// ? UnaryOp.EqzI64
// : UnaryOp.EqzI32,
// module.createGetLocal(0, nativeSizeType)
// ),
// module.createReturn()
// )
// );
// remember the function index so we don't recurse infinitely
var functionTable = this.functionTable;
var functionName = classInstance.iterateName;
assert(functionIndex < functionTable.length);
assert(functionTable[functionIndex] == functionName);
// if the class extends a base class, call its hook first
var baseInstance = classInstance.base;
if (baseInstance) {
let baseType = baseInstance.type;
let baseClassId = baseInstance.ensureClassId(this);
assert(baseType.isManaged(program));
body.push(
// BASECLASS~iterate.call(this, fn)
module.createCall(functionTable[baseClassId], [
module.createGetLocal(0, nativeSizeType),
module.createGetLocal(1, NativeType.I32)
], NativeType.None)
);
}
// iterate references assigned to own fields
if (members) {
for (let member of members.values()) {
if (member.kind == ElementKind.FIELD) {
if ((<Field>member).parent === classInstance) {
let fieldType = (<Field>member).type;
if (fieldType.isManaged(program)) {
let fieldClass = fieldType.classReference!;
let fieldClassId = fieldClass.ensureClassId(this);
let fieldOffset = (<Field>member).memoryOffset;
assert(fieldOffset >= 0);
body.push(
// if ($2 = value) { fn($2); FIELDCLASS~iterate($2, fn); }
module.createIf(
module.createTeeLocal(2,
module.createLoad(
nativeSizeSize,
false,
module.createGetLocal(0, nativeSizeType),
nativeSizeType,
fieldOffset
)
),
module.createBlock(null, [
module.createCallIndirect(
module.createGetLocal(1, NativeType.I32),
[
module.createGetLocal(2, nativeSizeType)
], "FUNCSIG$vi"
),
module.createCall(functionTable[fieldClassId], [
module.createGetLocal(2, nativeSizeType),
module.createGetLocal(1, NativeType.I32)
], NativeType.None)
])
)
);
}
}
}
}
}
// add the function to the module and return its table index
module.addFunction(
functionName,
this.ensureFunctionType([ Type.u32 ], Type.void, options.usizeType),
members ? [ nativeSizeType ] : null,
module.createBlock(null, body)
);
}
}
// helpers

View File

@ -18,7 +18,8 @@ import {
import {
Options,
Feature
Feature,
Compiler
} from "./compiler";
import {
@ -308,6 +309,13 @@ function operatorKindFromDecorator(decoratorKind: DecoratorKind, arg: string): O
return OperatorKind.INVALID;
}
/** Garbage collector kind present. */
export enum CollectorKind {
NONE,
TRACING,
COUNTING
}
/** Represents an AssemblyScript program. */
export class Program extends DiagnosticEmitter {
@ -367,25 +375,24 @@ export class Program extends DiagnosticEmitter {
/** Runtime make array function. `makeArray(capacity: i32, source: usize = 0, cid: u32): usize` */
makeArrayInstance: Function | null = null;
/** The kind of garbage collector being present. */
collectorKind: CollectorKind = CollectorKind.NONE;
/** Memory allocation implementation, if present: `__mem_allocate(size: usize): usize` */
allocateMem: Function | null = null;
/** Memory free implementation, if present: `__mem_free(ref: usize): void` */
freeMem: Function | null = null;
/** Reference link implementation, if present: `__ref_link(ref: usize, parentRef: usize): void` */
linkRef: Function | null = null;
/** Reference unlink implementation, if present: `__ref_unlink(ref: usize, parentRef: usize): void` */
unlinkRef: Function | null = null;
/** Reference retain implementation, if present: `__ref_retain(ref: usize): void` */
retainRef: Function | null = null;
/** Reference release implementation, if present: `__ref_release(ref: usize): void` */
releaseRef: Function | null = null;
/** Next class id. */
nextClassId: u32 = 1;
// gc integration
/** Whether a garbage collector is present or not. */
get gcImplemented(): bool {
return this.lookupGlobal("__ref_collect") !== null;
}
/** Garbage collector mark function called to on reachable managed objects. */
gcMarkInstance: Function | null = null; // FIXME
/** Constructs a new program, optionally inheriting parser diagnostics. */
constructor(
/** Shared array of diagnostic messages (emitted so far). */
@ -402,12 +409,12 @@ export class Program extends DiagnosticEmitter {
/** Gets the size of a common runtime header. */
get runtimeHeaderSize(): i32 {
return this.gcImplemented ? 16 : 8;
return this.collectorKind ? 16 : 8;
}
/** Writes a common runtime header to the specified buffer. */
writeRuntimeHeader(buffer: Uint8Array, offset: i32, classInstance: Class, payloadSize: u32): void {
writeI32(classInstance.id, buffer, offset);
writeRuntimeHeader(buffer: Uint8Array, offset: i32, classId: i32, payloadSize: u32): void {
writeI32(classId, buffer, offset);
writeI32(payloadSize, buffer, offset + 4);
}
@ -854,12 +861,14 @@ export class Program extends DiagnosticEmitter {
assert(element.kind == ElementKind.FUNCTION_PROTOTYPE);
this.unlinkRef = this.resolver.resolveFunction(<FunctionPrototype>element, null);
}
this.collectorKind = CollectorKind.TRACING;
} else if (element = this.lookupGlobal("__ref_retain")) {
assert(element.kind == ElementKind.FUNCTION_PROTOTYPE);
this.retainRef = this.resolver.resolveFunction(<FunctionPrototype>element, null);
element = assert(this.lookupGlobal("__ref_release"));
assert(element.kind == ElementKind.FUNCTION_PROTOTYPE);
this.releaseRef = this.resolver.resolveFunction(<FunctionPrototype>element, null);
this.collectorKind = CollectorKind.COUNTING;
}
}
}
@ -2999,14 +3008,27 @@ export class Class extends TypedElement {
constructorInstance: Function | null = null;
/** Operator overloads. */
overloads: Map<OperatorKind,Function> | null = null;
/** Function index of the GC hook. */
gcHookIndex: u32 = <u32>-1;
/** Unique class id. */
private _id: u32 = 0;
/** Gets the unique id of this class. */
get id(): u32 {
/** Ensures that this class has an id. */
ensureClassId(compiler: Compiler): i32 {
var id = this._id;
if (!id) this._id = id = this.program.nextClassId++;
if (!id) {
assert(!this.hasDecorator(DecoratorFlags.UNMANAGED));
let program = this.program;
if (program.collectorKind == CollectorKind.TRACING) {
// tracing GC uses the function index of the iteration function as the
// class's id so it can call the id directly, which avoids to generate
// a helper function with a big switch mapping ids to function indexes.
// here: might be called recursively in makeIterate, so reserve the id.
this._id = id = compiler.makeIterateReserve(this);
compiler.makeIterate(this, id);
} else {
// counting GC or none just increments without any iterate functions
this._id = id = program.nextClassId++;
}
}
return id;
}
@ -3031,6 +3053,11 @@ export class Class extends TypedElement {
);
}
/** Gets the name of this class's GC iteration function. */
get iterateName(): string {
return this.internalName + "~iterate";
}
/** Constructs a new class. */
constructor(
/** Name incl. type parameters, i.e. `Foo<i32>`. */

View File

@ -7,7 +7,8 @@ import {
Class,
FunctionTarget,
Program,
DecoratorFlags
DecoratorFlags,
CollectorKind
} from "./program";
import {
@ -152,7 +153,7 @@ export class Type {
/** Tests if this is a managed type that needs GC hooks. */
isManaged(program: Program): bool {
if (program.gcImplemented) {
if (program.collectorKind != CollectorKind.NONE) {
let classReference = this.classReference;
return classReference !== null && !classReference.hasDecorator(DecoratorFlags.UNMANAGED);
}

View File

@ -1,6 +1,6 @@
/// <reference path="./collector/index.d.ts" />
import { ALLOCATE, REALLOCATE, DISCARD, REGISTER, MAX_BYTELENGTH, MAKEARRAY, ArrayBufferView } from "./runtime";
import { ALLOCATE, REALLOCATE, DISCARD, REGISTER, MAX_BYTELENGTH, MAKEARRAY, ArrayBufferView, classId } from "./runtime";
import { ArrayBuffer } from "./arraybuffer";
import { COMPARATOR, SORT } from "./util/sort";
import { itoa, dtoa, itoa_stream, dtoa_stream, MAX_DOUBLE_LENGTH } from "./util/number";
@ -804,13 +804,22 @@ export class Array<T> extends ArrayBufferView {
// GC integration
@unsafe private __iter(fn: (ref: usize) => void): void {
@unsafe private __iterate(fn: (ref: usize) => void): void {
fn(changetype<usize>(this.data));
if (isManaged<T>()) {
let cur = this.dataStart;
let end = cur + <usize>this.dataLength;
while (cur < end) {
fn(load<usize>(cur));
let val = load<usize>(cur);
if (isNullable<T>()) {
if (val) {
fn(val);
call_indirect(classId<T>(), val, fn);
}
} else {
fn(val);
call_indirect(classId<T>(), val, fn);
}
cur += sizeof<usize>();
}
}

View File

@ -159,14 +159,12 @@ function step(): void {
if (TRACE) trace("itcm~step/MARK iterate", 1, objToRef(obj));
iter = obj;
obj.color = i32(!white);
// if (TRACE) {
// trace(" next/prev/hook", 3,
// changetype<usize>(obj.next),
// changetype<usize>(obj.prev),
// changetype<u32>(obj.hookFn)
// );
// }
obj.hookFn(objToRef(obj));
// CLASS~iterate(ref, fn)
call_indirect(obj.classId, objToRef(obj), (ref: usize): void => {
trace(" iter", 1, ref);
var obj = refToObj(ref);
if (obj.color == white) obj.makeGray();
});
} else {
if (TRACE) trace("itcm~step/MARK finish");
iterateRoots((ref: usize): void => {
@ -237,7 +235,7 @@ export function __ref_register(ref: usize): void {
step(); // also makes sure it's initialized
var obj = refToObj(ref);
obj.color = white;
fromSpace.push(obj);
fromSpace.push(obj); // sets gc-reserved header fields
}
// @ts-ignore: decorator

View File

@ -1,4 +1,4 @@
import { ALLOCATE, REGISTER, MAX_BYTELENGTH, HEADER, HEADER_SIZE } from "./runtime";
import { ALLOCATE, REGISTER, MAX_BYTELENGTH, HEADER, HEADER_SIZE, classId } from "./runtime";
import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_HOLEYARRAY } from "./util/error";
// NOTE: DO NOT USE YET!
@ -71,12 +71,21 @@ export class FixedArray<T> {
// GC integration
@unsafe private __iter(fn: (ref: usize) => void): void {
@unsafe private __iterate(fn: (ref: usize) => void): void {
if (isManaged<T>()) {
let cur = changetype<usize>(this);
let end = cur + changetype<HEADER>(changetype<usize>(this) - HEADER_SIZE).payloadSize;
while (cur < end) {
fn(load<usize>(cur));
let val = load<usize>(cur);
if (isNullable<T>()) {
if (val) {
fn(val);
call_indirect(classId<T>(), val, fn);
}
} else {
fn(val);
call_indirect(classId<T>(), val, fn);
}
cur += sizeof<usize>();
}
}

View File

@ -1,6 +1,7 @@
/// <reference path="./collector/index.d.ts" />
import { HASH } from "./util/hash";
import { classId } from "./runtime";
// A deterministic hash map based on CloseTable from https://github.com/jorendorff/dht
@ -267,7 +268,7 @@ export class Map<K,V> {
// GC integration
@unsafe private __iter(fn: (ref: usize) => void): void {
@unsafe private __iterate(fn: (ref: usize) => void): void {
fn(changetype<usize>(this.buckets));
var entries = this.entries;
fn(changetype<usize>(entries));
@ -277,8 +278,30 @@ export class Map<K,V> {
while (cur < end) {
let entry = changetype<MapEntry<K,V>>(cur);
if (!(entry.taggedNext & EMPTY)) {
if (isManaged<K>()) fn(changetype<usize>(entry.key));
if (isManaged<V>()) fn(changetype<usize>(entry.value));
if (isManaged<K>()) {
let val = changetype<usize>(entry.key);
if (isNullable<K>()) {
if (val) {
fn(val);
call_indirect(classId<K>(), val, fn);
}
} else {
fn(val);
call_indirect(classId<K>(), val, fn);
}
}
if (isManaged<V>()) {
let val = changetype<usize>(entry.value);
if (isNullable<V>()) {
if (val) {
fn(val);
call_indirect(classId<V>(), val, fn);
}
} else {
fn(val);
call_indirect(classId<V>(), val, fn);
}
}
}
cur += ENTRY_SIZE<K,V>();
}

View File

@ -1,6 +1,7 @@
/// <reference path="./collector/index.d.ts" />
import { HASH } from "./util/hash";
import { classId } from "./runtime";
// A deterministic hash set based on CloseTable from https://github.com/jorendorff/dht
@ -197,7 +198,7 @@ export class Set<K> {
// GC integration
@unsafe private __iter(fn: (ref: usize) => void): void {
@unsafe private __iterate(fn: (ref: usize) => void): void {
fn(changetype<usize>(this.buckets));
var entries = this.entries;
fn(changetype<usize>(entries));
@ -206,7 +207,18 @@ export class Set<K> {
let end = cur + <usize>this.entriesOffset * ENTRY_SIZE<K>();
while (cur < end) {
let entry = changetype<SetEntry<K>>(cur);
if (!(entry.taggedNext & EMPTY)) fn(changetype<usize>(entry.key));
if (!(entry.taggedNext & EMPTY)) {
let val = changetype<usize>(entry.key);
if (isNullable<K>()) {
if (val) {
fn(val);
call_indirect(classId<K>(), val, fn);
}
} else {
fn(val);
call_indirect(classId<K>(), val, fn);
}
}
cur += ENTRY_SIZE<K>();
}
}

View File

@ -1,11 +1,11 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$i (func (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
@ -25,8 +25,8 @@
(data (i32.const 232) "g\00c\00.\00u\00n\00l\00i\00n\00k")
(data (i32.const 256) "\02\00\00\00\14")
(data (i32.const 272) "g\00c\00.\00c\00o\00l\00l\00e\00c\00t")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 6 funcref)
(elem (i32.const 0) $null $gc/Ref~iterate $gc/Ref~iterate $~lib/set/Set<usize>~iterate $~lib/set/Set<usize>~iterate $gc/Ref~iterate)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -39,6 +39,7 @@
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/gc/gc.implemented i32 (i32.const 1))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/gc/GC_ROOT (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
@ -139,7 +140,10 @@
i32.const 16
i32.add
)
(func $gc/_dummy/__ref_register (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $gc/Ref~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $gc/_dummy/__ref_register (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
i32.const 1
local.get $0
@ -156,7 +160,7 @@
local.get $0
global.set $gc/_dummy/register_ref
)
(func $~lib/runtime/register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 292
@ -191,7 +195,23 @@
call $gc/_dummy/__ref_register
local.get $0
)
(func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=8
local.set $0
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/memory/memory.fill (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -402,7 +422,7 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 1073741808
@ -421,10 +441,10 @@
local.get $0
call $~lib/memory/memory.fill
local.get $1
i32.const 4
i32.const 5
call $~lib/runtime/register
)
(func $gc/_dummy/__ref_link (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/_dummy/__ref_link (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 200
i32.const 2
local.get $0
@ -444,7 +464,7 @@
local.get $0
global.set $gc/_dummy/link_parentRef
)
(func $gc/_dummy/__ref_unlink (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/_dummy/__ref_unlink (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 232
i32.const 2
local.get $0
@ -464,7 +484,7 @@
local.get $1
global.set $gc/_dummy/unlink_parentRef
)
(func $~lib/set/Set<usize>#clear (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/set/Set<usize>#clear (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -527,7 +547,7 @@
i32.const 0
i32.store offset=20
)
(func $~lib/set/Set<usize>#constructor (; 11 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<usize>#constructor (; 13 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
@ -555,7 +575,7 @@
call $~lib/set/Set<usize>#clear
local.get $0
)
(func $~lib/util/hash/hash32 (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 255
i32.and
@ -586,7 +606,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/set/Set<usize>#find (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/set/Set<usize>#find (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -629,7 +649,7 @@
end
i32.const 0
)
(func $~lib/set/Set<usize>#has (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<usize>#has (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -638,7 +658,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<usize>#rehash (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#rehash (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -773,7 +793,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<usize>#add (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#add (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -856,7 +876,7 @@
i32.store
end
)
(func $~lib/gc/gc.retain (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.retain (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
local.tee $1
@ -872,7 +892,7 @@
call $gc/_dummy/__ref_link
end
)
(func $~lib/set/Set<usize>#delete (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#delete (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -932,7 +952,7 @@
call $~lib/set/Set<usize>#rehash
end
)
(func $~lib/gc/gc.release (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.release (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
local.tee $1
@ -947,7 +967,7 @@
call $gc/_dummy/__ref_unlink
end
)
(func $~lib/gc/gc.collect (; 20 ;) (type $FUNCSIG$v)
(func $~lib/gc/gc.collect (; 22 ;) (type $FUNCSIG$v)
i32.const 272
i32.const 0
f64.const 0
@ -961,7 +981,7 @@
i32.add
global.set $gc/_dummy/collect_count
)
(func $gc/main (; 21 ;) (type $FUNCSIG$v)
(func $gc/main (; 23 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1112,7 +1132,7 @@
unreachable
end
)
(func $null (; 22 ;) (type $FUNCSIG$v)
(func $null (; 24 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,12 +1,12 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64)))
@ -18,8 +18,8 @@
(data (i32.const 184) "\02\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00l\00i\00n\00k\00")
(data (i32.const 216) "\02\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00u\00n\00l\00i\00n\00k\00")
(data (i32.const 256) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00c\00o\00l\00l\00e\00c\00t\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 6 funcref)
(elem (i32.const 0) $null $gc/Ref~iterate $~lib/string/String~iterate $~lib/set/Set<usize>~iterate $~lib/set/Set<usize>~iterate $~lib/arraybuffer/ArrayBuffer~iterate)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -35,6 +35,7 @@
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/gc/gc.implemented i32 (i32.const 1))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/gc/GC_ROOT (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
@ -166,7 +167,12 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $gc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $gc/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
)
(func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
i32.const 1
local.get $0
@ -183,7 +189,7 @@
local.get $0
global.set $gc/_dummy/register_ref
)
(func $~lib/runtime/register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -221,7 +227,7 @@
call $gc/_dummy/__ref_register
local.get $0
)
(func $gc/Ref#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $gc/Ref#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -233,7 +239,24 @@
end
local.get $0
)
(func $~lib/memory/memory.fill (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/set/Set<usize>~iterate (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=8
local.set $2
i32.const 1
global.set $~lib/argc
local.get $2
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/memory/memory.fill (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -490,7 +513,10 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $1
@ -519,11 +545,11 @@
local.get $3
local.set $2
local.get $2
i32.const 4
i32.const 5
call $~lib/runtime/register
end
)
(func $gc/_dummy/__ref_link (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/_dummy/__ref_link (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 200
i32.const 2
local.get $0
@ -543,7 +569,7 @@
local.get $0
global.set $gc/_dummy/link_parentRef
)
(func $gc/_dummy/__ref_unlink (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/_dummy/__ref_unlink (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 232
i32.const 2
local.get $0
@ -563,7 +589,7 @@
local.get $1
global.set $gc/_dummy/unlink_parentRef
)
(func $~lib/set/Set<usize>#clear (; 13 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/set/Set<usize>#clear (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -632,7 +658,7 @@
i32.const 0
i32.store offset=20
)
(func $~lib/set/Set<usize>#constructor (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/set/Set<usize>#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
@ -666,7 +692,7 @@
call $~lib/set/Set<usize>#clear
local.get $0
)
(func $~lib/util/hash/hash32 (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const -2128831035
local.set $1
@ -708,7 +734,7 @@
local.set $1
local.get $1
)
(func $~lib/set/Set<usize>#find (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/set/Set<usize>#find (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $0
@ -759,7 +785,7 @@
end
i32.const 0
)
(func $~lib/set/Set<usize>#has (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<usize>#has (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
local.get $1
@ -774,7 +800,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<usize>#rehash (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#rehash (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -944,7 +970,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<usize>#add (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#add (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1042,7 +1068,7 @@
i32.store
end
)
(func $~lib/gc/gc.retain (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.retain (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
local.set $1
@ -1059,7 +1085,7 @@
call $gc/_dummy/__ref_link
end
)
(func $~lib/set/Set<usize>#delete (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<usize>#delete (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1132,7 +1158,7 @@
end
i32.const 1
)
(func $~lib/gc/gc.release (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
local.set $1
@ -1149,7 +1175,7 @@
call $gc/_dummy/__ref_unlink
end
)
(func $gc/_dummy/__ref_collect (; 23 ;) (type $FUNCSIG$v)
(func $gc/_dummy/__ref_collect (; 27 ;) (type $FUNCSIG$v)
i32.const 272
i32.const 0
f64.const 0
@ -1163,10 +1189,10 @@
i32.add
global.set $gc/_dummy/collect_count
)
(func $~lib/gc/gc.collect (; 24 ;) (type $FUNCSIG$v)
(func $~lib/gc/gc.collect (; 28 ;) (type $FUNCSIG$v)
call $gc/_dummy/__ref_collect
)
(func $gc/main (; 25 ;) (type $FUNCSIG$v)
(func $gc/main (; 29 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1329,7 +1355,7 @@
unreachable
end
)
(func $start (; 26 ;) (type $FUNCSIG$v)
(func $start (; 30 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -1344,6 +1370,6 @@
call $~lib/set/Set<usize>#constructor
global.set $~lib/gc/GC_ROOT
)
(func $null (; 27 ;) (type $FUNCSIG$v)
(func $null (; 31 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,5 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
@ -14,8 +15,8 @@
(data (i32.const 72) "g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r")
(data (i32.const 96) "\02\00\00\00&")
(data (i32.const 112) "g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00a\00s\00s\00i\00g\00n\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-assign/Ref~iterate $gc/global-assign/Ref~iterate)
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
(global $gc/_dummy/link_count (mut i32) (i32.const 0))
@ -112,7 +113,10 @@
i32.const 16
i32.add
)
(func $gc/_dummy/__ref_register (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $gc/global-assign/Ref~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $gc/_dummy/__ref_register (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
i32.const 1
local.get $0
@ -129,7 +133,7 @@
local.get $0
global.set $gc/_dummy/register_ref
)
(func $~lib/runtime/register (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/register (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 152
@ -164,7 +168,7 @@
call $gc/_dummy/__ref_register
local.get $0
)
(func $start:gc/global-assign (; 6 ;) (type $FUNCSIG$v)
(func $start:gc/global-assign (; 7 ;) (type $FUNCSIG$v)
i32.const 152
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
@ -236,7 +240,7 @@
unreachable
end
)
(func $gc/global-assign/main (; 7 ;) (type $FUNCSIG$v)
(func $gc/global-assign/main (; 8 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -245,7 +249,7 @@
global.set $~lib/started
end
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 9 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,5 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
@ -11,8 +12,8 @@
(data (i32.const 8) "\02\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00")
(data (i32.const 96) "\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00a\00s\00s\00i\00g\00n\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-assign/Ref~iterate $~lib/string/String~iterate)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -154,7 +155,12 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $gc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $gc/global-assign/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
)
(func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
i32.const 1
local.get $0
@ -171,7 +177,7 @@
local.get $0
global.set $gc/_dummy/register_ref
)
(func $~lib/runtime/register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -209,7 +215,7 @@
call $gc/_dummy/__ref_register
local.get $0
)
(func $gc/global-assign/Ref#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $gc/global-assign/Ref#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -221,7 +227,7 @@
end
local.get $0
)
(func $start:gc/global-assign (; 9 ;) (type $FUNCSIG$v)
(func $start:gc/global-assign (; 11 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -313,7 +319,7 @@
unreachable
end
)
(func $gc/global-assign/main (; 10 ;) (type $FUNCSIG$v)
(func $gc/global-assign/main (; 12 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -322,9 +328,9 @@
global.set $~lib/started
end
)
(func $start (; 11 ;) (type $FUNCSIG$v)
(func $start (; 13 ;) (type $FUNCSIG$v)
call $start:gc/global-assign
)
(func $null (; 12 ;) (type $FUNCSIG$v)
(func $null (; 14 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,5 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
@ -14,8 +15,8 @@
(data (i32.const 72) "g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r")
(data (i32.const 96) "\02\00\00\00\"")
(data (i32.const 112) "g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00i\00n\00i\00t\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-init/Ref~iterate $gc/global-init/Ref~iterate)
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
(global $gc/_dummy/link_count (mut i32) (i32.const 0))
@ -111,7 +112,10 @@
i32.const 16
i32.add
)
(func $gc/_dummy/__ref_register (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $gc/global-init/Ref~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $gc/_dummy/__ref_register (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
i32.const 1
local.get $0
@ -128,7 +132,7 @@
local.get $0
global.set $gc/_dummy/register_ref
)
(func $~lib/runtime/register (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/register (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 148
@ -163,7 +167,7 @@
call $gc/_dummy/__ref_register
local.get $0
)
(func $start:gc/global-init (; 6 ;) (type $FUNCSIG$v)
(func $start:gc/global-init (; 7 ;) (type $FUNCSIG$v)
i32.const 152
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
@ -233,7 +237,7 @@
unreachable
end
)
(func $gc/global-init/main (; 7 ;) (type $FUNCSIG$v)
(func $gc/global-init/main (; 8 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -242,7 +246,7 @@
global.set $~lib/started
end
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 9 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,5 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
@ -11,8 +12,8 @@
(data (i32.const 8) "\02\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00")
(data (i32.const 96) "\02\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00i\00n\00i\00t\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-init/Ref~iterate $~lib/string/String~iterate)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -153,7 +154,12 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $gc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $gc/global-init/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
)
(func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
i32.const 1
local.get $0
@ -170,7 +176,7 @@
local.get $0
global.set $gc/_dummy/register_ref
)
(func $~lib/runtime/register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -208,7 +214,7 @@
call $gc/_dummy/__ref_register
local.get $0
)
(func $gc/global-init/Ref#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $gc/global-init/Ref#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -220,7 +226,7 @@
end
local.get $0
)
(func $start:gc/global-init (; 9 ;) (type $FUNCSIG$v)
(func $start:gc/global-init (; 11 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -310,7 +316,7 @@
unreachable
end
)
(func $gc/global-init/main (; 10 ;) (type $FUNCSIG$v)
(func $gc/global-init/main (; 12 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -319,9 +325,9 @@
global.set $~lib/started
end
)
(func $start (; 11 ;) (type $FUNCSIG$v)
(func $start (; 13 ;) (type $FUNCSIG$v)
call $start:gc/global-init
)
(func $null (; 12 ;) (type $FUNCSIG$v)
(func $null (; 14 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,10 +1,10 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
@ -36,34 +36,36 @@
(data (i32.const 600) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K")
(data (i32.const 640) "\01\00\00\00,")
(data (i32.const 656) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00i\00t\00e\00r\00a\00t\00e")
(data (i32.const 704) "\01\00\00\00*")
(data (i32.const 720) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 768) "\01\00\00\00$")
(data (i32.const 784) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P")
(data (i32.const 824) "\01\00\00\00(")
(data (i32.const 840) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e")
(data (i32.const 880) "\01\00\00\00,")
(data (i32.const 896) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 944) "\01\00\00\00\"")
(data (i32.const 960) "#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)")
(data (i32.const 1000) "\01\00\00\00\1e")
(data (i32.const 1016) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 1048) "\01\00\00\00\1a")
(data (i32.const 1064) "i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r")
(data (i32.const 1096) "\01\00\00\00(")
(data (i32.const 1112) "#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)")
(data (i32.const 1152) "\01\00\00\00&")
(data (i32.const 1168) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 1208) "\01\00\00\00\12")
(data (i32.const 1224) "i\00t\00c\00m\00.\00l\00i\00n\00k")
(data (i32.const 1248) "\01\00\00\00\1c")
(data (i32.const 1264) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f")
(data (i32.const 1296) "\01\00\00\00\1a")
(data (i32.const 1312) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 1344) "\01\00\00\00\1e")
(data (i32.const 1360) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l")
(table $0 3 funcref)
(elem (i32.const 0) $null $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|0)
(data (i32.const 704) "\01\00\00\00\12")
(data (i32.const 720) " \00 \00 \00 \00 \00i\00t\00e\00r")
(data (i32.const 744) "\01\00\00\00*")
(data (i32.const 760) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 808) "\01\00\00\00$")
(data (i32.const 824) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P")
(data (i32.const 864) "\01\00\00\00(")
(data (i32.const 880) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e")
(data (i32.const 920) "\01\00\00\00,")
(data (i32.const 936) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 984) "\01\00\00\00\"")
(data (i32.const 1000) "#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)")
(data (i32.const 1040) "\01\00\00\00\1e")
(data (i32.const 1056) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 1088) "\01\00\00\00\1a")
(data (i32.const 1104) "i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r")
(data (i32.const 1136) "\01\00\00\00(")
(data (i32.const 1152) "#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)")
(data (i32.const 1192) "\01\00\00\00&")
(data (i32.const 1208) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 1248) "\01\00\00\00\12")
(data (i32.const 1264) "i\00t\00c\00m\00.\00l\00i\00n\00k")
(data (i32.const 1288) "\01\00\00\00\1c")
(data (i32.const 1304) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f")
(data (i32.const 1336) "\01\00\00\00\1a")
(data (i32.const 1352) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 1384) "\01\00\00\00\1e")
(data (i32.const 1400) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l")
(table $0 10 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|0 $gc/itcm/trace/Ref~iterate $~lib/string/String~iterate $~lib/runtime/ArrayBufferView~iterate $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate)
(global $~lib/collector/itcm/state (mut i32) (i32.const 0))
(global $~lib/collector/itcm/white (mut i32) (i32.const 0))
(global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0))
@ -71,8 +73,8 @@
(global $~lib/collector/itcm/iter (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))
(global $~lib/argc (mut i32) (i32.const 0))
(global $gc/itcm/trace/ref (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $gc/itcm/trace/arr (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
@ -80,7 +82,10 @@
(export "table" (table $0))
(export "main" (func $gc/itcm/trace/main))
(export ".capabilities" (global $~lib/capabilities))
(func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -142,7 +147,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/collector/itcm/ManagedObjectList#clear (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObjectList#clear (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 208
i32.const 1
local.get $0
@ -161,7 +166,7 @@
local.get $0
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#unlink (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 448
i32.const 3
@ -198,7 +203,7 @@
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/ManagedObjectList#push (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
i32.const 528
i32.const 3
@ -242,7 +247,7 @@
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 400
i32.const 1
local.get $0
@ -276,7 +281,7 @@
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/step~anonymous|0 (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/step~anonymous|0 (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
@ -291,7 +296,31 @@
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/step (; 8 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/step~anonymous|1 (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 720
i32.const 1
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
i32.sub
local.tee $0
i32.load offset=8
i32.const 3
i32.and
i32.eq
if
local.get $0
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/step (; 10 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
block $break|0
@ -385,14 +414,14 @@
local.tee $0
if
local.get $0
i32.const 1
i32.const 2
call_indirect (type $FUNCSIG$vi)
end
global.get $gc/itcm/trace/arr
local.tee $0
if
local.get $0
i32.const 1
i32.const 2
call_indirect (type $FUNCSIG$vi)
end
i32.const 2
@ -438,14 +467,13 @@
i32.and
i32.or
i32.store offset=8
i32.const 1
global.set $~lib/argc
local.get $1
i32.const 3
local.get $0
i32.load
call_indirect (type $FUNCSIG$vi)
call_indirect (type $FUNCSIG$vii)
else
i32.const 720
i32.const 760
i32.const 0
f64.const 0
f64.const 0
@ -457,14 +485,14 @@
local.tee $0
if
local.get $0
i32.const 2
i32.const 4
call_indirect (type $FUNCSIG$vi)
end
global.get $gc/itcm/trace/arr
local.tee $0
if
local.get $0
i32.const 2
i32.const 4
call_indirect (type $FUNCSIG$vi)
end
global.get $~lib/collector/itcm/toSpace
@ -490,7 +518,7 @@
global.set $~lib/collector/itcm/iter
i32.const 3
global.set $~lib/collector/itcm/state
i32.const 784
i32.const 824
i32.const 0
f64.const 0
f64.const 0
@ -507,7 +535,7 @@
global.get $~lib/collector/itcm/toSpace
i32.ne
if
i32.const 840
i32.const 880
i32.const 1
local.get $0
i32.const 16
@ -524,7 +552,7 @@
i32.and
global.set $~lib/collector/itcm/iter
else
i32.const 896
i32.const 936
i32.const 0
f64.const 0
f64.const 0
@ -547,7 +575,7 @@
end
end
)
(func $~lib/collector/itcm/__ref_collect (; 9 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/__ref_collect (; 11 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 72
i32.const 0
@ -581,7 +609,7 @@
end
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 $1 i32)
i32.const 1
i32.const 32
@ -608,8 +636,21 @@
i32.const 16
i32.add
)
(func $~lib/collector/itcm/__ref_register (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 1064
(func $gc/itcm/trace/Ref~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.load
local.tee $0
if
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
local.get $1
call $gc/itcm/trace/Ref~iterate
end
)
(func $~lib/collector/itcm/__ref_register (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 1104
i32.const 1
local.get $0
f64.convert_i32_u
@ -634,14 +675,14 @@
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
)
(func $~lib/runtime/register (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 1392
i32.const 1432
i32.le_u
if
i32.const 0
i32.const 1016
i32.const 1056
i32.const 149
i32.const 4
call $~lib/env/abort
@ -656,7 +697,7 @@
i32.ne
if
i32.const 0
i32.const 1016
i32.const 1056
i32.const 151
i32.const 4
call $~lib/env/abort
@ -669,7 +710,7 @@
call $~lib/collector/itcm/__ref_register
local.get $0
)
(func $~lib/memory/memory.fill (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.fill (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -880,9 +921,19 @@
end
end
)
(func $~lib/collector/itcm/__ref_link (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/runtime/ArrayBufferView~iterate (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.load
local.tee $0
if
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
end
)
(func $~lib/collector/itcm/__ref_link (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
i32.const 1224
i32.const 1264
i32.const 2
local.get $0
f64.convert_i32_u
@ -920,7 +971,7 @@
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/runtime/ArrayBufferView#constructor (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ArrayBufferView#constructor (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 4
call $~lib/runtime/allocate
@ -928,7 +979,7 @@
i32.const 4
call $~lib/memory/memory.fill
local.get $1
i32.const 3
i32.const 6
call $~lib/runtime/register
local.set $1
local.get $0
@ -936,7 +987,7 @@
if
i32.const 12
call $~lib/runtime/allocate
i32.const 4
i32.const 7
call $~lib/runtime/register
local.set $0
end
@ -969,7 +1020,49 @@
i32.store offset=8
local.get $0
)
(func $~lib/util/memory/memcpy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=4
local.tee $2
local.get $0
i32.load offset=8
i32.add
local.set $3
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
local.get $2
i32.load
local.tee $0
if
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
local.get $1
call $gc/itcm/trace/Ref~iterate
end
local.get $2
i32.const 4
i32.add
local.set $2
br $continue|0
end
end
)
(func $~lib/util/memory/memcpy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1816,7 +1909,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 22 ;) (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
@ -2010,7 +2103,7 @@
end
end
)
(func $~lib/runtime/reallocate (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/reallocate (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -2034,7 +2127,7 @@
i32.shl
i32.const 0
local.get $0
i32.const 1392
i32.const 1432
i32.gt_u
select
i32.const 32
@ -2072,11 +2165,11 @@
i32.eq
if
local.get $0
i32.const 1392
i32.const 1432
i32.le_u
if
i32.const 0
i32.const 1016
i32.const 1056
i32.const 113
i32.const 8
call $~lib/env/abort
@ -2105,7 +2198,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/array/ensureCapacity (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/array/ensureCapacity (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
i32.const 1
@ -2145,7 +2238,7 @@
i32.store offset=8
end
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__unchecked_set (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__unchecked_set (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=4
@ -2165,7 +2258,7 @@
end
end
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__set (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__set (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=12
@ -2184,14 +2277,14 @@
i32.store offset=12
end
)
(func $start:gc/itcm/trace (; 22 ;) (type $FUNCSIG$v)
(func $start:gc/itcm/trace (; 27 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 1392
i32.const 1432
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $~lib/collector/itcm/__ref_collect
i32.const 960
i32.const 1000
i32.const 0
f64.const 0
f64.const 0
@ -2199,12 +2292,16 @@
f64.const 0
f64.const 0
call $~lib/env/trace
i32.const 0
i32.const 4
call $~lib/runtime/allocate
i32.const 2
i32.const 5
call $~lib/runtime/register
local.tee $0
i32.const 0
i32.store
local.get $0
global.set $gc/itcm/trace/ref
i32.const 1112
i32.const 1152
i32.const 0
f64.const 0
f64.const 0
@ -2214,7 +2311,7 @@
call $~lib/env/trace
i32.const 16
call $~lib/runtime/allocate
i32.const 5
i32.const 8
call $~lib/runtime/register
call $~lib/runtime/ArrayBufferView#constructor
local.tee $0
@ -2225,7 +2322,7 @@
i32.store offset=12
local.get $0
global.set $gc/itcm/trace/arr
i32.const 1264
i32.const 1304
i32.const 0
f64.const 0
f64.const 0
@ -2236,7 +2333,7 @@
global.get $gc/itcm/trace/arr
global.get $gc/itcm/trace/ref
call $~lib/array/Array<gc/itcm/trace/Ref | null>#__set
i32.const 1360
i32.const 1400
i32.const 0
f64.const 0
f64.const 0
@ -2247,8 +2344,9 @@
global.get $gc/itcm/trace/arr
i32.const 0
call $~lib/array/Array<gc/itcm/trace/Ref | null>#__set
call $~lib/collector/itcm/__ref_collect
)
(func $gc/itcm/trace/main (; 23 ;) (type $FUNCSIG$v)
(func $gc/itcm/trace/main (; 28 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -2257,7 +2355,7 @@
global.set $~lib/started
end
)
(func $null (; 24 ;) (type $FUNCSIG$v)
(func $null (; 29 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -10,7 +10,9 @@ assert(gc.implemented);
gc.collect(); // trigger init
class Ref {}
class Ref {
inner: Ref;
}
trace("# ref = new Ref()");
var ref = new Ref();
@ -21,6 +23,6 @@ arr[0] = ref;
trace("# arr[0] = null");
arr[0] = null;
// TODO...
gc.collect(); // FIXME: should do nothing yet, but collects arr.data ?
@start export function main(): void {}

View File

@ -1,10 +1,10 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
@ -24,21 +24,22 @@
(data (i32.const 512) "\01\00\00\006\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00p\00u\00s\00h\00 \00[\00p\00r\00e\00v\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]\00")
(data (i32.const 584) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K\00")
(data (i32.const 640) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00i\00t\00e\00r\00a\00t\00e\00")
(data (i32.const 704) "\01\00\00\00*\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h\00")
(data (i32.const 768) "\01\00\00\00$\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P\00")
(data (i32.const 824) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e\00")
(data (i32.const 880) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h\00")
(data (i32.const 944) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)\00")
(data (i32.const 1000) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 1048) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r\00")
(data (i32.const 1096) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)\00")
(data (i32.const 1152) "\01\00\00\00&\00\00\00\00\00\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 1208) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00l\00i\00n\00k\00")
(data (i32.const 1248) "\01\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f\00")
(data (i32.const 1296) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 1344) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l\00")
(table $0 3 funcref)
(elem (i32.const 0) $null $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1)
(data (i32.const 704) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00i\00t\00e\00r\00")
(data (i32.const 744) "\01\00\00\00*\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h\00")
(data (i32.const 808) "\01\00\00\00$\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P\00")
(data (i32.const 864) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e\00")
(data (i32.const 920) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h\00")
(data (i32.const 984) "\01\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)\00")
(data (i32.const 1040) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 1088) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r\00")
(data (i32.const 1136) "\01\00\00\00(\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)\00")
(data (i32.const 1192) "\01\00\00\00&\00\00\00\00\00\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 1248) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00i\00t\00c\00m\00.\00l\00i\00n\00k\00")
(data (i32.const 1288) "\01\00\00\00\1c\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f\00")
(data (i32.const 1336) "\01\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 1384) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l\00")
(table $0 10 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|2 $gc/itcm/trace/Ref~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/runtime/ArrayBufferView~iterate $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate)
(global $gc/itcm/trace/GC_TRACE i32 (i32.const 1))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
@ -50,19 +51,22 @@
(global $~lib/gc/gc.implemented i32 (i32.const 1))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $gc/itcm/trace/ref (mut i32) (i32.const 0))
(global $~lib/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/argc (mut i32) (i32.const 0))
(global $gc/itcm/trace/arr (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 1392))
(global $~lib/memory/HEAP_BASE i32 (i32.const 1432))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
(export "main" (func $gc/itcm/trace/main))
(export ".capabilities" (global $~lib/capabilities))
(func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -141,12 +145,12 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__mem_allocate
return
)
(func $~lib/collector/itcm/ManagedObjectList#clear (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObjectList#clear (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 208
i32.const 1
@ -170,13 +174,13 @@
local.get $0
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#get:color (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/collector/itcm/ManagedObject#get:color (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 3
i32.and
)
(func $~lib/collector/itcm/ManagedObject#get:next (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/collector/itcm/ManagedObject#get:next (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 3
@ -184,7 +188,7 @@
i32.xor
i32.and
)
(func $~lib/collector/itcm/ManagedObject#set:next (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/itcm/ManagedObject#set:next (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
local.get $0
@ -194,7 +198,7 @@
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/ManagedObject#unlink (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObject#unlink (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -240,7 +244,7 @@
local.get $1
call $~lib/collector/itcm/ManagedObject#set:next
)
(func $~lib/collector/itcm/ManagedObjectList#push (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/itcm/ManagedObjectList#push (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -288,7 +292,7 @@
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 400
i32.const 1
@ -329,7 +333,7 @@
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/step~anonymous|0 (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/step~anonymous|0 (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
block $~lib/collector/itcm/refToObj|inlined.0 (result i32)
@ -349,7 +353,7 @@
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/ManagedObject#set:color (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/itcm/ManagedObject#set:color (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $0
i32.load offset=8
@ -361,13 +365,18 @@
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/ManagedObject#get:hookFn (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
)
(func $~lib/collector/itcm/step~anonymous|1 (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
i32.const 720
i32.const 1
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
block $~lib/collector/itcm/refToObj|inlined.1 (result i32)
local.get $0
local.set $1
@ -385,14 +394,34 @@
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/allocator/arena/__mem_free (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/step~anonymous|2 (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
block $~lib/collector/itcm/refToObj|inlined.2 (result i32)
local.get $0
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_SIZE
i32.sub
end
local.set $2
local.get $2
call $~lib/collector/itcm/ManagedObject#get:color
global.get $~lib/collector/itcm/white
i32.eq
if
local.get $2
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/allocator/arena/__mem_free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(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.get $0
call $~lib/allocator/arena/__mem_free
)
(func $~lib/collector/itcm/step (; 17 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/step (; 18 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
block $break|0
@ -504,7 +533,7 @@
f64.const 0
f64.const 0
call $~lib/env/trace
i32.const 1
i32.const 2
call $~iterateRoots
i32.const 2
global.set $~lib/collector/itcm/state
@ -550,8 +579,6 @@
global.get $~lib/collector/itcm/white
i32.eqz
call $~lib/collector/itcm/ManagedObject#set:color
i32.const 1
global.set $~lib/argc
block $~lib/collector/itcm/objToRef|inlined.11 (result i32)
local.get $0
local.set $1
@ -559,11 +586,12 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
end
i32.const 3
local.get $0
call $~lib/collector/itcm/ManagedObject#get:hookFn
call_indirect (type $FUNCSIG$vi)
i32.load
call_indirect (type $FUNCSIG$vii)
else
i32.const 720
i32.const 760
i32.const 0
f64.const 0
f64.const 0
@ -571,7 +599,7 @@
f64.const 0
f64.const 0
call $~lib/env/trace
i32.const 2
i32.const 4
call $~iterateRoots
global.get $~lib/collector/itcm/iter
call $~lib/collector/itcm/ManagedObject#get:next
@ -594,7 +622,7 @@
global.set $~lib/collector/itcm/iter
i32.const 3
global.set $~lib/collector/itcm/state
i32.const 784
i32.const 824
i32.const 0
f64.const 0
f64.const 0
@ -616,7 +644,7 @@
global.get $~lib/collector/itcm/toSpace
i32.ne
if
i32.const 840
i32.const 880
i32.const 1
block $~lib/collector/itcm/objToRef|inlined.12 (result i32)
local.get $0
@ -642,7 +670,7 @@
call $~lib/memory/memory.free
end
else
i32.const 896
i32.const 936
i32.const 0
f64.const 0
f64.const 0
@ -669,7 +697,7 @@
unreachable
end
)
(func $~lib/collector/itcm/__ref_collect (; 18 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/__ref_collect (; 19 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 72
i32.const 0
@ -709,10 +737,10 @@
end
end
)
(func $~lib/gc/gc.collect (; 19 ;) (type $FUNCSIG$v)
(func $~lib/gc/gc.collect (; 20 ;) (type $FUNCSIG$v)
call $~lib/collector/itcm/__ref_collect
)
(func $~lib/runtime/ADJUSTOBLOCK (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -724,7 +752,7 @@
i32.sub
i32.shl
)
(func $~lib/runtime/allocate (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
@ -746,10 +774,24 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/collector/itcm/__ref_register (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $gc/itcm/trace/Ref~iterate (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load
local.tee $2
if
local.get $2
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $2
local.get $1
call $gc/itcm/trace/Ref~iterate
end
)
(func $~lib/collector/itcm/__ref_register (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
i32.const 1064
i32.const 1104
i32.const 1
local.get $0
f64.convert_i32_u
@ -759,7 +801,7 @@
f64.const 0
call $~lib/env/trace
call $~lib/collector/itcm/step
block $~lib/collector/itcm/refToObj|inlined.2 (result i32)
block $~lib/collector/itcm/refToObj|inlined.3 (result i32)
local.get $0
local.set $1
local.get $1
@ -774,7 +816,7 @@
local.get $2
call $~lib/collector/itcm/ManagedObjectList#push
)
(func $~lib/runtime/register (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -782,7 +824,7 @@
i32.eqz
if
i32.const 0
i32.const 1016
i32.const 1056
i32.const 149
i32.const 4
call $~lib/env/abort
@ -799,7 +841,7 @@
i32.eqz
if
i32.const 0
i32.const 1016
i32.const 1056
i32.const 151
i32.const 4
call $~lib/env/abort
@ -812,19 +854,22 @@
call $~lib/collector/itcm/__ref_register
local.get $0
)
(func $gc/itcm/trace/Ref#constructor (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $gc/itcm/trace/Ref#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 0
i32.const 4
call $~lib/runtime/allocate
i32.const 2
i32.const 5
call $~lib/runtime/register
local.set $0
end
local.get $0
i32.const 0
i32.store
local.get $0
)
(func $~lib/memory/memory.fill (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.fill (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1081,7 +1126,10 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $1
@ -1089,7 +1137,7 @@
i32.gt_u
if
i32.const 0
i32.const 1168
i32.const 1208
i32.const 25
i32.const 43
call $~lib/env/abort
@ -1110,14 +1158,28 @@
local.get $3
local.set $2
local.get $2
i32.const 3
i32.const 6
call $~lib/runtime/register
end
)
(func $~lib/collector/itcm/__ref_link (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/runtime/ArrayBufferView~iterate (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load
local.tee $2
if
local.get $2
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $2
local.get $1
call $~lib/arraybuffer/ArrayBuffer~iterate
end
)
(func $~lib/collector/itcm/__ref_link (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1224
i32.const 1264
i32.const 2
local.get $0
f64.convert_i32_u
@ -1127,7 +1189,7 @@
f64.const 0
f64.const 0
call $~lib/env/trace
block $~lib/collector/itcm/refToObj|inlined.3 (result i32)
block $~lib/collector/itcm/refToObj|inlined.4 (result i32)
local.get $1
local.set $2
local.get $2
@ -1142,7 +1204,7 @@
i32.eq
local.tee $2
if (result i32)
block $~lib/collector/itcm/refToObj|inlined.5 (result i32)
block $~lib/collector/itcm/refToObj|inlined.6 (result i32)
local.get $0
local.set $2
local.get $2
@ -1160,7 +1222,7 @@
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/runtime/ArrayBufferView#constructor (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/runtime/ArrayBufferView#constructor (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1172,7 +1234,7 @@
i32.gt_u
if
i32.const 0
i32.const 1016
i32.const 1056
i32.const 232
i32.const 57
call $~lib/env/abort
@ -1191,7 +1253,7 @@
if
i32.const 12
call $~lib/runtime/allocate
i32.const 4
i32.const 7
call $~lib/runtime/register
local.set $0
end
@ -1231,14 +1293,63 @@
i32.store offset=8
local.get $0
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#constructor (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $0
i32.load offset=8
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
i32.load
local.set $4
local.get $4
if
i32.const 1
global.set $~lib/argc
local.get $4
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $4
local.get $1
call $gc/itcm/trace/Ref~iterate
end
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
else
i32.const 16
call $~lib/runtime/allocate
i32.const 5
i32.const 8
call $~lib/runtime/register
end
local.get $1
@ -1253,7 +1364,7 @@
i32.store offset=12
local.get $0
)
(func $~lib/util/memory/memcpy (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2454,7 +2565,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2685,7 +2796,7 @@
end
end
)
(func $~lib/runtime/reallocate (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/reallocate (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2755,7 +2866,7 @@
i32.eqz
if
i32.const 0
i32.const 1016
i32.const 1056
i32.const 113
i32.const 8
call $~lib/env/abort
@ -2789,7 +2900,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/array/ensureCapacity (; 33 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/ensureCapacity (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2810,7 +2921,7 @@
i32.gt_u
if
i32.const 0
i32.const 1312
i32.const 1352
i32.const 13
i32.const 64
call $~lib/env/abort
@ -2864,7 +2975,7 @@
i32.store offset=8
end
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__unchecked_set (; 34 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__unchecked_set (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $0
@ -2894,7 +3005,7 @@
end
end
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__set (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__set (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
local.get $0
i32.load offset=12
@ -2920,7 +3031,7 @@
i32.store offset=12
end
)
(func $start:gc/itcm/trace (; 36 ;) (type $FUNCSIG$v)
(func $start:gc/itcm/trace (; 41 ;) (type $FUNCSIG$v)
global.get $~lib/runtime/HEADER_SIZE
i32.const 16
i32.eq
@ -2954,7 +3065,7 @@
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $~lib/gc/gc.collect
i32.const 960
i32.const 1000
i32.const 0
f64.const 0
f64.const 0
@ -2965,7 +3076,7 @@
i32.const 0
call $gc/itcm/trace/Ref#constructor
global.set $gc/itcm/trace/ref
i32.const 1112
i32.const 1152
i32.const 0
f64.const 0
f64.const 0
@ -2977,7 +3088,7 @@
i32.const 1
call $~lib/array/Array<gc/itcm/trace/Ref | null>#constructor
global.set $gc/itcm/trace/arr
i32.const 1264
i32.const 1304
i32.const 0
f64.const 0
f64.const 0
@ -2989,7 +3100,7 @@
i32.const 0
global.get $gc/itcm/trace/ref
call $~lib/array/Array<gc/itcm/trace/Ref | null>#__set
i32.const 1360
i32.const 1400
i32.const 0
f64.const 0
f64.const 0
@ -3001,8 +3112,9 @@
i32.const 0
i32.const 0
call $~lib/array/Array<gc/itcm/trace/Ref | null>#__set
call $~lib/gc/gc.collect
)
(func $gc/itcm/trace/main (; 37 ;) (type $FUNCSIG$v)
(func $gc/itcm/trace/main (; 42 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -3011,12 +3123,12 @@
global.set $~lib/started
end
)
(func $start (; 38 ;) (type $FUNCSIG$v)
(func $start (; 43 ;) (type $FUNCSIG$v)
call $start:gc/itcm/trace
)
(func $null (; 39 ;) (type $FUNCSIG$v)
(func $null (; 44 ;) (type $FUNCSIG$v)
)
(func $~iterateRoots (; 40 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~iterateRoots (; 45 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $gc/itcm/trace/ref
local.tee $1

View File

@ -1,4 +1,6 @@
(module
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(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)))
@ -10,21 +12,22 @@
(data (i32.const 25) "\01\02")
(data (i32.const 32) "\02\00\00\00\10")
(data (i32.const 48) "\18\00\00\00\18\00\00\00\03\00\00\00\03")
(data (i32.const 64) "\03\00\00\00(")
(data (i32.const 64) "\04\00\00\00(")
(data (i32.const 80) "s\00t\00d\00/\00a\00r\00r\00a\00y\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s")
(data (i32.const 120) "\03\00\00\00\1a")
(data (i32.const 120) "\04\00\00\00\1a")
(data (i32.const 136) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 168) "\01\00\00\00\0c")
(data (i32.const 188) "\01\00\00\00\02")
(data (i32.const 200) "\04\00\00\00\10")
(data (i32.const 200) "\05\00\00\00\10")
(data (i32.const 216) "\b8\00\00\00\b8\00\00\00\0c\00\00\00\03")
(data (i32.const 232) "\01")
(data (i32.const 248) "\04\00\00\00\10")
(data (i32.const 248) "\05\00\00\00\10")
(data (i32.const 264) "\f8\00\00\00\f8")
(data (i32.const 280) "\03\00\00\00\1e")
(data (i32.const 280) "\04\00\00\00\1e")
(data (i32.const 296) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 13 funcref)
(elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<i8>~iterate $~lib/array/Array<i8>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<i8>~iterate $~lib/array/Array<i8>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/array/Array<std/array-literal/Ref>~iterate)
(global $~lib/argc (mut i32) (i32.const 0))
(global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 264))
(global $std/array-literal/i (mut i32) (i32.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -38,7 +41,18 @@
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/array/Array<i8>#__get (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/array/Array<i8>~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/array/Array<i8>#__get (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -57,7 +71,7 @@
i32.add
i32.load8_s
)
(func $~lib/array/Array<i32>#__get (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__get (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -80,7 +94,7 @@
i32.add
i32.load
)
(func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/arena/__mem_allocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -142,7 +156,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -169,7 +183,7 @@
i32.const 16
i32.add
)
(func $~lib/runtime/register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 328
@ -202,7 +216,7 @@
i32.store
local.get $0
)
(func $~lib/runtime/makeArray (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/makeArray (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
i32.const 16
@ -237,19 +251,56 @@
i32.store offset=12
local.get $0
)
(func $std/array-literal/Ref#constructor (; 7 ;) (type $FUNCSIG$i) (result i32)
i32.const 0
call $~lib/runtime/allocate
i32.const 5
call $~lib/runtime/register
)
(func $std/array-literal/RefWithCtor#constructor (; 8 ;) (type $FUNCSIG$i) (result i32)
(func $std/array-literal/Ref#constructor (; 9 ;) (type $FUNCSIG$i) (result i32)
i32.const 0
call $~lib/runtime/allocate
i32.const 7
call $~lib/runtime/register
)
(func $start:std/array-literal (; 9 ;) (type $FUNCSIG$v)
(func $~lib/array/Array<std/array-literal/Ref>~iterate (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=4
local.tee $2
local.get $0
i32.load offset=8
i32.add
local.set $0
loop $continue|0
local.get $2
local.get $0
i32.lt_u
if
local.get $2
i32.load
local.set $3
i32.const 1
global.set $~lib/argc
local.get $3
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $2
i32.const 4
i32.add
local.set $2
br $continue|0
end
end
)
(func $std/array-literal/RefWithCtor#constructor (; 11 ;) (type $FUNCSIG$i) (result i32)
i32.const 0
call $~lib/runtime/allocate
i32.const 10
call $~lib/runtime/register
)
(func $start:std/array-literal (; 12 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -443,7 +494,7 @@
end
i32.const 0
global.set $std/array-literal/i
i32.const 4
i32.const 5
i32.const 2
call $~lib/runtime/makeArray
local.tee $2
@ -519,7 +570,7 @@
call $~lib/env/abort
unreachable
end
i32.const 6
i32.const 8
i32.const 2
call $~lib/runtime/makeArray
local.tee $2
@ -547,7 +598,7 @@
call $~lib/env/abort
unreachable
end
i32.const 8
i32.const 11
i32.const 2
call $~lib/runtime/makeArray
local.tee $2
@ -576,10 +627,10 @@
unreachable
end
)
(func $start (; 10 ;) (type $FUNCSIG$v)
(func $start (; 13 ;) (type $FUNCSIG$v)
call $start:std/array-literal
)
(func $null (; 11 ;) (type $FUNCSIG$v)
(func $null (; 14 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,28 +1,29 @@
(module
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(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$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viii (func (param i32 i32 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\03\00\00\00\00\00\00\00\00\00\00\00\00\01\02")
(data (i32.const 32) "\02\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\18\00\00\00\03\00\00\00\03\00\00\00")
(data (i32.const 64) "\03\00\00\00(\00\00\00\00\00\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 120) "\03\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 64) "\04\00\00\00(\00\00\00\00\00\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 120) "\04\00\00\00\1a\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 168) "\01\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00")
(data (i32.const 200) "\04\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\b8\00\00\00\b8\00\00\00\0c\00\00\00\03\00\00\00")
(data (i32.const 200) "\05\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\b8\00\00\00\b8\00\00\00\0c\00\00\00\03\00\00\00")
(data (i32.const 232) "\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 248) "\04\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\f8\00\00\00\f8\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 280) "\03\00\00\00\1e\00\00\00\00\00\00\00\00\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/array-literal/staticArrayI8 i32 (i32.const 48))
(data (i32.const 248) "\05\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\f8\00\00\00\f8\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 280) "\04\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 13 funcref)
(elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<i8>~iterate $~lib/array/Array<i8>~iterate $~lib/string/String~iterate $~lib/array/Array<i32>~iterate $~lib/array/Array<i32>~iterate $std/array-literal/Ref~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $std/array-literal/RefWithCtor~iterate $~lib/array/Array<std/array-literal/RefWithCtor>~iterate $~lib/array/Array<std/array-literal/RefWithCtor>~iterate)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/argc (mut i32) (i32.const 0))
(global $std/array-literal/staticArrayI8 i32 (i32.const 48))
(global $std/array-literal/staticArrayI32 i32 (i32.const 216))
(global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 264))
(global $std/array-literal/i (mut i32) (i32.const 0))
@ -39,11 +40,25 @@
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/array/Array<i8>#get:length (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $~lib/array/Array<i8>~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/array/Array<i8>#get:length (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/array/Array<i8>#__unchecked_get (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $~lib/array/Array<i8>#__unchecked_get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -52,7 +67,7 @@
i32.add
i32.load8_s
)
(func $~lib/array/Array<i8>#__get (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i8>#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -71,11 +86,19 @@
local.get $1
call $~lib/array/Array<i8>#__unchecked_get
)
(func $~lib/array/Array<i32>#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i32>~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/array/Array<i32>#get:length (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/array/Array<i32>#__unchecked_get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__unchecked_get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -84,7 +107,7 @@
i32.add
i32.load
)
(func $~lib/array/Array<i32>#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -103,7 +126,7 @@
local.get $1
call $~lib/array/Array<i32>#__unchecked_get
)
(func $~lib/runtime/ADJUSTOBLOCK (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -115,7 +138,7 @@
i32.sub
i32.shl
)
(func $~lib/allocator/arena/__mem_allocate (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/arena/__mem_allocate (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -194,12 +217,12 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__mem_allocate
return
)
(func $~lib/runtime/allocate (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
@ -221,10 +244,10 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/collector/dummy/__ref_register (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/dummy/__ref_register (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/runtime/register (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -262,13 +285,13 @@
call $~lib/collector/dummy/__ref_register
local.get $0
)
(func $~lib/collector/dummy/__ref_link (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_link (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/collector/dummy/__ref_unlink (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_unlink (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/util/memory/memcpy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1469,7 +1492,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1700,7 +1723,7 @@
end
end
)
(func $~lib/runtime/makeArray (; 17 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/makeArray (; 21 ;) (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)
@ -1764,23 +1787,9 @@
end
local.get $4
)
(func $std/array-literal/Ref#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/allocate
i32.const 5
call $~lib/runtime/register
local.set $0
end
local.get $0
(func $std/array-literal/Ref~iterate (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
)
(func $~lib/array/Array<std/array-literal/Ref>#get:length (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $std/array-literal/RefWithCtor#constructor (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array-literal/Ref#constructor (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1792,11 +1801,122 @@
end
local.get $0
)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#get:length (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<std/array-literal/Ref>~iterate (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $0
i32.load offset=8
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
i32.load
local.set $4
i32.const 1
global.set $~lib/argc
local.get $4
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $4
local.get $1
call $std/array-literal/Ref~iterate
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
)
(func $~lib/array/Array<std/array-literal/Ref>#get:length (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $start:std/array-literal (; 22 ;) (type $FUNCSIG$v)
(func $std/array-literal/RefWithCtor~iterate (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $std/array-literal/RefWithCtor#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/allocate
i32.const 10
call $~lib/runtime/register
local.set $0
end
local.get $0
)
(func $~lib/array/Array<std/array-literal/RefWithCtor>~iterate (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $0
i32.load offset=8
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
i32.load
local.set $4
i32.const 1
global.set $~lib/argc
local.get $4
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $4
local.get $1
call $std/array-literal/RefWithCtor~iterate
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#get:length (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $start:std/array-literal (; 30 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -2028,7 +2148,7 @@
global.set $std/array-literal/i
block (result i32)
i32.const 3
i32.const 4
i32.const 5
i32.const 2
i32.const 0
call $~lib/runtime/makeArray
@ -2119,7 +2239,7 @@
end
block (result i32)
i32.const 3
i32.const 6
i32.const 8
i32.const 2
i32.const 0
call $~lib/runtime/makeArray
@ -2178,7 +2298,7 @@
end
block (result i32)
i32.const 3
i32.const 8
i32.const 11
i32.const 2
i32.const 0
call $~lib/runtime/makeArray
@ -2236,9 +2356,9 @@
unreachable
end
)
(func $start (; 23 ;) (type $FUNCSIG$v)
(func $start (; 31 ;) (type $FUNCSIG$v)
call $start:std/array-literal
)
(func $null (; 24 ;) (type $FUNCSIG$v)
(func $null (; 32 ;) (type $FUNCSIG$v)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,11 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iij (func (param i32 i64) (result i32)))
(type $FUNCSIG$ij (func (param i64) (result i32)))
@ -23,16 +23,17 @@
(type $FUNCSIG$vid (func (param i32 f64)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e")
(data (i32.const 8) "\03\00\00\00\1e")
(data (i32.const 24) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 56) "\02\00\00\00&")
(data (i32.const 56) "\03\00\00\00&")
(data (i32.const 72) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 112) "\02\00\00\00\14")
(data (i32.const 112) "\03\00\00\00\14")
(data (i32.const 128) "s\00t\00d\00/\00m\00a\00p\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 23 funcref)
(elem (i32.const 0) $null $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
@ -127,7 +128,26 @@
i32.const 16
i32.add
)
(func $~lib/runtime/register (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<i8,i32>~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=8
local.set $0
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/runtime/register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 148
@ -160,7 +180,7 @@
i32.store
local.get $0
)
(func $~lib/memory/memory.fill (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -371,7 +391,7 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 1073741808
@ -390,10 +410,10 @@
local.get $0
call $~lib/memory/memory.fill
local.get $1
i32.const 3
i32.const 4
call $~lib/runtime/register
)
(func $~lib/map/Map<i8,i32>#clear (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/map/Map<i8,i32>#clear (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 16
call $~lib/arraybuffer/ArrayBuffer#constructor
@ -428,7 +448,7 @@
i32.const 0
i32.store offset=20
)
(func $~lib/map/Map<i8,i32>#constructor (; 7 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<i8,i32>#constructor (; 9 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
@ -456,7 +476,7 @@
call $~lib/map/Map<i8,i32>#clear
local.get $0
)
(func $~lib/map/Map<i8,i32>#find (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/map/Map<i8,i32>#find (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -501,7 +521,7 @@
end
i32.const 0
)
(func $~lib/map/Map<i8,i32>#has (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<i8,i32>#has (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -517,7 +537,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<i8,i32>#rehash (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<i8,i32>#rehash (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -627,7 +647,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<i8,i32>#set (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/map/Map<i8,i32>#set (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -726,7 +746,7 @@
i32.store
end
)
(func $~lib/map/Map<i8,i32>#get (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<i8,i32>#get (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -747,7 +767,7 @@
unreachable
end
)
(func $~lib/map/Map<i8,i32>#delete (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<i8,i32>#delete (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -814,7 +834,7 @@
call $~lib/map/Map<i8,i32>#rehash
end
)
(func $std/map/testNumeric<i8,i32> (; 14 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<i8,i32> (; 16 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/map/Map<i8,i32>#constructor
@ -1158,11 +1178,11 @@
unreachable
end
)
(func $~lib/map/Map<u8,i32>#constructor (; 15 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<u8,i32>#constructor (; 17 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 4
i32.const 5
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -1186,7 +1206,7 @@
call $~lib/map/Map<i8,i32>#clear
local.get $0
)
(func $~lib/map/Map<u8,i32>#has (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<u8,i32>#has (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -1200,7 +1220,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<u8,i32>#rehash (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<u8,i32>#rehash (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1310,7 +1330,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<u8,i32>#set (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/map/Map<u8,i32>#set (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1407,7 +1427,7 @@
i32.store
end
)
(func $~lib/map/Map<u8,i32>#get (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<u8,i32>#get (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -1426,7 +1446,7 @@
unreachable
end
)
(func $~lib/map/Map<u8,i32>#delete (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<u8,i32>#delete (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -1491,7 +1511,7 @@
call $~lib/map/Map<u8,i32>#rehash
end
)
(func $std/map/testNumeric<u8,i32> (; 21 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<u8,i32> (; 23 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/map/Map<u8,i32>#constructor
@ -1821,11 +1841,11 @@
unreachable
end
)
(func $~lib/map/Map<i16,i32>#constructor (; 22 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<i16,i32>#constructor (; 24 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 5
i32.const 7
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -1849,7 +1869,7 @@
call $~lib/map/Map<i8,i32>#clear
local.get $0
)
(func $~lib/map/Map<i16,i32>#find (; 23 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/map/Map<i16,i32>#find (; 25 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -1894,7 +1914,7 @@
end
i32.const 0
)
(func $~lib/map/Map<i16,i32>#has (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<i16,i32>#has (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -1919,7 +1939,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<i16,i32>#rehash (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<i16,i32>#rehash (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2038,7 +2058,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<i16,i32>#set (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/map/Map<i16,i32>#set (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2146,7 +2166,7 @@
i32.store
end
)
(func $~lib/map/Map<i16,i32>#get (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<i16,i32>#get (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -2176,7 +2196,7 @@
unreachable
end
)
(func $~lib/map/Map<i16,i32>#delete (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<i16,i32>#delete (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -2252,7 +2272,7 @@
call $~lib/map/Map<i16,i32>#rehash
end
)
(func $std/map/testNumeric<i16,i32> (; 29 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<i16,i32> (; 31 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/map/Map<i16,i32>#constructor
@ -2596,11 +2616,11 @@
unreachable
end
)
(func $~lib/map/Map<u16,i32>#constructor (; 30 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<u16,i32>#constructor (; 32 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 6
i32.const 9
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -2624,7 +2644,7 @@
call $~lib/map/Map<i8,i32>#clear
local.get $0
)
(func $~lib/map/Map<u16,i32>#has (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<u16,i32>#has (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -2647,7 +2667,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<u16,i32>#rehash (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<u16,i32>#rehash (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2766,7 +2786,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<u16,i32>#set (; 33 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/map/Map<u16,i32>#set (; 35 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2872,7 +2892,7 @@
i32.store
end
)
(func $~lib/map/Map<u16,i32>#get (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<u16,i32>#get (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -2900,7 +2920,7 @@
unreachable
end
)
(func $~lib/map/Map<u16,i32>#delete (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<u16,i32>#delete (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -2974,7 +2994,7 @@
call $~lib/map/Map<u16,i32>#rehash
end
)
(func $std/map/testNumeric<u16,i32> (; 36 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<u16,i32> (; 38 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/map/Map<u16,i32>#constructor
@ -3304,11 +3324,11 @@
unreachable
end
)
(func $~lib/map/Map<i32,i32>#constructor (; 37 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<i32,i32>#constructor (; 39 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 7
i32.const 11
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -3332,7 +3352,7 @@
call $~lib/map/Map<i8,i32>#clear
local.get $0
)
(func $~lib/util/hash/hash32 (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 255
i32.and
@ -3363,7 +3383,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/map/Map<i32,i32>#find (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/map/Map<i32,i32>#find (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -3406,7 +3426,7 @@
end
i32.const 0
)
(func $~lib/map/Map<i32,i32>#has (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<i32,i32>#has (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -3415,7 +3435,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<i32,i32>#rehash (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<i32,i32>#rehash (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3522,7 +3542,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<i32,i32>#set (; 42 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/map/Map<i32,i32>#set (; 44 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3612,7 +3632,7 @@
i32.store
end
)
(func $~lib/map/Map<i32,i32>#get (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<i32,i32>#get (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -3626,7 +3646,7 @@
unreachable
end
)
(func $~lib/map/Map<i32,i32>#delete (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<i32,i32>#delete (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -3686,7 +3706,7 @@
call $~lib/map/Map<i32,i32>#rehash
end
)
(func $std/map/testNumeric<i32,i32> (; 45 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<i32,i32> (; 47 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/map/Map<i32,i32>#constructor
@ -4002,11 +4022,11 @@
unreachable
end
)
(func $~lib/map/Map<u32,i32>#constructor (; 46 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<u32,i32>#constructor (; 48 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 8
i32.const 13
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -4030,7 +4050,7 @@
call $~lib/map/Map<i8,i32>#clear
local.get $0
)
(func $std/map/testNumeric<u32,i32> (; 47 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<u32,i32> (; 49 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/map/Map<u32,i32>#constructor
@ -4346,7 +4366,7 @@
unreachable
end
)
(func $~lib/map/Map<i64,i32>#clear (; 48 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/map/Map<i64,i32>#clear (; 50 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 16
call $~lib/arraybuffer/ArrayBuffer#constructor
@ -4381,11 +4401,11 @@
i32.const 0
i32.store offset=20
)
(func $~lib/map/Map<i64,i32>#constructor (; 49 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<i64,i32>#constructor (; 51 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 9
i32.const 15
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -4409,7 +4429,7 @@
call $~lib/map/Map<i64,i32>#clear
local.get $0
)
(func $~lib/util/hash/hash64 (; 50 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/hash/hash64 (; 52 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
local.get $0
i32.wrap_i64
@ -4475,7 +4495,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/map/Map<i64,i32>#find (; 51 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32)
(func $~lib/map/Map<i64,i32>#find (; 53 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -4518,7 +4538,7 @@
end
i32.const 0
)
(func $~lib/map/Map<i64,i32>#has (; 52 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
(func $~lib/map/Map<i64,i32>#has (; 54 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
local.get $0
local.get $1
local.get $1
@ -4527,7 +4547,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<i64,i32>#rehash (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<i64,i32>#rehash (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4634,7 +4654,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<i64,i32>#set (; 54 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/map/Map<i64,i32>#set (; 56 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4724,7 +4744,7 @@
i32.store
end
)
(func $~lib/map/Map<i64,i32>#get (; 55 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
(func $~lib/map/Map<i64,i32>#get (; 57 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
local.get $0
local.get $1
local.get $1
@ -4738,7 +4758,7 @@
unreachable
end
)
(func $~lib/map/Map<i64,i32>#delete (; 56 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64)
(func $~lib/map/Map<i64,i32>#delete (; 58 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64)
(local $2 i32)
(local $3 i32)
local.get $0
@ -4799,7 +4819,7 @@
call $~lib/map/Map<i64,i32>#rehash
end
)
(func $std/map/testNumeric<i64,i32> (; 57 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<i64,i32> (; 59 ;) (type $FUNCSIG$v)
(local $0 i64)
(local $1 i32)
call $~lib/map/Map<i64,i32>#constructor
@ -5122,11 +5142,11 @@
unreachable
end
)
(func $~lib/map/Map<u64,i32>#constructor (; 58 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<u64,i32>#constructor (; 60 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 10
i32.const 17
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -5150,7 +5170,7 @@
call $~lib/map/Map<i64,i32>#clear
local.get $0
)
(func $std/map/testNumeric<u64,i32> (; 59 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<u64,i32> (; 61 ;) (type $FUNCSIG$v)
(local $0 i64)
(local $1 i32)
call $~lib/map/Map<u64,i32>#constructor
@ -5473,11 +5493,11 @@
unreachable
end
)
(func $~lib/map/Map<f32,i32>#constructor (; 60 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<f32,i32>#constructor (; 62 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 11
i32.const 19
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -5501,7 +5521,7 @@
call $~lib/map/Map<i8,i32>#clear
local.get $0
)
(func $~lib/map/Map<f32,i32>#find (; 61 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32)
(func $~lib/map/Map<f32,i32>#find (; 63 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -5544,7 +5564,7 @@
end
i32.const 0
)
(func $~lib/map/Map<f32,i32>#has (; 62 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
(func $~lib/map/Map<f32,i32>#has (; 64 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
local.get $0
local.get $1
local.get $1
@ -5554,7 +5574,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<f32,i32>#rehash (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<f32,i32>#rehash (; 65 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5662,7 +5682,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<f32,i32>#set (; 64 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32)
(func $~lib/map/Map<f32,i32>#set (; 66 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -5753,7 +5773,7 @@
i32.store
end
)
(func $~lib/map/Map<f32,i32>#get (; 65 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
(func $~lib/map/Map<f32,i32>#get (; 67 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
local.get $0
local.get $1
local.get $1
@ -5768,7 +5788,7 @@
unreachable
end
)
(func $~lib/map/Map<f32,i32>#delete (; 66 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32)
(func $~lib/map/Map<f32,i32>#delete (; 68 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -5830,7 +5850,7 @@
call $~lib/map/Map<f32,i32>#rehash
end
)
(func $std/map/testNumeric<f32,i32> (; 67 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<f32,i32> (; 69 ;) (type $FUNCSIG$v)
(local $0 f32)
(local $1 i32)
call $~lib/map/Map<f32,i32>#constructor
@ -6153,11 +6173,11 @@
unreachable
end
)
(func $~lib/map/Map<f64,i32>#constructor (; 68 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/map/Map<f64,i32>#constructor (; 70 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 12
i32.const 21
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -6181,7 +6201,7 @@
call $~lib/map/Map<i64,i32>#clear
local.get $0
)
(func $~lib/map/Map<f64,i32>#find (; 69 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32)
(func $~lib/map/Map<f64,i32>#find (; 71 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -6224,7 +6244,7 @@
end
i32.const 0
)
(func $~lib/map/Map<f64,i32>#has (; 70 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/map/Map<f64,i32>#has (; 72 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
local.get $0
local.get $1
local.get $1
@ -6234,7 +6254,7 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<f64,i32>#rehash (; 71 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<f64,i32>#rehash (; 73 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -6342,7 +6362,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<f64,i32>#set (; 72 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32)
(func $~lib/map/Map<f64,i32>#set (; 74 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6433,7 +6453,7 @@
i32.store
end
)
(func $~lib/map/Map<f64,i32>#get (; 73 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/map/Map<f64,i32>#get (; 75 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
local.get $0
local.get $1
local.get $1
@ -6448,7 +6468,7 @@
unreachable
end
)
(func $~lib/map/Map<f64,i32>#delete (; 74 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64)
(func $~lib/map/Map<f64,i32>#delete (; 76 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64)
(local $2 i32)
(local $3 i32)
local.get $0
@ -6510,7 +6530,7 @@
call $~lib/map/Map<f64,i32>#rehash
end
)
(func $std/map/testNumeric<f64,i32> (; 75 ;) (type $FUNCSIG$v)
(func $std/map/testNumeric<f64,i32> (; 77 ;) (type $FUNCSIG$v)
(local $0 f64)
(local $1 i32)
call $~lib/map/Map<f64,i32>#constructor
@ -6833,7 +6853,7 @@
unreachable
end
)
(func $start (; 76 ;) (type $FUNCSIG$v)
(func $start (; 78 ;) (type $FUNCSIG$v)
i32.const 152
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
@ -6849,7 +6869,7 @@
call $std/map/testNumeric<f32,i32>
call $std/map/testNumeric<f64,i32>
)
(func $null (; 77 ;) (type $FUNCSIG$v)
(func $null (; 79 ;) (type $FUNCSIG$v)
nop
)
)

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
@ -23,8 +23,8 @@
(data (i32.const 200) "b\00a\00r\00r\00i\00e\00r\003")
(data (i32.const 216) "\01\00\00\00\1e")
(data (i32.const 232) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 4 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate)
(global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0))
(global $std/runtime/register_ref (mut i32) (i32.const 0))
(global $std/runtime/barrier1 (mut i32) (i32.const 0))
@ -44,7 +44,10 @@
(export "table" (table $0))
(export "main" (func $std/runtime/main))
(export ".capabilities" (global $~lib/capabilities))
(func $~lib/allocator/tlsf/Root#setSLMap (; 2 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/allocator/tlsf/Root#setSLMap (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
i32.const 22
i32.ge_u
@ -64,7 +67,7 @@
local.get $2
i32.store offset=4
)
(func $~lib/allocator/tlsf/Root#setHead (; 3 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/allocator/tlsf/Root#setHead (; 4 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
i32.const 22
i32.ge_u
@ -99,7 +102,7 @@
local.get $3
i32.store offset=96
)
(func $~lib/allocator/tlsf/Block#get:right (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:right (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
i32.const -4
@ -133,7 +136,7 @@
end
local.get $0
)
(func $~lib/allocator/tlsf/fls<usize> (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/fls<usize> (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -149,7 +152,7 @@
i32.clz
i32.sub
)
(func $~lib/allocator/tlsf/Root#getHead (; 6 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getHead (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 22
i32.ge_u
@ -183,7 +186,7 @@
i32.add
i32.load offset=96
)
(func $~lib/allocator/tlsf/Root#getSLMap (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getSLMap (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
i32.const 22
i32.ge_u
@ -202,7 +205,7 @@
i32.add
i32.load offset=4
)
(func $~lib/allocator/tlsf/Root#remove (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#remove (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -331,7 +334,7 @@
end
end
)
(func $~lib/allocator/tlsf/Block#get:left (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:left (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
i32.const 2
@ -361,7 +364,7 @@
end
local.get $0
)
(func $~lib/allocator/tlsf/Root#setJump (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#setJump (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.load
i32.const 1
@ -406,7 +409,7 @@
local.get $0
i32.store
)
(func $~lib/allocator/tlsf/Root#insert (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#insert (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -636,7 +639,7 @@
i32.or
call $~lib/allocator/tlsf/Root#setSLMap
)
(func $~lib/allocator/tlsf/Root#addMemory (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/allocator/tlsf/Root#addMemory (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $1
@ -759,7 +762,7 @@
local.get $1
call $~lib/allocator/tlsf/Root#insert
)
(func $~lib/allocator/tlsf/ffs<usize> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/ffs<usize> (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -773,7 +776,7 @@
local.get $0
i32.ctz
)
(func $~lib/allocator/tlsf/Root#search (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#search (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $1
@ -885,7 +888,7 @@
end
end
)
(func $~lib/allocator/tlsf/Root#use (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#use (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $1
@ -996,7 +999,7 @@
i32.const 8
i32.add
)
(func $~lib/allocator/tlsf/__mem_allocate (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/__mem_allocate (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -1166,7 +1169,7 @@
local.get $1
call $~lib/allocator/tlsf/Root#use
)
(func $~lib/runtime/allocate (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -1193,7 +1196,7 @@
i32.const 16
i32.add
)
(func $~lib/util/memory/memcpy (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2040,7 +2043,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 20 ;) (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
@ -2234,7 +2237,7 @@
end
end
)
(func $~lib/memory/memory.fill (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.fill (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -2445,7 +2448,7 @@
end
end
)
(func $~lib/allocator/tlsf/__mem_free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/allocator/tlsf/__mem_free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -2483,7 +2486,7 @@
end
end
)
(func $~lib/runtime/reallocate (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/reallocate (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2590,7 +2593,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/runtime/discard (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/discard (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 264
i32.le_u
@ -2620,7 +2623,7 @@
local.get $0
call $~lib/allocator/tlsf/__mem_free
)
(func $~lib/runtime/register (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/register (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.const 264
@ -2654,7 +2657,7 @@
local.get $0
global.set $std/runtime/register_ref
)
(func $start:std/runtime (; 25 ;) (type $FUNCSIG$v)
(func $start:std/runtime (; 26 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -2973,7 +2976,7 @@
unreachable
end
)
(func $std/runtime/main (; 26 ;) (type $FUNCSIG$v)
(func $std/runtime/main (; 27 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -2982,7 +2985,7 @@
global.set $~lib/started
end
)
(func $null (; 27 ;) (type $FUNCSIG$v)
(func $null (; 28 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,9 +1,9 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
@ -17,8 +17,8 @@
(data (i32.const 152) "\01\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00b\00a\00r\00r\00i\00e\00r\002\00")
(data (i32.const 184) "\01\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00b\00a\00r\00r\00i\00e\00r\003\00")
(data (i32.const 216) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\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)
(table $0 4 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $std/runtime/A~iterate $std/runtime/B~iterate)
(global $~lib/allocator/tlsf/SL_BITS i32 (i32.const 5))
(global $~lib/allocator/tlsf/SL_SIZE i32 (i32.const 32))
(global $~lib/allocator/tlsf/SB_BITS i32 (i32.const 8))
@ -60,7 +60,10 @@
(export "table" (table $0))
(export "main" (func $std/runtime/main))
(export ".capabilities" (global $~lib/capabilities))
(func $start:~lib/allocator/tlsf (; 2 ;) (type $FUNCSIG$v)
(func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $start:~lib/allocator/tlsf (; 3 ;) (type $FUNCSIG$v)
i32.const 1
global.get $~lib/allocator/tlsf/SL_BITS
i32.shl
@ -76,7 +79,11 @@
unreachable
end
)
(func $~lib/runtime/ADJUSTOBLOCK (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/runtime/A~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
)
(func $std/runtime/B~iterate (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
)
(func $~lib/runtime/ADJUSTOBLOCK (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -88,7 +95,7 @@
i32.sub
i32.shl
)
(func $std/runtime/isPowerOf2 (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/runtime/isPowerOf2 (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 0
@ -106,12 +113,12 @@
local.get $1
end
)
(func $~lib/allocator/tlsf/Root#set:tailRef (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#set:tailRef (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 0
local.get $1
i32.store offset=2912
)
(func $~lib/allocator/tlsf/Root#setSLMap (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/allocator/tlsf/Root#setSLMap (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -132,7 +139,7 @@
local.get $2
i32.store offset=4
)
(func $~lib/allocator/tlsf/Root#setHead (; 7 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/allocator/tlsf/Root#setHead (; 10 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -169,11 +176,11 @@
local.get $3
i32.store offset=96
)
(func $~lib/allocator/tlsf/Root#get:tailRef (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Root#get:tailRef (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
i32.load offset=2912
)
(func $~lib/allocator/tlsf/Block#get:right (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:right (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.load
@ -213,7 +220,7 @@
local.get $1
end
)
(func $~lib/allocator/tlsf/fls<usize> (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/fls<usize> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 0
i32.ne
@ -231,7 +238,7 @@
i32.clz
i32.sub
)
(func $~lib/allocator/tlsf/Root#getHead (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getHead (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -267,7 +274,7 @@
i32.add
i32.load offset=96
)
(func $~lib/allocator/tlsf/Root#getSLMap (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getSLMap (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -287,7 +294,7 @@
i32.add
i32.load offset=4
)
(func $~lib/allocator/tlsf/Root#remove (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#remove (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -432,7 +439,7 @@
end
end
)
(func $~lib/allocator/tlsf/Block#get:left (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:left (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.load
@ -464,7 +471,7 @@
local.get $1
end
)
(func $~lib/allocator/tlsf/Root#setJump (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/allocator/tlsf/Root#setJump (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
i32.load
global.get $~lib/allocator/tlsf/FREE
@ -510,7 +517,7 @@
local.get $1
i32.store
)
(func $~lib/allocator/tlsf/Root#insert (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#insert (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -776,7 +783,7 @@
i32.or
call $~lib/allocator/tlsf/Root#setSLMap
)
(func $~lib/allocator/tlsf/Root#addMemory (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#addMemory (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -929,7 +936,7 @@
call $~lib/allocator/tlsf/Root#insert
i32.const 1
)
(func $~lib/allocator/tlsf/ffs<usize> (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/ffs<usize> (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 0
i32.ne
@ -945,7 +952,7 @@
local.get $0
i32.ctz
)
(func $~lib/allocator/tlsf/ffs<u32> (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/ffs<u32> (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 0
i32.ne
@ -961,7 +968,7 @@
local.get $0
i32.ctz
)
(func $~lib/allocator/tlsf/Root#search (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#search (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1102,7 +1109,7 @@
end
local.get $6
)
(func $~lib/allocator/tlsf/Root#use (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#use (; 24 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1230,7 +1237,7 @@
global.get $~lib/allocator/tlsf/Block.INFO
i32.add
)
(func $~lib/allocator/tlsf/__mem_allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/__mem_allocate (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -1466,12 +1473,12 @@
local.get $0
call $~lib/allocator/tlsf/Root#use
)
(func $~lib/memory/memory.allocate (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/tlsf/__mem_allocate
return
)
(func $~lib/runtime/allocate (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
@ -1493,7 +1500,7 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/util/memory/memcpy (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2694,7 +2701,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 29 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2925,7 +2932,7 @@
end
end
)
(func $~lib/memory/memory.fill (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.fill (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3182,7 +3189,7 @@
end
end
)
(func $~lib/allocator/tlsf/__mem_free (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/allocator/tlsf/__mem_free (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -3225,15 +3232,15 @@
end
end
)
(func $~lib/memory/memory.free (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.free (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
call $~lib/allocator/tlsf/__mem_free
)
(func $std/runtime/__ref_register (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $std/runtime/__ref_register (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.set $std/runtime/register_ref
)
(func $~lib/runtime/reallocate (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/reallocate (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3337,7 +3344,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/runtime/discard (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/discard (; 35 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -3371,7 +3378,7 @@
local.get $1
call $~lib/memory/memory.free
)
(func $~lib/runtime/register (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -3409,13 +3416,13 @@
call $std/runtime/__ref_register
local.get $0
)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 37 ;) (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/string/String#get:length (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String#get:length (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
@ -3423,7 +3430,7 @@
i32.const 1
i32.shr_u
)
(func $start:std/runtime (; 36 ;) (type $FUNCSIG$v)
(func $start:std/runtime (; 39 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $start:~lib/allocator/tlsf
@ -3781,7 +3788,7 @@
unreachable
end
)
(func $std/runtime/main (; 37 ;) (type $FUNCSIG$v)
(func $std/runtime/main (; 40 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -3790,9 +3797,9 @@
global.set $~lib/started
end
)
(func $start (; 38 ;) (type $FUNCSIG$v)
(func $start (; 41 ;) (type $FUNCSIG$v)
call $start:std/runtime
)
(func $null (; 39 ;) (type $FUNCSIG$v)
(func $null (; 42 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,10 +1,10 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iij (func (param i32 i64) (result i32)))
(type $FUNCSIG$ij (func (param i64) (result i32)))
@ -19,16 +19,17 @@
(type $FUNCSIG$i (func (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e")
(data (i32.const 8) "\03\00\00\00\1e")
(data (i32.const 24) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 56) "\02\00\00\00&")
(data (i32.const 56) "\03\00\00\00&")
(data (i32.const 72) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 112) "\02\00\00\00\14")
(data (i32.const 112) "\03\00\00\00\14")
(data (i32.const 128) "s\00t\00d\00/\00s\00e\00t\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 23 funcref)
(elem (i32.const 0) $null $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
@ -123,7 +124,26 @@
i32.const 16
i32.add
)
(func $~lib/runtime/register (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<i8>~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=8
local.set $0
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/runtime/register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 148
@ -156,7 +176,7 @@
i32.store
local.get $0
)
(func $~lib/memory/memory.fill (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -367,7 +387,7 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 1073741808
@ -386,10 +406,10 @@
local.get $0
call $~lib/memory/memory.fill
local.get $1
i32.const 3
i32.const 4
call $~lib/runtime/register
)
(func $~lib/set/Set<i8>#clear (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/set/Set<i8>#clear (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 16
call $~lib/arraybuffer/ArrayBuffer#constructor
@ -424,7 +444,7 @@
i32.const 0
i32.store offset=20
)
(func $~lib/set/Set<i8>#constructor (; 7 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<i8>#constructor (; 9 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
@ -452,7 +472,7 @@
call $~lib/set/Set<i8>#clear
local.get $0
)
(func $~lib/set/Set<i8>#find (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/set/Set<i8>#find (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -497,7 +517,7 @@
end
i32.const 0
)
(func $~lib/set/Set<i8>#has (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<i8>#has (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -513,7 +533,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<i8>#rehash (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i8>#rehash (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -619,7 +639,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<i8>#add (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i8>#add (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -711,7 +731,7 @@
i32.store
end
)
(func $~lib/set/Set<i8>#delete (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i8>#delete (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -778,7 +798,7 @@
call $~lib/set/Set<i8>#rehash
end
)
(func $std/set/testNumeric<i8> (; 13 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<i8> (; 15 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/set/Set<i8>#constructor
@ -1023,11 +1043,11 @@
unreachable
end
)
(func $~lib/set/Set<u8>#constructor (; 14 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<u8>#constructor (; 16 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 4
i32.const 5
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -1051,7 +1071,7 @@
call $~lib/set/Set<i8>#clear
local.get $0
)
(func $~lib/set/Set<u8>#has (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<u8>#has (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -1065,7 +1085,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<u8>#rehash (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<u8>#rehash (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1171,7 +1191,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<u8>#add (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<u8>#add (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1261,7 +1281,7 @@
i32.store
end
)
(func $~lib/set/Set<u8>#delete (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<u8>#delete (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -1326,7 +1346,7 @@
call $~lib/set/Set<u8>#rehash
end
)
(func $std/set/testNumeric<u8> (; 19 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<u8> (; 21 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/set/Set<u8>#constructor
@ -1571,11 +1591,11 @@
unreachable
end
)
(func $~lib/set/Set<i16>#constructor (; 20 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<i16>#constructor (; 22 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 5
i32.const 7
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -1599,7 +1619,7 @@
call $~lib/set/Set<i8>#clear
local.get $0
)
(func $~lib/set/Set<i16>#find (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/set/Set<i16>#find (; 23 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -1644,7 +1664,7 @@
end
i32.const 0
)
(func $~lib/set/Set<i16>#has (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<i16>#has (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -1669,7 +1689,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<i16>#rehash (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i16>#rehash (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1784,7 +1804,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<i16>#add (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i16>#add (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1885,7 +1905,7 @@
i32.store
end
)
(func $~lib/set/Set<i16>#delete (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i16>#delete (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -1961,7 +1981,7 @@
call $~lib/set/Set<i16>#rehash
end
)
(func $std/set/testNumeric<i16> (; 26 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<i16> (; 28 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/set/Set<i16>#constructor
@ -2206,11 +2226,11 @@
unreachable
end
)
(func $~lib/set/Set<u16>#constructor (; 27 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<u16>#constructor (; 29 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 6
i32.const 9
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -2234,7 +2254,7 @@
call $~lib/set/Set<i8>#clear
local.get $0
)
(func $~lib/set/Set<u16>#has (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<u16>#has (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -2257,7 +2277,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<u16>#rehash (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<u16>#rehash (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2372,7 +2392,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<u16>#add (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<u16>#add (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2471,7 +2491,7 @@
i32.store
end
)
(func $~lib/set/Set<u16>#delete (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<u16>#delete (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -2545,7 +2565,7 @@
call $~lib/set/Set<u16>#rehash
end
)
(func $std/set/testNumeric<u16> (; 32 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<u16> (; 34 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/set/Set<u16>#constructor
@ -2790,11 +2810,11 @@
unreachable
end
)
(func $~lib/set/Set<i32>#constructor (; 33 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<i32>#constructor (; 35 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 7
i32.const 11
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -2818,7 +2838,7 @@
call $~lib/set/Set<i8>#clear
local.get $0
)
(func $~lib/util/hash/hash32 (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 255
i32.and
@ -2849,7 +2869,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/set/Set<i32>#find (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/set/Set<i32>#find (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -2892,7 +2912,7 @@
end
i32.const 0
)
(func $~lib/set/Set<i32>#has (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<i32>#has (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -2901,7 +2921,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<i32>#rehash (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i32>#rehash (; 39 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3004,7 +3024,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<i32>#add (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i32>#add (; 40 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3087,7 +3107,7 @@
i32.store
end
)
(func $~lib/set/Set<i32>#delete (; 39 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i32>#delete (; 41 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -3147,7 +3167,7 @@
call $~lib/set/Set<i32>#rehash
end
)
(func $std/set/testNumeric<i32> (; 40 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<i32> (; 42 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/set/Set<i32>#constructor
@ -3392,11 +3412,11 @@
unreachable
end
)
(func $~lib/set/Set<u32>#constructor (; 41 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<u32>#constructor (; 43 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 8
i32.const 13
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -3420,7 +3440,7 @@
call $~lib/set/Set<i8>#clear
local.get $0
)
(func $std/set/testNumeric<u32> (; 42 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<u32> (; 44 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $~lib/set/Set<u32>#constructor
@ -3665,7 +3685,7 @@
unreachable
end
)
(func $~lib/set/Set<i64>#clear (; 43 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/set/Set<i64>#clear (; 45 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 16
call $~lib/arraybuffer/ArrayBuffer#constructor
@ -3700,11 +3720,11 @@
i32.const 0
i32.store offset=20
)
(func $~lib/set/Set<i64>#constructor (; 44 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<i64>#constructor (; 46 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 9
i32.const 15
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -3728,7 +3748,7 @@
call $~lib/set/Set<i64>#clear
local.get $0
)
(func $~lib/util/hash/hash64 (; 45 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/hash/hash64 (; 47 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
local.get $0
i32.wrap_i64
@ -3794,7 +3814,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/set/Set<i64>#find (; 46 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32)
(func $~lib/set/Set<i64>#find (; 48 ;) (type $FUNCSIG$iiji) (param $0 i32) (param $1 i64) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -3837,7 +3857,7 @@
end
i32.const 0
)
(func $~lib/set/Set<i64>#has (; 47 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
(func $~lib/set/Set<i64>#has (; 49 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
local.get $0
local.get $1
local.get $1
@ -3846,7 +3866,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<i64>#rehash (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<i64>#rehash (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3949,7 +3969,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<i64>#add (; 49 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64)
(func $~lib/set/Set<i64>#add (; 51 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4032,7 +4052,7 @@
i32.store
end
)
(func $~lib/set/Set<i64>#delete (; 50 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64)
(func $~lib/set/Set<i64>#delete (; 52 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64)
(local $2 i32)
(local $3 i32)
local.get $0
@ -4093,7 +4113,7 @@
call $~lib/set/Set<i64>#rehash
end
)
(func $std/set/testNumeric<i64> (; 51 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<i64> (; 53 ;) (type $FUNCSIG$v)
(local $0 i64)
(local $1 i32)
call $~lib/set/Set<i64>#constructor
@ -4338,11 +4358,11 @@
unreachable
end
)
(func $~lib/set/Set<u64>#constructor (; 52 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<u64>#constructor (; 54 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 10
i32.const 17
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -4366,7 +4386,7 @@
call $~lib/set/Set<i64>#clear
local.get $0
)
(func $std/set/testNumeric<u64> (; 53 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<u64> (; 55 ;) (type $FUNCSIG$v)
(local $0 i64)
(local $1 i32)
call $~lib/set/Set<u64>#constructor
@ -4611,11 +4631,11 @@
unreachable
end
)
(func $~lib/set/Set<f32>#constructor (; 54 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<f32>#constructor (; 56 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 11
i32.const 19
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -4639,7 +4659,7 @@
call $~lib/set/Set<i8>#clear
local.get $0
)
(func $~lib/set/Set<f32>#find (; 55 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32)
(func $~lib/set/Set<f32>#find (; 57 ;) (type $FUNCSIG$iifi) (param $0 i32) (param $1 f32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -4682,7 +4702,7 @@
end
i32.const 0
)
(func $~lib/set/Set<f32>#has (; 56 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
(func $~lib/set/Set<f32>#has (; 58 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
local.get $0
local.get $1
local.get $1
@ -4692,7 +4712,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<f32>#rehash (; 57 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<f32>#rehash (; 59 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4796,7 +4816,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<f32>#add (; 58 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32)
(func $~lib/set/Set<f32>#add (; 60 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4880,7 +4900,7 @@
i32.store
end
)
(func $~lib/set/Set<f32>#delete (; 59 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32)
(func $~lib/set/Set<f32>#delete (; 61 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -4942,7 +4962,7 @@
call $~lib/set/Set<f32>#rehash
end
)
(func $std/set/testNumeric<f32> (; 60 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<f32> (; 62 ;) (type $FUNCSIG$v)
(local $0 f32)
(local $1 i32)
call $~lib/set/Set<f32>#constructor
@ -5187,11 +5207,11 @@
unreachable
end
)
(func $~lib/set/Set<f64>#constructor (; 61 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<f64>#constructor (; 63 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/allocate
i32.const 12
i32.const 21
call $~lib/runtime/register
local.tee $0
i32.const 0
@ -5215,7 +5235,7 @@
call $~lib/set/Set<i64>#clear
local.get $0
)
(func $~lib/set/Set<f64>#find (; 62 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32)
(func $~lib/set/Set<f64>#find (; 64 ;) (type $FUNCSIG$iidi) (param $0 i32) (param $1 f64) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -5258,7 +5278,7 @@
end
i32.const 0
)
(func $~lib/set/Set<f64>#has (; 63 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/set/Set<f64>#has (; 65 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
local.get $0
local.get $1
local.get $1
@ -5268,7 +5288,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<f64>#rehash (; 64 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<f64>#rehash (; 66 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5372,7 +5392,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<f64>#add (; 65 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64)
(func $~lib/set/Set<f64>#add (; 67 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5456,7 +5476,7 @@
i32.store
end
)
(func $~lib/set/Set<f64>#delete (; 66 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64)
(func $~lib/set/Set<f64>#delete (; 68 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64)
(local $2 i32)
(local $3 i32)
local.get $0
@ -5518,7 +5538,7 @@
call $~lib/set/Set<f64>#rehash
end
)
(func $std/set/testNumeric<f64> (; 67 ;) (type $FUNCSIG$v)
(func $std/set/testNumeric<f64> (; 69 ;) (type $FUNCSIG$v)
(local $0 f64)
(local $1 i32)
call $~lib/set/Set<f64>#constructor
@ -5763,7 +5783,7 @@
unreachable
end
)
(func $start (; 68 ;) (type $FUNCSIG$v)
(func $start (; 70 ;) (type $FUNCSIG$v)
i32.const 152
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
@ -5779,7 +5799,7 @@
call $std/set/testNumeric<f32>
call $std/set/testNumeric<f64>
)
(func $null (; 69 ;) (type $FUNCSIG$v)
(func $null (; 71 ;) (type $FUNCSIG$v)
nop
)
)

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
(module
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
@ -14,7 +15,6 @@
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00 ")
@ -161,9 +161,9 @@
(data (i32.const 2128) ",\00a\00,\00b\00,\00c")
(data (i32.const 2144) "\01\00\00\00\0c")
(data (i32.const 2160) "a\00,\00b\00,\00c\00,")
(data (i32.const 2176) "\03\00\00\00\90\01")
(data (i32.const 2176) "\04\00\00\00\90\01")
(data (i32.const 2192) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009")
(data (i32.const 2592) "\04\00\00\00\10")
(data (i32.const 2592) "\05\00\00\00\10")
(data (i32.const 2608) "\90\08\00\00\90\08\00\00\90\01\00\00d")
(data (i32.const 2624) "\01\00\00\00\02")
(data (i32.const 2640) "8")
@ -233,17 +233,17 @@
(data (i32.const 3880) "-\00I\00n\00f\00i\00n\00i\00t\00y")
(data (i32.const 3904) "\01\00\00\00\10")
(data (i32.const 3920) "I\00n\00f\00i\00n\00i\00t\00y")
(data (i32.const 3936) "\03\00\00\00\b8\02")
(data (i32.const 3936) "\04\00\00\00\b8\02")
(data (i32.const 3952) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8<D\a7\a4\d9|\9b\fb\10D\a4\a7LLv\bb\1a\9c@\b6\ef\8e\ab\8b,\84W\a6\10\ef\1f\d0)1\91\e9\e5\a4\10\9b\9d\0c\9c\a1\fb\9b\10\e7)\f4;b\d9 (\ac\85\cf\a7z^KD\80-\dd\ac\03@\e4!\bf\8f\ffD^/\9cg\8eA\b8\8c\9c\9d\173\d4\a9\1b\e3\b4\92\db\19\9e\d9w\df\ban\bf\96\ebk\ee\f0\9b;\02\87\af")
(data (i32.const 4648) "\05\00\00\00\10")
(data (i32.const 4648) "\07\00\00\00\10")
(data (i32.const 4664) "p\0f\00\00p\0f\00\00\b8\02\00\00W")
(data (i32.const 4680) "\03\00\00\00\ae")
(data (i32.const 4680) "\04\00\00\00\ae")
(data (i32.const 4696) "<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\0d\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04")
(data (i32.const 4872) "\06\00\00\00\10")
(data (i32.const 4872) "\t\00\00\00\10")
(data (i32.const 4888) "X\12\00\00X\12\00\00\ae\00\00\00W")
(data (i32.const 4904) "\03\00\00\00(")
(data (i32.const 4904) "\04\00\00\00(")
(data (i32.const 4920) "\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;")
(data (i32.const 4960) "\04\00\00\00\10")
(data (i32.const 4960) "\05\00\00\00\10")
(data (i32.const 4976) "8\13\00\008\13\00\00(\00\00\00\n")
(data (i32.const 4992) "\01\00\00\00*")
(data (i32.const 5008) "2\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006")
@ -325,8 +325,8 @@
(data (i32.const 6680) "1\00.\001\00e\00-\006\004")
(data (i32.const 6696) "\01\00\00\00\16")
(data (i32.const 6712) "0\00.\000\000\000\000\003\005\006\008\009")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 11 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/string/String~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate)
(global $std/string/str (mut i32) (i32.const 24))
(global $std/string/nullStr (mut i32) (i32.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -335,6 +335,7 @@
(global $std/string/a (mut i32) (i32.const 0))
(global $std/string/b (mut i32) (i32.const 0))
(global $std/string/sa (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/util/number/_frc_plus (mut i64) (i64.const 0))
(global $~lib/util/number/_frc_minus (mut i64) (i64.const 0))
(global $~lib/util/number/_exp (mut i32) (i32.const 0))
@ -347,7 +348,10 @@
(export "getString" (func $std/string/getString))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/allocator/arena/__mem_allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -409,7 +413,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -436,7 +440,7 @@
i32.const 16
i32.add
)
(func $~lib/runtime/register (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 6736
@ -469,7 +473,7 @@
i32.store
local.get $0
)
(func $~lib/string/String.fromCharCode (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String.fromCharCode (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 2
call $~lib/runtime/allocate
@ -480,7 +484,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/util/string/compareImpl (; 5 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/util/string/compareImpl (; 6 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
local.get $1
i32.const 1
@ -519,7 +523,7 @@
end
local.get $4
)
(func $~lib/string/String.__eq (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__eq (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
local.get $1
@ -566,7 +570,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $~lib/string/String.fromCodePoint (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String.fromCodePoint (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -621,7 +625,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/string/String#startsWith (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String#startsWith (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -669,7 +673,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $~lib/string/String#endsWith (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String#endsWith (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -717,7 +721,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $~lib/string/String#indexOf (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#indexOf (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -801,7 +805,7 @@
end
i32.const -1
)
(func $~lib/util/memory/memcpy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1648,7 +1652,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 13 ;) (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
@ -1842,7 +1846,7 @@
end
end
)
(func $~lib/memory/memory.repeat (; 13 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/memory/memory.repeat (; 14 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(local $4 i32)
local.get $2
local.get $3
@ -1867,7 +1871,7 @@
end
end
)
(func $~lib/string/String#padStart (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#padStart (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1963,7 +1967,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/string/String#padEnd (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#padEnd (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2060,7 +2064,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/string/String#lastIndexOf (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#lastIndexOf (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $0
@ -2143,7 +2147,7 @@
end
i32.const -1
)
(func $~lib/util/string/parse<f64> (; 17 ;) (type $FUNCSIG$di) (param $0 i32) (result f64)
(func $~lib/util/string/parse<f64> (; 18 ;) (type $FUNCSIG$di) (param $0 i32) (result f64)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -2379,7 +2383,7 @@
local.get $5
f64.mul
)
(func $~lib/string/parseFloat (; 18 ;) (type $FUNCSIG$di) (param $0 i32) (result f64)
(func $~lib/string/parseFloat (; 19 ;) (type $FUNCSIG$di) (param $0 i32) (result f64)
(local $1 i32)
(local $2 i32)
(local $3 f64)
@ -2549,7 +2553,7 @@
local.get $3
f64.mul
)
(func $~lib/string/String#concat (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#concat (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2598,7 +2602,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/string/String.__concat (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__concat (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.const 312
local.get $0
@ -2606,13 +2610,13 @@
local.get $1
call $~lib/string/String#concat
)
(func $~lib/string/String.__ne (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__ne (; 22 ;) (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 $~lib/string/String.__gt (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__gt (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
block (result i32)
@ -2677,7 +2681,7 @@
i32.const 0
i32.gt_s
)
(func $~lib/string/String.__lt (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__lt (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
block (result i32)
@ -2742,19 +2746,19 @@
i32.const 0
i32.lt_s
)
(func $~lib/string/String.__gte (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__gte (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/string/String.__lt
i32.eqz
)
(func $~lib/string/String.__lte (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String.__lte (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 416
local.get $0
call $~lib/string/String.__gt
i32.eqz
)
(func $~lib/string/String#repeat (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#repeat (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -2834,7 +2838,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/string/String#slice (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#slice (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $0
i32.const 16
@ -2912,7 +2916,44 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/runtime/makeArray (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>~iterate (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=4
local.tee $2
local.get $0
i32.load offset=8
i32.add
local.set $0
loop $continue|0
local.get $2
local.get $0
i32.lt_u
if
local.get $2
i32.load
local.set $3
i32.const 1
global.set $~lib/argc
local.get $3
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $2
i32.const 4
i32.add
local.set $2
br $continue|0
end
end
)
(func $~lib/runtime/makeArray (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -2927,7 +2968,7 @@
i32.shl
local.tee $2
call $~lib/runtime/allocate
i32.const 3
i32.const 4
call $~lib/runtime/register
local.tee $3
local.set $4
@ -2948,7 +2989,7 @@
i32.store offset=12
local.get $1
)
(func $~lib/memory/memory.fill (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.fill (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -3159,7 +3200,7 @@
end
end
)
(func $~lib/runtime/reallocate (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/reallocate (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3261,7 +3302,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/array/ensureCapacity (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/ensureCapacity (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $1
@ -3310,7 +3351,7 @@
i32.store offset=8
end
)
(func $~lib/array/Array<~lib/string/String>#push (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<~lib/string/String>#push (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -3340,7 +3381,7 @@
local.get $3
i32.store offset=12
)
(func $~lib/string/String#split (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#split (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3579,7 +3620,7 @@
i32.const 0
call $~lib/runtime/makeArray
)
(func $~lib/array/Array<~lib/string/String>#__get (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#__get (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=12
@ -3614,7 +3655,7 @@
i32.add
i32.load
)
(func $~lib/util/number/decimalCount32 (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/decimalCount32 (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 100000
i32.lt_u
@ -3668,7 +3709,15 @@
end
end
)
(func $~lib/util/number/utoa32_lut (; 36 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<u32>~iterate (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/util/number/utoa32_lut (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 2612
@ -3778,7 +3827,7 @@
i32.store16
end
)
(func $~lib/util/number/itoa32 (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/itoa32 (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -3820,7 +3869,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/util/number/utoa32 (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/utoa32 (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -3843,7 +3892,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/util/number/decimalCount64 (; 39 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/decimalCount64 (; 42 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
local.get $0
i64.const 1000000000000000
i64.lt_u
@ -3897,7 +3946,7 @@
end
end
)
(func $~lib/util/number/utoa64_lut (; 40 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/util/number/utoa64_lut (; 43 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3994,7 +4043,7 @@
local.get $2
call $~lib/util/number/utoa32_lut
)
(func $~lib/util/number/utoa64 (; 41 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/utoa64 (; 44 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -4036,7 +4085,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/util/number/itoa64 (; 42 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/itoa64 (; 45 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -4101,7 +4150,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/util/number/genDigits (; 43 ;) (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 (; 46 ;) (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)
@ -4516,7 +4565,7 @@
local.get $6
end
)
(func $~lib/util/number/prettify (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/prettify (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $2
@ -4775,7 +4824,7 @@
end
end
)
(func $~lib/util/number/dtoa_core (; 45 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/util/number/dtoa_core (; 48 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(local $2 i64)
(local $3 i32)
(local $4 i64)
@ -5063,7 +5112,7 @@
local.get $10
i32.add
)
(func $~lib/string/String#substring (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#substring (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5159,7 +5208,7 @@
i32.const 1
call $~lib/runtime/register
)
(func $~lib/runtime/discard (; 47 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/discard (; 50 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 6736
i32.le_u
@ -5186,7 +5235,7 @@
unreachable
end
)
(func $~lib/util/number/dtoa (; 48 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/util/number/dtoa (; 51 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -5231,7 +5280,7 @@
call $~lib/runtime/discard
local.get $1
)
(func $start:std/string (; 49 ;) (type $FUNCSIG$v)
(func $start:std/string (; 52 ;) (type $FUNCSIG$v)
(local $0 i32)
global.get $std/string/str
i32.const 24
@ -8558,13 +8607,13 @@
unreachable
end
)
(func $std/string/getString (; 50 ;) (type $FUNCSIG$i) (result i32)
(func $std/string/getString (; 53 ;) (type $FUNCSIG$i) (result i32)
global.get $std/string/str
)
(func $start (; 51 ;) (type $FUNCSIG$v)
(func $start (; 54 ;) (type $FUNCSIG$v)
call $start:std/string
)
(func $null (; 52 ;) (type $FUNCSIG$v)
(func $null (; 55 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,4 +1,5 @@
(module
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
@ -9,7 +10,6 @@
(type $FUNCSIG$dii (func (param i32 i32) (result f64)))
(type $FUNCSIG$di (func (param i32) (result f64)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$ij (func (param i64) (result i32)))
(type $FUNCSIG$viji (func (param i32 i64 i32)))
(type $FUNCSIG$id (func (param f64) (result i32)))
@ -93,8 +93,8 @@
(data (i32.const 2080) "\01\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00a\00,\00b\00,\00,\00c\00")
(data (i32.const 2112) "\01\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00,\00a\00,\00b\00,\00c\00")
(data (i32.const 2144) "\01\00\00\00\0c\00\00\00\00\00\00\00\00\00\00\00a\00,\00b\00,\00c\00,\00")
(data (i32.const 2176) "\03\00\00\00\90\01\00\00\00\00\00\00\00\00\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00")
(data (i32.const 2592) "\04\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\90\08\00\00\90\08\00\00\90\01\00\00d\00\00\00")
(data (i32.const 2176) "\04\00\00\00\90\01\00\00\00\00\00\00\00\00\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00")
(data (i32.const 2592) "\05\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\90\08\00\00\90\08\00\00\90\01\00\00d\00\00\00")
(data (i32.const 2624) "\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\008\00")
(data (i32.const 2648) "\01\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00-\001\000\000\000\00")
(data (i32.const 2680) "\01\00\00\00\08\00\00\00\00\00\00\00\00\00\00\001\002\003\004\00")
@ -129,12 +129,12 @@
(data (i32.const 3840) "\01\00\00\00\06\00\00\00\00\00\00\00\00\00\00\00N\00a\00N\00")
(data (i32.const 3864) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00")
(data (i32.const 3904) "\01\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00")
(data (i32.const 3936) "\03\00\00\00\b8\02\00\00\00\00\00\00\00\00\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8<D\a7\a4\d9|\9b\fb\10D\a4\a7LLv\bb\1a\9c@\b6\ef\8e\ab\8b,\84W\a6\10\ef\1f\d0)1\91\e9\e5\a4\10\9b\9d\0c\9c\a1\fb\9b\10\e7)\f4;b\d9 (\ac\85\cf\a7z^KD\80-\dd\ac\03@\e4!\bf\8f\ffD^/\9cg\8eA\b8\8c\9c\9d\173\d4\a9\1b\e3\b4\92\db\19\9e\d9w\df\ban\bf\96\ebk\ee\f0\9b;\02\87\af")
(data (i32.const 4648) "\05\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00p\0f\00\00p\0f\00\00\b8\02\00\00W\00\00\00")
(data (i32.const 4680) "\03\00\00\00\ae\00\00\00\00\00\00\00\00\00\00\00<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\0d\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04")
(data (i32.const 4872) "\06\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00X\12\00\00X\12\00\00\ae\00\00\00W\00\00\00")
(data (i32.const 4904) "\03\00\00\00(\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;")
(data (i32.const 4960) "\04\00\00\00\10\00\00\00\00\00\00\00\00\00\00\008\13\00\008\13\00\00(\00\00\00\n\00\00\00")
(data (i32.const 3936) "\04\00\00\00\b8\02\00\00\00\00\00\00\00\00\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8<D\a7\a4\d9|\9b\fb\10D\a4\a7LLv\bb\1a\9c@\b6\ef\8e\ab\8b,\84W\a6\10\ef\1f\d0)1\91\e9\e5\a4\10\9b\9d\0c\9c\a1\fb\9b\10\e7)\f4;b\d9 (\ac\85\cf\a7z^KD\80-\dd\ac\03@\e4!\bf\8f\ffD^/\9cg\8eA\b8\8c\9c\9d\173\d4\a9\1b\e3\b4\92\db\19\9e\d9w\df\ban\bf\96\ebk\ee\f0\9b;\02\87\af")
(data (i32.const 4648) "\07\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00p\0f\00\00p\0f\00\00\b8\02\00\00W\00\00\00")
(data (i32.const 4680) "\04\00\00\00\ae\00\00\00\00\00\00\00\00\00\00\00<\fbW\fbr\fb\8c\fb\a7\fb\c1\fb\dc\fb\f6\fb\11\fc,\fcF\fca\fc{\fc\96\fc\b1\fc\cb\fc\e6\fc\00\fd\1b\fd5\fdP\fdk\fd\85\fd\a0\fd\ba\fd\d5\fd\ef\fd\n\fe%\fe?\feZ\fet\fe\8f\fe\a9\fe\c4\fe\df\fe\f9\fe\14\ff.\ffI\ffc\ff~\ff\99\ff\b3\ff\ce\ff\e8\ff\03\00\1e\008\00S\00m\00\88\00\a2\00\bd\00\d8\00\f2\00\0d\01\'\01B\01\\\01w\01\92\01\ac\01\c7\01\e1\01\fc\01\16\021\02L\02f\02\81\02\9b\02\b6\02\d0\02\eb\02\06\03 \03;\03U\03p\03\8b\03\a5\03\c0\03\da\03\f5\03\0f\04*\04")
(data (i32.const 4872) "\t\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00X\12\00\00X\12\00\00\ae\00\00\00W\00\00\00")
(data (i32.const 4904) "\04\00\00\00(\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;")
(data (i32.const 4960) "\05\00\00\00\10\00\00\00\00\00\00\00\00\00\00\008\13\00\008\13\00\00(\00\00\00\n\00\00\00")
(data (i32.const 4992) "\01\00\00\00*\00\00\00\00\00\00\00\00\00\00\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006\00")
(data (i32.const 5056) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00-\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006\00")
(data (i32.const 5120) "\01\00\00\00.\00\00\00\00\00\00\00\00\00\00\001\00.\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\007\00e\00+\003\000\008\00")
@ -175,8 +175,8 @@
(data (i32.const 6632) "\01\00\00\00\10\00\00\00\00\00\00\00\00\00\00\001\00.\001\00e\00+\001\002\008\00")
(data (i32.const 6664) "\01\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\001\00.\001\00e\00-\006\004\00")
(data (i32.const 6696) "\01\00\00\00\16\00\00\00\00\00\00\00\00\00\00\000\00.\000\000\000\000\003\005\006\008\009\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(table $0 11 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u64>~iterate $~lib/array/Array<u64>~iterate $~lib/array/Array<i16>~iterate $~lib/array/Array<i16>~iterate)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $std/string/str (mut i32) (i32.const 24))
@ -190,6 +190,7 @@
(global $std/string/a (mut i32) (i32.const 0))
(global $std/string/b (mut i32) (i32.const 0))
(global $std/string/sa (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1))
@ -211,7 +212,10 @@
(export "getString" (func $std/string/getString))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/string/String#get:length (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $~lib/string/String#get:length (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
@ -219,7 +223,7 @@
i32.const 1
i32.shr_u
)
(func $~lib/string/String#charCodeAt (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#charCodeAt (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
call $~lib/string/String#get:length
@ -235,7 +239,7 @@
i32.add
i32.load16_u
)
(func $~lib/runtime/ADJUSTOBLOCK (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -247,7 +251,7 @@
i32.sub
i32.shl
)
(func $~lib/allocator/arena/__mem_allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/arena/__mem_allocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -326,12 +330,12 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__mem_allocate
return
)
(func $~lib/runtime/allocate (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
@ -353,10 +357,10 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/collector/dummy/__ref_register (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/runtime/register (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -394,7 +398,7 @@
call $~lib/collector/dummy/__ref_register
local.get $0
)
(func $~lib/string/String.fromCharCode (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String.fromCharCode (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
block $~lib/runtime/ALLOCATE|inlined.0 (result i32)
@ -415,7 +419,7 @@
call $~lib/runtime/register
end
)
(func $~lib/util/string/compareImpl (; 10 ;) (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 (; 11 ;) (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)
@ -468,7 +472,7 @@
end
local.get $5
)
(func $~lib/string/String.__eq (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__eq (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -512,7 +516,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $~lib/string/String.fromCodePoint (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String.fromCodePoint (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -583,7 +587,7 @@
call $~lib/runtime/register
end
)
(func $~lib/string/String#startsWith (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#startsWith (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -650,7 +654,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $~lib/string/String#endsWith (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#endsWith (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -714,7 +718,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $~lib/string/String#indexOf (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#indexOf (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -808,7 +812,7 @@
end
i32.const -1
)
(func $~lib/util/memory/memcpy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2009,7 +2013,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2240,7 +2244,7 @@
end
end
)
(func $~lib/memory/memory.repeat (; 18 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/memory/memory.repeat (; 19 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(local $4 i32)
(local $5 i32)
i32.const 0
@ -2272,7 +2276,7 @@
end
end
)
(func $~lib/string/String#padStart (; 19 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#padStart (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2381,7 +2385,7 @@
call $~lib/runtime/register
end
)
(func $~lib/string/String#padEnd (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#padEnd (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2494,7 +2498,7 @@
call $~lib/runtime/register
end
)
(func $~lib/string/String#lastIndexOf (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#lastIndexOf (; 22 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2586,7 +2590,7 @@
end
i32.const -1
)
(func $~lib/util/string/parse<f64> (; 22 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64)
(func $~lib/util/string/parse<f64> (; 23 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2887,12 +2891,12 @@
local.get $7
f64.mul
)
(func $~lib/string/parseInt (; 23 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64)
(func $~lib/string/parseInt (; 24 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64)
local.get $0
local.get $1
call $~lib/util/string/parse<f64>
)
(func $~lib/string/parseFloat (; 24 ;) (type $FUNCSIG$di) (param $0 i32) (result f64)
(func $~lib/string/parseFloat (; 25 ;) (type $FUNCSIG$di) (param $0 i32) (result f64)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -3089,7 +3093,7 @@
local.get $5
f64.mul
)
(func $~lib/string/String#concat (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#concat (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3148,7 +3152,7 @@
call $~lib/runtime/register
end
)
(func $~lib/string/String.__concat (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__concat (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.const 312
local.get $0
@ -3158,13 +3162,13 @@
local.get $1
call $~lib/string/String#concat
)
(func $~lib/string/String.__ne (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__ne (; 28 ;) (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 $~lib/string/String.__gt (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__gt (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3226,7 +3230,7 @@
i32.const 0
i32.gt_s
)
(func $~lib/string/String.__lt (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__lt (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3288,19 +3292,19 @@
i32.const 0
i32.lt_s
)
(func $~lib/string/String.__gte (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__gte (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/string/String.__lt
i32.eqz
)
(func $~lib/string/String.__lte (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__lte (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/string/String.__gt
i32.eqz
)
(func $~lib/string/String#repeat (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#repeat (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3391,7 +3395,7 @@
call $~lib/runtime/register
end
)
(func $~lib/string/String#slice (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#slice (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3489,13 +3493,62 @@
call $~lib/runtime/register
end
)
(func $~lib/collector/dummy/__ref_link (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<~lib/string/String>~iterate (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $0
i32.load offset=8
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
i32.load
local.set $4
i32.const 1
global.set $~lib/argc
local.get $4
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $4
local.get $1
call $~lib/string/String~iterate
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $~lib/collector/dummy/__ref_link (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/collector/dummy/__ref_unlink (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_unlink (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/runtime/makeArray (; 36 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/makeArray (; 39 ;) (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)
@ -3515,7 +3568,7 @@
local.get $2
i32.shl
call $~lib/runtime/allocate
i32.const 3
i32.const 4
call $~lib/runtime/register
local.set $6
local.get $4
@ -3559,7 +3612,7 @@
end
local.get $4
)
(func $~lib/memory/memory.fill (; 37 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.fill (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3816,14 +3869,14 @@
end
end
)
(func $~lib/allocator/arena/__mem_free (; 38 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/allocator/arena/__mem_free (; 41 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/memory/memory.free (; 39 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.free (; 42 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
call $~lib/allocator/arena/__mem_free
)
(func $~lib/runtime/reallocate (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/reallocate (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -3927,7 +3980,7 @@
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 (; 44 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4007,7 +4060,7 @@
i32.store offset=8
end
)
(func $~lib/array/Array<~lib/string/String>#push (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#push (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4057,7 +4110,7 @@
i32.store offset=12
local.get $3
)
(func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 43 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 46 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $0
@ -4090,7 +4143,7 @@
call $~lib/collector/dummy/__ref_link
end
)
(func $~lib/string/String#split (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#split (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4456,11 +4509,11 @@
end
local.get $10
)
(func $~lib/array/Array<~lib/string/String>#get:length (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#get:length (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -4469,7 +4522,7 @@
i32.add
i32.load
)
(func $~lib/array/Array<~lib/string/String>#__get (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#__get (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=12
@ -4500,7 +4553,7 @@
local.get $1
call $~lib/array/Array<~lib/string/String>#__unchecked_get
)
(func $~lib/util/number/decimalCount32 (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/decimalCount32 (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 100000
@ -4569,7 +4622,15 @@
unreachable
unreachable
)
(func $~lib/util/number/utoa32_lut (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<u32>~iterate (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/util/number/utoa32_lut (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4712,7 +4773,7 @@
i32.store16
end
)
(func $~lib/util/number/itoa32 (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/itoa32 (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -4776,7 +4837,7 @@
call $~lib/runtime/register
end
)
(func $~lib/util/number/utoa32 (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/utoa32 (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -4820,7 +4881,7 @@
call $~lib/runtime/register
end
)
(func $~lib/util/number/decimalCount64 (; 52 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/decimalCount64 (; 56 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
local.get $0
i64.const 1000000000000000
@ -4889,7 +4950,7 @@
unreachable
unreachable
)
(func $~lib/util/number/utoa64_lut (; 53 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/util/number/utoa64_lut (; 57 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(local $3 i32)
(local $4 i64)
(local $5 i32)
@ -5017,7 +5078,7 @@
local.get $2
call $~lib/util/number/utoa32_lut
)
(func $~lib/util/number/utoa64 (; 54 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/utoa64 (; 58 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -5097,7 +5158,7 @@
call $~lib/runtime/register
end
)
(func $~lib/util/number/itoa64 (; 55 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/itoa64 (; 59 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -5199,19 +5260,27 @@
call $~lib/runtime/register
end
)
(func $~lib/builtins/isFinite<f64> (; 56 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/builtins/isFinite<f64> (; 60 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
local.get $0
f64.sub
f64.const 0
f64.eq
)
(func $~lib/builtins/isNaN<f64> (; 57 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/builtins/isNaN<f64> (; 61 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
local.get $0
f64.ne
)
(func $~lib/array/Array<u64>#__unchecked_get (; 58 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
(func $~lib/array/Array<u64>~iterate (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/array/Array<u64>#__unchecked_get (; 63 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
local.get $0
i32.load offset=4
local.get $1
@ -5220,7 +5289,15 @@
i32.add
i64.load
)
(func $~lib/array/Array<i16>#__unchecked_get (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i16>~iterate (; 64 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
)
(func $~lib/array/Array<i16>#__unchecked_get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -5229,7 +5306,7 @@
i32.add
i32.load16_s
)
(func $~lib/util/number/genDigits (; 60 ;) (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 (; 66 ;) (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)
@ -5800,7 +5877,7 @@
end
local.get $15
)
(func $~lib/util/number/prettify (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/prettify (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6133,7 +6210,7 @@
unreachable
unreachable
)
(func $~lib/util/number/dtoa_core (; 62 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/util/number/dtoa_core (; 68 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(local $2 i32)
(local $3 f64)
(local $4 i32)
@ -6571,7 +6648,7 @@
local.get $2
i32.add
)
(func $~lib/string/String#substring (; 63 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#substring (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6697,7 +6774,7 @@
call $~lib/runtime/register
end
)
(func $~lib/runtime/discard (; 64 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/discard (; 70 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -6731,7 +6808,7 @@
local.get $1
call $~lib/memory/memory.free
)
(func $~lib/util/number/dtoa (; 65 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/util/number/dtoa (; 71 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -6787,7 +6864,7 @@
end
local.get $4
)
(func $start:std/string (; 66 ;) (type $FUNCSIG$v)
(func $start:std/string (; 72 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -10179,12 +10256,12 @@
unreachable
end
)
(func $std/string/getString (; 67 ;) (type $FUNCSIG$i) (result i32)
(func $std/string/getString (; 73 ;) (type $FUNCSIG$i) (result i32)
global.get $std/string/str
)
(func $start (; 68 ;) (type $FUNCSIG$v)
(func $start (; 74 ;) (type $FUNCSIG$v)
call $start:std/string
)
(func $null (; 69 ;) (type $FUNCSIG$v)
(func $null (; 75 ;) (type $FUNCSIG$v)
)
)

View File

@ -35,12 +35,12 @@
(data (i32.const 640) "\01\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/symbol/nextId (mut i32) (i32.const 12))
(global $std/symbol/sym1 (mut i32) (i32.const 0))
(global $std/symbol/sym2 (mut i32) (i32.const 0))
(global $~lib/symbol/stringToId (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long