(someHelper)
| 3058 | SomeShrinkMidIteration(ArraySomeHelper, false); |
| 3059 | |
| 3060 | function SomeGrowMidIteration(someHelper) { |
| 3061 | // Orig. array: [0, 2, 4, 6] |
| 3062 | // [0, 2, 4, 6] << fixedLength |
| 3063 | // [4, 6] << fixedLengthWithOffset |
| 3064 | // [0, 2, 4, 6, ...] << lengthTracking |
| 3065 | // [4, 6, ...] << lengthTrackingWithOffset |
| 3066 | function CreateRabForTest(ctor) { |
| 3067 | const rab = CreateResizableArrayBuffer(4 * ctor.BYTES_PER_ELEMENT, |
| 3068 | 8 * ctor.BYTES_PER_ELEMENT); |
| 3069 | // Write some data into the array. |
| 3070 | const taWrite = new ctor(rab); |
| 3071 | for (let i = 0; i < 4; ++i) { |
| 3072 | WriteToTypedArray(taWrite, i, 2 * i); |
| 3073 | } |
| 3074 | return rab; |
| 3075 | } |
| 3076 | |
| 3077 | let values = []; |
| 3078 | let rab; |
| 3079 | let resizeAfter; |
| 3080 | let resizeTo; |
| 3081 | function CollectValuesAndResize(n) { |
| 3082 | if (typeof n == 'bigint') { |
| 3083 | values.push(Number(n)); |
| 3084 | } else { |
| 3085 | values.push(n); |
| 3086 | } |
| 3087 | if (values.length == resizeAfter) { |
| 3088 | rab.resize(resizeTo); |
| 3089 | } |
| 3090 | return false; |
| 3091 | } |
| 3092 | |
| 3093 | for (let ctor of ctors) { |
| 3094 | rab = CreateRabForTest(ctor); |
| 3095 | const fixedLength = new ctor(rab, 0, 4); |
| 3096 | values = []; |
| 3097 | resizeAfter = 2; |
| 3098 | resizeTo = 5 * ctor.BYTES_PER_ELEMENT; |
| 3099 | assertFalse(someHelper(fixedLength, CollectValuesAndResize)); |
| 3100 | assertEquals([0, 2, 4, 6], values); |
| 3101 | } |
| 3102 | |
| 3103 | for (let ctor of ctors) { |
| 3104 | rab = CreateRabForTest(ctor); |
| 3105 | const fixedLengthWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT, 2); |
| 3106 | values = []; |
| 3107 | resizeAfter = 1; |
| 3108 | resizeTo = 5 * ctor.BYTES_PER_ELEMENT; |
| 3109 | assertFalse(someHelper(fixedLengthWithOffset, CollectValuesAndResize)); |
| 3110 | assertEquals([4, 6], values); |
| 3111 | } |
| 3112 | |
| 3113 | for (let ctor of ctors) { |
| 3114 | rab = CreateRabForTest(ctor); |
| 3115 | const lengthTracking = new ctor(rab, 0); |
| 3116 | values = []; |
| 3117 | resizeAfter = 2; |
no test coverage detected