Float16Array.cjs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.isFloat16Array = isFloat16Array;
  6. var _arrayIterator = require("./_util/arrayIterator.cjs");
  7. var _brand = require("./_util/brand.cjs");
  8. var _converter = require("./_util/converter.cjs");
  9. var _is = require("./_util/is.cjs");
  10. var _messages = require("./_util/messages.cjs");
  11. var _primordials = require("./_util/primordials.cjs");
  12. var _spec = require("./_util/spec.cjs");
  13. const BYTES_PER_ELEMENT = 2;
  14. const float16bitsArrays = new _primordials.NativeWeakMap();
  15. function isFloat16Array(target) {
  16. return (0, _primordials.WeakMapPrototypeHas)(float16bitsArrays, target) || !(0, _primordials.ArrayBufferIsView)(target) && (0, _brand.hasFloat16ArrayBrand)(target);
  17. }
  18. function assertFloat16Array(target) {
  19. if (!isFloat16Array(target)) {
  20. throw (0, _primordials.NativeTypeError)(_messages.THIS_IS_NOT_A_FLOAT16ARRAY_OBJECT);
  21. }
  22. }
  23. function assertSpeciesTypedArray(target, count) {
  24. const isTargetFloat16Array = isFloat16Array(target);
  25. const isTargetTypedArray = (0, _is.isNativeTypedArray)(target);
  26. if (!isTargetFloat16Array && !isTargetTypedArray) {
  27. throw (0, _primordials.NativeTypeError)(_messages.SPECIES_CONSTRUCTOR_DIDNT_RETURN_TYPEDARRAY_OBJECT);
  28. }
  29. if (typeof count === "number") {
  30. let length;
  31. if (isTargetFloat16Array) {
  32. const float16bitsArray = getFloat16BitsArray(target);
  33. length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  34. } else {
  35. length = (0, _primordials.TypedArrayPrototypeGetLength)(target);
  36. }
  37. if (length < count) {
  38. throw (0, _primordials.NativeTypeError)(_messages.DERIVED_CONSTRUCTOR_CREATED_TYPEDARRAY_OBJECT_WHICH_WAS_TOO_SMALL_LENGTH);
  39. }
  40. }
  41. if ((0, _is.isNativeBigIntTypedArray)(target)) {
  42. throw (0, _primordials.NativeTypeError)(_messages.CANNOT_MIX_BIGINT_AND_OTHER_TYPES);
  43. }
  44. }
  45. function getFloat16BitsArray(float16) {
  46. const float16bitsArray = (0, _primordials.WeakMapPrototypeGet)(float16bitsArrays, float16);
  47. if (float16bitsArray !== undefined) {
  48. const buffer = (0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray);
  49. if ((0, _spec.IsDetachedBuffer)(buffer)) {
  50. throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER);
  51. }
  52. return float16bitsArray;
  53. }
  54. const buffer = float16.buffer;
  55. if ((0, _spec.IsDetachedBuffer)(buffer)) {
  56. throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER);
  57. }
  58. const cloned = (0, _primordials.ReflectConstruct)(Float16Array, [buffer, float16.byteOffset, float16.length], float16.constructor);
  59. return (0, _primordials.WeakMapPrototypeGet)(float16bitsArrays, cloned);
  60. }
  61. function copyToArray(float16bitsArray) {
  62. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  63. const array = [];
  64. for (let i = 0; i < length; ++i) {
  65. array[i] = (0, _converter.convertToNumber)(float16bitsArray[i]);
  66. }
  67. return array;
  68. }
  69. const TypedArrayPrototypeGetters = new _primordials.NativeWeakSet();
  70. for (const key of (0, _primordials.ReflectOwnKeys)(_primordials.TypedArrayPrototype)) {
  71. if (key === _primordials.SymbolToStringTag) {
  72. continue;
  73. }
  74. const descriptor = (0, _primordials.ReflectGetOwnPropertyDescriptor)(_primordials.TypedArrayPrototype, key);
  75. if ((0, _primordials.ObjectHasOwn)(descriptor, "get") && typeof descriptor.get === "function") {
  76. (0, _primordials.WeakSetPrototypeAdd)(TypedArrayPrototypeGetters, descriptor.get);
  77. }
  78. }
  79. const handler = (0, _primordials.ObjectFreeze)({
  80. get(target, key, receiver) {
  81. if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key)) {
  82. return (0, _converter.convertToNumber)((0, _primordials.ReflectGet)(target, key));
  83. }
  84. if ((0, _primordials.WeakSetPrototypeHas)(TypedArrayPrototypeGetters, (0, _primordials.ObjectPrototype__lookupGetter__)(target, key))) {
  85. return (0, _primordials.ReflectGet)(target, key);
  86. }
  87. return (0, _primordials.ReflectGet)(target, key, receiver);
  88. },
  89. set(target, key, value, receiver) {
  90. if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key)) {
  91. return (0, _primordials.ReflectSet)(target, key, (0, _converter.roundToFloat16Bits)(value));
  92. }
  93. return (0, _primordials.ReflectSet)(target, key, value, receiver);
  94. },
  95. getOwnPropertyDescriptor(target, key) {
  96. if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key)) {
  97. const descriptor = (0, _primordials.ReflectGetOwnPropertyDescriptor)(target, key);
  98. descriptor.value = (0, _converter.convertToNumber)(descriptor.value);
  99. return descriptor;
  100. }
  101. return (0, _primordials.ReflectGetOwnPropertyDescriptor)(target, key);
  102. },
  103. defineProperty(target, key, descriptor) {
  104. if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key) && (0, _primordials.ObjectHasOwn)(descriptor, "value")) {
  105. descriptor.value = (0, _converter.roundToFloat16Bits)(descriptor.value);
  106. return (0, _primordials.ReflectDefineProperty)(target, key, descriptor);
  107. }
  108. return (0, _primordials.ReflectDefineProperty)(target, key, descriptor);
  109. }
  110. });
  111. class Float16Array {
  112. constructor(input, _byteOffset, _length) {
  113. let float16bitsArray;
  114. if (isFloat16Array(input)) {
  115. float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, [getFloat16BitsArray(input)], new.target);
  116. } else if ((0, _is.isObject)(input) && !(0, _is.isArrayBuffer)(input)) {
  117. let list;
  118. let length;
  119. if ((0, _is.isNativeTypedArray)(input)) {
  120. list = input;
  121. length = (0, _primordials.TypedArrayPrototypeGetLength)(input);
  122. const buffer = (0, _primordials.TypedArrayPrototypeGetBuffer)(input);
  123. if ((0, _spec.IsDetachedBuffer)(buffer)) {
  124. throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER);
  125. }
  126. if ((0, _is.isNativeBigIntTypedArray)(input)) {
  127. throw (0, _primordials.NativeTypeError)(_messages.CANNOT_MIX_BIGINT_AND_OTHER_TYPES);
  128. }
  129. const data = new _primordials.NativeArrayBuffer(length * BYTES_PER_ELEMENT);
  130. float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, [data], new.target);
  131. } else {
  132. const iterator = input[_primordials.SymbolIterator];
  133. if (iterator != null && typeof iterator !== "function") {
  134. throw (0, _primordials.NativeTypeError)(_messages.ITERATOR_PROPERTY_IS_NOT_CALLABLE);
  135. }
  136. if (iterator != null) {
  137. if ((0, _is.isOrdinaryArray)(input)) {
  138. list = input;
  139. length = input.length;
  140. } else {
  141. list = [...input];
  142. length = list.length;
  143. }
  144. } else {
  145. list = input;
  146. length = (0, _spec.ToLength)(list.length);
  147. }
  148. float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, [length], new.target);
  149. }
  150. for (let i = 0; i < length; ++i) {
  151. float16bitsArray[i] = (0, _converter.roundToFloat16Bits)(list[i]);
  152. }
  153. } else {
  154. float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, arguments, new.target);
  155. }
  156. const proxy = new _primordials.NativeProxy(float16bitsArray, handler);
  157. (0, _primordials.WeakMapPrototypeSet)(float16bitsArrays, proxy, float16bitsArray);
  158. return proxy;
  159. }
  160. static from(src, ...opts) {
  161. const Constructor = this;
  162. if (!(0, _primordials.ReflectHas)(Constructor, _brand.brand)) {
  163. throw (0, _primordials.NativeTypeError)(_messages.THIS_CONSTRUCTOR_IS_NOT_A_SUBCLASS_OF_FLOAT16ARRAY);
  164. }
  165. if (Constructor === Float16Array) {
  166. if (isFloat16Array(src) && opts.length === 0) {
  167. const float16bitsArray = getFloat16BitsArray(src);
  168. const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray));
  169. return new Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16)));
  170. }
  171. if (opts.length === 0) {
  172. return new Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.Uint16ArrayFrom)(src, _converter.roundToFloat16Bits)));
  173. }
  174. const mapFunc = opts[0];
  175. const thisArg = opts[1];
  176. return new Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.Uint16ArrayFrom)(src, function (val, ...args) {
  177. return (0, _converter.roundToFloat16Bits)((0, _primordials.ReflectApply)(mapFunc, this, [val, ...(0, _arrayIterator.safeIfNeeded)(args)]));
  178. }, thisArg)));
  179. }
  180. let list;
  181. let length;
  182. const iterator = src[_primordials.SymbolIterator];
  183. if (iterator != null && typeof iterator !== "function") {
  184. throw (0, _primordials.NativeTypeError)(_messages.ITERATOR_PROPERTY_IS_NOT_CALLABLE);
  185. }
  186. if (iterator != null) {
  187. if ((0, _is.isOrdinaryArray)(src)) {
  188. list = src;
  189. length = src.length;
  190. } else if ((0, _is.isOrdinaryNativeTypedArray)(src)) {
  191. list = src;
  192. length = (0, _primordials.TypedArrayPrototypeGetLength)(src);
  193. } else {
  194. list = [...src];
  195. length = list.length;
  196. }
  197. } else {
  198. if (src == null) {
  199. throw (0, _primordials.NativeTypeError)(_messages.CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT);
  200. }
  201. list = (0, _primordials.NativeObject)(src);
  202. length = (0, _spec.ToLength)(list.length);
  203. }
  204. const array = new Constructor(length);
  205. if (opts.length === 0) {
  206. for (let i = 0; i < length; ++i) {
  207. array[i] = list[i];
  208. }
  209. } else {
  210. const mapFunc = opts[0];
  211. const thisArg = opts[1];
  212. for (let i = 0; i < length; ++i) {
  213. array[i] = (0, _primordials.ReflectApply)(mapFunc, thisArg, [list[i], i]);
  214. }
  215. }
  216. return array;
  217. }
  218. static of(...items) {
  219. const Constructor = this;
  220. if (!(0, _primordials.ReflectHas)(Constructor, _brand.brand)) {
  221. throw (0, _primordials.NativeTypeError)(_messages.THIS_CONSTRUCTOR_IS_NOT_A_SUBCLASS_OF_FLOAT16ARRAY);
  222. }
  223. const length = items.length;
  224. if (Constructor === Float16Array) {
  225. const proxy = new Float16Array(length);
  226. const float16bitsArray = getFloat16BitsArray(proxy);
  227. for (let i = 0; i < length; ++i) {
  228. float16bitsArray[i] = (0, _converter.roundToFloat16Bits)(items[i]);
  229. }
  230. return proxy;
  231. }
  232. const array = new Constructor(length);
  233. for (let i = 0; i < length; ++i) {
  234. array[i] = items[i];
  235. }
  236. return array;
  237. }
  238. keys() {
  239. assertFloat16Array(this);
  240. const float16bitsArray = getFloat16BitsArray(this);
  241. return (0, _primordials.TypedArrayPrototypeKeys)(float16bitsArray);
  242. }
  243. values() {
  244. assertFloat16Array(this);
  245. const float16bitsArray = getFloat16BitsArray(this);
  246. return (0, _arrayIterator.wrap)(function* () {
  247. for (const val of (0, _primordials.TypedArrayPrototypeValues)(float16bitsArray)) {
  248. yield (0, _converter.convertToNumber)(val);
  249. }
  250. }());
  251. }
  252. entries() {
  253. assertFloat16Array(this);
  254. const float16bitsArray = getFloat16BitsArray(this);
  255. return (0, _arrayIterator.wrap)(function* () {
  256. for (const [i, val] of (0, _primordials.TypedArrayPrototypeEntries)(float16bitsArray)) {
  257. yield [i, (0, _converter.convertToNumber)(val)];
  258. }
  259. }());
  260. }
  261. at(index) {
  262. assertFloat16Array(this);
  263. const float16bitsArray = getFloat16BitsArray(this);
  264. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  265. const relativeIndex = (0, _spec.ToIntegerOrInfinity)(index);
  266. const k = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;
  267. if (k < 0 || k >= length) {
  268. return;
  269. }
  270. return (0, _converter.convertToNumber)(float16bitsArray[k]);
  271. }
  272. with(index, value) {
  273. assertFloat16Array(this);
  274. const float16bitsArray = getFloat16BitsArray(this);
  275. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  276. const relativeIndex = (0, _spec.ToIntegerOrInfinity)(index);
  277. const k = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;
  278. const number = +value;
  279. if (k < 0 || k >= length) {
  280. throw (0, _primordials.NativeRangeError)(_messages.OFFSET_IS_OUT_OF_BOUNDS);
  281. }
  282. const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray));
  283. const cloned = new Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16)));
  284. const array = getFloat16BitsArray(cloned);
  285. array[k] = (0, _converter.roundToFloat16Bits)(number);
  286. return cloned;
  287. }
  288. map(callback, ...opts) {
  289. assertFloat16Array(this);
  290. const float16bitsArray = getFloat16BitsArray(this);
  291. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  292. const thisArg = opts[0];
  293. const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, Float16Array);
  294. if (Constructor === Float16Array) {
  295. const proxy = new Float16Array(length);
  296. const array = getFloat16BitsArray(proxy);
  297. for (let i = 0; i < length; ++i) {
  298. const val = (0, _converter.convertToNumber)(float16bitsArray[i]);
  299. array[i] = (0, _converter.roundToFloat16Bits)((0, _primordials.ReflectApply)(callback, thisArg, [val, i, this]));
  300. }
  301. return proxy;
  302. }
  303. const array = new Constructor(length);
  304. assertSpeciesTypedArray(array, length);
  305. for (let i = 0; i < length; ++i) {
  306. const val = (0, _converter.convertToNumber)(float16bitsArray[i]);
  307. array[i] = (0, _primordials.ReflectApply)(callback, thisArg, [val, i, this]);
  308. }
  309. return array;
  310. }
  311. filter(callback, ...opts) {
  312. assertFloat16Array(this);
  313. const float16bitsArray = getFloat16BitsArray(this);
  314. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  315. const thisArg = opts[0];
  316. const kept = [];
  317. for (let i = 0; i < length; ++i) {
  318. const val = (0, _converter.convertToNumber)(float16bitsArray[i]);
  319. if ((0, _primordials.ReflectApply)(callback, thisArg, [val, i, this])) {
  320. (0, _primordials.ArrayPrototypePush)(kept, val);
  321. }
  322. }
  323. const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, Float16Array);
  324. const array = new Constructor(kept);
  325. assertSpeciesTypedArray(array);
  326. return array;
  327. }
  328. reduce(callback, ...opts) {
  329. assertFloat16Array(this);
  330. const float16bitsArray = getFloat16BitsArray(this);
  331. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  332. if (length === 0 && opts.length === 0) {
  333. throw (0, _primordials.NativeTypeError)(_messages.REDUCE_OF_EMPTY_ARRAY_WITH_NO_INITIAL_VALUE);
  334. }
  335. let accumulator, start;
  336. if (opts.length === 0) {
  337. accumulator = (0, _converter.convertToNumber)(float16bitsArray[0]);
  338. start = 1;
  339. } else {
  340. accumulator = opts[0];
  341. start = 0;
  342. }
  343. for (let i = start; i < length; ++i) {
  344. accumulator = callback(accumulator, (0, _converter.convertToNumber)(float16bitsArray[i]), i, this);
  345. }
  346. return accumulator;
  347. }
  348. reduceRight(callback, ...opts) {
  349. assertFloat16Array(this);
  350. const float16bitsArray = getFloat16BitsArray(this);
  351. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  352. if (length === 0 && opts.length === 0) {
  353. throw (0, _primordials.NativeTypeError)(_messages.REDUCE_OF_EMPTY_ARRAY_WITH_NO_INITIAL_VALUE);
  354. }
  355. let accumulator, start;
  356. if (opts.length === 0) {
  357. accumulator = (0, _converter.convertToNumber)(float16bitsArray[length - 1]);
  358. start = length - 2;
  359. } else {
  360. accumulator = opts[0];
  361. start = length - 1;
  362. }
  363. for (let i = start; i >= 0; --i) {
  364. accumulator = callback(accumulator, (0, _converter.convertToNumber)(float16bitsArray[i]), i, this);
  365. }
  366. return accumulator;
  367. }
  368. forEach(callback, ...opts) {
  369. assertFloat16Array(this);
  370. const float16bitsArray = getFloat16BitsArray(this);
  371. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  372. const thisArg = opts[0];
  373. for (let i = 0; i < length; ++i) {
  374. (0, _primordials.ReflectApply)(callback, thisArg, [(0, _converter.convertToNumber)(float16bitsArray[i]), i, this]);
  375. }
  376. }
  377. find(callback, ...opts) {
  378. assertFloat16Array(this);
  379. const float16bitsArray = getFloat16BitsArray(this);
  380. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  381. const thisArg = opts[0];
  382. for (let i = 0; i < length; ++i) {
  383. const value = (0, _converter.convertToNumber)(float16bitsArray[i]);
  384. if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i, this])) {
  385. return value;
  386. }
  387. }
  388. }
  389. findIndex(callback, ...opts) {
  390. assertFloat16Array(this);
  391. const float16bitsArray = getFloat16BitsArray(this);
  392. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  393. const thisArg = opts[0];
  394. for (let i = 0; i < length; ++i) {
  395. const value = (0, _converter.convertToNumber)(float16bitsArray[i]);
  396. if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i, this])) {
  397. return i;
  398. }
  399. }
  400. return -1;
  401. }
  402. findLast(callback, ...opts) {
  403. assertFloat16Array(this);
  404. const float16bitsArray = getFloat16BitsArray(this);
  405. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  406. const thisArg = opts[0];
  407. for (let i = length - 1; i >= 0; --i) {
  408. const value = (0, _converter.convertToNumber)(float16bitsArray[i]);
  409. if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i, this])) {
  410. return value;
  411. }
  412. }
  413. }
  414. findLastIndex(callback, ...opts) {
  415. assertFloat16Array(this);
  416. const float16bitsArray = getFloat16BitsArray(this);
  417. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  418. const thisArg = opts[0];
  419. for (let i = length - 1; i >= 0; --i) {
  420. const value = (0, _converter.convertToNumber)(float16bitsArray[i]);
  421. if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i, this])) {
  422. return i;
  423. }
  424. }
  425. return -1;
  426. }
  427. every(callback, ...opts) {
  428. assertFloat16Array(this);
  429. const float16bitsArray = getFloat16BitsArray(this);
  430. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  431. const thisArg = opts[0];
  432. for (let i = 0; i < length; ++i) {
  433. if (!(0, _primordials.ReflectApply)(callback, thisArg, [(0, _converter.convertToNumber)(float16bitsArray[i]), i, this])) {
  434. return false;
  435. }
  436. }
  437. return true;
  438. }
  439. some(callback, ...opts) {
  440. assertFloat16Array(this);
  441. const float16bitsArray = getFloat16BitsArray(this);
  442. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  443. const thisArg = opts[0];
  444. for (let i = 0; i < length; ++i) {
  445. if ((0, _primordials.ReflectApply)(callback, thisArg, [(0, _converter.convertToNumber)(float16bitsArray[i]), i, this])) {
  446. return true;
  447. }
  448. }
  449. return false;
  450. }
  451. set(input, ...opts) {
  452. assertFloat16Array(this);
  453. const float16bitsArray = getFloat16BitsArray(this);
  454. const targetOffset = (0, _spec.ToIntegerOrInfinity)(opts[0]);
  455. if (targetOffset < 0) {
  456. throw (0, _primordials.NativeRangeError)(_messages.OFFSET_IS_OUT_OF_BOUNDS);
  457. }
  458. if (input == null) {
  459. throw (0, _primordials.NativeTypeError)(_messages.CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT);
  460. }
  461. if ((0, _is.isNativeBigIntTypedArray)(input)) {
  462. throw (0, _primordials.NativeTypeError)(_messages.CANNOT_MIX_BIGINT_AND_OTHER_TYPES);
  463. }
  464. if (isFloat16Array(input)) {
  465. return (0, _primordials.TypedArrayPrototypeSet)(getFloat16BitsArray(this), getFloat16BitsArray(input), targetOffset);
  466. }
  467. if ((0, _is.isNativeTypedArray)(input)) {
  468. const buffer = (0, _primordials.TypedArrayPrototypeGetBuffer)(input);
  469. if ((0, _spec.IsDetachedBuffer)(buffer)) {
  470. throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER);
  471. }
  472. }
  473. const targetLength = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  474. const src = (0, _primordials.NativeObject)(input);
  475. const srcLength = (0, _spec.ToLength)(src.length);
  476. if (targetOffset === Infinity || srcLength + targetOffset > targetLength) {
  477. throw (0, _primordials.NativeRangeError)(_messages.OFFSET_IS_OUT_OF_BOUNDS);
  478. }
  479. for (let i = 0; i < srcLength; ++i) {
  480. float16bitsArray[i + targetOffset] = (0, _converter.roundToFloat16Bits)(src[i]);
  481. }
  482. }
  483. reverse() {
  484. assertFloat16Array(this);
  485. const float16bitsArray = getFloat16BitsArray(this);
  486. (0, _primordials.TypedArrayPrototypeReverse)(float16bitsArray);
  487. return this;
  488. }
  489. toReversed() {
  490. assertFloat16Array(this);
  491. const float16bitsArray = getFloat16BitsArray(this);
  492. const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray));
  493. const cloned = new Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16)));
  494. const clonedFloat16bitsArray = getFloat16BitsArray(cloned);
  495. (0, _primordials.TypedArrayPrototypeReverse)(clonedFloat16bitsArray);
  496. return cloned;
  497. }
  498. fill(value, ...opts) {
  499. assertFloat16Array(this);
  500. const float16bitsArray = getFloat16BitsArray(this);
  501. (0, _primordials.TypedArrayPrototypeFill)(float16bitsArray, (0, _converter.roundToFloat16Bits)(value), ...(0, _arrayIterator.safeIfNeeded)(opts));
  502. return this;
  503. }
  504. copyWithin(target, start, ...opts) {
  505. assertFloat16Array(this);
  506. const float16bitsArray = getFloat16BitsArray(this);
  507. (0, _primordials.TypedArrayPrototypeCopyWithin)(float16bitsArray, target, start, ...(0, _arrayIterator.safeIfNeeded)(opts));
  508. return this;
  509. }
  510. sort(compareFn) {
  511. assertFloat16Array(this);
  512. const float16bitsArray = getFloat16BitsArray(this);
  513. const sortCompare = compareFn !== undefined ? compareFn : _spec.defaultCompare;
  514. (0, _primordials.TypedArrayPrototypeSort)(float16bitsArray, (x, y) => {
  515. return sortCompare((0, _converter.convertToNumber)(x), (0, _converter.convertToNumber)(y));
  516. });
  517. return this;
  518. }
  519. toSorted(compareFn) {
  520. assertFloat16Array(this);
  521. const float16bitsArray = getFloat16BitsArray(this);
  522. if (compareFn !== undefined && typeof compareFn !== "function") {
  523. throw new _primordials.NativeTypeError(_messages.THE_COMPARISON_FUNCTION_MUST_BE_EITHER_A_FUNCTION_OR_UNDEFINED);
  524. }
  525. const sortCompare = compareFn !== undefined ? compareFn : _spec.defaultCompare;
  526. const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray));
  527. const cloned = new Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16)));
  528. const clonedFloat16bitsArray = getFloat16BitsArray(cloned);
  529. (0, _primordials.TypedArrayPrototypeSort)(clonedFloat16bitsArray, (x, y) => {
  530. return sortCompare((0, _converter.convertToNumber)(x), (0, _converter.convertToNumber)(y));
  531. });
  532. return cloned;
  533. }
  534. slice(start, end) {
  535. assertFloat16Array(this);
  536. const float16bitsArray = getFloat16BitsArray(this);
  537. const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, Float16Array);
  538. if (Constructor === Float16Array) {
  539. const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray));
  540. return new Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16, start, end)));
  541. }
  542. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  543. const relativeStart = (0, _spec.ToIntegerOrInfinity)(start);
  544. const relativeEnd = end === undefined ? length : (0, _spec.ToIntegerOrInfinity)(end);
  545. let k;
  546. if (relativeStart === -Infinity) {
  547. k = 0;
  548. } else if (relativeStart < 0) {
  549. k = length + relativeStart > 0 ? length + relativeStart : 0;
  550. } else {
  551. k = length < relativeStart ? length : relativeStart;
  552. }
  553. let final;
  554. if (relativeEnd === -Infinity) {
  555. final = 0;
  556. } else if (relativeEnd < 0) {
  557. final = length + relativeEnd > 0 ? length + relativeEnd : 0;
  558. } else {
  559. final = length < relativeEnd ? length : relativeEnd;
  560. }
  561. const count = final - k > 0 ? final - k : 0;
  562. const array = new Constructor(count);
  563. assertSpeciesTypedArray(array, count);
  564. if (count === 0) {
  565. return array;
  566. }
  567. const buffer = (0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray);
  568. if ((0, _spec.IsDetachedBuffer)(buffer)) {
  569. throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER);
  570. }
  571. let n = 0;
  572. while (k < final) {
  573. array[n] = (0, _converter.convertToNumber)(float16bitsArray[k]);
  574. ++k;
  575. ++n;
  576. }
  577. return array;
  578. }
  579. subarray(begin, end) {
  580. assertFloat16Array(this);
  581. const float16bitsArray = getFloat16BitsArray(this);
  582. const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, Float16Array);
  583. const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray));
  584. const uint16Subarray = (0, _primordials.TypedArrayPrototypeSubarray)(uint16, begin, end);
  585. const array = new Constructor((0, _primordials.TypedArrayPrototypeGetBuffer)(uint16Subarray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(uint16Subarray), (0, _primordials.TypedArrayPrototypeGetLength)(uint16Subarray));
  586. assertSpeciesTypedArray(array);
  587. return array;
  588. }
  589. indexOf(element, ...opts) {
  590. assertFloat16Array(this);
  591. const float16bitsArray = getFloat16BitsArray(this);
  592. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  593. let from = (0, _spec.ToIntegerOrInfinity)(opts[0]);
  594. if (from === Infinity) {
  595. return -1;
  596. }
  597. if (from < 0) {
  598. from += length;
  599. if (from < 0) {
  600. from = 0;
  601. }
  602. }
  603. for (let i = from; i < length; ++i) {
  604. if ((0, _primordials.ObjectHasOwn)(float16bitsArray, i) && (0, _converter.convertToNumber)(float16bitsArray[i]) === element) {
  605. return i;
  606. }
  607. }
  608. return -1;
  609. }
  610. lastIndexOf(element, ...opts) {
  611. assertFloat16Array(this);
  612. const float16bitsArray = getFloat16BitsArray(this);
  613. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  614. let from = opts.length >= 1 ? (0, _spec.ToIntegerOrInfinity)(opts[0]) : length - 1;
  615. if (from === -Infinity) {
  616. return -1;
  617. }
  618. if (from >= 0) {
  619. from = from < length - 1 ? from : length - 1;
  620. } else {
  621. from += length;
  622. }
  623. for (let i = from; i >= 0; --i) {
  624. if ((0, _primordials.ObjectHasOwn)(float16bitsArray, i) && (0, _converter.convertToNumber)(float16bitsArray[i]) === element) {
  625. return i;
  626. }
  627. }
  628. return -1;
  629. }
  630. includes(element, ...opts) {
  631. assertFloat16Array(this);
  632. const float16bitsArray = getFloat16BitsArray(this);
  633. const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray);
  634. let from = (0, _spec.ToIntegerOrInfinity)(opts[0]);
  635. if (from === Infinity) {
  636. return false;
  637. }
  638. if (from < 0) {
  639. from += length;
  640. if (from < 0) {
  641. from = 0;
  642. }
  643. }
  644. const isNaN = (0, _primordials.NumberIsNaN)(element);
  645. for (let i = from; i < length; ++i) {
  646. const value = (0, _converter.convertToNumber)(float16bitsArray[i]);
  647. if (isNaN && (0, _primordials.NumberIsNaN)(value)) {
  648. return true;
  649. }
  650. if (value === element) {
  651. return true;
  652. }
  653. }
  654. return false;
  655. }
  656. join(separator) {
  657. assertFloat16Array(this);
  658. const float16bitsArray = getFloat16BitsArray(this);
  659. const array = copyToArray(float16bitsArray);
  660. return (0, _primordials.ArrayPrototypeJoin)(array, separator);
  661. }
  662. toLocaleString(...opts) {
  663. assertFloat16Array(this);
  664. const float16bitsArray = getFloat16BitsArray(this);
  665. const array = copyToArray(float16bitsArray);
  666. return (0, _primordials.ArrayPrototypeToLocaleString)(array, ...(0, _arrayIterator.safeIfNeeded)(opts));
  667. }
  668. get [_primordials.SymbolToStringTag]() {
  669. if (isFloat16Array(this)) {
  670. return "Float16Array";
  671. }
  672. }
  673. }
  674. exports.Float16Array = Float16Array;
  675. (0, _primordials.ObjectDefineProperty)(Float16Array, "BYTES_PER_ELEMENT", {
  676. value: BYTES_PER_ELEMENT
  677. });
  678. (0, _primordials.ObjectDefineProperty)(Float16Array, _brand.brand, {});
  679. (0, _primordials.ReflectSetPrototypeOf)(Float16Array, _primordials.TypedArray);
  680. const Float16ArrayPrototype = Float16Array.prototype;
  681. (0, _primordials.ObjectDefineProperty)(Float16ArrayPrototype, "BYTES_PER_ELEMENT", {
  682. value: BYTES_PER_ELEMENT
  683. });
  684. (0, _primordials.ObjectDefineProperty)(Float16ArrayPrototype, _primordials.SymbolIterator, {
  685. value: Float16ArrayPrototype.values,
  686. writable: true,
  687. configurable: true
  688. });
  689. (0, _primordials.ReflectSetPrototypeOf)(Float16ArrayPrototype, _primordials.TypedArrayPrototype);