(findHelper)
| 3473 | FindShrinkMidIteration(ArrayFindHelper); |
| 3474 | |
| 3475 | function FindGrowMidIteration(findHelper) { |
| 3476 | // Orig. array: [0, 2, 4, 6] |
| 3477 | // [0, 2, 4, 6] << fixedLength |
| 3478 | // [4, 6] << fixedLengthWithOffset |
| 3479 | // [0, 2, 4, 6, ...] << lengthTracking |
| 3480 | // [4, 6, ...] << lengthTrackingWithOffset |
| 3481 | function CreateRabForTest(ctor) { |
| 3482 | const rab = CreateResizableArrayBuffer(4 * ctor.BYTES_PER_ELEMENT, |
| 3483 | 8 * ctor.BYTES_PER_ELEMENT); |
| 3484 | // Write some data into the array. |
| 3485 | const taWrite = new ctor(rab); |
| 3486 | for (let i = 0; i < 4; ++i) { |
| 3487 | WriteToTypedArray(taWrite, i, 2 * i); |
| 3488 | } |
| 3489 | return rab; |
| 3490 | } |
| 3491 | |
| 3492 | let values; |
| 3493 | let rab; |
| 3494 | let resizeAfter; |
| 3495 | let resizeTo; |
| 3496 | function CollectValuesAndResize(n) { |
| 3497 | if (typeof n == 'bigint') { |
| 3498 | values.push(Number(n)); |
| 3499 | } else { |
| 3500 | values.push(n); |
| 3501 | } |
| 3502 | if (values.length == resizeAfter) { |
| 3503 | rab.resize(resizeTo); |
| 3504 | } |
| 3505 | return false; |
| 3506 | } |
| 3507 | |
| 3508 | for (let ctor of ctors) { |
| 3509 | rab = CreateRabForTest(ctor); |
| 3510 | const fixedLength = new ctor(rab, 0, 4); |
| 3511 | values = []; |
| 3512 | resizeAfter = 2; |
| 3513 | resizeTo = 5 * ctor.BYTES_PER_ELEMENT; |
| 3514 | assertEquals(undefined, findHelper(fixedLength, CollectValuesAndResize)); |
| 3515 | assertEquals([0, 2, 4, 6], values); |
| 3516 | } |
| 3517 | |
| 3518 | for (let ctor of ctors) { |
| 3519 | rab = CreateRabForTest(ctor); |
| 3520 | const fixedLengthWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT, 2); |
| 3521 | values = []; |
| 3522 | resizeAfter = 1; |
| 3523 | resizeTo = 5 * ctor.BYTES_PER_ELEMENT; |
| 3524 | assertEquals(undefined, |
| 3525 | findHelper(fixedLengthWithOffset, CollectValuesAndResize)); |
| 3526 | assertEquals([4, 6], values); |
| 3527 | } |
| 3528 | |
| 3529 | for (let ctor of ctors) { |
| 3530 | rab = CreateRabForTest(ctor); |
| 3531 | const lengthTracking = new ctor(rab, 0); |
| 3532 | values = []; |
no test coverage detected