Skip to content

Commit db04b77

Browse files
committed
Add thisArg to all array functions
1 parent 8880cde commit db04b77

8 files changed

Lines changed: 28 additions & 16 deletions

File tree

src/lualib/ArrayEvery.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
function __TS__ArrayEvery<T>(
22
this: void,
33
arr: T[],
4-
callbackfn: (value: T, index?: number, array?: any[]) => boolean
4+
callbackfn: (value: T, index?: number, array?: any[]) => boolean,
5+
thisArg?: any
56
): boolean {
67
for (const i of $range(1, arr.length)) {
7-
if (!callbackfn(arr[i - 1], i - 1, arr)) {
8+
if (!callbackfn.call(thisArg, arr[i - 1], i - 1, arr)) {
89
return false;
910
}
1011
}

src/lualib/ArrayFilter.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
function __TS__ArrayFilter<T>(
22
this: void,
33
arr: T[],
4-
callbackfn: (value: T, index?: number, array?: any[]) => boolean
4+
callbackfn: (value: T, index?: number, array?: any[]) => boolean,
5+
thisArg?: any
56
): T[] {
67
const result: T[] = [];
78
let len = 0;
89
for (const i of $range(1, arr.length)) {
9-
if (callbackfn(arr[i - 1], i - 1, arr)) {
10+
if (callbackfn.call(thisArg, arr[i - 1], i - 1, arr)) {
1011
len++;
1112
result[len - 1] = arr[i - 1];
1213
}

src/lualib/ArrayFind.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
function __TS__ArrayFind<T>(
33
this: void,
44
arr: T[],
5-
predicate: (value: T, index: number, obj: T[]) => unknown
5+
predicate: (value: T, index: number, obj: T[]) => unknown,
6+
thisArg?: any
67
): T | undefined {
78
for (const i of $range(1, arr.length)) {
89
const elem = arr[i - 1];
9-
if (predicate(elem, i - 1, arr)) {
10+
if (predicate.call(thisArg, elem, i - 1, arr)) {
1011
return elem;
1112
}
1213
}

src/lualib/ArrayFindIndex.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
function __TS__ArrayFindIndex<T>(
22
this: void,
33
arr: T[],
4-
callbackFn: (element: T, index?: number, array?: T[]) => boolean
4+
callbackFn: (element: T, index?: number, array?: T[]) => boolean,
5+
thisArg?: any
56
): number {
67
for (const i of $range(1, arr.length)) {
7-
if (callbackFn(arr[i - 1], i - 1, arr)) {
8+
if (callbackFn.call(thisArg, arr[i - 1], i - 1, arr)) {
89
return i - 1;
910
}
1011
}

src/lualib/ArrayFlatMap.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
function __TS__ArrayFlatMap<T, U>(
22
this: void,
33
array: T[],
4-
callback: (value: T, index: number, array: T[]) => U | readonly U[]
4+
callback: (value: T, index: number, array: T[]) => U | readonly U[],
5+
thisArg?: any
56
): U[] {
67
const result: U[] = [];
78
let len = 0;
89
for (const i of $range(1, array.length)) {
9-
const value = callback(array[i - 1], i - 1, array);
10+
const value = callback.call(thisArg, array[i - 1], i - 1, array);
1011
if (Array.isArray(value)) {
1112
for (const j of $range(1, value.length)) {
1213
len++;

src/lualib/ArrayForEach.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
function __TS__ArrayForEach<T>(
22
this: void,
33
arr: T[],
4-
callbackFn: (value: T, index?: number, array?: any[]) => any
4+
callbackFn: (value: T, index?: number, array?: any[]) => any,
5+
thisArg?: any
56
): void {
67
for (const i of $range(1, arr.length)) {
7-
callbackFn(arr[i - 1], i - 1, arr);
8+
callbackFn.call(thisArg, arr[i - 1], i - 1, arr);
89
}
910
}

src/lualib/ArrayMap.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
function __TS__ArrayMap<T, U>(this: void, arr: T[], callbackfn: (value: T, index?: number, array?: T[]) => U): U[] {
1+
function __TS__ArrayMap<T, U>(
2+
this: void,
3+
arr: T[],
4+
callbackfn: (value: T, index?: number, array?: T[]) => U,
5+
thisArg?: any
6+
): U[] {
27
const result: U[] = [];
38
for (const i of $range(1, arr.length)) {
4-
result[i - 1] = callbackfn(arr[i - 1], i - 1, arr);
9+
result[i - 1] = callbackfn.call(thisArg, arr[i - 1], i - 1, arr);
510
}
611
return result;
712
}

src/lualib/ArraySome.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
function __TS__ArraySome<T>(
22
this: void,
33
arr: T[],
4-
callbackfn: (value: T, index?: number, array?: any[]) => boolean
4+
callbackfn: (value: T, index?: number, array?: any[]) => boolean,
5+
thisArg?: any
56
): boolean {
67
for (const i of $range(1, arr.length)) {
7-
if (callbackfn(arr[i - 1], i - 1, arr)) {
8+
if (callbackfn.call(thisArg, arr[i - 1], i - 1, arr)) {
89
return true;
910
}
1011
}

0 commit comments

Comments
 (0)