mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-14 23:41:30 +00:00
Fix implementation of Array#splice (#347)
This commit is contained in:
@ -330,6 +330,60 @@ assert(internalCapacity<i32>(arr) == 5);
|
||||
assert(arr[0] == 44);
|
||||
assert(arr[1] == 42);
|
||||
|
||||
// Array#splice ////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var sarr: i32[] = [1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(0), <i32[]>[1, 2, 3, 4, 5]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(2), <i32[]>[3, 4, 5]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(2, 2), <i32[]>[3, 4]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(0, 1), <i32[]>[1]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[2, 3, 4, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(-1), <i32[]>[5]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3, 4]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(-2), <i32[]>[4, 5]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(-2, 1), <i32[]>[4]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(-7, 1), <i32[]>[1]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[2, 3, 4, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(-2, -1), <i32[]>[]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3, 4, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(1, -2), <i32[]>[]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3, 4, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(4, 0), <i32[]>[]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3, 4, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(7, 0), <i32[]>[]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3, 4, 5]));
|
||||
|
||||
sarr = <i32[]>[1, 2, 3, 4, 5];
|
||||
assert(isArraysEqual<i32>(sarr.splice(7, 5), <i32[]>[]));
|
||||
assert(isArraysEqual<i32>(sarr, <i32[]>[1, 2, 3, 4, 5]));
|
||||
|
||||
// Array#findIndex /////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
arr[0] = 0;
|
||||
|
Reference in New Issue
Block a user