UNPKG

1.16 kBJavaScriptView Raw
1'use strict';
2var global = require('../internals/global');
3var apply = require('../internals/function-apply');
4var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
5var fails = require('../internals/fails');
6var arraySlice = require('../internals/array-slice');
7
8var Int8Array = global.Int8Array;
9var aTypedArray = ArrayBufferViewCore.aTypedArray;
10var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
11var $toLocaleString = [].toLocaleString;
12
13// iOS Safari 6.x fails here
14var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {
15 $toLocaleString.call(new Int8Array(1));
16});
17
18var FORCED = fails(function () {
19 return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString();
20}) || !fails(function () {
21 Int8Array.prototype.toLocaleString.call([1, 2]);
22});
23
24// `%TypedArray%.prototype.toLocaleString` method
25// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring
26exportTypedArrayMethod('toLocaleString', function toLocaleString() {
27 return apply(
28 $toLocaleString,
29 TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),
30 arraySlice(arguments)
31 );
32}, FORCED);