Use long.js in JS and native i64 in WASM; Compile literals more thoroughly

This commit is contained in:
dcodeIO 2018-02-14 09:18:43 +01:00
parent 874f87f478
commit b1c6ccab2a
82 changed files with 1753 additions and 2199 deletions

View File

@ -5,7 +5,7 @@
**AssemblyScript** compiles strictly typed [TypeScript](http://www.typescriptlang.org) to [WebAssembly](http://webassembly.org) using [Binaryen](https://github.com/WebAssembly/binaryen). It generates minimal WebAssembly modules while being just an `npm install` away.
See [the AssemblyScript wiki](https://github.com/AssemblyScript/assemblyscript/wiki) for further instructions and documentation. You can also try it out in [Web Assembly Studio](https://webassembly.studio)!
See [the AssemblyScript wiki](https://github.com/AssemblyScript/assemblyscript/wiki) for further instructions and documentation. You can also try it out in [WebAssembly Studio](https://webassembly.studio)!
Examples
--------

View File

@ -353,7 +353,7 @@ exports.main = function main(argv, options, callback) {
else if (args.shrinkLevel === "z")
shrinkLevel = 2;
module.setOptimizeLevel(optimizeLevel);
module.setOptimizeLevel(optimizeLevel > 0 ? optimizeLevel : 0);
module.setShrinkLevel(shrinkLevel);
module.setDebugInfo(debugInfo);
@ -371,7 +371,9 @@ exports.main = function main(argv, options, callback) {
// Optimize the module if requested
if (optimizeLevel >= 0) {
stats.optimizeCount++;
stats.optimizeTime += measure(() => module.optimize());
stats.optimizeTime += measure(() => {
module.optimize();
});
}
// Run additional passes if requested
@ -405,7 +407,9 @@ exports.main = function main(argv, options, callback) {
let binary;
stats.emitCount++;
stats.emitTime += measure(() => binary = module.toBinary(sourceMapURL));
stats.emitTime += measure(() => {
binary = module.toBinary(sourceMapURL)
});
if (args.binaryFile.length) {
writeFile(path.join(baseDir, args.binaryFile), binary.output);
@ -458,11 +462,15 @@ exports.main = function main(argv, options, callback) {
let text;
if (args.textFile && args.textFile.length) {
stats.emitCount++;
stats.emitTime += measure(() => text = module.toText());
stats.emitTime += measure(() => {
text = module.toText();
});
writeFile(path.join(baseDir, args.textFile), text);
} else if (!hasStdout) {
stats.emitCount++;
stats.emitTime += measure(() => text = module.toText());
stats.emitTime += measure(() => {
text = module.toText()
});
writeStdout(text);
hasStdout = true;
}
@ -473,11 +481,15 @@ exports.main = function main(argv, options, callback) {
let asm;
if (args.asmjsFile.length) {
stats.emitCount++;
stats.emitTime += measure(() => asm = module.toAsmjs());
stats.emitTime += measure(() => {
asm = module.toAsmjs();
});
writeFile(path.join(baseDir, args.asmjsFile), asm);
} else if (!hasStdout) {
stats.emitCount++;
stats.emitTime += measure(() => asm = module.toAsmjs());
stats.emitTime += measure(() => {
asm = module.toAsmjs();
});
writeStdout(asm);
hasStdout = true;
}

4
dist/asc.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

47
package-lock.json generated
View File

@ -4,6 +4,11 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/long": {
"version": "3.0.32",
"resolved": "https://registry.npmjs.org/@types/long/-/long-3.0.32.tgz",
"integrity": "sha512-ZXyOOm83p7X8p3s0IYM3VeueNmHpkk/yMlP8CLeOnEcu6hIwPH7YjZBvhQkR0ZFS2DqZAxKtJ/M5fcuv3OU5BA=="
},
"@types/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz",
@ -659,9 +664,9 @@
"dev": true
},
"binaryen": {
"version": "42.0.0-nightly.20180208",
"resolved": "https://registry.npmjs.org/binaryen/-/binaryen-42.0.0-nightly.20180208.tgz",
"integrity": "sha512-ydoTejdUpEAYmcH+wRBdYnlUQcFTVzh+9qDlcsNOwlR/ecUQb6G3CuIgXP4ns1VuPZVgShoK6aUhuxkyI/d0/Q=="
"version": "42.0.0-nightly.20180213",
"resolved": "https://registry.npmjs.org/binaryen/-/binaryen-42.0.0-nightly.20180213.tgz",
"integrity": "sha512-K+YMN7qLDUh3ULt5L33Nw/GOOhha4FBvaPMdPmjk+UjV3GsNqpjdi3FX0pG551cZnIZ0+eABrS9voR41QBcK+Q=="
},
"bn.js": {
"version": "4.11.8",
@ -842,13 +847,28 @@
}
},
"chalk": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
"integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz",
"integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==",
"requires": {
"ansi-styles": "3.2.0",
"escape-string-regexp": "1.0.5",
"supports-color": "4.5.0"
"supports-color": "5.2.0"
},
"dependencies": {
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
"supports-color": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz",
"integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==",
"requires": {
"has-flag": "3.0.0"
}
}
}
},
"chokidar": {
@ -2502,7 +2522,8 @@
"has-flag": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"dev": true
},
"has-value": {
"version": "1.0.0",
@ -3017,8 +3038,7 @@
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
"dev": true
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"longest": {
"version": "1.0.1",
@ -4360,6 +4380,7 @@
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
"integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
"dev": true,
"requires": {
"has-flag": "2.0.0"
}
@ -4512,7 +4533,7 @@
"integrity": "sha512-JTia3kObhTk36wPFgy0RnkZReiusYx7Le9IhcUWRrCTcFcr6Dy1zGsFd3x8DG4gevlbN65knI8W50FfoykXcng==",
"dev": true,
"requires": {
"chalk": "2.3.0",
"chalk": "2.3.1",
"enhanced-resolve": "3.4.1",
"loader-utils": "1.1.0",
"micromatch": "3.1.5",
@ -4724,7 +4745,7 @@
"integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==",
"requires": {
"arrify": "1.0.1",
"chalk": "2.3.0",
"chalk": "2.3.1",
"diff": "3.4.0",
"make-error": "1.3.2",
"minimist": "1.2.0",
@ -4760,7 +4781,7 @@
"requires": {
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.3.0",
"chalk": "2.3.1",
"commander": "2.13.0",
"diff": "3.4.0",
"glob": "7.1.2",

View File

@ -11,17 +11,18 @@
"url": "https://github.com/AssemblyScript/assemblyscript/issues"
},
"dependencies": {
"binaryen": "42.0.0-nightly.20180208",
"@types/long": "^3.0.32",
"binaryen": "42.0.0-nightly.20180213",
"glob": "^7.1.2",
"long": "^4.0.0",
"minimist": "^1.2.0",
"ts-node": "^4.1.0"
},
"devDependencies": {
"babel-minify-webpack-plugin": "^0.3.0",
"browser-process-hrtime": "^0.1.2",
"chalk": "^2.3.0",
"chalk": "^2.3.1",
"diff": "^3.4.0",
"long": "^4.0.0",
"source-map-support": "^0.5.3",
"ts-loader": "^3.5.0",
"tslint": "^5.9.1",

View File

@ -10,10 +10,6 @@ import {
Range
} from "./tokenizer";
import {
I64
} from "./util/i64";
import {
normalize as normalizePath,
resolve as resolvePath

View File

@ -43,6 +43,8 @@ import {
Flow,
FlowFlags,
ElementFlags,
ConstantValueKind,
PATH_DELIMITER,
LIBRARY_PREFIX
} from "./program";
@ -120,11 +122,6 @@ import {
typesToNativeTypes
} from "./types";
import {
I64,
U64
} from "./util/i64";
import {
sb
} from "./util/sb";
@ -198,7 +195,7 @@ export class Compiler extends DiagnosticEmitter {
currentType: Type = Type.void;
/** Counting memory offset. */
memoryOffset: U64 = new U64(8, 0); // leave space for (any size of) NULL
memoryOffset: I64;
/** Memory segments being compiled. */
memorySegments: MemorySegment[] = new Array();
/** Map of already compiled static string segments. */
@ -217,7 +214,7 @@ export class Compiler extends DiagnosticEmitter {
super(program.diagnostics);
this.program = program;
this.options = options ? options : new Options();
this.memoryOffset = new U64(this.options.usizeType.byteSize); // leave space for `null`
this.memoryOffset = i64_new(this.options.usizeType.byteSize, 0); // leave space for `null`
this.module = Module.create();
}
@ -255,20 +252,16 @@ export class Compiler extends DiagnosticEmitter {
// set up static memory segments and the heap base pointer
if (!this.options.noMemory) {
var initial = this.memoryOffset.clone();
var alignMask = this.options.usizeType.byteSize - 1;
initial.add32(alignMask); // align to 4/8 bytes
initial.and32(~alignMask, ~0);
var memoryOffset = this.memoryOffset;
this.memoryOffset = memoryOffset = i64_align(memoryOffset, this.options.usizeType.byteSize);
if (this.options.target == Target.WASM64)
this.module.addGlobal("HEAP_BASE", NativeType.I64, false, this.module.createI64(initial.lo, initial.hi));
this.module.addGlobal("HEAP_BASE", NativeType.I64, false, this.module.createI64(i64_low(memoryOffset), i64_high(memoryOffset)));
else
this.module.addGlobal("HEAP_BASE", NativeType.I32, false, this.module.createI32(initial.lo));
this.module.addGlobal("HEAP_BASE", NativeType.I32, false, this.module.createI32(i64_low(memoryOffset)));
// determine initial page size
initial.add32(0xffff); // align to page size
initial.and32(~0xffff, ~0);
initial.shru32(16); // ^= number of pages
this.module.setMemory(initial.toI32(), Module.MAX_MEMORY_WASM32 /* TODO: not WASM64 compatible yet */, this.memorySegments, this.options.target, "memory");
var pages = i64_shr_u(i64_align(memoryOffset, 0x10000), i64_new(16, 0));
this.module.setMemory(i64_low(pages), Module.MAX_MEMORY_WASM32 /* TODO: not WASM64 compatible yet */, this.memorySegments, this.options.target, "memory");
}
return this.module;
}
@ -458,18 +451,22 @@ export class Compiler extends DiagnosticEmitter {
switch (exprType) {
case NativeType.I32:
global.constantIntegerValue = new I64(_BinaryenConstGetValueI32(initExpr), 0);
global.constantValueKind = ConstantValueKind.INTEGER;
global.constantIntegerValue = i64_new(_BinaryenConstGetValueI32(initExpr), 0);
break;
case NativeType.I64:
global.constantIntegerValue = new I64(_BinaryenConstGetValueI64Low(initExpr), _BinaryenConstGetValueI64High(initExpr));
global.constantValueKind = ConstantValueKind.INTEGER;
global.constantIntegerValue = i64_new(_BinaryenConstGetValueI64Low(initExpr), _BinaryenConstGetValueI64High(initExpr));
break;
case NativeType.F32:
global.constantValueKind = ConstantValueKind.FLOAT;
global.constantFloatValue = _BinaryenConstGetValueF32(initExpr);
break;
case NativeType.F64:
global.constantValueKind = ConstantValueKind.FLOAT;
global.constantFloatValue = _BinaryenConstGetValueF64(initExpr);
break;
@ -819,14 +816,11 @@ export class Compiler extends DiagnosticEmitter {
// memory
/** Adds a static memory segment with the specified data. */
addMemorySegment(buffer: Uint8Array): MemorySegment {
if (this.memoryOffset.lo & 7) { // align to 8 bytes so any native data type is aligned here
this.memoryOffset.or32(7);
this.memoryOffset.add32(1);
}
var segment = MemorySegment.create(buffer, this.memoryOffset.clone());
addMemorySegment(buffer: Uint8Array, alignment: i32 = 8): MemorySegment {
var memoryOffset = i64_align(this.memoryOffset, alignment);
var segment = MemorySegment.create(buffer, memoryOffset);
this.memorySegments.push(segment);
this.memoryOffset.add32(buffer.length);
this.memoryOffset = i64_add(memoryOffset, i64_new(buffer.length, 0));
return segment;
}
@ -1315,7 +1309,7 @@ export class Compiler extends DiagnosticEmitter {
compileInlineConstant(element: VariableLikeElement, contextualType: Type): ExpressionRef {
assert(element.is(ElementFlags.INLINED));
switch (element.type.is(TypeFlags.INTEGER) && contextualType.is(TypeFlags.INTEGER) && element.type.size <= contextualType.size
switch (element.type.is(TypeFlags.INTEGER) && contextualType.is(TypeFlags.INTEGER) && element.type.size < contextualType.size
? (this.currentType = contextualType).kind // essentially precomputes a (sign-)extension
: (this.currentType = element.type).kind
) {
@ -1323,32 +1317,32 @@ export class Compiler extends DiagnosticEmitter {
case TypeKind.I8:
case TypeKind.I16:
var shift = element.type.computeSmallIntegerShift(Type.i32);
return this.module.createI32(element.constantIntegerValue ? element.constantIntegerValue.toI32() << shift >> shift : 0);
return this.module.createI32(element.constantValueKind == ConstantValueKind.INTEGER ? i64_low(element.constantIntegerValue) << shift >> shift : 0);
case TypeKind.U8:
case TypeKind.U16:
case TypeKind.BOOL:
var mask = element.type.computeSmallIntegerMask(Type.i32);
return this.module.createI32(element.constantIntegerValue ? element.constantIntegerValue.toI32() & mask : 0);
return this.module.createI32(element.constantValueKind == ConstantValueKind.INTEGER ? i64_low(element.constantIntegerValue) & mask : 0);
case TypeKind.I32:
case TypeKind.U32:
return this.module.createI32(element.constantIntegerValue ? element.constantIntegerValue.lo : 0)
return this.module.createI32(element.constantValueKind == ConstantValueKind.INTEGER ? i64_low(element.constantIntegerValue) : 0)
case TypeKind.ISIZE:
case TypeKind.USIZE:
if (!element.program.options.isWasm64)
return this.module.createI32(element.constantIntegerValue ? element.constantIntegerValue.lo : 0)
return this.module.createI32(element.constantValueKind == ConstantValueKind.INTEGER ? i64_low(element.constantIntegerValue) : 0)
// fall-through
case TypeKind.I64:
case TypeKind.U64:
return element.constantIntegerValue
? this.module.createI64(element.constantIntegerValue.lo, element.constantIntegerValue.hi)
return element.constantValueKind == ConstantValueKind.INTEGER
? this.module.createI64(i64_low(element.constantIntegerValue), i64_high(element.constantIntegerValue))
: this.module.createI64(0);
case TypeKind.F32:
return this.module.createF32((<VariableLikeElement>element).constantFloatValue);
return this.module.createF32((<VariableLikeElement>element).constantFloatValue); // safe because it's a 'number' in JS
case TypeKind.F64:
return this.module.createF64((<VariableLikeElement>element).constantFloatValue);
@ -2889,10 +2883,11 @@ export class Compiler extends DiagnosticEmitter {
return this.module.createUnreachable();
}
compileLiteralExpression(expression: LiteralExpression, contextualType: Type): ExpressionRef {
compileLiteralExpression(expression: LiteralExpression, contextualType: Type, implicitNegate: bool = false): ExpressionRef {
switch (expression.literalKind) {
case LiteralKind.ARRAY:
assert(!implicitNegate);
var classType = contextualType.classType;
if (classType && classType == this.program.elements.get("Array") && classType.typeArguments && classType.typeArguments.length == 1)
return this.compileStaticArray(classType.typeArguments[0], (<ArrayLiteralExpression>expression).elementExpressions);
@ -2901,6 +2896,8 @@ export class Compiler extends DiagnosticEmitter {
case LiteralKind.FLOAT: {
var floatValue = (<FloatLiteralExpression>expression).value;
if (implicitNegate)
floatValue = -floatValue;
if (contextualType == Type.f32)
return this.module.createF32(<f32>floatValue);
this.currentType = Type.f64;
@ -2909,31 +2906,97 @@ export class Compiler extends DiagnosticEmitter {
case LiteralKind.INTEGER:
var intValue = (<IntegerLiteralExpression>expression).value;
if (contextualType == Type.bool && (intValue.isZero || intValue.isOne))
return this.module.createI32(intValue.isZero ? 0 : 1);
if (contextualType == Type.f64)
return this.module.createF64(intValue.toF64());
if (contextualType == Type.f32)
return this.module.createF32(<f32>intValue.toF64());
if (contextualType.is(TypeFlags.LONG | TypeFlags.INTEGER))
return this.module.createI64(intValue.lo, intValue.hi);
if (!intValue.fitsInI32) {
this.currentType = contextualType.is(TypeFlags.SIGNED) ? Type.i64 : Type.u64;
return this.module.createI64(intValue.lo, intValue.hi);
if (implicitNegate)
intValue = i64_sub(i64_new(0), intValue);
switch (contextualType.kind) {
// compile to contextualType if matching
case TypeKind.I8:
if (i64_is_i8(intValue))
return this.module.createI32(i64_low(intValue));
break;
case TypeKind.I16:
if (i64_is_i16(intValue))
return this.module.createI32(i64_low(intValue));
break;
case TypeKind.I32:
if (i64_is_i32(intValue))
return this.module.createI32(i64_low(intValue));
break;
case TypeKind.U8:
if (i64_is_u8(intValue))
return this.module.createI32(i64_low(intValue));
break;
case TypeKind.U16:
if (i64_is_u16(intValue))
return this.module.createI32(i64_low(intValue));
break;
case TypeKind.U32:
if (i64_is_u32(intValue))
return this.module.createI32(i64_low(intValue));
break;
case TypeKind.BOOL:
if (i64_is_bool(intValue))
return this.module.createI32(i64_low(intValue));
break;
case TypeKind.ISIZE:
if (!this.options.isWasm64) {
if (i64_is_u32(intValue))
return this.module.createI32(i64_low(intValue));
break;
}
return this.module.createI64(i64_low(intValue), i64_high(intValue));
case TypeKind.USIZE:
if (!this.options.isWasm64) {
if (i64_is_u32(intValue))
return this.module.createI32(i64_low(intValue));
break;
}
return this.module.createI64(i64_low(intValue), i64_high(intValue));
case TypeKind.I64:
case TypeKind.U64:
return this.module.createI64(i64_low(intValue), i64_high(intValue));
case TypeKind.F32:
if (i64_is_f32(intValue))
return this.module.createF32(i64_to_f32(intValue));
break;
case TypeKind.F64:
if (i64_is_f64(intValue))
return this.module.createF64(i64_to_f64(intValue));
break;
case TypeKind.VOID:
break;
default:
assert(false);
break;
}
if (contextualType.is(TypeFlags.SMALL | TypeFlags.INTEGER)) {
var shift = contextualType.computeSmallIntegerShift(Type.i32);
var mask = contextualType.computeSmallIntegerMask(Type.i32);
return this.module.createI32(contextualType.is(TypeFlags.SIGNED) ? intValue.lo << shift >> shift : intValue.lo & mask);
}
if (contextualType == Type.void && !intValue.fitsInI32) {
// otherwise compile to best fitting native type
if (i64_is_i32(intValue)) {
this.currentType = Type.i32;
return this.module.createI32(i64_low(intValue));
} else {
this.currentType = Type.i64;
return this.module.createI64(intValue.lo, intValue.hi);
return this.module.createI64(i64_low(intValue), i64_high(intValue));
}
this.currentType = contextualType.is(TypeFlags.SIGNED) ? Type.i32 : Type.u32;
return this.module.createI32(intValue.toI32());
case LiteralKind.STRING:
assert(!implicitNegate);
return this.compileStaticString((<StringLiteralExpression>expression).value);
// case LiteralKind.OBJECT:
@ -2955,14 +3018,15 @@ export class Compiler extends DiagnosticEmitter {
stringBuffer[4 + i * 2] = stringValue.charCodeAt(i) & 0xff;
stringBuffer[5 + i * 2] = (stringValue.charCodeAt(i) >>> 8) & 0xff;
}
stringSegment = this.addMemorySegment(stringBuffer);
stringSegment = this.addMemorySegment(stringBuffer, this.options.usizeType.byteSize);
this.stringSegments.set(stringValue, stringSegment);
}
var stringOffset = stringSegment.offset;
this.currentType = this.options.usizeType;
return this.options.isWasm64
? this.module.createI64(stringOffset.lo, stringOffset.hi)
: this.module.createI32(stringOffset.lo);
if (this.options.isWasm64)
return this.module.createI64(i64_low(stringOffset), i64_high(stringOffset));
assert(i64_is_i32(stringOffset));
return this.module.createI32(i64_low(stringOffset));
}
compileStaticArray(elementType: Type, expressions: (Expression | null)[]): ExpressionRef {
@ -3009,7 +3073,7 @@ export class Compiler extends DiagnosticEmitter {
break;
case NativeType.I64:
changetype<I64[]>(values)[i] = new I64(_BinaryenConstGetValueI64Low(expr), _BinaryenConstGetValueI64High(expr));
changetype<I64[]>(values)[i] = i64_new(_BinaryenConstGetValueI64Low(expr), _BinaryenConstGetValueI64High(expr));
break;
case NativeType.F32:
@ -3325,41 +3389,49 @@ export class Compiler extends DiagnosticEmitter {
break;
case Token.MINUS:
expr = this.compileExpression(expression.operand, contextualType == Type.void ? Type.i32 : contextualType, ConversionKind.NONE, false);
if (expression.operand.kind == NodeKind.LITERAL && (
(<LiteralExpression>expression.operand).literalKind == LiteralKind.INTEGER ||
(<LiteralExpression>expression.operand).literalKind == LiteralKind.FLOAT
)) {
// implicitly negate integer and float literals. also enables proper checking of literal ranges.
expr = this.compileLiteralExpression(<LiteralExpression>expression.operand, contextualType, true);
this.addDebugLocation(expr, expression.range); // compileExpression normally does this
} else {
expr = this.compileExpression(expression.operand, contextualType == Type.void ? Type.i32 : contextualType, ConversionKind.NONE, false);
switch (this.currentType.kind) {
switch (this.currentType.kind) {
case TypeKind.I8:
case TypeKind.I16:
case TypeKind.U8:
case TypeKind.U16:
case TypeKind.BOOL:
possiblyOverflows = true; // or if operand already did
default:
expr = this.module.createBinary(BinaryOp.SubI32, this.module.createI32(0), expr);
break;
case TypeKind.I8:
case TypeKind.I16:
case TypeKind.U8:
case TypeKind.U16:
case TypeKind.BOOL:
possiblyOverflows = true; // or if operand already did
default:
expr = this.module.createBinary(BinaryOp.SubI32, this.module.createI32(0), expr);
break;
case TypeKind.USIZE:
if (this.currentType.isReference) {
this.error(DiagnosticCode.Operation_not_supported, expression.range);
return this.module.createUnreachable();
}
case TypeKind.ISIZE:
expr = this.module.createBinary(this.options.target == Target.WASM64 ? BinaryOp.SubI64 : BinaryOp.SubI32, this.currentType.toNativeZero(this.module), expr);
break;
case TypeKind.USIZE:
if (this.currentType.isReference) {
this.error(DiagnosticCode.Operation_not_supported, expression.range);
return this.module.createUnreachable();
}
case TypeKind.ISIZE:
expr = this.module.createBinary(this.options.target == Target.WASM64 ? BinaryOp.SubI64 : BinaryOp.SubI32, this.currentType.toNativeZero(this.module), expr);
break;
case TypeKind.I64:
case TypeKind.U64:
expr = this.module.createBinary(BinaryOp.SubI64, this.module.createI64(0), expr);
break;
case TypeKind.I64:
case TypeKind.U64:
expr = this.module.createBinary(BinaryOp.SubI64, this.module.createI64(0), expr);
break;
case TypeKind.F32:
expr = this.module.createUnary(UnaryOp.NegF32, expr);
break;
case TypeKind.F32:
expr = this.module.createUnary(UnaryOp.NegF32, expr);
break;
case TypeKind.F64:
expr = this.module.createUnary(UnaryOp.NegF64, expr);
break;
case TypeKind.F64:
expr = this.module.createUnary(UnaryOp.NegF64, expr);
break;
}
}
break;

View File

@ -11,10 +11,6 @@ import {
readString
} from "./module";
import {
I64
} from "./util/i64";
// TODO :-)
export class Decompiler {
@ -28,8 +24,6 @@ export class Decompiler {
text: string[] = [];
functionId: i32 = 0;
private tempI64: I64 = new I64();
constructor() { }
/** Decompiles a module to an AST that can then be serialized. */
@ -183,9 +177,14 @@ export class Decompiler {
return;
case NativeType.I64:
this.tempI64.lo = _BinaryenConstGetValueI64Low(expr);
this.tempI64.hi = _BinaryenConstGetValueI64High(expr);
this.push(this.tempI64.toString());
this.push(
i64_to_string(
i64_new(
_BinaryenConstGetValueI64Low(expr),
_BinaryenConstGetValueI64High(expr)
)
)
);
return;
case NativeType.F32:

6
src/extra/tsconfig.json Normal file
View File

@ -0,0 +1,6 @@
{
"extends": "../../std/portable.json",
"include": [
"./**/*.ts"
]
}

View File

@ -1,54 +0,0 @@
require("../../std/portable");
// Copy Binaryen exports to global scope
var globalScope = typeof window !== "undefined" && window || typeof global !== "undefined" && global || self;
var binaryen = globalScope["Binaryen"]; // allow overriding for testing purposes
if (!binaryen) {
try {
binaryen = require("binaryen");
} catch (e) {
binaryen = globalScope["Binaryen"];
}
}
for (var key in binaryen)
if (/^_(?:Binaryen|Relooper)/.test(key))
globalScope[key] = binaryen[key];
// Use Binaryen's heap instead of std heap
globalScope["allocate_memory"] = function allocate_memory(size) {
if (!size) return 0; // should be safe in our case
return binaryen._malloc(size);
};
globalScope["free_memory"] = function free_memory(ptr) {
if (ptr) binaryen._free(ptr);
};
globalScope["move_memory"] = function move_memory(dest, src, n) {
return binaryen._memmove(dest, src, n);
};
globalScope["store"] = function store(ptr, val) {
binaryen.HEAPU8[ptr] = val;
};
globalScope["load"] = function load(ptr) {
return binaryen.HEAPU8[ptr];
};
// Implement module stubs
var Module = require("../module").Module;
Module.prototype.toText = function toText() {
var previousPrint = binaryen.print;
var ret = "";
binaryen.print = function print(x) { ret += x + "\n" };
this.print();
binaryen.print = previousPrint;
return ret;
};
Module.prototype.toAsmjs = function toAsmjs() {
var previousPrint = binaryen.print;
var ret = "";
binaryen.print = function print(x) { ret += x + "\n" };
this.printAsmjs();
binaryen.print = previousPrint;
return ret;
};

36
src/glue/js/i64.d.ts vendored Normal file
View File

@ -0,0 +1,36 @@
declare type I64 = Long;
declare function i64_new(lo: i32, hi?: i32): I64;
declare function i64_low(value: I64): i32;
declare function i64_high(value: I64): i32;
declare function i64_add(left: I64, right: I64): I64;
declare function i64_sub(left: I64, right: I64): I64;
declare function i64_mul(left: I64, right: I64): I64;
declare function i64_div(left: I64, right: I64): I64;
declare function i64_div_u(left: I64, right: I64): I64;
declare function i64_rem(left: I64, right: I64): I64;
declare function i64_rem_u(left: I64, right: I64): I64;
declare function i64_and(left: I64, right: I64): I64;
declare function i64_or(left: I64, right: I64): I64;
declare function i64_xor(left: I64, right: I64): I64;
declare function i64_shl(left: I64, right: I64): I64;
declare function i64_shr(left: I64, right: I64): I64;
declare function i64_shr_u(left: I64, right: I64): I64;
declare function i64_not(value: I64): I64;
declare function i64_align(value: I64, alignment: i32): I64;
declare function i64_is_i8(value: I64): bool;
declare function i64_is_i16(value: I64): bool;
declare function i64_is_i32(value: I64): bool;
declare function i64_is_u8(value: I64): bool;
declare function i64_is_u16(value: I64): bool;
declare function i64_is_u32(value: I64): bool;
declare function i64_is_bool(value: I64): bool;
declare function i64_is_f32(value: I64): bool;
declare function i64_is_f64(value: I64): bool;
declare function i64_to_f32(value: I64): f64;
declare function i64_to_f64(value: I64): f64;
declare function i64_to_string(value: I64, unsigned?: bool): string;

193
src/glue/js/index.ts Normal file
View File

@ -0,0 +1,193 @@
import "../../../std/portable";
// Copy Binaryen exports to global scope
declare const global: any;
declare function require(name: string): any;
const binaryen: any = global.Binaryen || require("binaryen");
for (let key in binaryen)
if (key.startsWith("_Binaryen") || key.startsWith("_Relooper"))
global[key] = (<any>binaryen)[key];
// Use Binaryen's heap instead of std heap
global.allocate_memory = function(size: number): number {
if (!size) return 0; // should be safe in our case
return (<any>binaryen)._malloc(size);
};
global.free_memory = function(ptr: number): void {
if (ptr) (<any>binaryen)._free(ptr);
};
global.move_memory = function(dest: number, src: number, n: number): number {
return (<any>binaryen)._memmove(dest, src, n);
};
global.store = function(ptr: number, val: number): void {
(<any>binaryen).HEAPU8[ptr] = val;
};
global.load = function(ptr: number): number {
return (<any>binaryen).HEAPU8[ptr];
};
// Implement module stubs
import { Module } from "../../module";
Module.prototype.toText = function toText() {
var previousPrint = binaryen.print;
var ret = "";
binaryen.print = (x: string) => { ret += x + "\n" };
this.print();
binaryen.print = previousPrint;
return ret;
};
Module.prototype.toAsmjs = function toAsmjs() {
var previousPrint = binaryen.print;
var ret = "";
binaryen.print = (x: string) => { ret += x + "\n" };
this.printAsmjs();
binaryen.print = previousPrint;
return ret;
};
// Implement I64 using long.js
import * as Long from "long";
/// <reference path="./i64.d.ts" />
global.i64_new = function(lo: number, hi: number = 0): I64 {
return Long.fromBits(lo, hi);
};
global.i64_low = function(value: I64): i32 {
return value.low;
};
global.i64_high = function(value: I64): i32 {
return value.high;
};
global.i64_add = function(left: I64, right: I64): I64 {
return left.add(right);
};
global.i64_sub = function(left: I64, right: I64): I64 {
return left.sub(right);
};
global.i64_mul = function(left: I64, right: I64): I64 {
return left.mul(right);
};
global.i64_div = function(left: I64, right: I64): I64 {
return left.div(right);
};
global.i64_div_u = function(left: I64, right: I64): I64 {
return left.toUnsigned().div(right.toUnsigned()).toSigned();
};
global.i64_rem = function(left: I64, right: I64): I64 {
return left.mod(right);
};
global.i64_rem_u = function(left: I64, right: I64): I64 {
return left.toUnsigned().mod(right.toUnsigned()).toSigned();
};
global.i64_and = function(left: I64, right: I64): I64 {
return left.and(right);
};
global.i64_or = function(left: I64, right: I64): I64 {
return left.or(right);
};
global.i64_xor = function(left: I64, right: I64): I64 {
return left.xor(right);
};
global.i64_shl = function(left: I64, right: I64): I64 {
return left.shl(right);
};
global.i64_shr = function(left: I64, right: I64): I64 {
return left.shr(right);
};
global.i64_shr_u = function(left: I64, right: I64): I64 {
return left.shru(right);
};
global.i64_not = function(value: I64): I64 {
return value.not();
};
global.i64_align = function(value: I64, alignment: i32): I64 {
assert(alignment && (alignment & (alignment - 1)) == 0);
var mask = Long.fromInt(alignment - 1);
return value.add(mask).and(mask.not());
};
global.i64_is_i8 = function(value: I64): bool {
return value.high === 0 && (value.low >= 0 && value.low <= i8.MAX_VALUE)
|| value.high === -1 && (value.low >= i8.MIN_VALUE && value.low < 0);
};
global.i64_is_i16 = function(value: I64): bool {
return value.high === 0 && (value.low >= 0 && value.low <= i16.MAX_VALUE)
|| value.high === -1 && (value.low >= i16.MIN_VALUE && value.low < 0);
};
global.i64_is_i32 = function(value: I64): bool {
return (value.high === 0 && value.low >= 0) || (value.high === -1 && value.low < 0);
};
global.i64_is_u8 = function(value: I64): bool {
return value.high === 0 && value.low >= 0 && value.low <= u8.MAX_VALUE;
};
global.i64_is_u16 = function(value: I64): bool {
return value.high === 0 && value.low >= 0 && value.low <= u16.MAX_VALUE;
};
global.i64_is_u32 = function(value: I64): bool {
return value.high === 0;
};
global.i64_is_bool = function(value: I64): bool {
return value.high === 0 && (value.low === 0 || value.low === 1);
};
const minSafeF32 = Long.fromNumber(f32.MIN_SAFE_INTEGER);
const maxSafeF32 = Long.fromNumber(f32.MAX_SAFE_INTEGER);
global.i64_is_f32 = function(value: I64): bool {
return value.gte(minSafeF32) && value.lte(maxSafeF32);
};
const minSafeF64 = Long.fromNumber(f64.MIN_SAFE_INTEGER);
const maxSafeF64 = Long.fromNumber(f64.MAX_SAFE_INTEGER);
global.i64_is_f64 = function(value: I64): bool {
return value.gte(minSafeF64) && value.lte(maxSafeF64);
};
global.i64_to_f32 = function(value: I64): f64 {
return global.Math.fround(value.toNumber());
};
global.i64_to_f64 = function(value: I64): f64 {
return value.toNumber();
};
global.i64_to_string = function(value: I64, unsigned: bool = false): string {
return (unsigned ? value.toUnsigned() : value).toString(10);
};

164
src/glue/wasm/index.ts Normal file
View File

@ -0,0 +1,164 @@
type I64 = i64;
@global
function i64_new(lo: i32, hi: i32 = 0): I64 {
return lo | (hi << 32);
}
@global
function i64_low(value: I64): i32 {
return <i32>value;
}
@global
function i64_high(value: I64): i32 {
return <i32>(value >>> 32);
}
@global
function i64_add(left: I64, right: I64): I64 {
return left + right;
}
@global
function i64_sub(left: I64, right: I64): I64 {
return left - right;
}
@global
function i64_mul(left: I64, right: I64): I64 {
return left * right;
}
@global
function i64_div(left: I64, right: I64): I64 {
return left / right;
}
@global
function i64_div_u(left: I64, right: I64): I64 {
return <u64>left / <u64>right;
}
@global
function i64_rem(left: I64, right: I64): I64 {
return left % right;
}
@global
function i64_rem_u(left: I64, right: I64): I64 {
return <u64>left % <u64>right;
}
@global
function i64_and(left: I64, right: I64): I64 {
return left & right;
}
@global
function i64_or(left: I64, right: I64): I64 {
return left | right;
}
@global
function i64_xor(left: I64, right: I64): I64 {
return left ^ right;
}
@global
function i64_shl(left: I64, right: I64): I64 {
return left << right;
}
@global
function i64_shr(left: I64, right: I64): I64 {
return left >> right;
}
@global
function i64_shr_u(left: I64, right: I64): I64 {
return left >>> right;
}
@global
function i64_not(value: I64): I64 {
return ~value;
}
@global
function i64_align(value: I64, alignment: i64): I64 {
var mask: i64 = alignment - 1;
assert(alignment && (alignment & mask) == 0);
return (value + mask) & ~mask;
}
@global
function i64_is_i8(value: I64): bool {
return value >= i8.MIN_VALUE && value <= i8.MAX_VALUE;
}
@global
function i64_is_i16(value: I64): bool {
return value >= i16.MIN_VALUE && value <= i16.MAX_VALUE;
}
@global
function i64_is_i32(value: I64): bool {
return value >= i32.MIN_VALUE && value <= i32.MAX_VALUE;
}
@global
function i64_is_u8(value: I64): bool {
return value >= 0 && value <= u8.MAX_VALUE;
}
@global
function i64_is_u16(value: I64): bool {
return value >= 0 && value <= u16.MAX_VALUE;
}
@global
function i64_is_u32(value: I64): bool {
return value >= 0 && value <= u32.MAX_VALUE;
}
@global
function i64_is_bool(value: I64): bool {
return value === 0 || value === 1;
}
@global
function i64_is_f32(value: I64): bool {
return value >= f32.MIN_SAFE_INTEGER && value <= f32.MAX_SAFE_INTEGER;
}
@global
function i64_is_f64(value: I64): bool {
return value >= f64.MIN_SAFE_INTEGER && value <= f64.MAX_SAFE_INTEGER;
}
@global
function i64_to_f32(value: I64): f32 {
return <f32>value;
}
@global
function i64_to_f64(value: I64): f64 {
return <f64>value;
}
import { CharCode } from "../../util/charcode";
@global
function i64_to_string(value: I64): string {
var chars = new Array<u16>();
if (value < 0) {
chars.push(CharCode.MINUS);
value = -value;
}
do {
chars.push(CharCode._0 + (value % 10));
value /= 10;
} while (value);
return String.fromCharCodes(chars);
}

View File

@ -0,0 +1,6 @@
{
"extends": "../../../std/assembly.json",
"include": [
"./**/*.ts"
]
}

View File

@ -2,10 +2,6 @@ import {
Target
} from "./compiler";
import {
U64
} from "./util/i64";
export type ModuleRef = usize;
export type FunctionTypeRef = usize;
export type FunctionRef = usize;
@ -225,9 +221,9 @@ export enum AtomicRMWOp {
export class MemorySegment {
buffer: Uint8Array;
offset: U64;
offset: I64;
static create(buffer: Uint8Array, offset: U64) {
static create(buffer: Uint8Array, offset: I64) {
var segment = new MemorySegment();
segment.buffer = buffer;
segment.offset = offset;
@ -641,8 +637,8 @@ export class Module {
var offset = segments[i].offset;
segs[i] = allocU8Array(buffer);
offs[i] = target == Target.WASM64
? this.createI64(offset.lo, offset.hi)
: this.createI32(offset.toI32());
? this.createI64(i64_low(offset), i64_high(offset))
: this.createI32(i64_low(offset));
sizs[i] = buffer.length;
}
var cArr1 = allocI32Array(segs);
@ -747,8 +743,11 @@ export class Module {
}
toText(): string {
// FIXME: target specific / JS glue overrides this
throw new Error("not implemented");
throw new Error("not implemented"); // JS glue overrides this
}
toAsmjs(): string {
throw new Error("not implemented"); // JS glue overrides this
}
dispose(): void {

View File

@ -23,10 +23,6 @@ import {
DiagnosticEmitter
} from "./diagnostics";
import {
I64
} from "./util/i64";
import {
normalize as normalizePath
} from "./util/path";

View File

@ -13,10 +13,6 @@ import {
typesToString
} from "./types";
import {
I64
} from "./util/i64";
import {
ModifierKind,
Node,
@ -1446,6 +1442,12 @@ export class EnumValue extends Element {
}
}
export const enum ConstantValueKind {
NONE,
INTEGER,
FLOAT
}
export class VariableLikeElement extends Element {
// kind varies
@ -1454,18 +1456,22 @@ export class VariableLikeElement extends Element {
declaration: VariableLikeDeclarationStatement;
/** Variable type. Is {@link Type.void} for type-inferred {@link Global}s before compilation. */
type: Type;
/** Constant value kind. */
constantValueKind: ConstantValueKind = ConstantValueKind.NONE;
/** Constant integer value, if applicable. */
constantIntegerValue: I64 | null = null;
constantIntegerValue: I64;
/** Constant float value, if applicable. */
constantFloatValue: f64 = 0;
constantFloatValue: f64;
withConstantIntegerValue(lo: i32, hi: i32): this {
this.constantIntegerValue = new I64(lo, hi);
this.constantValueKind = ConstantValueKind.INTEGER;
this.constantIntegerValue = i64_new(lo, hi);
this.set(ElementFlags.CONSTANT | ElementFlags.INLINED);
return this;
}
withConstantFloatValue(value: f64): this {
this.constantValueKind = ConstantValueKind.FLOAT;
this.constantFloatValue = value;
this.set(ElementFlags.CONSTANT | ElementFlags.INLINED);
return this;

View File

@ -39,10 +39,6 @@ import {
isKeywordCharacter
} from "./util/charcode";
import {
I64
} from "./util/i64";
/** Named token types. */
export enum Token {
@ -993,21 +989,19 @@ export class Tokenizer extends DiagnosticEmitter {
readHexInteger(): I64 {
var text = this.source.text;
var start = this.pos;
var value = new I64(0, 0);
var value = i64_new(0, 0);
var i64_16 = i64_new(16, 0);
while (this.pos < this.end) {
var c = text.charCodeAt(this.pos);
if (c >= CharCode._0 && c <= CharCode._9) {
// value = value * 16 + c - CharCode._0;
value.mul32(16);
value.add32(c - CharCode._0);
} else if (c >= CharCode.A && c <= CharCode.F) {
value = i64_add(i64_mul(value, i64_16), i64_new(c - CharCode._0, 0));
} else if (c >= CharCode.A && c <= CharCode.F) {
// value = value * 16 + 10 + c - CharCode.A;
value.mul32(16);
value.add32(10 + c - CharCode.A);
value = i64_add(i64_mul(value, i64_16), i64_new(10 + c - CharCode.A, 0));
} else if (c >= CharCode.a && c <= CharCode.f) {
// value = value * 16 + 10 + c - CharCode.a;
value.mul32(16);
value.add32(10 + c - CharCode.a);
value = i64_add(i64_mul(value, i64_16), i64_new(10 + c - CharCode.a, 0));
} else
break;
++this.pos;
@ -1020,13 +1014,13 @@ export class Tokenizer extends DiagnosticEmitter {
readDecimalInteger(): I64 {
var text = this.source.text;
var start = this.pos;
var value = new I64(0, 0);
var value = i64_new(0, 0);
var i64_10 = i64_new(10, 0);
while (this.pos < this.end) {
var c = text.charCodeAt(this.pos);
if (c >= CharCode._0 && c <= CharCode._9) {
// value = value * 10 + c - CharCode._0;
value.mul32(10);
value.add32(c - CharCode._0);
value = i64_add(i64_mul(value, i64_10), i64_new(c - CharCode._0, 0));
} else
break;
++this.pos;
@ -1039,13 +1033,13 @@ export class Tokenizer extends DiagnosticEmitter {
readOctalInteger(): I64 {
var text = this.source.text;
var start = this.pos;
var value = new I64(0, 0);
var value = i64_new(0, 0);
var i64_8 = i64_new(8, 0);
while (this.pos < this.end) {
var c = text.charCodeAt(this.pos);
if (c >= CharCode._0 && c <= CharCode._7) {
// value = value * 8 + c - CharCode._0;
value.mul32(8);
value.add32(c - CharCode._0);
value = i64_add(i64_mul(value, i64_8), i64_new(c - CharCode._0, 0));
} else
break;
++this.pos;
@ -1058,18 +1052,18 @@ export class Tokenizer extends DiagnosticEmitter {
readBinaryInteger(): I64 {
var text = this.source.text;
var start = this.pos;
var value = new I64();
var value = i64_new(0, 0);
var i64_2 = i64_new(2, 0);
var i64_1 = i64_new(1, 0);
while (this.pos < this.end) {
var c = text.charCodeAt(this.pos);
if (c == CharCode._0) {
// value = value * 2;
value.mul32(2);
value = i64_mul(value, i64_2);
} else if (c == CharCode._1) {
// value = value * 2 + 1;
value.mul32(2);
value.add32(1);
}
else
value = i64_add(i64_mul(value, i64_2), i64_1);
} else
break;
++this.pos;
}
@ -1129,14 +1123,15 @@ export class Tokenizer extends DiagnosticEmitter {
private readExtendedUnicodeEscape(): string {
var start = this.pos;
var value = this.readHexInteger();
var value32 = i64_low(value);
var invalid = false;
if (value.gt32(0x10FFFF)) {
assert(!i64_high(value));
if (value32 > 0x10FFFF) {
this.error(DiagnosticCode.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive, this.range(start, this.pos));
invalid = true;
}
var value32 = value.toI32();
var text = this.source.text;
if (this.pos >= this.end) {
this.error(DiagnosticCode.Unexpected_end_of_text, this.range(start, this.end));

View File

@ -8,6 +8,7 @@
"./**/*.ts"
],
"exclude": [
"./extra/**"
"./extra/**",
"./glue/wasm/**"
]
}

View File

@ -1,537 +0,0 @@
/*
To remain compatible with TSC / compiling to JS, we have to emulate I64s in a
portable way. The following is based on long.js with the main difference being
that instances are mutable and operations affect 'this'. In our scenario,
that's useful because it's mostly used for constant evaluation and we are
exclusively interested in the result (saves a heap of allocations).
*/
// TODO: div/mod
// another option is to use a wasm-based polyfill, see examples/i64-polyfill.
const I64_MIN_LO: i32 = 0;
const I64_MIN_HI: i32 = 0x80000000 | 0;
export class I64 {
lo: i32;
hi: i32;
static fromI32(n: i32): I64 {
return new I64(n, n < 0 ? -1 : 0);
}
constructor(lo: i32 = 0, hi: i32 = 0) {
this.lo = lo;
this.hi = hi;
}
get isZero(): bool {
return this.lo == 0 && this.hi == 0;
}
get isOne(): bool {
return this.lo == 1 && this.hi == 0;
}
get isPositive(): bool {
return this.hi >= 0;
}
get isNegative(): bool {
return this.hi < 0;
}
get isOdd(): bool {
return (this.lo & 1) == 1;
}
get isEven(): bool {
return (this.lo & 1) == 0;
}
get fitsInI32(): bool {
return this.hi == 0 || (this.hi == -1 && this.lo < 0);
}
toI32(): i32 {
return this.lo;
}
toF64(): f64 {
return <f64>this.hi * 0x100000000 + <f64>(this.lo >>> 0);
}
eq(other: I64): bool {
return this.eq32(other.lo, other.hi);
}
eq32(lo: i32, hi: i32 = 0): bool {
return this.lo == lo && this.hi == hi;
}
ne(other: I64): bool {
return this.ne32(other.lo, other.hi);
}
ne32(lo: i32, hi: i32 = 0): bool {
return this.lo != lo || this.hi != hi;
}
neg(): void {
this.lo = ~this.lo;
this.hi = ~this.hi;
this.add32(1, 0);
}
add(other: I64): void {
this.add32(other.lo, other.hi);
}
add32(lo: i32, hi: i32 = 0): void {
i64_add_internal(this.lo, this.hi, lo, hi);
this.lo = i64_lo;
this.hi = i64_hi;
}
sub(other: I64): void {
this.sub32(other.lo, other.hi);
}
sub32(lo: i32, hi: i32 = 0): void {
i64_add_internal(~lo, ~hi, 1, 0);
this.add32(i64_lo, i64_hi);
}
comp(other: I64): i32 {
return this.comp32(other.lo, other.hi);
}
comp32(lo: i32, hi: i32 = 0): i32 {
if (this.lo == lo && this.hi == hi)
return 0;
if (this.hi < 0 && hi >= 0)
return -1;
if (this.hi >= 0 && hi < 0)
return 1;
i64_add_internal(~lo, ~hi, 1, 0);
i64_add_internal(this.lo, this.hi, i64_lo, i64_hi);
return i64_hi < 0 ? -1 : 1;
}
lt(other: I64): bool {
return this.lt32(other.lo, other.hi);
}
lt32(lo: i32, hi: i32 = 0): bool {
return this.comp32(lo, hi) < 0;
}
lte(other: I64): bool {
return this.lte32(other.lo, other.hi);
}
lte32(lo: i32, hi: i32 = 0): bool {
return this.comp32(lo, hi) <= 0;
}
gt(other: I64): bool {
return this.gt32(other.lo, other.hi);
}
gt32(lo: i32, hi: i32 = 0): bool {
return this.comp32(lo, hi) > 0;
}
gte(other: I64): bool {
return this.gte32(other.lo, other.hi);
}
gte32(lo: i32, hi: i32 = 0): bool {
return this.comp32(lo, hi) >= 0;
}
mul(other: I64): void {
this.mul32(other.lo, other.hi);
}
mul32(lo: i32, hi: i32 = 0): void {
if (this.lo == 0 && this.hi == 0)
return;
if (lo == 0 && hi == 0) {
this.lo = 0;
this.hi = 0;
return;
}
// this == MIN
if (this.lo == I64_MIN_LO && this.hi == I64_MIN_HI) {
this.lo = 0; // == MIN_LO
this.hi = lo & 1 ? I64_MIN_HI : 0; // other.isOdd ? this = MIN : this = ZERO
return;
}
// other == MIN
if (lo == I64_MIN_LO && hi == I64_MIN_HI) {
this.hi = this.lo & 1 ? I64_MIN_HI : 0; // this.isOdd ? this = MIN : this = ZERO
this.lo = 0; // == MIN_LO
return;
}
if (this.hi < 0) {
this.neg();
// both negative: negate both and multiply
if (hi < 0) {
i64_add_internal(~lo, ~hi, 1, 0);
i64_mul_internal(this.lo, this.hi, i64_lo, i64_hi);
this.lo = i64_lo;
this.hi = i64_hi;
// this negative: negate this, multiply and negate result
} else {
i64_mul_internal(this.lo, this.hi, lo, hi);
this.lo = i64_lo;
this.hi = i64_hi;
this.neg();
}
return;
// other negative: negate other, multiply and negate result
} else if (hi < 0) {
i64_add_internal(~lo, ~hi, 1, 0);
i64_mul_internal(this.lo, this.hi, i64_lo, i64_hi);
this.lo = i64_lo;
this.hi = i64_hi;
this.neg();
return;
}
// both positive
i64_mul_internal(this.lo, this.hi, lo, hi);
this.lo = i64_lo;
this.hi = i64_hi;
}
div(other: I64): void {
this.div32(other.lo, other.hi);
}
div32(lo: i32, hi: i32 = 0): void {
// other == 0
if (lo == 0 && hi == 0)
throw new Error("division by zero");
// this == 0
if (this.lo == 0 && this.hi == 0)
return;
// this == MIN
if (this.lo == I64_MIN_LO && this.hi == I64_MIN_HI) {
// other == 1 or -1
if (lo == 1 && hi == 0 || lo == -1 && hi == -1) // -MIN == MIN
return;
// both == MIN
if (lo == I64_MIN_LO && hi == I64_MIN_HI) {
this.lo = 1;
this.hi = 0;
return;
}
// |other| >= 2, so |this/other| < |MIN_VALUE|
var tempLo = this.lo;
var tempHi = this.hi;
this.shr32(1, 0);
this.div32(lo, hi);
this.shl32(1, 0);
if (this.lo == 0 && this.hi == 0) {
if (hi < 0) {
this.lo = 1;
this.hi = 0;
} else {
this.lo = -1;
this.hi = -1;
}
return;
}
i64_mul_internal(lo, hi, this.lo, this.hi);
this.lo = tempLo;
this.hi = tempHi;
tempLo = i64_lo;
tempHi = i64_hi;
this.div32(lo, hi);
this.sub32(i64_lo, i64_hi);
i64_add_internal(tempLo, tempHi, this.lo, this.hi);
this.lo = i64_lo;
this.hi = i64_hi;
return;
}
if (this.hi < 0) {
this.neg();
// both negative: negate both and divide
if (hi < 0) {
i64_add_internal(~lo, ~hi, 1, 0);
i64_div_internal(this.lo, this.hi, i64_lo, i64_hi);
this.lo = i64_lo;
this.hi = i64_hi;
// this negative: negate this, divide and negate result
} else {
i64_div_internal(this.lo, this.hi, lo, hi);
this.lo = i64_lo;
this.hi = i64_hi;
this.neg();
}
return;
// other negative: negate other, divide and negate result
} else if (hi < 0) {
i64_add_internal(~lo, ~hi, 1, 0);
i64_div_internal(this.lo, this.hi, i64_lo, i64_hi);
this.lo = i64_lo;
this.hi = i64_hi;
this.neg();
return;
}
// both positive
i64_div_internal(this.lo, this.hi, lo, hi);
this.lo = i64_lo;
this.hi = i64_hi;
}
mod(other: I64): void {
this.mod32(other.lo, other.hi);
}
mod32(lo: i32, hi: i32 = 0): void {
var thisLo = this.lo;
var thisHi = this.hi;
this.div32(lo, hi);
this.mul32(lo, hi);
var resLo = this.lo;
var resHi = this.hi;
this.lo = thisLo;
this.hi = thisHi;
this.sub32(resLo, resHi);
}
not(): void {
this.lo = ~this.lo;
this.hi = ~this.hi;
}
and(other: I64): void {
this.and32(other.lo, other.hi);
}
and32(lo: i32, hi: i32 = 0): void {
this.lo &= lo;
this.hi &= hi;
}
or(other: I64): void {
this.or32(other.lo, other.hi);
}
or32(lo: i32, hi: i32 = 0): void {
this.lo |= lo;
this.hi |= hi;
}
xor(other: I64): void {
this.xor32(other.lo, other.hi);
}
xor32(lo: i32, hi: i32 = 0): void {
this.lo ^= lo;
this.hi ^= hi;
}
shl(other: I64): void {
this.shl32(other.lo, other.hi);
}
shl32(lo: i32, hi: i32 = 0): void {
if ((lo &= 63) == 0)
return;
if (lo < 32) {
this.hi = (this.hi << lo) | (this.lo >>> (32 - lo));
this.lo = this.lo << lo;
} else {
this.hi = this.lo << (lo - 32);
this.lo = 0;
}
}
shr(other: I64): void {
this.shr32(other.lo, other.hi);
}
shr32(lo: i32, hi: i32 = 0): void {
if ((lo &= 63) == 0)
return;
if (lo < 32) {
this.lo = (this.lo >>> lo) | (this.hi << (32 - lo));
this.hi = this.hi >> lo;
} else {
this.lo = this.hi >> (lo - 32);
this.hi = this.hi >= 0 ? 0 : -1;
}
}
shru(other: I64): void {
this.shru32(other.lo, other.hi);
}
shru32(lo: i32, hi: i32 = 0): void {
if ((lo &= 63) == 0)
return;
if (lo < 32) {
this.lo = (this.lo >>> lo) | (this.hi << (32 - lo));
this.hi = (this.hi >>> lo) | 0;
} else if (lo == 32) {
this.lo = this.hi;
this.hi = 0;
} else {
this.lo = (this.hi >>> (lo - 32)) | 0;
this.hi = 0;
}
}
clone(): I64 {
return new I64(this.lo, this.hi);
}
toString(): string {
var negative = false;
if (this.hi < 0) {
i64_add_internal(~this.lo, ~this.hi, 1, 0);
negative = true;
} else {
i64_lo = this.lo;
i64_hi = this.hi;
}
if (i64_hi) {
var lo = (i64_lo as u32 >>> 0).toString(16);
while (lo.length < 8)
lo = "0" + lo;
return (negative ? "-0x" : "0x") + (i64_hi as u32 >>> 0).toString(16) + lo;
}
return negative ? "-" + i64_lo.toString(10) : i64_lo.toString(10);
}
}
var i64_lo = 0;
var i64_hi = 0;
function i64_add_internal(lo: i32, hi: i32, otherLo: i32, otherHi: i32): void {
var a48 = hi >>> 16;
var a32 = hi & 0xFFFF;
var a16 = lo >>> 16;
var a00 = lo & 0xFFFF;
var b48 = otherHi >>> 16;
var b32 = otherHi & 0xFFFF;
var b16 = otherLo >>> 16;
var b00 = otherLo & 0xFFFF;
var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
c00 += a00 + b00;
c16 += c00 >>> 16;
c00 &= 0xFFFF;
c16 += a16 + b16;
c32 += c16 >>> 16;
c16 &= 0xFFFF;
c32 += a32 + b32;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c48 += a48 + b48;
c48 &= 0xFFFF;
i64_lo = (c16 << 16) | c00;
i64_hi = (c48 << 16) | c32;
}
function i64_mul_internal(lo: i32, hi: i32, otherLo: i32, otherHi: i32): void {
var a48 = hi >>> 16;
var a32 = hi & 0xFFFF;
var a16 = lo >>> 16;
var a00 = lo & 0xFFFF;
var b48 = otherHi >>> 16;
var b32 = otherHi & 0xFFFF;
var b16 = otherLo >>> 16;
var b00 = otherLo & 0xFFFF;
var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
c00 += a00 * b00;
c16 += c00 >>> 16;
c00 &= 0xFFFF;
c16 += a16 * b00;
c32 += c16 >>> 16;
c16 &= 0xFFFF;
c16 += a00 * b16;
c32 += c16 >>> 16;
c16 &= 0xFFFF;
c32 += a32 * b00;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c32 += a16 * b16;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c32 += a00 * b32;
c48 += c32 >>> 16;
c32 &= 0xFFFF;
c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
c48 &= 0xFFFF;
i64_lo = (c16 << 16) | c00;
i64_hi = (c48 << 16) | c32;
}
function i64_div_internal(lo: i32, hi: i32, otherLo: i32, otherHi: i32): void {
throw new Error("not implemented");
}
export class U64 extends I64 {
static fromI32(n: i32): U64 {
return new U64(n, 0);
}
get isPositive(): bool {
return true;
}
get isNegative(): bool {
return false;
}
get fitsInU32(): bool {
return this.hi == 0;
}
comp32(lo: i32, hi: i32): i32 {
// uses both a cast and a js-like shift for portability
return ((hi as u32 >>> 0) > (this.hi as u32 >>> 0)) || (hi == this.hi && (lo as u32 >>> 0) > (this.lo as u32 >>> 0)) ? -1 : 1;
}
neg(): void {
this.lo = ~this.lo;
this.hi = ~this.hi;
this.add32(1, 0);
}
clone(): U64 {
return new U64(this.lo, this.hi);
}
}

View File

@ -217,7 +217,7 @@ export function set_memory(dest: usize, c: u8, n: usize): void {
n -= k;
n &= -4;
var c32: u32 = (-1 / 255) * c;
var c32: u32 = <u32>-1 / 255 * c;
// fill head/tail up to 28 bytes each in preparation
store<u32>(dest, c32);

View File

@ -106,7 +106,7 @@ tests.forEach(filename => {
}, err => {
console.log();
if (err)
stderr.write(err + os.EOL);
stderr.write(err.stack + os.EOL);
// Instantiate
try {

View File

@ -3,8 +3,8 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\t\00\00\00a\00s\00s\00e\00r\00t\00.\00t\00s")
(data (i32.const 32) "\0c\00\00\00m\00u\00s\00t\00 \00b\00e\00 \00t\00r\00u\00e")
(data (i32.const 4) "\t\00\00\00a\00s\00s\00e\00r\00t\00.\00t\00s")
(data (i32.const 28) "\0c\00\00\00m\00u\00s\00t\00 \00b\00e\00 \00t\00r\00u\00e")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -18,8 +18,8 @@
(get_local $0)
(block
(call $abort
(i32.const 32)
(i32.const 8)
(i32.const 28)
(i32.const 4)
(i32.const 10)
(i32.const 5)
)

View File

@ -2,10 +2,10 @@
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $HEAP_BASE i32 (i32.const 60))
(global $HEAP_BASE i32 (i32.const 56))
(memory $0 1)
(data (i32.const 8) "\t\00\00\00a\00s\00s\00e\00r\00t\00.\00t\00s\00")
(data (i32.const 32) "\0c\00\00\00m\00u\00s\00t\00 \00b\00e\00 \00t\00r\00u\00e\00")
(data (i32.const 4) "\t\00\00\00a\00s\00s\00e\00r\00t\00.\00t\00s\00")
(data (i32.const 28) "\0c\00\00\00m\00u\00s\00t\00 \00b\00e\00 \00t\00r\00u\00e\00")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -19,7 +19,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 1)
(i32.const 0)
)
@ -35,7 +35,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 2)
(i32.const 0)
)
@ -55,7 +55,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 3)
(i32.const 0)
)
@ -72,7 +72,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 4)
(i32.const 0)
)
@ -92,7 +92,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -108,7 +108,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 6)
(i32.const 0)
)
@ -128,7 +128,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
@ -150,8 +150,8 @@
(block
(call $abort
;;@ assert.ts:10:18
(i32.const 32)
(i32.const 8)
(i32.const 28)
(i32.const 4)
(i32.const 10)
(i32.const 5)
)

View File

@ -11,7 +11,7 @@
(global $builtins/U (mut i64) (i64.const 0))
(global $builtins/s (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s")
(data (i32.const 4) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s")
(export "test" (func $builtins/test))
(export "memory" (memory $0))
(start $start)
@ -77,7 +77,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 19)
)
@ -104,7 +104,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 20)
)
@ -129,7 +129,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 20)
)
@ -174,7 +174,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 19)
)
@ -203,7 +203,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 40)
(i32.const 20)
)
@ -228,7 +228,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 41)
(i32.const 20)
)
@ -649,7 +649,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 222)
(i32.const 0)
)
@ -666,7 +666,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 223)
(i32.const 0)
)
@ -692,7 +692,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 224)
(i32.const 0)
)
@ -718,7 +718,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 225)
(i32.const 0)
)
@ -744,7 +744,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 226)
(i32.const 0)
)
@ -770,7 +770,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 227)
(i32.const 0)
)
@ -798,7 +798,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 228)
(i32.const 0)
)
@ -826,7 +826,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 229)
(i32.const 0)
)

View File

@ -2,9 +2,6 @@
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $v (func))
(type $I (func (result i64)))
(type $f (func (result f32)))
(type $F (func (result f64)))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $builtins/b (mut i32) (i32.const 0))
(global $builtins/i (mut i32) (i32.const 0))
@ -15,9 +12,9 @@
(global $builtins/u (mut i32) (i32.const 0))
(global $builtins/U (mut i64) (i64.const 0))
(global $builtins/s (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 36))
(global $HEAP_BASE i32 (i32.const 32))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00")
(data (i32.const 4) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00")
(export "test" (func $builtins/test))
(export "memory" (memory $0))
(start $start)
@ -74,11 +71,7 @@
(select
(tee_local $0
;;@ builtins.ts:12:9
(i32.sub
(i32.const 0)
;;@ builtins.ts:12:10
(i32.const 42)
)
(i32.const -42)
)
(i32.sub
(i32.const 0)
@ -174,11 +167,7 @@
(select
(tee_local $0
;;@ builtins.ts:21:13
(i32.sub
(i32.const 0)
;;@ builtins.ts:21:14
(i32.const 42)
)
(i32.const -42)
)
(i32.sub
(i32.const 0)
@ -203,7 +192,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 19)
)
@ -241,7 +230,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 20)
)
@ -279,7 +268,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 20)
)
@ -330,11 +319,7 @@
(select
(tee_local $2
;;@ builtins.ts:32:9
(i64.sub
(i64.const 0)
;;@ builtins.ts:32:10
(i64.const 42)
)
(i64.const -42)
)
(i64.sub
(i64.const 0)
@ -396,11 +381,7 @@
(select
(tee_local $2
;;@ builtins.ts:39:13
(i64.sub
(i64.const 0)
;;@ builtins.ts:39:14
(i64.const 42)
)
(i64.const -42)
)
(i64.sub
(i64.const 0)
@ -425,7 +406,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 19)
)
@ -463,7 +444,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 40)
(i32.const 20)
)
@ -501,7 +482,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 41)
(i32.const 20)
)
@ -1636,7 +1617,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 221)
(i32.const 0)
)
@ -1658,7 +1639,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 222)
(i32.const 0)
)
@ -1680,7 +1661,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 223)
(i32.const 0)
)
@ -1714,7 +1695,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 224)
(i32.const 0)
)
@ -1748,7 +1729,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 225)
(i32.const 0)
)
@ -1782,7 +1763,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 226)
(i32.const 0)
)
@ -1816,7 +1797,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 227)
(i32.const 0)
)
@ -1847,7 +1828,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 228)
(i32.const 0)
)
@ -1878,7 +1859,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 229)
(i32.const 0)
)
@ -1892,13 +1873,19 @@
(i32.eq
(i32.const -128)
;;@ builtins.ts:242:23
(i32.const -128)
(i32.shr_s
(i32.shl
(i32.const 128)
(i32.const 24)
)
(i32.const 24)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 242)
(i32.const 0)
)
@ -1918,7 +1905,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 243)
(i32.const 0)
)
@ -1932,13 +1919,19 @@
(i32.eq
(i32.const -32768)
;;@ builtins.ts:244:24
(i32.const -32768)
(i32.shr_s
(i32.shl
(i32.const 32768)
(i32.const 16)
)
(i32.const 16)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 244)
(i32.const 0)
)
@ -1958,7 +1951,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 245)
(i32.const 0)
)
@ -1972,13 +1965,15 @@
(i32.eq
(i32.const -2147483648)
;;@ builtins.ts:246:24
(i32.const -2147483648)
(i32.wrap/i64
(i64.const 2147483648)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 246)
(i32.const 0)
)
@ -1998,7 +1993,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 247)
(i32.const 0)
)
@ -2018,7 +2013,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 248)
(i32.const 0)
)
@ -2038,7 +2033,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 249)
(i32.const 0)
)
@ -2058,7 +2053,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 251)
(i32.const 0)
)
@ -2078,7 +2073,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 252)
(i32.const 0)
)
@ -2098,7 +2093,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 253)
(i32.const 0)
)
@ -2118,7 +2113,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 254)
(i32.const 0)
)
@ -2138,7 +2133,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 255)
(i32.const 0)
)
@ -2158,7 +2153,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 256)
(i32.const 0)
)
@ -2178,7 +2173,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 257)
(i32.const 0)
)
@ -2198,7 +2193,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 258)
(i32.const 0)
)
@ -2218,7 +2213,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 259)
(i32.const 0)
)
@ -2238,7 +2233,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 259)
(i32.const 29)
)
@ -2258,7 +2253,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 260)
(i32.const 0)
)
@ -2278,7 +2273,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 260)
(i32.const 29)
)
@ -2292,16 +2287,13 @@
(f32.eq
(f32.const -3402823466385288598117041e14)
;;@ builtins.ts:262:24
(f32.neg
;;@ builtins.ts:262:25
(f32.const 3402823466385288598117041e14)
)
(f32.const -3402823466385288598117041e14)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 262)
(i32.const 0)
)
@ -2321,7 +2313,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 263)
(i32.const 0)
)
@ -2335,16 +2327,13 @@
(f32.eq
(f32.const -16777215)
;;@ builtins.ts:264:31
(f32.neg
;;@ builtins.ts:264:32
(f32.const 16777215)
)
(f32.const -16777215)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 264)
(i32.const 0)
)
@ -2364,7 +2353,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 265)
(i32.const 0)
)
@ -2384,7 +2373,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 266)
(i32.const 0)
)
@ -2398,16 +2387,13 @@
(f64.eq
(f64.const -1797693134862315708145274e284)
;;@ builtins.ts:267:24
(f64.neg
;;@ builtins.ts:267:25
(f64.const 1797693134862315708145274e284)
)
(f64.const -1797693134862315708145274e284)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 267)
(i32.const 0)
)
@ -2427,7 +2413,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 268)
(i32.const 0)
)
@ -2441,16 +2427,13 @@
(f64.eq
(f64.const -9007199254740991)
;;@ builtins.ts:269:31
(f64.neg
;;@ builtins.ts:269:32
(f64.const 9007199254740991)
)
(f64.const -9007199254740991)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 269)
(i32.const 0)
)
@ -2470,7 +2453,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 270)
(i32.const 0)
)
@ -2490,7 +2473,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 271)
(i32.const 0)
)

