Fix some missing sources not correctly being reported

This commit is contained in:
dcode 2019-05-27 21:39:40 +02:00
parent ccd1198aa7
commit fe70f1d863
19 changed files with 436 additions and 448 deletions

View File

@ -277,6 +277,7 @@ exports.main = function main(argv, options, callback) {
function parseBacklog() {
var sourcePath, sourceText;
while ((sourcePath = parser.nextFile()) != null) {
sourceText = null;
// Load library file if explicitly requested
if (sourcePath.startsWith(exports.libraryPrefix)) {
@ -325,12 +326,12 @@ exports.main = function main(argv, options, callback) {
} else {
for (let i = 0, k = customLibDirs.length; i < k; ++i) {
const dir = customLibDirs[i];
sourceText = readFile(plainName + ".ts", customLibDirs[i]);
sourceText = readFile(plainName + ".ts", dir);
if (sourceText !== null) {
sourcePath = exports.libraryPrefix + plainName + ".ts";
break;
} else {
sourceText = readFile(indexName + ".ts", customLibDirs[i]);
sourceText = readFile(indexName + ".ts", dir);
if (sourceText !== null) {
sourcePath = exports.libraryPrefix + indexName + ".ts";
break;
@ -356,17 +357,21 @@ exports.main = function main(argv, options, callback) {
// Include runtime template before entry files so its setup runs first
{
let templateName = String(args.runtime);
let templateText = exports.libraryFiles["rt/index-" + templateName];
if (templateText == null) {
templateText = readFile(templateName + ".ts", baseDir);
if (templateText == null) {
return callback(Error("Runtime template '" + templateName + "' not found."));
let runtimeName = String(args.runtime);
let runtimePath = "rt/index-" + runtimeName;
let runtimeText = exports.libraryFiles[runtimePath];
if (runtimeText == null) {
runtimePath = runtimeName;
runtimeText = readFile(runtimePath + ".ts", baseDir);
if (runtimeText == null) {
return callback(Error("Runtime '" + runtimeName + "' not found."));
}
} else {
runtimePath = "~lib/" + runtimePath;
}
stats.parseCount++;
stats.parseTime += measure(() => {
parser = assemblyscript.parseFile(templateText, templateName, true, parser);
parser = assemblyscript.parseFile(runtimeText, runtimePath, true, parser);
});
}

View File

@ -1,5 +1,3 @@
import "allocator/arena";
export function testVar(n: Error | null): Error {
return n!;
}

View File

@ -104,7 +104,7 @@
if
i32.const 0
i32.const 24
i32.const 8
i32.const 6
i32.const 4
call $~lib/builtins/abort
unreachable
@ -127,7 +127,7 @@
if
i32.const 0
i32.const 24
i32.const 17
i32.const 15
i32.const 4
call $~lib/builtins/abort
unreachable
@ -139,7 +139,7 @@
if
i32.const 0
i32.const 24
i32.const 18
i32.const 16
i32.const 4
call $~lib/builtins/abort
unreachable
@ -156,7 +156,7 @@
if
i32.const 0
i32.const 24
i32.const 24
i32.const 22
i32.const 2
call $~lib/builtins/abort
unreachable
@ -168,7 +168,7 @@
if
i32.const 0
i32.const 24
i32.const 25
i32.const 23
i32.const 2
call $~lib/builtins/abort
unreachable
@ -200,7 +200,7 @@
if
i32.const 0
i32.const 24
i32.const 40
i32.const 38
i32.const 4
call $~lib/builtins/abort
unreachable
@ -212,7 +212,7 @@
if
i32.const 0
i32.const 24
i32.const 41
i32.const 39
i32.const 4
call $~lib/builtins/abort
unreachable
@ -229,7 +229,7 @@
if
i32.const 0
i32.const 24
i32.const 47
i32.const 45
i32.const 2
call $~lib/builtins/abort
unreachable
@ -241,7 +241,7 @@
if
i32.const 0
i32.const 24
i32.const 48
i32.const 46
i32.const 2
call $~lib/builtins/abort
unreachable
@ -266,7 +266,7 @@
if
i32.const 0
i32.const 24
i32.const 58
i32.const 56
i32.const 4
call $~lib/builtins/abort
unreachable
@ -289,7 +289,7 @@
if
i32.const 0
i32.const 24
i32.const 68
i32.const 66
i32.const 2
call $~lib/builtins/abort
unreachable
@ -301,7 +301,7 @@
if
i32.const 0
i32.const 24
i32.const 69
i32.const 67
i32.const 2
call $~lib/builtins/abort
unreachable
@ -340,7 +340,7 @@
if
i32.const 0
i32.const 24
i32.const 86
i32.const 84
i32.const 2
call $~lib/builtins/abort
unreachable
@ -352,7 +352,7 @@
if
i32.const 0
i32.const 24
i32.const 87
i32.const 85
i32.const 2
call $~lib/builtins/abort
unreachable
@ -391,7 +391,7 @@
if
i32.const 0
i32.const 24
i32.const 106
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
@ -403,7 +403,7 @@
if
i32.const 0
i32.const 24
i32.const 107
i32.const 105
i32.const 2
call $~lib/builtins/abort
unreachable

View File

@ -1,5 +1,3 @@
import "allocator/arena";
// both constructors present
class A {

View File

@ -132,7 +132,7 @@
if
i32.const 0
i32.const 24
i32.const 8
i32.const 6
i32.const 4
call $~lib/builtins/abort
unreachable
@ -164,7 +164,7 @@
if
i32.const 0
i32.const 24
i32.const 17
i32.const 15
i32.const 4
call $~lib/builtins/abort
unreachable
@ -177,7 +177,7 @@
if
i32.const 0
i32.const 24
i32.const 18
i32.const 16
i32.const 4
call $~lib/builtins/abort
unreachable
@ -200,7 +200,7 @@
if
i32.const 0
i32.const 24
i32.const 24
i32.const 22
i32.const 2
call $~lib/builtins/abort
unreachable
@ -213,7 +213,7 @@
if
i32.const 0
i32.const 24
i32.const 25
i32.const 23
i32.const 2
call $~lib/builtins/abort
unreachable
@ -261,7 +261,7 @@
if
i32.const 0
i32.const 24
i32.const 40
i32.const 38
i32.const 4
call $~lib/builtins/abort
unreachable
@ -274,7 +274,7 @@
if
i32.const 0
i32.const 24
i32.const 41
i32.const 39
i32.const 4
call $~lib/builtins/abort
unreachable
@ -294,7 +294,7 @@
if
i32.const 0
i32.const 24
i32.const 47
i32.const 45
i32.const 2
call $~lib/builtins/abort
unreachable
@ -307,7 +307,7 @@
if
i32.const 0
i32.const 24
i32.const 48
i32.const 46
i32.const 2
call $~lib/builtins/abort
unreachable
@ -338,7 +338,7 @@
if
i32.const 0
i32.const 24
i32.const 58
i32.const 56
i32.const 4
call $~lib/builtins/abort
unreachable
@ -378,7 +378,7 @@
if
i32.const 0
i32.const 24
i32.const 68
i32.const 66
i32.const 2
call $~lib/builtins/abort
unreachable
@ -391,7 +391,7 @@
if
i32.const 0
i32.const 24
i32.const 69
i32.const 67
i32.const 2
call $~lib/builtins/abort
unreachable
@ -447,7 +447,7 @@
if
i32.const 0
i32.const 24
i32.const 86
i32.const 84
i32.const 2
call $~lib/builtins/abort
unreachable
@ -460,7 +460,7 @@
if
i32.const 0
i32.const 24
i32.const 87
i32.const 85
i32.const 2
call $~lib/builtins/abort
unreachable
@ -516,7 +516,7 @@
if
i32.const 0
i32.const 24
i32.const 106
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
@ -529,7 +529,7 @@
if
i32.const 0
i32.const 24
i32.const 107
i32.const 105
i32.const 2
call $~lib/builtins/abort
unreachable

View File

@ -1,5 +1,3 @@
import "allocator/arena";
class Animal<T> {
static ONE: i32 = 1;
static add(a: i32, b: i32): i32 { return a + b + Animal.ONE; }

View File

@ -39,7 +39,7 @@
if
i32.const 0
i32.const 24
i32.const 15
i32.const 13
i32.const 0
call $~lib/builtins/abort
unreachable

View File

@ -1,5 +1,3 @@
import "allocator/arena";
// top-level function
export function add(a: i32, b: i32): i32 {
return a + b;

View File

@ -1,5 +1,3 @@
import "allocator/arena";
class C {
get x(): () => i32 {
return (): i32 => 42;

View File

@ -149,7 +149,7 @@
if
i32.const 0
i32.const 24
i32.const 97
i32.const 95
i32.const 2
call $~lib/builtins/abort
unreachable
@ -161,7 +161,7 @@
if
i32.const 0
i32.const 24
i32.const 98
i32.const 96
i32.const 2
call $~lib/builtins/abort
unreachable
@ -173,7 +173,7 @@
if
i32.const 0
i32.const 24
i32.const 99
i32.const 97
i32.const 2
call $~lib/builtins/abort
unreachable
@ -185,7 +185,7 @@
if
i32.const 0
i32.const 24
i32.const 100
i32.const 98
i32.const 2
call $~lib/builtins/abort
unreachable

View File

@ -73,8 +73,6 @@ function test_funcs(): void {
test_funcs();
import "allocator/arena";
class Baz {
a: i32 = 1;
b: i32;

View File

@ -455,7 +455,7 @@
if
i32.const 0
i32.const 24
i32.const 97
i32.const 95
i32.const 2
call $~lib/builtins/abort
unreachable
@ -468,7 +468,7 @@
if
i32.const 0
i32.const 24
i32.const 98
i32.const 96
i32.const 2
call $~lib/builtins/abort
unreachable
@ -481,7 +481,7 @@
if
i32.const 0
i32.const 24
i32.const 99
i32.const 97
i32.const 2
call $~lib/builtins/abort
unreachable
@ -494,7 +494,7 @@
if
i32.const 0
i32.const 24
i32.const 100
i32.const 98
i32.const 2
call $~lib/builtins/abort
unreachable

View File

@ -1503,7 +1503,7 @@
if
i32.const 0
i32.const 72
i32.const 7
i32.const 5
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1515,7 +1515,7 @@
if
i32.const 0
i32.const 72
i32.const 9
i32.const 7
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1528,7 +1528,7 @@
if
i32.const 0
i32.const 72
i32.const 10
i32.const 8
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1541,7 +1541,7 @@
if
i32.const 0
i32.const 72
i32.const 12
i32.const 10
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1554,7 +1554,7 @@
if
i32.const 0
i32.const 72
i32.const 13
i32.const 11
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1571,7 +1571,7 @@
if
i32.const 0
i32.const 72
i32.const 14
i32.const 12
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1588,7 +1588,7 @@
if
i32.const 0
i32.const 72
i32.const 15
i32.const 13
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1601,7 +1601,7 @@
if
i32.const 0
i32.const 72
i32.const 16
i32.const 14
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1614,7 +1614,7 @@
if
i32.const 0
i32.const 72
i32.const 17
i32.const 15
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1632,7 +1632,7 @@
if
i32.const 0
i32.const 72
i32.const 20
i32.const 18
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1650,7 +1650,7 @@
if
i32.const 0
i32.const 72
i32.const 21
i32.const 19
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1660,7 +1660,7 @@
if
i32.const 0
i32.const 72
i32.const 27
i32.const 25
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1669,6 +1669,30 @@
call $~lib/number/F32.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 26
i32.const 0
call $~lib/builtins/abort
unreachable
end
f32.const 0
call $~lib/number/F32.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 27
i32.const 0
call $~lib/builtins/abort
unreachable
end
f32.const -0
call $~lib/number/F32.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
@ -1677,36 +1701,12 @@
call $~lib/builtins/abort
unreachable
end
f32.const 0
call $~lib/number/F32.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 29
i32.const 0
call $~lib/builtins/abort
unreachable
end
f32.const -0
call $~lib/number/F32.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 30
i32.const 0
call $~lib/builtins/abort
unreachable
end
f32.const nan:0x400000
call $~lib/number/F32.isSafeInteger
if
i32.const 0
i32.const 72
i32.const 31
i32.const 29
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1716,7 +1716,7 @@
if
i32.const 0
i32.const 72
i32.const 32
i32.const 30
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1728,7 +1728,7 @@
if
i32.const 0
i32.const 72
i32.const 33
i32.const 31
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1738,7 +1738,7 @@
if
i32.const 0
i32.const 72
i32.const 34
i32.const 32
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1748,7 +1748,7 @@
if
i32.const 0
i32.const 72
i32.const 35
i32.const 33
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1760,7 +1760,7 @@
if
i32.const 0
i32.const 72
i32.const 36
i32.const 34
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1772,7 +1772,7 @@
if
i32.const 0
i32.const 72
i32.const 37
i32.const 35
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1782,7 +1782,7 @@
if
i32.const 0
i32.const 72
i32.const 38
i32.const 36
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1792,7 +1792,7 @@
if
i32.const 0
i32.const 72
i32.const 39
i32.const 37
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1802,7 +1802,7 @@
if
i32.const 0
i32.const 72
i32.const 40
i32.const 38
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1814,7 +1814,7 @@
if
i32.const 0
i32.const 72
i32.const 41
i32.const 39
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1826,7 +1826,7 @@
if
i32.const 0
i32.const 72
i32.const 42
i32.const 40
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1838,7 +1838,7 @@
if
i32.const 0
i32.const 72
i32.const 43
i32.const 41
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1850,7 +1850,7 @@
if
i32.const 0
i32.const 72
i32.const 44
i32.const 42
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1860,7 +1860,7 @@
if
i32.const 0
i32.const 72
i32.const 45
i32.const 43
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1870,7 +1870,7 @@
if
i32.const 0
i32.const 72
i32.const 46
i32.const 44
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1881,7 +1881,7 @@
if
i32.const 0
i32.const 72
i32.const 48
i32.const 46
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1891,7 +1891,7 @@
if
i32.const 0
i32.const 72
i32.const 50
i32.const 48
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1900,6 +1900,30 @@
call $~lib/number/F64.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 49
i32.const 0
call $~lib/builtins/abort
unreachable
end
f64.const 0
call $~lib/number/F64.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 50
i32.const 0
call $~lib/builtins/abort
unreachable
end
f64.const -0
call $~lib/number/F64.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
@ -1908,36 +1932,12 @@
call $~lib/builtins/abort
unreachable
end
f64.const 0
call $~lib/number/F64.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 52
i32.const 0
call $~lib/builtins/abort
unreachable
end
f64.const -0
call $~lib/number/F64.isSafeInteger
i32.const 1
i32.ne
if
i32.const 0
i32.const 72
i32.const 53
i32.const 0
call $~lib/builtins/abort
unreachable
end
f64.const nan:0x8000000000000
call $~lib/number/F64.isSafeInteger
if
i32.const 0
i32.const 72
i32.const 54
i32.const 52
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1947,7 +1947,7 @@
if
i32.const 0
i32.const 72
i32.const 55
i32.const 53
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1959,7 +1959,7 @@
if
i32.const 0
i32.const 72
i32.const 56
i32.const 54
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1969,7 +1969,7 @@
if
i32.const 0
i32.const 72
i32.const 57
i32.const 55
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1979,7 +1979,7 @@
if
i32.const 0
i32.const 72
i32.const 58
i32.const 56
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1991,7 +1991,7 @@
if
i32.const 0
i32.const 72
i32.const 59
i32.const 57
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2003,7 +2003,7 @@
if
i32.const 0
i32.const 72
i32.const 60
i32.const 58
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2013,7 +2013,7 @@
if
i32.const 0
i32.const 72
i32.const 61
i32.const 59
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2023,7 +2023,7 @@
if
i32.const 0
i32.const 72
i32.const 62
i32.const 60
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2033,7 +2033,7 @@
if
i32.const 0
i32.const 72
i32.const 63
i32.const 61
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2045,7 +2045,7 @@
if
i32.const 0
i32.const 72
i32.const 64
i32.const 62
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2057,7 +2057,7 @@
if
i32.const 0
i32.const 72
i32.const 65
i32.const 63
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2069,7 +2069,7 @@
if
i32.const 0
i32.const 72
i32.const 66
i32.const 64
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2081,7 +2081,7 @@
if
i32.const 0
i32.const 72
i32.const 67
i32.const 65
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2091,7 +2091,7 @@
if
i32.const 0
i32.const 72
i32.const 68
i32.const 66
i32.const 0
call $~lib/builtins/abort
unreachable
@ -2101,7 +2101,7 @@
if
i32.const 0
i32.const 72
i32.const 69
i32.const 67
i32.const 0
call $~lib/builtins/abort
unreachable

View File

@ -1,5 +1,3 @@
import "allocator/arena";
// basic class bindings
// variable

View File

@ -3655,7 +3655,7 @@
if
i32.const 0
i32.const 520
i32.const 7
i32.const 5
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3669,7 +3669,7 @@
if
i32.const 0
i32.const 520
i32.const 9
i32.const 7
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3683,7 +3683,7 @@
if
i32.const 0
i32.const 520
i32.const 10
i32.const 8
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3697,7 +3697,7 @@
if
i32.const 0
i32.const 520
i32.const 12
i32.const 10
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3711,7 +3711,7 @@
if
i32.const 0
i32.const 520
i32.const 13
i32.const 11
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3731,7 +3731,7 @@
if
i32.const 0
i32.const 520
i32.const 14
i32.const 12
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3751,7 +3751,7 @@
if
i32.const 0
i32.const 520
i32.const 15
i32.const 13
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3766,7 +3766,7 @@
if
i32.const 0
i32.const 520
i32.const 16
i32.const 14
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3781,7 +3781,7 @@
if
i32.const 0
i32.const 520
i32.const 17
i32.const 15
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3802,7 +3802,7 @@
if
i32.const 0
i32.const 520
i32.const 20
i32.const 18
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3823,7 +3823,7 @@
if
i32.const 0
i32.const 520
i32.const 21
i32.const 19
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3834,7 +3834,7 @@
if
i32.const 0
i32.const 520
i32.const 25
i32.const 23
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3849,7 +3849,7 @@
if
i32.const 0
i32.const 520
i32.const 27
i32.const 25
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3862,7 +3862,7 @@
if
i32.const 0
i32.const 520
i32.const 28
i32.const 26
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3875,7 +3875,7 @@
if
i32.const 0
i32.const 520
i32.const 29
i32.const 27
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3888,7 +3888,7 @@
if
i32.const 0
i32.const 520
i32.const 30
i32.const 28
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3901,7 +3901,7 @@
if
i32.const 0
i32.const 520
i32.const 31
i32.const 29
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3914,7 +3914,7 @@
if
i32.const 0
i32.const 520
i32.const 32
i32.const 30
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3927,7 +3927,7 @@
if
i32.const 0
i32.const 520
i32.const 33
i32.const 31
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3942,7 +3942,7 @@
if
i32.const 0
i32.const 520
i32.const 34
i32.const 32
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3955,7 +3955,7 @@
if
i32.const 0
i32.const 520
i32.const 35
i32.const 33
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3968,7 +3968,7 @@
if
i32.const 0
i32.const 520
i32.const 36
i32.const 34
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3981,7 +3981,7 @@
if
i32.const 0
i32.const 520
i32.const 37
i32.const 35
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3994,7 +3994,7 @@
if
i32.const 0
i32.const 520
i32.const 38
i32.const 36
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4007,7 +4007,7 @@
if
i32.const 0
i32.const 520
i32.const 39
i32.const 37
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4020,7 +4020,7 @@
if
i32.const 0
i32.const 520
i32.const 40
i32.const 38
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4033,7 +4033,7 @@
if
i32.const 0
i32.const 520
i32.const 41
i32.const 39
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4046,7 +4046,7 @@
if
i32.const 0
i32.const 520
i32.const 42
i32.const 40
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4059,7 +4059,7 @@
if
i32.const 0
i32.const 520
i32.const 43
i32.const 41
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4072,7 +4072,7 @@
if
i32.const 0
i32.const 520
i32.const 44
i32.const 42
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4085,7 +4085,7 @@
if
i32.const 0
i32.const 520
i32.const 45
i32.const 43
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4098,7 +4098,7 @@
if
i32.const 0
i32.const 520
i32.const 46
i32.const 44
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4109,7 +4109,7 @@
if
i32.const 0
i32.const 520
i32.const 48
i32.const 46
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4124,7 +4124,7 @@
if
i32.const 0
i32.const 520
i32.const 50
i32.const 48
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4137,7 +4137,7 @@
if
i32.const 0
i32.const 520
i32.const 51
i32.const 49
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4150,7 +4150,7 @@
if
i32.const 0
i32.const 520
i32.const 52
i32.const 50
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4163,7 +4163,7 @@
if
i32.const 0
i32.const 520
i32.const 53
i32.const 51
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4176,7 +4176,7 @@
if
i32.const 0
i32.const 520
i32.const 54
i32.const 52
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4189,7 +4189,7 @@
if
i32.const 0
i32.const 520
i32.const 55
i32.const 53
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4202,7 +4202,7 @@
if
i32.const 0
i32.const 520
i32.const 56
i32.const 54
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4217,7 +4217,7 @@
if
i32.const 0
i32.const 520
i32.const 57
i32.const 55
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4230,7 +4230,7 @@
if
i32.const 0
i32.const 520
i32.const 58
i32.const 56
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4243,7 +4243,7 @@
if
i32.const 0
i32.const 520
i32.const 59
i32.const 57
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4256,7 +4256,7 @@
if
i32.const 0
i32.const 520
i32.const 60
i32.const 58
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4269,7 +4269,7 @@
if
i32.const 0
i32.const 520
i32.const 61
i32.const 59
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4282,7 +4282,7 @@
if
i32.const 0
i32.const 520
i32.const 62
i32.const 60
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4295,7 +4295,7 @@
if
i32.const 0
i32.const 520
i32.const 63
i32.const 61
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4308,7 +4308,7 @@
if
i32.const 0
i32.const 520
i32.const 64
i32.const 62
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4321,7 +4321,7 @@
if
i32.const 0
i32.const 520
i32.const 65
i32.const 63
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4334,7 +4334,7 @@
if
i32.const 0
i32.const 520
i32.const 66
i32.const 64
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4347,7 +4347,7 @@
if
i32.const 0
i32.const 520
i32.const 67
i32.const 65
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4360,7 +4360,7 @@
if
i32.const 0
i32.const 520
i32.const 68
i32.const 66
i32.const 0
call $~lib/builtins/abort
unreachable
@ -4373,7 +4373,7 @@
if
i32.const 0
i32.const 520
i32.const 69
i32.const 67
i32.const 0
call $~lib/builtins/abort
unreachable

View File

@ -21,7 +21,6 @@ class TestDerived<T,U = T> {
}
}
import "allocator/arena";
var tConcrete = new TestConcrete<i32>();
tConcrete.test<i32>(1, 2);
var tDerived = new TestDerived<f64>()

View File

@ -1602,7 +1602,7 @@
if
i32.const 0
i32.const 80
i32.const 4
i32.const 2
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1610,6 +1610,32 @@
i32.const 48
i32.const 0
call $~lib/array/Array<i8>#__get
if
i32.const 0
i32.const 80
i32.const 3
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 48
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 4
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 48
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
@ -1618,32 +1644,6 @@
call $~lib/builtins/abort
unreachable
end
i32.const 48
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 6
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 48
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
i32.const 7
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 284
i32.load
i32.const 3
@ -1651,7 +1651,7 @@
if
i32.const 0
i32.const 80
i32.const 10
i32.const 8
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1659,6 +1659,32 @@
i32.const 272
i32.const 0
call $~lib/array/Array<i32>#__get
if
i32.const 0
i32.const 80
i32.const 9
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 272
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 10
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 272
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
@ -1667,38 +1693,12 @@
call $~lib/builtins/abort
unreachable
end
i32.const 272
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 12
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 272
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
i32.const 13
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/emptyArrayI32
i32.load offset=12
if
i32.const 0
i32.const 80
i32.const 16
i32.const 14
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1735,7 +1735,7 @@
if
i32.const 0
i32.const 80
i32.const 21
i32.const 19
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1743,6 +1743,32 @@
global.get $std/array-literal/dynamicArrayI8
i32.const 0
call $~lib/array/Array<i8>#__get
if
i32.const 0
i32.const 80
i32.const 20
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 21
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
@ -1751,32 +1777,6 @@
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 23
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
i32.const 24
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 0
global.set $std/array-literal/i
i32.const 2
@ -1811,7 +1811,7 @@
if
i32.const 0
i32.const 80
i32.const 29
i32.const 27
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1819,6 +1819,32 @@
global.get $std/array-literal/dynamicArrayI32
i32.const 0
call $~lib/array/Array<i32>#__get
if
i32.const 0
i32.const 80
i32.const 28
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 29
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
@ -1827,32 +1853,6 @@
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.ne
if
i32.const 0
i32.const 80
i32.const 31
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 2
i32.ne
if
i32.const 0
i32.const 80
i32.const 32
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 2
i32.const 6
call $~lib/rt/__allocArray
@ -1883,7 +1883,7 @@
if
i32.const 0
i32.const 80
i32.const 36
i32.const 34
i32.const 0
call $~lib/builtins/abort
unreachable
@ -1918,7 +1918,7 @@
if
i32.const 0
i32.const 80
i32.const 40
i32.const 38
i32.const 0
call $~lib/builtins/abort
unreachable

View File

@ -1,5 +1,3 @@
import "collector/dummy";
const staticArrayI8: i8[] = [0, 1, 2];
assert(staticArrayI8.length == 3);
assert(staticArrayI8[0] == 0);

View File

@ -3305,6 +3305,34 @@
i32.const 3
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 2
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI8
i32.const 0
call $~lib/array/Array<i8>#__get
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 3
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI8
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
@ -3314,9 +3342,9 @@
unreachable
end
global.get $std/array-literal/staticArrayI8
i32.const 0
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 0
i32.const 2
i32.eq
i32.eqz
if
@ -3327,39 +3355,39 @@
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI8
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 6
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI8
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 2
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 7
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI32
call $~lib/array/Array<i32>#get:length
i32.const 3
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 8
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI32
i32.const 0
call $~lib/array/Array<i32>#__get
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 9
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI32
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
@ -3369,9 +3397,9 @@
unreachable
end
global.get $std/array-literal/staticArrayI32
i32.const 0
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 0
i32.const 2
i32.eq
i32.eqz
if
@ -3382,34 +3410,6 @@
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI32
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 12
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/staticArrayI32
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 2
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 13
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/emptyArrayI32
call $~lib/array/Array<i32>#get:length
i32.const 0
@ -3418,7 +3418,7 @@
if
i32.const 0
i32.const 80
i32.const 16
i32.const 14
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3463,6 +3463,34 @@
i32.const 3
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 19
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 0
call $~lib/array/Array<i8>#__get
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 20
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
@ -3472,9 +3500,9 @@
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 0
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 0
i32.const 2
i32.eq
i32.eqz
if
@ -3485,34 +3513,6 @@
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 1
call $~lib/array/Array<i8>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 23
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI8
i32.const 2
call $~lib/array/Array<i8>#__get
i32.const 2
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 24
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 0
global.set $std/array-literal/i
block (result i32)
@ -3555,6 +3555,34 @@
i32.const 3
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 27
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 0
call $~lib/array/Array<i32>#__get
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 28
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
@ -3564,9 +3592,9 @@
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 0
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 0
i32.const 2
i32.eq
i32.eqz
if
@ -3577,34 +3605,6 @@
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 1
call $~lib/array/Array<i32>#__get
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 31
i32.const 0
call $~lib/builtins/abort
unreachable
end
global.get $std/array-literal/dynamicArrayI32
i32.const 2
call $~lib/array/Array<i32>#__get
i32.const 2
i32.eq
i32.eqz
if
i32.const 0
i32.const 80
i32.const 32
i32.const 0
call $~lib/builtins/abort
unreachable
end
block (result i32)
i32.const 3
i32.const 2
@ -3645,7 +3645,7 @@
if
i32.const 0
i32.const 80
i32.const 36
i32.const 34
i32.const 0
call $~lib/builtins/abort
unreachable
@ -3690,7 +3690,7 @@
if
i32.const 0
i32.const 80
i32.const 40
i32.const 38
i32.const 0
call $~lib/builtins/abort
unreachable