MCPcopy Index your code
hub / github.com/nodejs/node / FindGrowMidIteration

Function FindGrowMidIteration

deps/v8/test/mjsunit/typedarray-resizablearraybuffer.js:3475–3549  ·  view source on GitHub ↗
(findHelper)

Source from the content-addressed store, hash-verified

3473FindShrinkMidIteration(ArrayFindHelper);
3474
3475function 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 = [];

Calls 2

CreateRabForTestFunction · 0.70
assertEqualsFunction · 0.50

Tested by

no test coverage detected