View File

@ -7,7 +7,7 @@
(type $v (func))
(global $class/Animal.ONE (mut i32) (i32.const 1))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00c\00l\00a\00s\00s\00.\00t\00s")
(data (i32.const 4) "\08\00\00\00c\00l\00a\00s\00s\00.\00t\00s")
(export "test" (func $class/test))
(export "memory" (memory $0))
(start $start)

View File

@ -8,9 +8,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $class/Animal.ONE (mut i32) (i32.const 1))
(global $HEAP_BASE i32 (i32.const 28))
(global $HEAP_BASE i32 (i32.const 24))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00c\00l\00a\00s\00s\00.\00t\00s\00")
(data (i32.const 4) "\08\00\00\00c\00l\00a\00s\00s\00.\00t\00s\00")
(export "test" (func $class/test))
(export "memory" (memory $0))
(start $start)
@ -196,7 +196,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)

View File

@ -5,7 +5,7 @@
(global $comma/a (mut i32) (i32.const 0))
(global $comma/b (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00c\00o\00m\00m\00a\00.\00t\00s")
(data (i32.const 4) "\08\00\00\00c\00o\00m\00m\00a\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -31,7 +31,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 4)
(i32.const 0)
)
@ -43,7 +43,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -67,7 +67,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -82,7 +82,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -116,7 +116,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 14)
(i32.const 0)
)
@ -131,7 +131,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -160,7 +160,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -175,7 +175,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 19)
(i32.const 0)
)
@ -187,7 +187,7 @@
)
(loop $continue|0
(if
(i32.lt_u
(i32.lt_s
(get_local $0)
(get_global $comma/a)
)
@ -216,7 +216,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)

View File

@ -4,9 +4,9 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $comma/a (mut i32) (i32.const 0))
(global $comma/b (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 28))
(global $HEAP_BASE i32 (i32.const 24))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00c\00o\00m\00m\00a\00.\00t\00s\00")
(data (i32.const 4) "\08\00\00\00c\00o\00m\00m\00a\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -47,7 +47,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 4)
(i32.const 0)
)
@ -67,7 +67,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -101,7 +101,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -121,7 +121,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -167,7 +167,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 14)
(i32.const 0)
)
@ -187,7 +187,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -228,7 +228,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -248,7 +248,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 19)
(i32.const 0)
)
@ -265,7 +265,7 @@
(loop $continue|0
(if
;;@ comma.ts:21:16
(i32.lt_u
(i32.lt_s
(get_local $1)
;;@ comma.ts:21:20
(get_global $comma/a)
@ -307,7 +307,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)

View File

@ -7,7 +7,7 @@
(import "my" "externalFunction" (func $declare/my.externalFunction))
(import "my" "externalConstant" (global $declare/my.externalConstant i32))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s")
(data (i32.const 4) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $start (; 3 ;) (type $v)
@ -20,7 +20,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -36,7 +36,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)

View File

@ -6,9 +6,9 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(import "my" "externalFunction" (func $declare/my.externalFunction))
(import "my" "externalConstant" (global $declare/my.externalConstant i32))
(global $HEAP_BASE i32 (i32.const 32))
(global $HEAP_BASE i32 (i32.const 28))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00")
(data (i32.const 4) "\n\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $start (; 3 ;) (type $v)
@ -27,7 +27,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -49,7 +49,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)

View File

@ -6,7 +6,7 @@
(global $do/m (mut i32) (i32.const 0))
(global $do/o (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\05\00\00\00d\00o\00.\00t\00s")
(data (i32.const 4) "\05\00\00\00d\00o\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -33,7 +33,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
@ -48,7 +48,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -79,7 +79,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -127,7 +127,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 2)
)
@ -142,7 +142,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 2)
)
@ -158,7 +158,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 27)
(i32.const 0)
)
@ -173,7 +173,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -188,7 +188,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 29)
(i32.const 0)
)

