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

Function EntriesKeysValues

deps/v8/test/mjsunit/typedarray-resizablearraybuffer.js:2066–2266  ·  view source on GitHub ↗
(entriesHelper, keysHelper, valuesHelper,
  valuesFromEntries, valuesFromValues, oobThrows)

Source from the content-addressed store, hash-verified

2064})();
2065
2066function EntriesKeysValues(entriesHelper, keysHelper, valuesHelper,
2067 valuesFromEntries, valuesFromValues, oobThrows) {
2068 for (let ctor of ctors) {
2069 const rab = CreateResizableArrayBuffer(4 * ctor.BYTES_PER_ELEMENT,
2070 8 * ctor.BYTES_PER_ELEMENT);
2071 const fixedLength = new ctor(rab, 0, 4);
2072 const fixedLengthWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT, 2);
2073 const lengthTracking = new ctor(rab, 0);
2074 const lengthTrackingWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT);
2075
2076 // Write some data into the array.
2077 const taWrite = new ctor(rab);
2078 for (let i = 0; i < 4; ++i) {
2079 WriteToTypedArray(taWrite, i, 2 * i);
2080 }
2081
2082 // Orig. array: [0, 2, 4, 6]
2083 // [0, 2, 4, 6] << fixedLength
2084 // [4, 6] << fixedLengthWithOffset
2085 // [0, 2, 4, 6, ...] << lengthTracking
2086 // [4, 6, ...] << lengthTrackingWithOffset
2087
2088 assertEquals([0, 2, 4, 6], valuesFromEntries(fixedLength));
2089 assertEquals([0, 2, 4, 6], valuesFromValues(fixedLength));
2090 assertEquals([0, 1, 2, 3], Array.from(keysHelper(fixedLength)));
2091
2092 assertEquals([4, 6], valuesFromEntries(fixedLengthWithOffset));
2093 assertEquals([4, 6], valuesFromValues(fixedLengthWithOffset));
2094 assertEquals([0, 1], Array.from(keysHelper(fixedLengthWithOffset)));
2095
2096 assertEquals([0, 2, 4, 6], valuesFromEntries(lengthTracking));
2097 assertEquals([0, 2, 4, 6], valuesFromValues(lengthTracking));
2098 assertEquals([0, 1, 2, 3], Array.from(keysHelper(lengthTracking)));
2099
2100 assertEquals([4, 6], valuesFromEntries(lengthTrackingWithOffset));
2101 assertEquals([4, 6], valuesFromValues(lengthTrackingWithOffset));
2102 assertEquals([0, 1], Array.from(keysHelper(lengthTrackingWithOffset)));
2103
2104 // Shrink so that fixed length TAs go out of bounds.
2105 rab.resize(3 * ctor.BYTES_PER_ELEMENT);
2106
2107 // Orig. array: [0, 2, 4]
2108 // [0, 2, 4, ...] << lengthTracking
2109 // [4, ...] << lengthTrackingWithOffset
2110
2111 // TypedArray.prototype.{entries, keys, values} throw right away when
2112 // called. Array.prototype.{entries, keys, values} don't throw, but when
2113 // we try to iterate the returned ArrayIterator, that throws.
2114 if (oobThrows) {
2115 assertThrows(() => { entriesHelper(fixedLength); });
2116 assertThrows(() => { valuesHelper(fixedLength); });
2117 assertThrows(() => { keysHelper(fixedLength); });
2118
2119 assertThrows(() => { entriesHelper(fixedLengthWithOffset); });
2120 assertThrows(() => { valuesHelper(fixedLengthWithOffset); });
2121 assertThrows(() => { keysHelper(fixedLengthWithOffset); });
2122 } else {
2123 entriesHelper(fixedLength);

Calls 5

WriteToTypedArrayFunction · 0.85
assertEqualsFunction · 0.50
assertThrowsFunction · 0.50
fromMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…