12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 'use strict';
- var global = require('../internals/global');
- var fails = require('../internals/fails');
- var uncurryThis = require('../internals/function-uncurry-this');
- var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
- var ArrayIterators = require('../modules/es.array.iterator');
- var wellKnownSymbol = require('../internals/well-known-symbol');
- var ITERATOR = wellKnownSymbol('iterator');
- var Uint8Array = global.Uint8Array;
- var arrayValues = uncurryThis(ArrayIterators.values);
- var arrayKeys = uncurryThis(ArrayIterators.keys);
- var arrayEntries = uncurryThis(ArrayIterators.entries);
- var aTypedArray = ArrayBufferViewCore.aTypedArray;
- var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
- var TypedArrayPrototype = Uint8Array && Uint8Array.prototype;
- var GENERIC = !fails(function () {
- TypedArrayPrototype[ITERATOR].call([1]);
- });
- var ITERATOR_IS_VALUES = !!TypedArrayPrototype
- && TypedArrayPrototype.values
- && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values
- && TypedArrayPrototype.values.name === 'values';
- var typedArrayValues = function values() {
- return arrayValues(aTypedArray(this));
- };
- // `%TypedArray%.prototype.entries` method
- // https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries
- exportTypedArrayMethod('entries', function entries() {
- return arrayEntries(aTypedArray(this));
- }, GENERIC);
- // `%TypedArray%.prototype.keys` method
- // https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys
- exportTypedArrayMethod('keys', function keys() {
- return arrayKeys(aTypedArray(this));
- }, GENERIC);
- // `%TypedArray%.prototype.values` method
- // https://tc39.es/ecma262/#sec-%typedarray%.prototype.values
- exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });
- // `%TypedArray%.prototype[@@iterator]` method
- // https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator
- exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });
|