View File

@ -5,9 +5,9 @@
(global $do/n (mut i32) (i32.const 10))
(global $do/m (mut i32) (i32.const 0))
(global $do/o (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 24))
(global $HEAP_BASE i32 (i32.const 20))
(memory $0 1)
(data (i32.const 8) "\05\00\00\00d\00o\00.\00t\00s\00")
(data (i32.const 4) "\05\00\00\00d\00o\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -51,7 +51,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
@ -71,7 +71,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -112,17 +112,13 @@
(i32.eq
(get_global $do/n)
;;@ do.ts:12:12
(i32.sub
(i32.const 0)
;;@ do.ts:12:13
(i32.const 1)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -197,7 +193,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 2)
)
@ -217,7 +213,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 2)
)
@ -244,7 +240,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 27)
(i32.const 0)
)
@ -264,7 +260,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -284,7 +280,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 29)
(i32.const 0)
)

View File

@ -5,7 +5,7 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\07\00\00\00f\00m\00o\00d\00.\00t\00s")
(data (i32.const 4) "\07\00\00\00f\00m\00o\00d\00.\00t\00s")
(export "fmod" (func $fmod/fmod))
(export "fmodf" (func $fmod/fmodf))
(export "memory" (memory $0))
@ -750,7 +750,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 65)
(i32.const 0)
)
@ -768,7 +768,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 66)
(i32.const 0)
)
@ -791,7 +791,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 67)
(i32.const 0)
)
@ -814,7 +814,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 68)
(i32.const 0)
)
@ -834,7 +834,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 134)
(i32.const 0)
)
@ -852,7 +852,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 135)
(i32.const 0)
)
@ -875,7 +875,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 136)
(i32.const 0)
)
@ -898,7 +898,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 137)
(i32.const 0)
)

