Add a TODO on Array#copyWithin

This commit is contained in:
dcode 2019-06-05 04:22:40 +02:00
parent 93c9a4afd9
commit b7ca4baf42
17 changed files with 93 additions and 86 deletions

View File

@ -35,6 +35,8 @@ export class Array<T> extends ArrayBufferView {
// length is modified in a way that a null value would exist. Otherwise, the compiler wouldn't be
// able to guarantee type-safety anymore. For lack of a better word, such an array is "holey".
// Also note that capacity, not length, indicates the actual retained contents.
private length_: i32;
static isArray<U>(value: U): bool {
@ -244,6 +246,10 @@ export class Array<T> extends ArrayBufferView {
var last = end < 0 ? max(len + end, 0) : min(end, len);
var count = min(last - from, len - to);
if (isManaged<T>()) {
// TODO: retain/release + consider intersection, only releasing what's removed
ERROR("not implemented");
} else {
if (from < to && to < (from + count)) {
from += count - 1;
to += count - 1;
@ -258,6 +264,7 @@ export class Array<T> extends ArrayBufferView {
<usize>count << alignof<T>()
);
}
}
return this;
}

View File

@ -64,7 +64,7 @@
if
i32.const 24
i32.const 136
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -78,7 +78,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -105,7 +105,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -106,7 +106,7 @@
if
i32.const 24
i32.const 136
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -120,7 +120,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -168,7 +168,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -2015,7 +2015,7 @@
if
i32.const 424
i32.const 376
i32.const 266
i32.const 273
i32.const 20
call $~lib/builtins/abort
unreachable

View File

@ -3782,7 +3782,7 @@
if
i32.const 424
i32.const 376
i32.const 266
i32.const 273
i32.const 20
call $~lib/builtins/abort
unreachable
@ -3824,7 +3824,7 @@
if
i32.const 472
i32.const 376
i32.const 56
i32.const 58
i32.const 20
call $~lib/builtins/abort
unreachable
@ -3855,7 +3855,7 @@
if
i32.const 472
i32.const 376
i32.const 56
i32.const 58
i32.const 20
call $~lib/builtins/abort
unreachable

View File

@ -26,7 +26,7 @@
if
i32.const 24
i32.const 136
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -40,7 +40,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -63,7 +63,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -43,7 +43,7 @@
if
i32.const 24
i32.const 136
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -57,7 +57,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -85,7 +85,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -134,7 +134,7 @@
if
i32.const 24
i32.const 136
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -148,7 +148,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -374,7 +374,7 @@
if
i32.const 24
i32.const 136
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -388,7 +388,7 @@
if
i32.const 184
i32.const 136
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -47,7 +47,7 @@
if
i32.const 136
i32.const 192
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -68,7 +68,7 @@
if
i32.const 136
i32.const 192
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -70,7 +70,7 @@
if
i32.const 136
i32.const 192
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -102,7 +102,7 @@
if
i32.const 136
i32.const 192
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -2367,7 +2367,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -2521,7 +2521,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -2858,7 +2858,7 @@
if
i32.const 872
i32.const 488
i32.const 266
i32.const 273
i32.const 20
call $~lib/builtins/abort
unreachable
@ -2905,7 +2905,7 @@
call $~lib/rt/pure/__release
i32.const 272
i32.const 488
i32.const 213
i32.const 215
i32.const 59
call $~lib/builtins/abort
unreachable
@ -3144,7 +3144,7 @@
if
i32.const 872
i32.const 488
i32.const 327
i32.const 334
i32.const 20
call $~lib/builtins/abort
unreachable
@ -3985,7 +3985,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -5397,7 +5397,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -5911,7 +5911,7 @@
if
i32.const 272
i32.const 488
i32.const 45
i32.const 47
i32.const 61
call $~lib/builtins/abort
unreachable
@ -6187,7 +6187,7 @@
call $~lib/rt/pure/__release
i32.const 4040
i32.const 488
i32.const 112
i32.const 114
i32.const 38
call $~lib/builtins/abort
unreachable
@ -6443,7 +6443,7 @@
if
i32.const 4040
i32.const 488
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -6457,7 +6457,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -6636,7 +6636,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -4243,7 +4243,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -4448,7 +4448,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -4856,7 +4856,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -4877,7 +4877,7 @@
if
i32.const 872
i32.const 488
i32.const 266
i32.const 273
i32.const 20
call $~lib/builtins/abort
unreachable
@ -4933,7 +4933,7 @@
block
i32.const 272
i32.const 488
i32.const 213
i32.const 215
i32.const 59
call $~lib/builtins/abort
unreachable
@ -5296,7 +5296,7 @@
if
i32.const 872
i32.const 488
i32.const 327
i32.const 334
i32.const 20
call $~lib/builtins/abort
unreachable
@ -6337,7 +6337,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -8288,7 +8288,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -9390,7 +9390,7 @@
if
i32.const 272
i32.const 488
i32.const 45
i32.const 47
i32.const 61
call $~lib/builtins/abort
unreachable
@ -9669,7 +9669,7 @@
if
i32.const 272
i32.const 488
i32.const 45
i32.const 47
i32.const 61
call $~lib/builtins/abort
unreachable
@ -9739,7 +9739,7 @@
block
i32.const 4040
i32.const 488
i32.const 112
i32.const 114
i32.const 38
call $~lib/builtins/abort
unreachable
@ -10033,7 +10033,7 @@
if
i32.const 4040
i32.const 488
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -10047,7 +10047,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -10161,7 +10161,7 @@
if
i32.const 272
i32.const 488
i32.const 45
i32.const 47
i32.const 61
call $~lib/builtins/abort
unreachable
@ -10246,7 +10246,7 @@
block
i32.const 4040
i32.const 488
i32.const 112
i32.const 114
i32.const 38
call $~lib/builtins/abort
unreachable
@ -10534,7 +10534,7 @@
if
i32.const 4040
i32.const 488
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -10548,7 +10548,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -10853,7 +10853,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -11356,7 +11356,7 @@
if
i32.const 272
i32.const 488
i32.const 45
i32.const 47
i32.const 61
call $~lib/builtins/abort
unreachable
@ -11632,7 +11632,7 @@
block
i32.const 4040
i32.const 488
i32.const 112
i32.const 114
i32.const 38
call $~lib/builtins/abort
unreachable
@ -11898,7 +11898,7 @@
if
i32.const 4040
i32.const 488
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -11912,7 +11912,7 @@
if
i32.const 176
i32.const 488
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -37,7 +37,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -624,7 +624,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -668,7 +668,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -712,7 +712,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -59,7 +59,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -1999,7 +1999,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -2067,7 +2067,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -2135,7 +2135,7 @@
if
i32.const 320
i32.const 376
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -4018,7 +4018,7 @@
if
i32.const 2296
i32.const 2248
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -4032,7 +4032,7 @@
if
i32.const 232
i32.const 2248
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -6331,7 +6331,7 @@
if
i32.const 2296
i32.const 2248
i32.const 97
i32.const 99
i32.const 45
call $~lib/builtins/abort
unreachable
@ -6345,7 +6345,7 @@
if
i32.const 232
i32.const 2248
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -3354,7 +3354,7 @@
if
i32.const 336
i32.const 512
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -3605,7 +3605,7 @@
if
i32.const 336
i32.const 512
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable

View File

@ -5439,7 +5439,7 @@
if
i32.const 336
i32.const 512
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable
@ -5766,7 +5766,7 @@
if
i32.const 336
i32.const 512
i32.const 100
i32.const 102
i32.const 61
call $~lib/builtins/abort
unreachable