(arr: Value[], comp: VFn)
| 314 | }), |
| 315 | sort: (target: VArr): VFn => FN_NATIVE(async ([comp], opts) => { |
| 316 | const mergeSort = async (arr: Value[], comp: VFn): Promise<Value[]> => { |
| 317 | if (arr.length <= 1) return arr; |
| 318 | const mid = Math.floor(arr.length / 2); |
| 319 | const left_promise = mergeSort(arr.slice(0, mid), comp); |
| 320 | const right_promise = mergeSort(arr.slice(mid), comp); |
| 321 | const [left, right] = await Promise.all([left_promise, right_promise]); |
| 322 | return merge(left, right, comp); |
| 323 | }; |
| 324 | const merge = async (left: Value[], right: Value[], comp: VFn): Promise<Value[]> => { |
| 325 | const result: Value[] = []; |
| 326 | let leftIndex = 0; |
no test coverage detected