View File

@ -20,7 +20,7 @@ export function fmod(x: f64, y: f64): f64 {
--ex;
ux <<= -ex + 1;
} else {
ux &= -1 >> 12;
ux &= <u64>-1 >> 12;
ux |= 1 << 52;
}
if (!ey) {
@ -28,7 +28,7 @@ export function fmod(x: f64, y: f64): f64 {
--ey;
uy <<= -ey + 1;
} else {
uy &= -1 >> 12;
uy &= <u64>-1 >> 12;
uy |= 1 << 52;
}
@ -89,7 +89,7 @@ export function fmodf(x: f32, y: f32): f32 {
--ex;
ux <<= -ex + 1;
} else {
ux &= -1 >> 9;
ux &= <u32>-1 >> 9;
ux |= 1 << 23;
}
if (!ey) {
@ -97,7 +97,7 @@ export function fmodf(x: f32, y: f32): f32 {
--ey;
uy <<= -ey + 1;
} else {
uy &= -1 >> 9;
uy &= <u32>-1 >> 9;
uy |= 1 << 23;
}

View File

@ -4,9 +4,9 @@
(type $fff (func (param f32 f32) (result f32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $HEAP_BASE i32 (i32.const 28))
(global $HEAP_BASE i32 (i32.const 24))
(memory $0 1)
(data (i32.const 8) "\07\00\00\00f\00m\00o\00d\00.\00t\00s\00")
(data (i32.const 4) "\07\00\00\00f\00m\00o\00d\00.\00t\00s\00")
(export "fmod" (func $fmod/fmod))
(export "fmodf" (func $fmod/fmodf))
(export "memory" (memory $0))
@ -278,12 +278,8 @@
(get_local $2)
;;@ fmod.ts:23:10
(i64.shr_u
(i64.sub
(i64.const 0)
;;@ fmod.ts:23:11
(i64.const 1)
)
;;@ fmod.ts:23:16
(i64.const -1)
;;@ fmod.ts:23:21
(i64.const 12)
)
)
@ -382,12 +378,8 @@
(get_local $3)
;;@ fmod.ts:31:10
(i64.shr_u
(i64.sub
(i64.const 0)
;;@ fmod.ts:31:11
(i64.const 1)
)
;;@ fmod.ts:31:16
(i64.const -1)
;;@ fmod.ts:31:21
(i64.const 12)
)
)
@ -908,12 +900,8 @@
(get_local $2)
;;@ fmod.ts:92:10
(i32.shr_u
(i32.sub
(i32.const 0)
;;@ fmod.ts:92:11
(i32.const 1)
)
;;@ fmod.ts:92:16
(i32.const -1)
;;@ fmod.ts:92:21
(i32.const 9)
)
)
@ -1010,12 +998,8 @@
(get_local $3)
;;@ fmod.ts:100:10
(i32.shr_u
(i32.sub
(i32.const 0)
;;@ fmod.ts:100:11
(i32.const 1)
)
;;@ fmod.ts:100:16
(i32.const -1)
;;@ fmod.ts:100:21
(i32.const 9)
)
)
@ -1292,7 +1276,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 65)
(i32.const 0)
)
@ -1317,7 +1301,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 66)
(i32.const 0)
)
@ -1346,7 +1330,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 67)
(i32.const 0)
)
@ -1375,7 +1359,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 68)
(i32.const 0)
)
@ -1402,7 +1386,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 134)
(i32.const 0)
)
@ -1427,7 +1411,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 135)
(i32.const 0)
)
@ -1456,7 +1440,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 136)
(i32.const 0)
)
@ -1485,7 +1469,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 137)
(i32.const 0)
)

View File

@ -4,7 +4,7 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $for/i (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\06\00\00\00f\00o\00r\00.\00t\00s")
(data (i32.const 4) "\06\00\00\00f\00o\00r\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -37,7 +37,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -83,7 +83,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)

View File

@ -3,9 +3,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $for/i (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 24))
(global $HEAP_BASE i32 (i32.const 20))
(memory $0 1)
(data (i32.const 8) "\06\00\00\00f\00o\00r\00.\00t\00s\00")
(data (i32.const 4) "\06\00\00\00f\00o\00r\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -56,7 +56,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -136,7 +136,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)

View File

@ -6,7 +6,7 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $getter-setter/Foo._bar (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\10\00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s")
(data (i32.const 4) "\10\00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $getter-setter/Foo.get:bar (; 1 ;) (type $i) (result i32)
@ -23,7 +23,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)
@ -41,7 +41,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -61,7 +61,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 0)
)

View File

@ -5,9 +5,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $getter-setter/Foo._bar (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 44))
(global $HEAP_BASE i32 (i32.const 40))
(memory $0 1)
(data (i32.const 8) "\10\00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s\00")
(data (i32.const 4) "\10\00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $getter-setter/Foo.get:bar (; 1 ;) (type $i) (result i32)
@ -38,7 +38,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)
@ -63,7 +63,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -89,7 +89,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 0)
)

View File

@ -4,7 +4,7 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\05\00\00\00i\00f\00.\00t\00s")
(data (i32.const 4) "\05\00\00\00i\00f\00.\00t\00s")
(export "ifThenElse" (func $if/ifThenElse))
(export "ifThen" (func $if/ifThen))
(export "ifThenElseBlock" (func $if/ifThenElse))
@ -44,7 +44,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -61,7 +61,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -75,7 +75,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -92,7 +92,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -106,7 +106,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 30)
(i32.const 0)
)
@ -123,7 +123,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)

View File

@ -3,9 +3,9 @@
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $HEAP_BASE i32 (i32.const 24))
(global $HEAP_BASE i32 (i32.const 20))
(memory $0 1)
(data (i32.const 8) "\05\00\00\00i\00f\00.\00t\00s\00")
(data (i32.const 4) "\05\00\00\00i\00f\00.\00t\00s\00")
(export "ifThenElse" (func $if/ifThenElse))
(export "ifThen" (func $if/ifThen))
(export "ifThenElseBlock" (func $if/ifThenElseBlock))
@ -97,7 +97,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -120,7 +120,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -143,7 +143,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -166,7 +166,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -189,7 +189,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 30)
(i32.const 0)
)
@ -212,7 +212,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)

View File

@ -47,7 +47,7 @@
)
(loop $continue|0
(if
(i32.lt_u
(i32.lt_s
(get_local $0)
(get_local $1)
)

View File

@ -141,7 +141,7 @@
(loop $continue|0
(if
;;@ infer-type.ts:44:24
(i32.lt_u
(i32.lt_s
(get_local $0)
;;@ infer-type.ts:44:28
(get_local $1)

View File

@ -4,7 +4,7 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s")
(data (i32.const 4) "\0b\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s")
(export "test" (func $inlining/test))
(export "memory" (memory $0))
(start $start)
@ -20,7 +20,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)

View File

@ -4,9 +4,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $inlining/constantGlobal i32 (i32.const 1))
(global $HEAP_BASE i32 (i32.const 36))
(global $HEAP_BASE i32 (i32.const 32))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 4) "\0b\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00")
(export "test" (func $inlining/test))
(export "memory" (memory $0))
(start $start)
@ -37,7 +37,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)

View File

@ -1,8 +1,5 @@
(module
(type $i (func (result i32)))
(type $I (func (result i64)))
(type $f (func (result f32)))
(type $F (func (result f64)))
(type $v (func))
(global $HEAP_BASE i32 (i32.const 4))
(memory $0 1)

View File

@ -7,7 +7,7 @@
(global $logical/f (mut f32) (f32.const 0))
(global $logical/F (mut f64) (f64.const 0))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s")
(data (i32.const 4) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -41,7 +41,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -59,7 +59,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -77,7 +77,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -95,7 +95,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -113,7 +113,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -131,7 +131,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -149,7 +149,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 0)
)
@ -167,7 +167,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 0)
)

View File

