1 | 'use strict';
|
2 | var global = require('../internals/global');
|
3 | var fails = require('../internals/fails');
|
4 | var uncurryThis = require('../internals/function-uncurry-this');
|
5 | var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
|
6 | var ArrayIterators = require('../modules/es.array.iterator');
|
7 | var wellKnownSymbol = require('../internals/well-known-symbol');
|
8 |
|
9 | var ITERATOR = wellKnownSymbol('iterator');
|
10 | var Uint8Array = global.Uint8Array;
|
11 | var arrayValues = uncurryThis(ArrayIterators.values);
|
12 | var arrayKeys = uncurryThis(ArrayIterators.keys);
|
13 | var arrayEntries = uncurryThis(ArrayIterators.entries);
|
14 | var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
15 | var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
16 | var TypedArrayPrototype = Uint8Array && Uint8Array.prototype;
|
17 |
|
18 | var GENERIC = !fails(function () {
|
19 | TypedArrayPrototype[ITERATOR].call([1]);
|
20 | });
|
21 |
|
22 | var ITERATOR_IS_VALUES = !!TypedArrayPrototype
|
23 | && TypedArrayPrototype.values
|
24 | && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values
|
25 | && TypedArrayPrototype.values.name === 'values';
|
26 |
|
27 | var typedArrayValues = function values() {
|
28 | return arrayValues(aTypedArray(this));
|
29 | };
|
30 |
|
31 |
|
32 |
|
33 | exportTypedArrayMethod('entries', function entries() {
|
34 | return arrayEntries(aTypedArray(this));
|
35 | }, GENERIC);
|
36 |
|
37 |
|
38 | exportTypedArrayMethod('keys', function keys() {
|
39 | return arrayKeys(aTypedArray(this));
|
40 | }, GENERIC);
|
41 |
|
42 |
|
43 | exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });
|
44 |
|
45 |
|
46 | exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });
|