@ -6,9 +6,9 @@
(global $logical/I (mut i64) (i64.const 0))
(global $logical/f (mut f32) (f32.const 0))
(global $logical/F (mut f64) (f64.const 0))
(global $HEAP_BASE i32 (i32.const 32))
(global $HEAP_BASE i32 (i32.const 28))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00")
(data (i32.const 4) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -132,7 +132,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -165,7 +165,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -198,7 +198,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -231,7 +231,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -264,7 +264,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -297,7 +297,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -330,7 +330,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 0)
)
@ -363,7 +363,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 0)
)

View File

@ -5,7 +5,7 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $memcpy/dest (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s")
(data (i32.const 4) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s")
(export "memcpy" (func $memcpy/memcpy))
(export "memory" (memory $0))
(start $start)
@ -1624,7 +1624,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 151)
(i32.const 0)
)
@ -1641,7 +1641,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 152)
(i32.const 0)
)
@ -1663,7 +1663,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 155)
(i32.const 0)
)
@ -1680,7 +1680,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 156)
(i32.const 0)
)
@ -1697,7 +1697,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 157)
(i32.const 0)
)
@ -1714,7 +1714,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 158)
(i32.const 0)
)
@ -1731,7 +1731,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 159)
(i32.const 0)
)
@ -1755,7 +1755,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 162)
(i32.const 0)
)
@ -1779,7 +1779,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 165)
(i32.const 0)
)
@ -1796,7 +1796,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 166)
(i32.const 0)
)
@ -1813,7 +1813,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 167)
(i32.const 0)
)
@ -1830,7 +1830,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 168)
(i32.const 0)
)

View File

@ -5,9 +5,9 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $memcpy/base i32 (i32.const 8))
(global $memcpy/dest (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 32))
(global $HEAP_BASE i32 (i32.const 28))
(memory $0 1)
(data (i32.const 8) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00")
(data (i32.const 4) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00")
(export "memcpy" (func $memcpy/memcpy))
(export "memory" (memory $0))
(start $start)
@ -2346,7 +2346,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 151)
(i32.const 0)
)
@ -2369,7 +2369,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 152)
(i32.const 0)
)
@ -2401,7 +2401,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 155)
(i32.const 0)
)
@ -2424,7 +2424,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 156)
(i32.const 0)
)
@ -2451,7 +2451,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 157)
(i32.const 0)
)
@ -2478,7 +2478,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 158)
(i32.const 0)
)
@ -2505,7 +2505,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 159)
(i32.const 0)
)
@ -2548,7 +2548,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 162)
(i32.const 0)
)
@ -2591,7 +2591,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 165)
(i32.const 0)
)
@ -2618,7 +2618,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 166)
(i32.const 0)
)
@ -2645,7 +2645,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 167)
(i32.const 0)
)
@ -2672,7 +2672,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 168)
(i32.const 0)
)

View File

@ -5,7 +5,7 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $memmove/dest (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s")
(data (i32.const 4) "\n\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $memmove/memmove (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
@ -309,7 +309,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 55)
(i32.const 0)
)
@ -326,7 +326,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 56)
(i32.const 0)
)
@ -348,7 +348,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 59)
(i32.const 0)
)
@ -365,7 +365,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 60)
(i32.const 0)
)
@ -382,7 +382,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 61)
(i32.const 0)
)
@ -399,7 +399,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 62)
(i32.const 0)
)
@ -416,7 +416,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 63)
(i32.const 0)
)
@ -440,7 +440,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 66)
(i32.const 0)
)
@ -464,7 +464,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 69)
(i32.const 0)
)
@ -481,7 +481,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 70)
(i32.const 0)
)
@ -498,7 +498,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 71)
(i32.const 0)
)
@ -515,7 +515,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 72)
(i32.const 0)
)

View File

@ -5,9 +5,9 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $memmove/base i32 (i32.const 8))
(global $memmove/dest (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 32))
(global $HEAP_BASE i32 (i32.const 28))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s\00")
(data (i32.const 4) "\n\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $memmove/memmove (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
@ -484,7 +484,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 55)
(i32.const 0)
)
@ -507,7 +507,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 56)
(i32.const 0)
)
@ -539,7 +539,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 59)
(i32.const 0)
)
@ -562,7 +562,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 60)
(i32.const 0)
)
@ -589,7 +589,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 61)
(i32.const 0)
)
@ -616,7 +616,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 62)
(i32.const 0)
)
@ -643,7 +643,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 63)
(i32.const 0)
)
@ -686,7 +686,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 66)
(i32.const 0)
)
@ -729,7 +729,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 69)
(i32.const 0)
)
@ -756,7 +756,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 70)
(i32.const 0)
)
@ -783,7 +783,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 71)
(i32.const 0)
)
@ -810,7 +810,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 72)
(i32.const 0)
)

View File

@ -4,9 +4,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $memset/dest (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 32))
(global $HEAP_BASE i32 (i32.const 28))
(memory $0 1)
(data (i32.const 8) "\t\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s")
(data (i32.const 4) "\t\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $memset/memset (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
@ -367,7 +367,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 72)
(i32.const 0)
)
@ -387,7 +387,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 73)
(i32.const 0)
)
@ -414,7 +414,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 77)
(i32.const 0)
)
@ -434,7 +434,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 78)
(i32.const 0)
)
@ -454,7 +454,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 79)
(i32.const 0)
)
@ -474,7 +474,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 80)
(i32.const 0)
)

View File

@ -26,7 +26,7 @@ function memset(dest: usize, c: u8, n: usize): usize {
n -= k;
n &= -4;
var c32: u32 = -1 / 255 * c;
var c32: u32 = <u32>-1 / 255 * c;
// fill head/tail up to 28 bytes each in preparation
store<u32>(dest, c32);

View File

@ -4,9 +4,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $memset/dest (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 32))
(global $HEAP_BASE i32 (i32.const 28))
(memory $0 1)
(data (i32.const 8) "\t\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s\00")
(data (i32.const 4) "\t\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $memset/memset (; 1 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
@ -204,11 +204,7 @@
(i32.and
(get_local $2)
;;@ memset.ts:27:7
(i32.sub
(i32.const 0)
;;@ memset.ts:27:8
(i32.const 4)
)
(i32.const -4)
)
)
;;@ memset.ts:29:2
@ -216,15 +212,11 @@
;;@ memset.ts:29:17
(i32.mul
(i32.div_u
(i32.sub
(i32.const 0)
;;@ memset.ts:29:18
(i32.const 1)
)
;;@ memset.ts:29:22
(i32.const -1)
;;@ memset.ts:29:27
(i32.const 255)
)
;;@ memset.ts:29:28
;;@ memset.ts:29:33
(get_local $1)
)
)
@ -591,7 +583,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 72)
(i32.const 0)
)
@ -618,7 +610,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 73)
(i32.const 0)
)
@ -656,7 +648,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 77)
(i32.const 0)
)
@ -683,7 +675,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 78)
(i32.const 0)
)
@ -710,7 +702,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 79)
(i32.const 0)
)
@ -737,7 +729,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 80)
(i32.const 0)
)

View File

@ -9,7 +9,7 @@
(global $overflow/badIncrementer (mut i32) (i32.const 1))
(global $overflow/valueU8 (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s")
(data (i32.const 4) "\0b\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $overflow/local (; 1 ;) (type $v)
@ -36,7 +36,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 2)
)
@ -59,7 +59,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -80,7 +80,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 0)
)
@ -105,7 +105,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 32)
(i32.const 0)
)
@ -138,7 +138,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 43)
(i32.const 0)
)
@ -165,7 +165,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 46)
(i32.const 0)
)
@ -177,7 +177,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 47)
(i32.const 0)
)

View File

@ -8,9 +8,9 @@
(global $overflow/anotherBadByte (mut i32) (i32.const 255))
(global $overflow/badIncrementer (mut i32) (i32.const 1))
(global $overflow/valueU8 (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 36))
(global $HEAP_BASE i32 (i32.const 32))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s\00")
(data (i32.const 4) "\0b\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $overflow/local (; 1 ;) (type $v)
@ -46,7 +46,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 2)
)
@ -87,7 +87,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 2)
)
@ -136,7 +136,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 2)
)
@ -169,7 +169,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -200,7 +200,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 0)
)
@ -237,7 +237,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 32)
(i32.const 0)
)
@ -291,7 +291,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 43)
(i32.const 0)
)
@ -333,7 +333,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 46)
(i32.const 0)
)
@ -353,7 +353,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 47)
(i32.const 0)
)

View File

@ -6,7 +6,7 @@
(global $retain-i32/si (mut i32) (i32.const 0))
(global $retain-i32/ui (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s")
(data (i32.const 4) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $retain-i32/test (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32)
@ -42,7 +42,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 4)
(i32.const 2)
)
@ -81,7 +81,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 2)
)
@ -120,7 +120,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 6)
(i32.const 2)
)
@ -159,7 +159,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 2)
)
@ -198,7 +198,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 2)
)
@ -237,7 +237,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 2)
)
@ -276,7 +276,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 2)
)
@ -309,7 +309,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 2)
)
@ -342,7 +342,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 14)
(i32.const 2)
)
@ -375,7 +375,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 2)
)
@ -405,7 +405,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 2)
)
@ -435,7 +435,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 2)
)
@ -465,7 +465,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 2)
)
@ -498,7 +498,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 19)
(i32.const 2)
)
@ -679,7 +679,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 78)
(i32.const 0)
)
@ -697,7 +697,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 81)
(i32.const 0)
)
@ -715,7 +715,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 84)
(i32.const 0)
)
@ -733,7 +733,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 87)
(i32.const 0)
)
@ -751,7 +751,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 90)
(i32.const 0)
)
@ -769,7 +769,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 93)
(i32.const 0)
)
@ -787,7 +787,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 96)
(i32.const 0)
)
@ -805,7 +805,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 99)
(i32.const 0)
)
@ -823,7 +823,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 102)
(i32.const 0)
)
@ -838,7 +838,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 105)
(i32.const 0)
)
@ -856,7 +856,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 108)
(i32.const 0)
)
@ -874,7 +874,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 113)
(i32.const 0)
)
@ -892,7 +892,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 116)
(i32.const 0)
)
@ -910,7 +910,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 119)
(i32.const 0)
)
@ -928,7 +928,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 122)
(i32.const 0)
)
@ -946,7 +946,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 125)
(i32.const 0)
)
@ -964,7 +964,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 128)
(i32.const 0)
)
@ -979,7 +979,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 131)
(i32.const 0)
)

View File

@ -1,14 +1,13 @@
(module
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $iiv (func (param i32 i32)))
(type $i (func (result i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $retain-i32/si (mut i32) (i32.const 0))
(global $retain-i32/ui (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 40))
(global $HEAP_BASE i32 (i32.const 36))
(memory $0 1)
(data (i32.const 8) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00")
(data (i32.const 4) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $retain-i32/test (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32)
@ -59,7 +58,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 4)
(i32.const 2)
)
@ -113,7 +112,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 2)
)
@ -167,7 +166,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 6)
(i32.const 2)
)
@ -221,7 +220,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 2)
)
@ -275,7 +274,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 2)
)
@ -329,7 +328,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 2)
)
@ -383,7 +382,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 2)
)
@ -425,7 +424,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 2)
)
@ -467,7 +466,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 14)
(i32.const 2)
)
@ -509,7 +508,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 2)
)
@ -551,7 +550,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 2)
)
@ -593,7 +592,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 2)
)
@ -635,7 +634,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 2)
)
@ -677,7 +676,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 19)
(i32.const 2)
)
@ -718,11 +717,7 @@
;;@ retain-i32.ts:29:0
(call $retain-i32/test
;;@ retain-i32.ts:29:5
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:29:6
(i32.const 1)
)
(i32.const -1)
;;@ retain-i32.ts:29:9
(i32.const 127)
)
@ -731,11 +726,7 @@
;;@ retain-i32.ts:30:5
(i32.const 127)
;;@ retain-i32.ts:30:19
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:30:20
(i32.const 1)
)
(i32.const -1)
)
;;@ retain-i32.ts:32:0
(call $retain-i32/test
@ -768,11 +759,7 @@
;;@ retain-i32.ts:38:0
(call $retain-i32/test
;;@ retain-i32.ts:38:5
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:38:6
(i32.const 1)
)
(i32.const -1)
;;@ retain-i32.ts:38:9
(i32.const -128)
)
@ -781,11 +768,7 @@
;;@ retain-i32.ts:39:5
(i32.const -128)
;;@ retain-i32.ts:39:19
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:39:20
(i32.const 1)
)
(i32.const -1)
)
;;@ retain-i32.ts:41:0
(call $retain-i32/test
@ -846,11 +829,7 @@
;;@ retain-i32.ts:53:0
(call $retain-i32/test
;;@ retain-i32.ts:53:5
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:53:6
(i32.const 1)
)
(i32.const -1)
;;@ retain-i32.ts:53:9
(i32.const 255)
)
@ -859,11 +838,7 @@
;;@ retain-i32.ts:54:5
(i32.const 255)
;;@ retain-i32.ts:54:19
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:54:20
(i32.const 1)
)
(i32.const -1)
)
;;@ retain-i32.ts:56:0
(call $retain-i32/test
@ -906,11 +881,7 @@
;;@ retain-i32.ts:62:2
(call $retain-i32/test
;;@ retain-i32.ts:62:7
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:62:8
(i32.const 1)
)
(i32.const -1)
;;@ retain-i32.ts:62:11
(get_local $0)
)
@ -1017,23 +988,13 @@
(i32.eq
(get_global $retain-i32/si)
;;@ retain-i32.ts:78:13
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:78:14
(i32.const 1)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 78)
(i32.const 0)
)
@ -1066,23 +1027,13 @@
(i32.eq
(get_global $retain-i32/si)
;;@ retain-i32.ts:81:13
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:81:14
(i32.const 1)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 81)
(i32.const 0)
)
@ -1111,23 +1062,13 @@
(i32.eq
(get_global $retain-i32/si)
;;@ retain-i32.ts:84:13
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:84:14
(i32.const 2)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -2)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 84)
(i32.const 0)
)
@ -1142,17 +1083,7 @@
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:86:6
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:86:8
(i32.const -128)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -128)
)
(i32.const 24)
)
@ -1166,23 +1097,13 @@
(i32.eq
(get_global $retain-i32/si)
;;@ retain-i32.ts:87:13
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:87:14
(i32.const -128)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -128)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 87)
(i32.const 0)
)
@ -1195,17 +1116,9 @@
(i32.shr_s
(i32.shl
(i32.mul
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:89:6
(i32.const -128)
)
(i32.const -128)
;;@ retain-i32.ts:89:12
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:89:13
(i32.const 1)
)
(i32.const -1)
)
(i32.const 24)
)
@ -1219,23 +1132,13 @@
(i32.eq
(get_global $retain-i32/si)
;;@ retain-i32.ts:90:13
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:90:14
(i32.const -128)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -128)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 90)
(i32.const 0)
)
@ -1250,17 +1153,7 @@
(i32.div_s
(i32.const 127)
;;@ retain-i32.ts:92:11
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:92:12
(i32.const 1)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -1)
)
(i32.const 24)
)
@ -1274,23 +1167,13 @@
(i32.eq
(get_global $retain-i32/si)
;;@ retain-i32.ts:93:13
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:93:14
(i32.const 127)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -127)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 93)
(i32.const 0)
)
@ -1303,29 +1186,9 @@
(i32.shr_s
(i32.shl
(i32.div_s
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:95:6
(i32.const -128)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -128)
;;@ retain-i32.ts:95:12
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:95:13
(i32.const 1)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -1)
)
(i32.const 24)
)
@ -1339,23 +1202,13 @@
(i32.eq
(get_global $retain-i32/si)
;;@ retain-i32.ts:96:13
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:96:14
(i32.const -128)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -128)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 96)
(i32.const 0)
)
@ -1384,7 +1237,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 99)
(i32.const 0)
)
@ -1413,7 +1266,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 102)
(i32.const 0)
)
@ -1424,17 +1277,7 @@
(set_global $retain-i32/si
;;@ retain-i32.ts:104:5
(i32.rem_s
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:104:6
(i32.const -128)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -128)
;;@ retain-i32.ts:104:12
(i32.const 2)
)
@ -1452,7 +1295,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 105)
(i32.const 0)
)
@ -1465,17 +1308,7 @@
(i32.rem_s
(i32.const 1)
;;@ retain-i32.ts:107:9
(i32.shr_s
(i32.shl
(i32.sub
(i32.const 0)
;;@ retain-i32.ts:107:10
(i32.const -128)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const -128)
)
)
;;@ retain-i32.ts:108:0
@ -1491,7 +1324,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 108)
(i32.const 0)
)
@ -1527,7 +1360,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 113)
(i32.const 0)
)
@ -1563,7 +1396,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 116)
(i32.const 0)
)
@ -1595,7 +1428,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 119)
(i32.const 0)
)
@ -1627,7 +1460,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 122)
(i32.const 0)
)
@ -1659,7 +1492,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 125)
(i32.const 0)
)
@ -1688,7 +1521,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 128)
(i32.const 0)
)
@ -1717,7 +1550,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 131)
(i32.const 0)
)

View File

@ -44,11 +44,11 @@
(global $showcase/aClassInstance (mut i32) (i32.const 8))
(global $showcase/AClass.aStaticField (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s")
(data (i32.const 32) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s")
(data (i32.const 64) "\0b\00\00\00s\00h\00o\00w\00c\00a\00s\00e\00.\00t\00s")
(data (i32.const 96) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s")
(data (i32.const 120) "\07\00\00\00f\00m\00o\00d\00.\00t\00s")
(data (i32.const 4) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s")
(data (i32.const 28) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s")
(data (i32.const 56) "\0b\00\00\00s\00h\00o\00w\00c\00a\00s\00e\00.\00t\00s")
(data (i32.const 84) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s")
(data (i32.const 108) "\07\00\00\00f\00m\00o\00d\00.\00t\00s")
(export "anExportedConstantGlobal" (global $showcase/anExportedConstantGlobal))
(export "aConstantGlobal" (global $showcase/aConstantGlobal))
(export "anAliasedConstantGlobal" (global $showcase/anExportedConstantGlobal))
@ -3330,7 +3330,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -3348,7 +3348,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -3366,7 +3366,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -3384,7 +3384,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -3402,7 +3402,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -3420,7 +3420,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -3438,7 +3438,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 0)
)
@ -3456,7 +3456,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 0)
)
@ -3515,7 +3515,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 21)
(i32.const 19)
)
@ -3542,7 +3542,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 22)
(i32.const 20)
)
@ -3567,7 +3567,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 23)
(i32.const 20)
)
@ -3612,7 +3612,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 39)
(i32.const 19)
)
@ -3641,7 +3641,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 40)
(i32.const 20)
)
@ -3666,7 +3666,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 41)
(i32.const 20)
)
@ -4087,7 +4087,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 222)
(i32.const 0)
)
@ -4104,7 +4104,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 223)
(i32.const 0)
)
@ -4130,7 +4130,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 224)
(i32.const 0)
)
@ -4156,7 +4156,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 225)
(i32.const 0)
)
@ -4182,7 +4182,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 226)
(i32.const 0)
)
@ -4208,7 +4208,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 227)
(i32.const 0)
)
@ -4236,7 +4236,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 228)
(i32.const 0)
)
@ -4264,7 +4264,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 229)
(i32.const 0)
)
@ -4281,7 +4281,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 42)
(i32.const 0)
)
@ -4305,7 +4305,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 58)
(i32.const 0)
)
@ -4320,7 +4320,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 59)
(i32.const 0)
)
@ -4376,7 +4376,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 151)
(i32.const 0)
)
@ -4393,7 +4393,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 152)
(i32.const 0)
)
@ -4415,7 +4415,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 155)
(i32.const 0)
)
@ -4432,7 +4432,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 156)
(i32.const 0)
)
@ -4449,7 +4449,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 157)
(i32.const 0)
)
@ -4466,7 +4466,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 158)
(i32.const 0)
)
@ -4483,7 +4483,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 159)
(i32.const 0)
)
@ -4507,7 +4507,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 162)
(i32.const 0)
)
@ -4531,7 +4531,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 165)
(i32.const 0)
)
@ -4548,7 +4548,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 166)
(i32.const 0)
)
@ -4565,7 +4565,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 167)
(i32.const 0)
)
@ -4582,7 +4582,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 168)
(i32.const 0)
)
@ -4602,7 +4602,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 65)
(i32.const 0)
)
@ -4620,7 +4620,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 66)
(i32.const 0)
)
@ -4643,7 +4643,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 67)
(i32.const 0)
)
@ -4666,7 +4666,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 68)
(i32.const 0)
)
@ -4686,7 +4686,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 134)
(i32.const 0)
)
@ -4704,7 +4704,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 135)
(i32.const 0)
)
@ -4727,7 +4727,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 136)
(i32.const 0)
)
@ -4750,7 +4750,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 137)
(i32.const 0)
)
@ -4775,7 +4775,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 104)
(i32.const 0)
)
@ -4792,7 +4792,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 105)
(i32.const 0)
)
@ -4813,7 +4813,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 108)
(i32.const 0)
)
@ -4831,7 +4831,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 111)
(i32.const 0)
)

View File

@ -1,9 +1,6 @@
(module
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $I (func (result i64)))
(type $f (func (result f32)))
(type $F (func (result f64)))
(type $ii (func (param i32) (result i32)))
(type $iii (func (param i32 i32) (result i32)))
(type $fff (func (param f32 f32) (result f32)))
@ -53,13 +50,13 @@
(global $memcpy/dest (mut i32) (i32.const 0))
(global $showcase/aClassInstance (mut i32) (i32.const 8))
(global $showcase/AClass.aStaticField (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 140))
(global $HEAP_BASE i32 (i32.const 128))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00")
(data (i32.const 32) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00")
(data (i32.const 64) "\0b\00\00\00s\00h\00o\00w\00c\00a\00s\00e\00.\00t\00s\00")
(data (i32.const 96) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00")
(data (i32.const 120) "\07\00\00\00f\00m\00o\00d\00.\00t\00s\00")
(data (i32.const 4) "\n\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00")
(data (i32.const 28) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00")
(data (i32.const 56) "\0b\00\00\00s\00h\00o\00w\00c\00a\00s\00e\00.\00t\00s\00")
(data (i32.const 84) "\t\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00")
(data (i32.const 108) "\07\00\00\00f\00m\00o\00d\00.\00t\00s\00")
(export "anExportedConstantGlobal" (global $showcase/anExportedConstantGlobal))
(export "aConstantGlobal" (global $showcase/aConstantGlobal))
(export "anAliasedConstantGlobal" (global $showcase/anExportedConstantGlobal))
@ -2635,12 +2632,8 @@
(get_local $2)
;;@ fmod.ts:23:10
(i64.shr_u
(i64.sub
(i64.const 0)
;;@ fmod.ts:23:11
(i64.const 1)
)
;;@ fmod.ts:23:16
(i64.const -1)
;;@ fmod.ts:23:21
(i64.const 12)
)
)
@ -2739,12 +2732,8 @@
(get_local $3)
;;@ fmod.ts:31:10
(i64.shr_u
(i64.sub
(i64.const 0)
;;@ fmod.ts:31:11
(i64.const 1)
)
;;@ fmod.ts:31:16
(i64.const -1)
;;@ fmod.ts:31:21
(i64.const 12)
)
)
@ -3265,12 +3254,8 @@
(get_local $2)
;;@ fmod.ts:92:10
(i32.shr_u
(i32.sub
(i32.const 0)
;;@ fmod.ts:92:11
(i32.const 1)
)
;;@ fmod.ts:92:16
(i32.const -1)
;;@ fmod.ts:92:21
(i32.const 9)
)
)
@ -3367,12 +3352,8 @@
(get_local $3)
;;@ fmod.ts:100:10
(i32.shr_u
(i32.sub
(i32.const 0)
;;@ fmod.ts:100:11
(i32.const 1)
)
;;@ fmod.ts:100:16
(i32.const -1)
;;@ fmod.ts:100:21
(i32.const 9)
)
)
@ -3657,11 +3638,7 @@
)
;;@ unary.ts:2:0
(drop
(i32.sub
(i32.const 0)
;;@ unary.ts:2:1
(i32.const 1)
)
(i32.const -1)
)
;;@ unary.ts:3:0
(drop
@ -3685,10 +3662,7 @@
)
;;@ unary.ts:6:0
(drop
(f64.neg
;;@ unary.ts:6:1
(f64.const 1.25)
)
(f64.const -1.25)
)
;;@ unary.ts:7:0
(drop
@ -3764,11 +3738,7 @@
;;@ unary.ts:21:0
(set_global $unary/i
;;@ unary.ts:21:4
(i32.sub
(i32.const 0)
;;@ unary.ts:21:5
(i32.const 1)
)
(i32.const -1)
)
;;@ unary.ts:22:0
(set_global $unary/i
@ -3944,11 +3914,7 @@
;;@ unary.ts:45:0
(set_global $unary/I
;;@ unary.ts:45:4
(i64.sub
(i64.const 0)
;;@ unary.ts:45:5
(i64.const 1)
)
(i64.const -1)
)
;;@ unary.ts:46:0
(set_global $unary/I
@ -4120,10 +4086,7 @@
;;@ unary.ts:68:0
(set_global $unary/f
;;@ unary.ts:68:4
(f32.neg
;;@ unary.ts:68:5
(f32.const 1.25)
)
(f32.const -1.25)
)
;;@ unary.ts:69:0
(set_global $unary/i
@ -4274,10 +4237,7 @@
;;@ unary.ts:89:0
(set_global $unary/F
;;@ unary.ts:89:4
(f64.neg
;;@ unary.ts:89:5
(f64.const 1.25)
)
(f64.const -1.25)
)
;;@ unary.ts:90:0
(set_global $unary/I
@ -5618,7 +5578,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -5651,7 +5611,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -5684,7 +5644,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -5717,7 +5677,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -5750,7 +5710,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -5783,7 +5743,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -5816,7 +5776,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 0)
)
@ -5849,7 +5809,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 0)
)
@ -5900,11 +5860,7 @@
(select
(tee_local $0
;;@ builtins.ts:12:9
(i32.sub
(i32.const 0)
;;@ builtins.ts:12:10
(i32.const 42)
)
(i32.const -42)
)
(i32.sub
(i32.const 0)
@ -6000,11 +5956,7 @@
(select
(tee_local $0
;;@ builtins.ts:21:13
(i32.sub
(i32.const 0)
;;@ builtins.ts:21:14
(i32.const 42)
)
(i32.const -42)
)
(i32.sub
(i32.const 0)
@ -6029,7 +5981,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 21)
(i32.const 19)
)
@ -6067,7 +6019,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 22)
(i32.const 20)
)
@ -6105,7 +6057,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 23)
(i32.const 20)
)
@ -6156,11 +6108,7 @@
(select
(tee_local $1
;;@ builtins.ts:32:9
(i64.sub
(i64.const 0)
;;@ builtins.ts:32:10
(i64.const 42)
)
(i64.const -42)
)
(i64.sub
(i64.const 0)
@ -6222,11 +6170,7 @@
(select
(tee_local $1
;;@ builtins.ts:39:13
(i64.sub
(i64.const 0)
;;@ builtins.ts:39:14
(i64.const 42)
)
(i64.const -42)
)
(i64.sub
(i64.const 0)
@ -6251,7 +6195,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 39)
(i32.const 19)
)
@ -6289,7 +6233,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 40)
(i32.const 20)
)
@ -6327,7 +6271,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 41)
(i32.const 20)
)
@ -7462,7 +7406,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 221)
(i32.const 0)
)
@ -7484,7 +7428,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 222)
(i32.const 0)
)
@ -7506,7 +7450,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 223)
(i32.const 0)
)
@ -7540,7 +7484,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 224)
(i32.const 0)
)
@ -7574,7 +7518,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 225)
(i32.const 0)
)
@ -7608,7 +7552,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 226)
(i32.const 0)
)
@ -7642,7 +7586,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 227)
(i32.const 0)
)
@ -7673,7 +7617,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 228)
(i32.const 0)
)
@ -7704,7 +7648,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 229)
(i32.const 0)
)
@ -7718,13 +7662,19 @@
(i32.eq
(i32.const -128)
;;@ builtins.ts:242:23
(i32.const -128)
(i32.shr_s
(i32.shl
(i32.const 128)
(i32.const 24)
)
(i32.const 24)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 242)
(i32.const 0)
)
@ -7744,7 +7694,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 243)
(i32.const 0)
)
@ -7758,13 +7708,19 @@
(i32.eq
(i32.const -32768)
;;@ builtins.ts:244:24
(i32.const -32768)
(i32.shr_s
(i32.shl
(i32.const 32768)
(i32.const 16)
)
(i32.const 16)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 244)
(i32.const 0)
)
@ -7784,7 +7740,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 245)
(i32.const 0)
)
@ -7798,13 +7754,15 @@
(i32.eq
(i32.const -2147483648)
;;@ builtins.ts:246:24
(i32.const -2147483648)
(i32.wrap/i64
(i64.const 2147483648)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 246)
(i32.const 0)
)
@ -7824,7 +7782,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 247)
(i32.const 0)
)
@ -7844,7 +7802,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 248)
(i32.const 0)
)
@ -7864,7 +7822,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 249)
(i32.const 0)
)
@ -7884,7 +7842,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 251)
(i32.const 0)
)
@ -7904,7 +7862,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 252)
(i32.const 0)
)
@ -7924,7 +7882,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 253)
(i32.const 0)
)
@ -7944,7 +7902,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 254)
(i32.const 0)
)
@ -7964,7 +7922,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 255)
(i32.const 0)
)
@ -7984,7 +7942,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 256)
(i32.const 0)
)
@ -8004,7 +7962,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 257)
(i32.const 0)
)
@ -8024,7 +7982,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 258)
(i32.const 0)
)
@ -8044,7 +8002,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 259)
(i32.const 0)
)
@ -8064,7 +8022,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 259)
(i32.const 29)
)
@ -8084,7 +8042,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 260)
(i32.const 0)
)
@ -8104,7 +8062,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 260)
(i32.const 29)
)
@ -8118,16 +8076,13 @@
(f32.eq
(f32.const -3402823466385288598117041e14)
;;@ builtins.ts:262:24
(f32.neg
;;@ builtins.ts:262:25
(f32.const 3402823466385288598117041e14)
)
(f32.const -3402823466385288598117041e14)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 262)
(i32.const 0)
)
@ -8147,7 +8102,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 263)
(i32.const 0)
)
@ -8161,16 +8116,13 @@
(f32.eq
(f32.const -16777215)
;;@ builtins.ts:264:31
(f32.neg
;;@ builtins.ts:264:32
(f32.const 16777215)
)
(f32.const -16777215)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 264)
(i32.const 0)
)
@ -8190,7 +8142,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 265)
(i32.const 0)
)
@ -8210,7 +8162,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 266)
(i32.const 0)
)
@ -8224,16 +8176,13 @@
(f64.eq
(f64.const -1797693134862315708145274e284)
;;@ builtins.ts:267:24
(f64.neg
;;@ builtins.ts:267:25
(f64.const 1797693134862315708145274e284)
)
(f64.const -1797693134862315708145274e284)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 267)
(i32.const 0)
)
@ -8253,7 +8202,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 268)
(i32.const 0)
)
@ -8267,16 +8216,13 @@
(f64.eq
(f64.const -9007199254740991)
;;@ builtins.ts:269:31
(f64.neg
;;@ builtins.ts:269:32
(f64.const 9007199254740991)
)
(f64.const -9007199254740991)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 269)
(i32.const 0)
)
@ -8296,7 +8242,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 270)
(i32.const 0)
)
@ -8316,7 +8262,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 271)
(i32.const 0)
)
@ -8340,7 +8286,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 42)
(i32.const 0)
)
@ -8370,7 +8316,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 54)
(i32.const 0)
)
@ -8390,7 +8336,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 55)
(i32.const 0)
)
@ -8410,7 +8356,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 56)
(i32.const 0)
)
@ -8430,7 +8376,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 57)
(i32.const 0)
)
@ -8450,7 +8396,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 58)
(i32.const 0)
)
@ -8470,7 +8416,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 59)
(i32.const 0)
)
@ -8603,7 +8549,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 151)
(i32.const 0)
)
@ -8626,7 +8572,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 152)
(i32.const 0)
)
@ -8658,7 +8604,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 155)
(i32.const 0)
)
@ -8681,7 +8627,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 156)
(i32.const 0)
)
@ -8708,7 +8654,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 157)
(i32.const 0)
)
@ -8735,7 +8681,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 158)
(i32.const 0)
)
@ -8762,7 +8708,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 159)
(i32.const 0)
)
@ -8805,7 +8751,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 162)
(i32.const 0)
)
@ -8848,7 +8794,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 165)
(i32.const 0)
)
@ -8875,7 +8821,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 166)
(i32.const 0)
)
@ -8902,7 +8848,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 167)
(i32.const 0)
)
@ -8929,7 +8875,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 96)
(i32.const 84)
(i32.const 168)
(i32.const 0)
)
@ -8956,7 +8902,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 65)
(i32.const 0)
)
@ -8981,7 +8927,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 66)
(i32.const 0)
)
@ -9010,7 +8956,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 67)
(i32.const 0)
)
@ -9039,7 +8985,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 68)
(i32.const 0)
)
@ -9066,7 +9012,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 134)
(i32.const 0)
)
@ -9091,7 +9037,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 135)
(i32.const 0)
)
@ -9120,7 +9066,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 136)
(i32.const 0)
)
@ -9149,7 +9095,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 120)
(i32.const 108)
(i32.const 137)
(i32.const 0)
)
@ -9184,7 +9130,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 104)
(i32.const 0)
)
@ -9207,7 +9153,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 105)
(i32.const 0)
)
@ -9235,7 +9181,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 108)
(i32.const 0)
)
@ -9260,7 +9206,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 64)
(i32.const 56)
(i32.const 111)
(i32.const 0)
)

View File

@ -10,9 +10,9 @@
(global $std/allocator_arena/ptr1 (mut i32) (i32.const 0))
(global $std/allocator_arena/ptr2 (mut i32) (i32.const 0))
(global $std/allocator_arena/i (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 56))
(global $HEAP_BASE i32 (i32.const 52))
(memory $0 1)
(data (i32.const 8) "\16\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s")
(data (i32.const 4) "\16\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/allocator/arena/allocate_memory" (; 1 ;) (type $ii) (param $0 i32) (result i32)
@ -2386,7 +2386,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
@ -2421,7 +2421,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 2)
)
@ -2466,7 +2466,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 2)
)
@ -2492,7 +2492,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -2519,7 +2519,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 27)
(i32.const 0)
)

View File

@ -15,9 +15,9 @@
(global $std/allocator_arena/ptr1 (mut i32) (i32.const 0))
(global $std/allocator_arena/ptr2 (mut i32) (i32.const 0))
(global $std/allocator_arena/i (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 56))
(global $HEAP_BASE i32 (i32.const 52))
(memory $0 1)
(data (i32.const 8) "\16\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s\00")
(data (i32.const 4) "\16\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/allocator/arena/allocate_memory" (; 1 ;) (type $ii) (param $0 i32) (result i32)
@ -336,11 +336,7 @@
(i32.and
(get_local $2)
;;@ (lib)/memory.ts:218:7
(i32.sub
(i32.const 0)
;;@ (lib)/memory.ts:218:8
(i32.const 4)
)
(i32.const -4)
)
)
;;@ (lib)/memory.ts:220:2
@ -348,16 +344,11 @@
;;@ (lib)/memory.ts:220:17
(i32.mul
(i32.div_u
;;@ (lib)/memory.ts:220:18
(i32.sub
(i32.const 0)
;;@ (lib)/memory.ts:220:19
(i32.const 1)
)
;;@ (lib)/memory.ts:220:23
(i32.const -1)
;;@ (lib)/memory.ts:220:27
(i32.const 255)
)
;;@ (lib)/memory.ts:220:30
;;@ (lib)/memory.ts:220:33
(get_local $1)
)
)
@ -3493,7 +3484,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
@ -3545,7 +3536,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 2)
)
@ -3610,7 +3601,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 2)
)
@ -3650,7 +3641,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -3690,7 +3681,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 27)
(i32.const 0)
)

View File

@ -11,10 +11,10 @@
(global "$(lib)/allocator/arena/HEAP_OFFSET" (mut i32) (i32.const 0))
(global $std/array/arr (mut i32) (i32.const 0))
(global $std/array/i (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 72))
(global $HEAP_BASE i32 (i32.const 64))
(memory $0 1)
(data (i32.const 8) "\0c\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 40) "\0e\00\00\00(\00l\00i\00b\00)\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 4) "\0c\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 32) "\0e\00\00\00(\00l\00i\00b\00)\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/allocator/arena/allocate_memory" (; 1 ;) (type $ii) (param $0 i32) (result i32)
@ -1985,7 +1985,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 40)
(i32.const 32)
(i32.const 8)
(i32.const 4)
)
@ -2180,7 +2180,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 40)
(i32.const 32)
(i32.const 105)
(i32.const 6)
)
@ -2920,7 +2920,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -2934,7 +2934,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 6)
(i32.const 0)
)
@ -2958,7 +2958,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 0)
)
@ -2975,7 +2975,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 11)
(i32.const 0)
)
@ -2992,7 +2992,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -3012,7 +3012,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 0)
)
@ -3026,7 +3026,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -3043,7 +3043,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -3066,7 +3066,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)
@ -3083,7 +3083,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -3101,7 +3101,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 0)
)
@ -3124,7 +3124,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -3141,7 +3141,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 29)
(i32.const 0)
)
@ -3159,7 +3159,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 30)
(i32.const 0)
)
@ -3177,7 +3177,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -3200,7 +3200,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 35)
(i32.const 0)
)
@ -3217,7 +3217,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 0)
)
@ -3235,7 +3235,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 37)
(i32.const 0)
)
@ -3253,7 +3253,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 38)
(i32.const 0)
)
@ -3271,7 +3271,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 0)
)
@ -3294,7 +3294,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 43)
(i32.const 0)
)
@ -3311,7 +3311,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 44)
(i32.const 0)
)
@ -3329,7 +3329,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 45)
(i32.const 0)
)
@ -3347,7 +3347,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 46)
(i32.const 0)
)
@ -3365,7 +3365,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 47)
(i32.const 0)
)
@ -3383,7 +3383,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 48)
(i32.const 0)
)
@ -3406,7 +3406,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 52)
(i32.const 0)
)
@ -3423,7 +3423,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 53)
(i32.const 0)
)
@ -3441,7 +3441,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 54)
(i32.const 0)
)
@ -3459,7 +3459,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 55)
(i32.const 0)
)
@ -3477,7 +3477,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 56)
(i32.const 0)
)
@ -3495,7 +3495,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 57)
(i32.const 0)
)
@ -3513,7 +3513,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 58)
(i32.const 0)
)
@ -3533,7 +3533,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 62)
(i32.const 0)
)
@ -3550,7 +3550,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 63)
(i32.const 0)
)
@ -3567,7 +3567,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 64)
(i32.const 0)
)
@ -3585,7 +3585,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 65)
(i32.const 0)
)
@ -3603,7 +3603,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 66)
(i32.const 0)
)
@ -3621,7 +3621,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 67)
(i32.const 0)
)
@ -3639,7 +3639,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 68)
(i32.const 0)
)
@ -3659,7 +3659,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 72)
(i32.const 0)
)
@ -3676,7 +3676,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 73)
(i32.const 0)
)
@ -3693,7 +3693,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 74)
(i32.const 0)
)
@ -3711,7 +3711,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 75)
(i32.const 0)
)
@ -3729,7 +3729,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 76)
(i32.const 0)
)
@ -3747,7 +3747,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 77)
(i32.const 0)
)
@ -3769,7 +3769,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 81)
(i32.const 0)
)
@ -3786,7 +3786,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 82)
(i32.const 0)
)
@ -3804,7 +3804,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 83)
(i32.const 0)
)
@ -3822,7 +3822,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 84)
(i32.const 0)
)
@ -3840,7 +3840,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 85)
(i32.const 0)
)
@ -3859,7 +3859,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 89)
(i32.const 0)
)
@ -3881,7 +3881,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 93)
(i32.const 0)
)
@ -3903,7 +3903,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 97)
(i32.const 0)
)
@ -3925,7 +3925,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 101)
(i32.const 0)
)
@ -3942,7 +3942,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 102)
(i32.const 0)
)
@ -3960,7 +3960,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 103)
(i32.const 0)
)
@ -3978,7 +3978,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 104)
(i32.const 0)
)

View File

@ -15,10 +15,10 @@
(global "$(lib)/allocator/arena/HEAP_OFFSET" (mut i32) (i32.const 0))
(global $std/array/arr (mut i32) (i32.const 0))
(global $std/array/i (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 72))
(global $HEAP_BASE i32 (i32.const 64))
(memory $0 1)
(data (i32.const 8) "\0c\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 40) "\0e\00\00\00(\00l\00i\00b\00)\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 4) "\0c\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 32) "\0e\00\00\00(\00l\00i\00b\00)\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/allocator/arena/allocate_memory" (; 1 ;) (type $ii) (param $0 i32) (result i32)
@ -2863,7 +2863,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 40)
(i32.const 32)
(i32.const 8)
(i32.const 4)
)
@ -3141,7 +3141,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 40)
(i32.const 32)
(i32.const 105)
(i32.const 6)
)
@ -3442,11 +3442,7 @@
(i32.and
(get_local $2)
;;@ (lib)/memory.ts:218:7
(i32.sub
(i32.const 0)
;;@ (lib)/memory.ts:218:8
(i32.const 4)
)
(i32.const -4)
)
)
;;@ (lib)/memory.ts:220:2
@ -3454,16 +3450,11 @@
;;@ (lib)/memory.ts:220:17
(i32.mul
(i32.div_u
;;@ (lib)/memory.ts:220:18
(i32.sub
(i32.const 0)
;;@ (lib)/memory.ts:220:19
(i32.const 1)
)
;;@ (lib)/memory.ts:220:23
(i32.const -1)
;;@ (lib)/memory.ts:220:27
(i32.const 255)
)
;;@ (lib)/memory.ts:220:30
;;@ (lib)/memory.ts:220:33
(get_local $1)
)
)
@ -4090,11 +4081,7 @@
;;@ (lib)/array.ts:61:12
(return
;;@ (lib)/array.ts:61:11
(i32.sub
(i32.const 0)
;;@ (lib)/array.ts:61:12
(i32.const 1)
)
(i32.const -1)
)
)
(func "$(lib)/array/Array#splice" (; 15 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
@ -4283,7 +4270,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
@ -4305,7 +4292,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 6)
(i32.const 0)
)
@ -4338,7 +4325,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 0)
)
@ -4360,7 +4347,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 11)
(i32.const 0)
)
@ -4382,7 +4369,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -4409,7 +4396,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 0)
)
@ -4431,7 +4418,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -4453,7 +4440,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -4484,7 +4471,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)
@ -4506,7 +4493,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -4530,7 +4517,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 0)
)
@ -4561,7 +4548,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 28)
(i32.const 0)
)
@ -4583,7 +4570,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 29)
(i32.const 0)
)
@ -4607,7 +4594,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 30)
(i32.const 0)
)
@ -4631,7 +4618,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -4662,7 +4649,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 35)
(i32.const 0)
)
@ -4684,7 +4671,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 36)
(i32.const 0)
)
@ -4708,7 +4695,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 37)
(i32.const 0)
)
@ -4732,7 +4719,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 38)
(i32.const 0)
)
@ -4756,7 +4743,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 39)
(i32.const 0)
)
@ -4787,7 +4774,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 43)
(i32.const 0)
)
@ -4809,7 +4796,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 44)
(i32.const 0)
)
@ -4833,7 +4820,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 45)
(i32.const 0)
)
@ -4857,7 +4844,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 46)
(i32.const 0)
)
@ -4881,7 +4868,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 47)
(i32.const 0)
)
@ -4905,7 +4892,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 48)
(i32.const 0)
)
@ -4936,7 +4923,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 52)
(i32.const 0)
)
@ -4958,7 +4945,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 53)
(i32.const 0)
)
@ -4982,7 +4969,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 54)
(i32.const 0)
)
@ -5006,7 +4993,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 55)
(i32.const 0)
)
@ -5030,7 +5017,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 56)
(i32.const 0)
)
@ -5054,7 +5041,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 57)
(i32.const 0)
)
@ -5078,7 +5065,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 58)
(i32.const 0)
)
@ -5106,7 +5093,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 62)
(i32.const 0)
)
@ -5128,7 +5115,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 63)
(i32.const 0)
)
@ -5150,7 +5137,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 64)
(i32.const 0)
)
@ -5174,7 +5161,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 65)
(i32.const 0)
)
@ -5198,7 +5185,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 66)
(i32.const 0)
)
@ -5222,7 +5209,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 67)
(i32.const 0)
)
@ -5246,7 +5233,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 68)
(i32.const 0)
)
@ -5274,7 +5261,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 72)
(i32.const 0)
)
@ -5296,7 +5283,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 73)
(i32.const 0)
)
@ -5318,7 +5305,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 74)
(i32.const 0)
)
@ -5342,7 +5329,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 75)
(i32.const 0)
)
@ -5366,7 +5353,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 76)
(i32.const 0)
)
@ -5390,7 +5377,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 77)
(i32.const 0)
)
@ -5419,7 +5406,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 81)
(i32.const 0)
)
@ -5441,7 +5428,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 82)
(i32.const 0)
)
@ -5465,7 +5452,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 83)
(i32.const 0)
)
@ -5489,7 +5476,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 84)
(i32.const 0)
)
@ -5513,7 +5500,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 85)
(i32.const 0)
)
@ -5544,7 +5531,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 89)
(i32.const 0)
)
@ -5575,7 +5562,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 93)
(i32.const 0)
)
@ -5601,17 +5588,13 @@
(i32.eq
(get_global $std/array/i)
;;@ std/array.ts:97:12
(i32.sub
(i32.const 0)
;;@ std/array.ts:97:14
(i32.const 1)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 97)
(i32.const 0)
)
@ -5642,7 +5625,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 101)
(i32.const 0)
)
@ -5664,7 +5647,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 102)
(i32.const 0)
)
@ -5688,7 +5671,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 103)
(i32.const 0)
)
@ -5712,7 +5695,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 104)
(i32.const 0)
)

View File

@ -5,9 +5,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $std/carray/arr (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 40))
(global $HEAP_BASE i32 (i32.const 36))
(memory $0 1)
(data (i32.const 8) "\0d\00\00\00s\00t\00d\00/\00c\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 4) "\0d\00\00\00s\00t\00d\00/\00c\00a\00r\00r\00a\00y\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/array/CArray#__get" (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
@ -59,7 +59,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -76,7 +76,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -91,7 +91,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 11)
(i32.const 0)
)
@ -106,7 +106,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -133,7 +133,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -153,7 +153,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -171,7 +171,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -189,7 +189,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 0)
)
@ -213,7 +213,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -233,7 +233,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 0)
)
@ -251,7 +251,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 26)
(i32.const 0)
)

View File

@ -5,9 +5,9 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $std/carray/arr (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 40))
(global $HEAP_BASE i32 (i32.const 36))
(memory $0 1)
(data (i32.const 8) "\0d\00\00\00s\00t\00d\00/\00c\00a\00r\00r\00a\00y\00.\00t\00s\00")
(data (i32.const 4) "\0d\00\00\00s\00t\00d\00/\00c\00a\00r\00r\00a\00y\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/array/CArray#__get" (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
@ -89,7 +89,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -116,7 +116,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -140,7 +140,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 11)
(i32.const 0)
)
@ -164,7 +164,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -203,7 +203,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -230,7 +230,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -254,7 +254,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -278,7 +278,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 0)
)
@ -310,7 +310,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -337,7 +337,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 0)
)
@ -361,7 +361,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 26)
(i32.const 0)
)

View File

@ -8,10 +8,10 @@
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global "$(lib)/allocator/arena/HEAP_OFFSET" (mut i32) (i32.const 0))
(global $std/set/set (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 60))
(global $HEAP_BASE i32 (i32.const 56))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s")
(data (i32.const 32) "\0c\00\00\00(\00l\00i\00b\00)\00/\00s\00e\00t\00.\00t\00s")
(data (i32.const 4) "\n\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s")
(data (i32.const 28) "\0c\00\00\00(\00l\00i\00b\00)\00/\00s\00e\00t\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/allocator/arena/allocate_memory" (; 1 ;) (type $ii) (param $0 i32) (result i32)
@ -1980,7 +1980,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 31)
(i32.const 4)
)
@ -2092,7 +2092,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 22)
(i32.const 4)
)
@ -2152,7 +2152,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 49)
(i32.const 4)
)
@ -2264,7 +2264,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 62)
(i32.const 4)
)
@ -2292,7 +2292,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
@ -2327,7 +2327,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)
@ -2344,7 +2344,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -2361,7 +2361,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 0)
)
@ -2378,7 +2378,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -2393,7 +2393,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -2416,7 +2416,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)
@ -2433,7 +2433,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -2448,7 +2448,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 0)
)
@ -2465,7 +2465,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 0)
)
@ -2482,7 +2482,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 29)
(i32.const 0)
)
@ -2497,7 +2497,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 30)
(i32.const 0)
)

View File

@ -12,10 +12,10 @@
(global "$(lib)/allocator/arena/ALIGN_MASK" i32 (i32.const 7))
(global "$(lib)/allocator/arena/HEAP_OFFSET" (mut i32) (i32.const 0))
(global $std/set/set (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 60))
(global $HEAP_BASE i32 (i32.const 56))
(memory $0 1)
(data (i32.const 8) "\n\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00")
(data (i32.const 32) "\0c\00\00\00(\00l\00i\00b\00)\00/\00s\00e\00t\00.\00t\00s\00")
(data (i32.const 4) "\n\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00")
(data (i32.const 28) "\0c\00\00\00(\00l\00i\00b\00)\00/\00s\00e\00t\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func "$(lib)/allocator/arena/allocate_memory" (; 1 ;) (type $ii) (param $0 i32) (result i32)
@ -2861,7 +2861,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 31)
(i32.const 4)
)
@ -3019,7 +3019,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 22)
(i32.const 4)
)
@ -3109,7 +3109,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 49)
(i32.const 4)
)
@ -3270,7 +3270,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 32)
(i32.const 28)
(i32.const 62)
(i32.const 4)
)
@ -3319,7 +3319,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
@ -3368,7 +3368,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)
@ -3389,7 +3389,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 15)
(i32.const 0)
)
@ -3410,7 +3410,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 16)
(i32.const 0)
)
@ -3431,7 +3431,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 17)
(i32.const 0)
)
@ -3455,7 +3455,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 18)
(i32.const 0)
)
@ -3486,7 +3486,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)
@ -3507,7 +3507,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 23)
(i32.const 0)
)
@ -3531,7 +3531,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 0)
)
@ -3552,7 +3552,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 0)
)
@ -3579,7 +3579,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 29)
(i32.const 0)
)
@ -3603,7 +3603,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 30)
(i32.const 0)
)

View File

@ -7,28 +7,28 @@
(type $iF (func (param i32) (result f64)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $std/string/str (mut i32) (i32.const 8))
(global $std/string/str (mut i32) (i32.const 4))
(memory $0 1)
(data (i32.const 8) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g")
(data (i32.const 48) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 80) "\0f\00\00\00(\00l\00i\00b\00)\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 120) "\02\00\00\00h\00i")
(data (i32.const 128) "\04\00\00\00n\00u\00l\00l")
(data (i32.const 144) "\06\00\00\00s\00t\00r\00i\00n\00g")
(data (i32.const 160) "\03\00\00\00I\00\'\00m")
(data (i32.const 176) "\01\00\00\00,")
(data (i32.const 184) "\01\00\00\00x")
(data (i32.const 192) "\01\00\00\000")
(data (i32.const 200) "\01\00\00\001")
(data (i32.const 208) "\05\00\00\000\00b\001\000\001")
(data (i32.const 224) "\05\00\00\000\00o\007\000\007")
(data (i32.const 240) "\05\00\00\000\00x\00f\000\00f")
(data (i32.const 256) "\05\00\00\000\00x\00F\000\00F")
(data (i32.const 272) "\03\00\00\000\001\001")
(data (i32.const 288) "\04\00\00\000\00x\001\00g")
(data (i32.const 304) "\03\00\00\000\00.\001")
(data (i32.const 320) "\03\00\00\00.\002\005")
(data (i32.const 336) "\08\00\00\00.\001\00f\00o\00o\00b\00a\00r")
(data (i32.const 4) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g")
(data (i32.const 40) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 72) "\0f\00\00\00(\00l\00i\00b\00)\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 108) "\02\00\00\00h\00i")
(data (i32.const 116) "\04\00\00\00n\00u\00l\00l")
(data (i32.const 128) "\06\00\00\00s\00t\00r\00i\00n\00g")
(data (i32.const 144) "\03\00\00\00I\00\'\00m")
(data (i32.const 156) "\01\00\00\00,")
(data (i32.const 164) "\01\00\00\00x")
(data (i32.const 172) "\01\00\00\000")
(data (i32.const 180) "\01\00\00\001")
(data (i32.const 188) "\05\00\00\000\00b\001\000\001")
(data (i32.const 204) "\05\00\00\000\00o\007\000\007")
(data (i32.const 220) "\05\00\00\000\00x\00f\000\00f")
(data (i32.const 236) "\05\00\00\000\00x\00F\000\00F")
(data (i32.const 252) "\03\00\00\000\001\001")
(data (i32.const 264) "\04\00\00\000\00x\001\00g")
(data (i32.const 276) "\03\00\00\000\00.\001")
(data (i32.const 288) "\03\00\00\00.\002\005")
(data (i32.const 300) "\08\00\00\00.\001\00f\00o\00o\00b\00a\00r")
(export "getString" (func $std/string/getString))
(export "memory" (memory $0))
(start $start)
@ -40,7 +40,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 38)
(i32.const 4)
)
@ -139,7 +139,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 166)
(i32.const 4)
)
@ -151,7 +151,7 @@
(get_local $1)
)
(set_local $1
(i32.const 128)
(i32.const 116)
)
)
(if
@ -226,7 +226,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 103)
(i32.const 4)
)
@ -313,7 +313,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 144)
(i32.const 4)
)
@ -325,7 +325,7 @@
(get_local $1)
)
(set_local $1
(i32.const 128)
(i32.const 116)
)
)
(set_local $4
@ -956,7 +956,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 469)
(i32.const 10)
)
@ -1047,12 +1047,12 @@
(if
(i32.ne
(get_global $std/string/str)
(i32.const 8)
(i32.const 4)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 6)
(i32.const 0)
)
@ -1069,7 +1069,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 8)
(i32.const 0)
)
@ -1087,7 +1087,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 9)
(i32.const 0)
)
@ -1098,14 +1098,14 @@
(i32.eqz
(call "$(lib)/string/String#startsWith"
(get_global $std/string/str)
(i32.const 120)
(i32.const 108)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 10)
(i32.const 0)
)
@ -1116,14 +1116,14 @@
(i32.eqz
(call "$(lib)/string/String#endsWith"
(get_global $std/string/str)
(i32.const 144)
(i32.const 128)
(i32.const 2147483647)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 11)
(i32.const 0)
)
@ -1134,14 +1134,14 @@
(i32.eqz
(call "$(lib)/string/String#includes"
(get_global $std/string/str)
(i32.const 160)
(i32.const 144)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 12)
(i32.const 0)
)
@ -1152,7 +1152,7 @@
(i32.ne
(call "$(lib)/string/String#indexOf"
(get_global $std/string/str)
(i32.const 176)
(i32.const 156)
(i32.const 0)
)
(i32.const 2)
@ -1160,7 +1160,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 13)
(i32.const 0)
)
@ -1171,7 +1171,7 @@
(i32.ne
(call "$(lib)/string/String#indexOf"
(get_global $std/string/str)
(i32.const 184)
(i32.const 164)
(i32.const 0)
)
(i32.const -1)
@ -1179,7 +1179,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 14)
(i32.const 0)
)
@ -1189,7 +1189,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 192)
(i32.const 172)
(i32.const 0)
)
(f64.const 0)
@ -1197,7 +1197,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 20)
(i32.const 0)
)
@ -1207,7 +1207,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 200)
(i32.const 180)
(i32.const 0)
)
(f64.const 1)
@ -1215,7 +1215,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 21)
(i32.const 0)
)
@ -1225,7 +1225,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 208)
(i32.const 188)
(i32.const 0)
)
(f64.const 5)
@ -1233,7 +1233,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 22)
(i32.const 0)
)
@ -1243,7 +1243,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 224)
(i32.const 204)
(i32.const 0)
)
(f64.const 455)
@ -1251,7 +1251,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 23)
(i32.const 0)
)
@ -1261,7 +1261,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 240)
(i32.const 220)
(i32.const 0)
)
(f64.const 3855)
@ -1269,7 +1269,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 24)
(i32.const 0)
)
@ -1279,7 +1279,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 256)
(i32.const 236)
(i32.const 0)
)
(f64.const 3855)
@ -1287,7 +1287,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 25)
(i32.const 0)
)
@ -1297,7 +1297,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 272)
(i32.const 252)
(i32.const 0)
)
(f64.const 11)
@ -1305,7 +1305,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 26)
(i32.const 0)
)
@ -1315,7 +1315,7 @@
(if
(f64.ne
(call "$(lib)/string/parseInt"
(i32.const 288)
(i32.const 264)
(i32.const 0)
)
(f64.const 1)
@ -1323,7 +1323,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 27)
(i32.const 0)
)
@ -1333,14 +1333,14 @@
(if
(f64.ne
(call "$(lib)/string/parseFloat"
(i32.const 192)
(i32.const 172)
)
(f64.const 0)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 29)
(i32.const 0)
)
@ -1350,14 +1350,14 @@
(if
(f64.ne
(call "$(lib)/string/parseFloat"
(i32.const 200)
(i32.const 180)
)
(f64.const 1)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 30)
(i32.const 0)
)
@ -1367,14 +1367,14 @@
(if
(f64.ne
(call "$(lib)/string/parseFloat"
(i32.const 304)
(i32.const 276)
)
(f64.const 0.1)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 31)
(i32.const 0)
)
@ -1384,14 +1384,14 @@
(if
(f64.ne
(call "$(lib)/string/parseFloat"
(i32.const 320)
(i32.const 288)
)
(f64.const 0.25)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 32)
(i32.const 0)
)
@ -1401,14 +1401,14 @@
(if
(f64.ne
(call "$(lib)/string/parseFloat"
(i32.const 336)
(i32.const 300)
)
(f64.const 0.1)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 33)
(i32.const 0)
)

View File

@ -7,7 +7,7 @@
(type $iF (func (param i32) (result f64)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $std/string/str (mut i32) (i32.const 8))
(global $std/string/str (mut i32) (i32.const 4))
(global "$(lib)/string/HEAD" i32 (i32.const 4))
(global "$(lib)/string/CharCode.PLUS" i32 (i32.const 43))
(global "$(lib)/string/CharCode.MINUS" i32 (i32.const 45))
@ -34,28 +34,28 @@
(global "$(lib)/string/CharCode.o" i32 (i32.const 111))
(global "$(lib)/string/CharCode.x" i32 (i32.const 120))
(global "$(lib)/string/CharCode.z" i32 (i32.const 122))
(global $HEAP_BASE i32 (i32.const 356))
(global $HEAP_BASE i32 (i32.const 320))
(memory $0 1)
(data (i32.const 8) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g\00")
(data (i32.const 48) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 80) "\0f\00\00\00(\00l\00i\00b\00)\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 120) "\02\00\00\00h\00i\00")
(data (i32.const 128) "\04\00\00\00n\00u\00l\00l\00")
(data (i32.const 144) "\06\00\00\00s\00t\00r\00i\00n\00g\00")
(data (i32.const 160) "\03\00\00\00I\00\'\00m\00")
(data (i32.const 176) "\01\00\00\00,\00")
(data (i32.const 184) "\01\00\00\00x\00")
(data (i32.const 192) "\01\00\00\000\00")
(data (i32.const 200) "\01\00\00\001\00")
(data (i32.const 208) "\05\00\00\000\00b\001\000\001\00")
(data (i32.const 224) "\05\00\00\000\00o\007\000\007\00")
(data (i32.const 240) "\05\00\00\000\00x\00f\000\00f\00")
(data (i32.const 256) "\05\00\00\000\00x\00F\000\00F\00")
(data (i32.const 272) "\03\00\00\000\001\001\00")
(data (i32.const 288) "\04\00\00\000\00x\001\00g\00")
(data (i32.const 304) "\03\00\00\000\00.\001\00")
(data (i32.const 320) "\03\00\00\00.\002\005\00")
(data (i32.const 336) "\08\00\00\00.\001\00f\00o\00o\00b\00a\00r\00")
(data (i32.const 4) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g\00")
(data (i32.const 40) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 72) "\0f\00\00\00(\00l\00i\00b\00)\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 108) "\02\00\00\00h\00i\00")
(data (i32.const 116) "\04\00\00\00n\00u\00l\00l\00")
(data (i32.const 128) "\06\00\00\00s\00t\00r\00i\00n\00g\00")
(data (i32.const 144) "\03\00\00\00I\00\'\00m\00")
(data (i32.const 156) "\01\00\00\00,\00")
(data (i32.const 164) "\01\00\00\00x\00")
(data (i32.const 172) "\01\00\00\000\00")
(data (i32.const 180) "\01\00\00\001\00")
(data (i32.const 188) "\05\00\00\000\00b\001\000\001\00")
(data (i32.const 204) "\05\00\00\000\00o\007\000\007\00")
(data (i32.const 220) "\05\00\00\000\00x\00f\000\00f\00")
(data (i32.const 236) "\05\00\00\000\00x\00F\000\00F\00")
(data (i32.const 252) "\03\00\00\000\001\001\00")
(data (i32.const 264) "\04\00\00\000\00x\001\00g\00")
(data (i32.const 276) "\03\00\00\000\00.\001\00")
(data (i32.const 288) "\03\00\00\00.\002\005\00")
(data (i32.const 300) "\08\00\00\00.\001\00f\00o\00o\00b\00a\00r\00")
(export "getString" (func $std/string/getString))
(export "memory" (memory $0))
(start $start)
@ -73,7 +73,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 38)
(i32.const 4)
)
@ -93,11 +93,7 @@
;;@ (lib)/string.ts:41:14
(return
;;@ (lib)/string.ts:41:13
(i32.sub
(i32.const 0)
;;@ (lib)/string.ts:41:14
(i32.const 1)
)
(i32.const -1)
)
)
;;@ (lib)/string.ts:46:4
@ -227,7 +223,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 166)
(i32.const 4)
)
@ -245,7 +241,7 @@
;;@ (lib)/string.ts:169:6
(set_local $1
;;@ (lib)/string.ts:169:21
(i32.const 128)
(i32.const 116)
)
)
;;@ (lib)/string.ts:171:4
@ -372,7 +368,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 103)
(i32.const 4)
)
@ -512,7 +508,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 144)
(i32.const 4)
)
@ -530,7 +526,7 @@
;;@ (lib)/string.ts:147:6
(set_local $1
;;@ (lib)/string.ts:147:21
(i32.const 128)
(i32.const 116)
)
)
;;@ (lib)/string.ts:149:4
@ -661,11 +657,7 @@
;;@ (lib)/string.ts:162:12
(return
;;@ (lib)/string.ts:162:11
(i32.sub
(i32.const 0)
;;@ (lib)/string.ts:162:12
(i32.const 1)
)
(i32.const -1)
)
)
(func "$(lib)/string/String#includes" (; 6 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
@ -683,11 +675,7 @@
(get_local $2)
)
;;@ (lib)/string.ts:140:51
(i32.sub
(i32.const 0)
;;@ (lib)/string.ts:140:52
(i32.const 1)
)
(i32.const -1)
)
)
)
@ -785,10 +773,7 @@
;;@ (lib)/string.ts:378:4
(set_local $5
;;@ (lib)/string.ts:378:11
(f64.neg
;;@ (lib)/string.ts:378:12
(f64.const 1)
)
(f64.const -1)
)
)
;;@ (lib)/string.ts:379:9
@ -1358,10 +1343,7 @@
;;@ (lib)/string.ts:450:4
(set_local $4
;;@ (lib)/string.ts:450:11
(f64.neg
;;@ (lib)/string.ts:450:12
(f64.const 1)
)
(f64.const -1)
)
)
;;@ (lib)/string.ts:451:9
@ -1535,7 +1517,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 80)
(i32.const 72)
(i32.const 469)
(i32.const 10)
)
@ -1669,13 +1651,13 @@
(i32.eq
(get_global $std/string/str)
;;@ std/string.ts:6:33
(i32.const 8)
(i32.const 4)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 6)
(i32.const 0)
)
@ -1697,7 +1679,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 8)
(i32.const 0)
)
@ -1723,7 +1705,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 9)
(i32.const 0)
)
@ -1738,7 +1720,7 @@
;;@ std/string.ts:10:7
(get_global $std/string/str)
;;@ std/string.ts:10:22
(i32.const 120)
(i32.const 108)
;;@ (lib)/string.ts:165:51
(i32.const 0)
)
@ -1746,7 +1728,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 10)
(i32.const 0)
)
@ -1761,7 +1743,7 @@
;;@ std/string.ts:11:7
(get_global $std/string/str)
;;@ std/string.ts:11:20
(i32.const 144)
(i32.const 128)
;;@ (lib)/string.ts:102:52
(i32.const 2147483647)
)
@ -1769,7 +1751,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 11)
(i32.const 0)
)
@ -1784,7 +1766,7 @@
;;@ std/string.ts:12:7
(get_global $std/string/str)
;;@ std/string.ts:12:20
(i32.const 160)
(i32.const 144)
;;@ (lib)/string.ts:139:49
(i32.const 0)
)
@ -1792,7 +1774,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 12)
(i32.const 0)
)
@ -1809,7 +1791,7 @@
;;@ std/string.ts:13:7
(get_global $std/string/str)
;;@ std/string.ts:13:19
(i32.const 176)
(i32.const 156)
(i32.const 0)
)
;;@ std/string.ts:13:27
@ -1819,7 +1801,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 13)
(i32.const 0)
)
@ -1836,22 +1818,18 @@
;;@ std/string.ts:14:7
(get_global $std/string/str)
;;@ std/string.ts:14:19
(i32.const 184)
(i32.const 164)
;;@ (lib)/string.ts:143:48
(i32.const 0)
)
;;@ std/string.ts:14:27
(i32.sub
(i32.const 0)
;;@ std/string.ts:14:28
(i32.const 1)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 14)
(i32.const 0)
)
@ -1865,7 +1843,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:20:16
(i32.const 192)
(i32.const 172)
(i32.const 0)
)
;;@ std/string.ts:20:24
@ -1875,7 +1853,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 20)
(i32.const 0)
)
@ -1889,7 +1867,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:21:16
(i32.const 200)
(i32.const 180)
(i32.const 0)
)
;;@ std/string.ts:21:24
@ -1899,7 +1877,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 21)
(i32.const 0)
)
@ -1913,7 +1891,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:22:16
(i32.const 208)
(i32.const 188)
(i32.const 0)
)
;;@ std/string.ts:22:28
@ -1923,7 +1901,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 22)
(i32.const 0)
)
@ -1937,7 +1915,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:23:16
(i32.const 224)
(i32.const 204)
(i32.const 0)
)
;;@ std/string.ts:23:28
@ -1947,7 +1925,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 23)
(i32.const 0)
)
@ -1961,7 +1939,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:24:16
(i32.const 240)
(i32.const 220)
(i32.const 0)
)
;;@ std/string.ts:24:28
@ -1971,7 +1949,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 24)
(i32.const 0)
)
@ -1985,7 +1963,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:25:16
(i32.const 256)
(i32.const 236)
(i32.const 0)
)
;;@ std/string.ts:25:28
@ -1995,7 +1973,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 25)
(i32.const 0)
)
@ -2009,7 +1987,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:26:16
(i32.const 272)
(i32.const 252)
(i32.const 0)
)
;;@ std/string.ts:26:26
@ -2019,7 +1997,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 26)
(i32.const 0)
)
@ -2033,7 +2011,7 @@
(f64.eq
(call "$(lib)/string/parseInt"
;;@ std/string.ts:27:16
(i32.const 288)
(i32.const 264)
;;@ (lib)/string.ts:353:51
(i32.const 0)
)
@ -2044,7 +2022,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 27)
(i32.const 0)
)
@ -2058,7 +2036,7 @@
(f64.eq
(call "$(lib)/string/parseFloat"
;;@ std/string.ts:29:18
(i32.const 192)
(i32.const 172)
)
;;@ std/string.ts:29:26
(f64.const 0)
@ -2067,7 +2045,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 29)
(i32.const 0)
)
@ -2081,7 +2059,7 @@
(f64.eq
(call "$(lib)/string/parseFloat"
;;@ std/string.ts:30:18
(i32.const 200)
(i32.const 180)
)
;;@ std/string.ts:30:26
(f64.const 1)
@ -2090,7 +2068,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 30)
(i32.const 0)
)
@ -2104,7 +2082,7 @@
(f64.eq
(call "$(lib)/string/parseFloat"
;;@ std/string.ts:31:18
(i32.const 304)
(i32.const 276)
)
;;@ std/string.ts:31:28
(f64.const 0.1)
@ -2113,7 +2091,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 31)
(i32.const 0)
)
@ -2127,7 +2105,7 @@
(f64.eq
(call "$(lib)/string/parseFloat"
;;@ std/string.ts:32:18
(i32.const 320)
(i32.const 288)
)
;;@ std/string.ts:32:28
(f64.const 0.25)
@ -2136,7 +2114,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 32)
(i32.const 0)
)
@ -2150,7 +2128,7 @@
(f64.eq
(call "$(lib)/string/parseFloat"
;;@ std/string.ts:33:18
(i32.const 336)
(i32.const 300)
)
;;@ std/string.ts:33:33
(f64.const 0.1)
@ -2159,7 +2137,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 48)
(i32.const 40)
(i32.const 33)
(i32.const 0)
)

View File

@ -7,7 +7,7 @@
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\07\00\00\00t\00l\00s\00f\00.\00t\00s")
(data (i32.const 4) "\07\00\00\00t\00l\00s\00f\00.\00t\00s")
(export "control$construct" (func $tlsf/control$construct))
(export "memory" (memory $0))
(start $start)
@ -68,7 +68,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 162)
(i32.const 2)
)
@ -98,7 +98,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 173)
(i32.const 2)
)
@ -113,7 +113,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 174)
(i32.const 2)
)
@ -215,7 +215,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 0)
)
@ -229,7 +229,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 11)
(i32.const 0)
)
@ -246,7 +246,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -263,7 +263,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)
@ -280,7 +280,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -294,7 +294,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 0)
)
@ -311,7 +311,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)

View File

@ -30,9 +30,9 @@
(global $tlsf/CONTROL$SL_BITMAP_OFFSET i32 (i32.const 20))
(global $tlsf/CONTROL$BLOCKS_OFFSET i32 (i32.const 112))
(global $tlsf/CONTROL$SIZE i32 (i32.const 3056))
(global $HEAP_BASE i32 (i32.const 28))
(global $HEAP_BASE i32 (i32.const 24))
(memory $0 1)
(data (i32.const 8) "\07\00\00\00t\00l\00s\00f\00.\00t\00s\00")
(data (i32.const 4) "\07\00\00\00t\00l\00s\00f\00.\00t\00s\00")
(export "control$construct" (func $tlsf/control$construct))
(export "memory" (memory $0))
(start $start)
@ -46,11 +46,7 @@
(get_local $0)
)
;;@ tlsf.ts:7:17
(i32.sub
(i32.const 0)
;;@ tlsf.ts:7:18
(i32.const 1)
)
(i32.const -1)
;;@ tlsf.ts:7:21
(i32.sub
(i32.const 31)
@ -73,11 +69,7 @@
(get_local $0)
)
;;@ tlsf.ts:17:17
(i32.sub
(i32.const 0)
;;@ tlsf.ts:17:18
(i32.const 1)
)
(i32.const -1)
;;@ tlsf.ts:17:22
(i32.ctz
;;@ tlsf.ts:17:31
@ -139,7 +131,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 162)
(i32.const 2)
)
@ -180,7 +172,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 173)
(i32.const 2)
)
@ -200,7 +192,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 174)
(i32.const 2)
)
@ -352,17 +344,13 @@
(i32.const 0)
)
;;@ tlsf.ts:10:17
(i32.sub
(i32.const 0)
;;@ tlsf.ts:10:18
(i32.const 1)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 10)
(i32.const 0)
)
@ -385,7 +373,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 11)
(i32.const 0)
)
@ -408,7 +396,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
@ -431,7 +419,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)
@ -448,17 +436,13 @@
(i32.const 0)
)
;;@ tlsf.ts:20:17
(i32.sub
(i32.const 0)
;;@ tlsf.ts:20:18
(i32.const 1)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 20)
(i32.const 0)
)
@ -481,7 +465,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 0)
)
@ -504,7 +488,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 0)
)
@ -524,7 +508,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 29)
(i32.const 0)
)

View File

@ -20,11 +20,7 @@
)
;;@ unary.ts:2:0
(drop
(i32.sub
(i32.const 0)
;;@ unary.ts:2:1
(i32.const 1)
)
(i32.const -1)
)
;;@ unary.ts:3:0
(drop
@ -48,10 +44,7 @@
)
;;@ unary.ts:6:0
(drop
(f64.neg
;;@ unary.ts:6:1
(f64.const 1.25)
)
(f64.const -1.25)
)
;;@ unary.ts:7:0
(drop
@ -127,11 +120,7 @@
;;@ unary.ts:21:0
(set_global $unary/i
;;@ unary.ts:21:4
(i32.sub
(i32.const 0)
;;@ unary.ts:21:5
(i32.const 1)
)
(i32.const -1)
)
;;@ unary.ts:22:0
(set_global $unary/i
@ -307,11 +296,7 @@
;;@ unary.ts:45:0
(set_global $unary/I
;;@ unary.ts:45:4
(i64.sub
(i64.const 0)
;;@ unary.ts:45:5
(i64.const 1)
)
(i64.const -1)
)
;;@ unary.ts:46:0
(set_global $unary/I
@ -483,10 +468,7 @@
;;@ unary.ts:68:0
(set_global $unary/f
;;@ unary.ts:68:4
(f32.neg
;;@ unary.ts:68:5
(f32.const 1.25)
)
(f32.const -1.25)
)
;;@ unary.ts:69:0
(set_global $unary/i
@ -637,10 +619,7 @@
;;@ unary.ts:89:0
(set_global $unary/F
;;@ unary.ts:89:4
(f64.neg
;;@ unary.ts:89:5
(f64.const 1.25)
)
(f64.const -1.25)
)
;;@ unary.ts:90:0
(set_global $unary/I

View File

@ -6,7 +6,7 @@
(global $while/m (mut i32) (i32.const 0))
(global $while/o (mut i32) (i32.const 0))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00w\00h\00i\00l\00e\00.\00t\00s")
(data (i32.const 4) "\08\00\00\00w\00h\00i\00l\00e\00.\00t\00s")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -36,7 +36,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -51,7 +51,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -105,7 +105,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 2)
)
@ -120,7 +120,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 2)
)
@ -136,7 +136,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 0)
)
@ -151,7 +151,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 0)
)
@ -166,7 +166,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 26)
(i32.const 0)
)
@ -214,7 +214,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -229,7 +229,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 32)
(i32.const 0)
)

View File

@ -5,9 +5,9 @@
(global $while/n (mut i32) (i32.const 10))
(global $while/m (mut i32) (i32.const 0))
(global $while/o (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 28))
(global $HEAP_BASE i32 (i32.const 24))
(memory $0 1)
(data (i32.const 8) "\08\00\00\00w\00h\00i\00l\00e\00.\00t\00s\00")
(data (i32.const 4) "\08\00\00\00w\00h\00i\00l\00e\00.\00t\00s\00")
(export "memory" (memory $0))
(start $start)
(func $start (; 1 ;) (type $v)
@ -53,7 +53,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
@ -73,7 +73,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
@ -153,7 +153,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 21)
(i32.const 2)
)
@ -173,7 +173,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 22)
(i32.const 2)
)
@ -199,7 +199,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 24)
(i32.const 0)
)
@ -219,7 +219,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 25)
(i32.const 0)
)
@ -239,7 +239,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 26)
(i32.const 0)
)
@ -307,17 +307,13 @@
(i32.eq
(get_global $while/n)
;;@ while.ts:31:12
(i32.sub
(i32.const 0)
;;@ while.ts:31:13
(i32.const 1)
)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 31)
(i32.const 0)
)
@ -337,7 +333,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 32)
(i32.const 0)
)

View File

@ -22,9 +22,9 @@
(global "$(lib)/allocator/tlsf/LEFT_FREE" i32 (i32.const 2))
(global "$(lib)/allocator/tlsf/TAGS" i32 (i32.const 3))
(global "$(lib)/allocator/tlsf/ROOT" (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 60))
(global $HEAP_BASE i32 (i32.const 56))
(memory $0 1)
(data (i32.const 8) "\17\00\00\00(\00l\00i\00b\00)\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00")
(data (i32.const 4) "\17\00\00\00(\00l\00i\00b\00)\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00")
(export "allocate_memory" (func "$(lib)/allocator/tlsf/allocate_memory"))
(export "free_memory" (func "$(lib)/allocator/tlsf/free_memory"))
(export "memory" (memory $0))
@ -52,7 +52,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 138)
(i32.const 4)
)
@ -89,7 +89,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 161)
(i32.const 4)
)
@ -109,7 +109,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 162)
(i32.const 4)
)
@ -172,7 +172,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 83)
(i32.const 4)
)
@ -212,7 +212,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 84)
(i32.const 11)
)
@ -236,7 +236,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 423)
(i32.const 2)
)
@ -272,7 +272,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 152)
(i32.const 4)
)
@ -292,7 +292,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 153)
(i32.const 4)
)
@ -339,7 +339,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 132)
(i32.const 4)
)
@ -392,7 +392,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 252)
(i32.const 4)
)
@ -442,7 +442,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 254)
(i32.const 4)
)
@ -683,7 +683,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 75)
(i32.const 4)
)
@ -710,7 +710,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 76)
(i32.const 11)
)
@ -736,7 +736,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 331)
(i32.const 4)
)
@ -758,7 +758,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 332)
(i32.const 4)
)
@ -780,7 +780,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 333)
(i32.const 4)
)
@ -819,7 +819,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 183)
(i32.const 4)
)
@ -846,7 +846,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 185)
(i32.const 4)
)
@ -898,7 +898,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 187)
(i32.const 4)
)
@ -920,7 +920,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 191)
(i32.const 23)
)
@ -1020,7 +1020,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 205)
(i32.const 24)
)
@ -1049,7 +1049,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 207)
(i32.const 6)
)
@ -1163,7 +1163,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 220)
(i32.const 4)
)
@ -1354,7 +1354,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 374)
(i32.const 4)
)
@ -1378,7 +1378,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 375)
(i32.const 4)
)
@ -1402,7 +1402,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 376)
(i32.const 4)
)
@ -1444,7 +1444,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 381)
(i32.const 6)
)
@ -1500,7 +1500,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 390)
(i32.const 6)
)
@ -1643,7 +1643,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 417)
(i32.const 2)
)
@ -1673,7 +1673,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 417)
(i32.const 2)
)
@ -1726,7 +1726,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 293)
(i32.const 4)
)
@ -1946,7 +1946,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 320)
(i32.const 16)
)
@ -2020,7 +2020,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 345)
(i32.const 4)
)
@ -2057,7 +2057,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 346)
(i32.const 4)
)
@ -2081,7 +2081,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 347)
(i32.const 4)
)
@ -2210,7 +2210,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 365)
(i32.const 25)
)
@ -2581,7 +2581,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 466)
(i32.const 14)
)
@ -2616,7 +2616,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 469)
(i32.const 4)
)
@ -2697,7 +2697,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 483)
(i32.const 6)
)
@ -2736,7 +2736,7 @@
(if
(i32.eqz
;;@ (lib)/allocator/tlsf.ts:50:7
(i32.ge_s
(i32.ge_u
(i32.const 2)
;;@ (lib)/allocator/tlsf.ts:50:18
(i32.const 2)
@ -2745,7 +2745,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 50)
(i32.const 0)
)
@ -2770,7 +2770,7 @@
(block
(call $abort
(i32.const 0)
(i32.const 8)
(i32.const 4)
(i32.const 116)
(i32.const 0)
)

View File

@ -4,7 +4,7 @@ const webpack = require("webpack");
// Build the C-like library
const lib = {
entry: [ "./src/glue/js.js", "./src/index.ts" ],
entry: [ "./src/glue/js", "./src/index.ts" ],
module: {
rules: [
{