| 'use strict'; |
| var global = require('../internals/global'); |
| var ArrayBufferViewCore = require('../internals/array-buffer-view-core'); |
| var fails = require('../internals/fails'); |
| |
| var Int8Array = global.Int8Array; |
| var aTypedArray = ArrayBufferViewCore.aTypedArray; |
| var $toLocaleString = [].toLocaleString; |
| var $slice = [].slice; |
| |
| // iOS Safari 6.x fails here |
| var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { |
| $toLocaleString.call(new Int8Array(1)); |
| }); |
| |
| var FORCED = fails(function () { |
| return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString(); |
| }) || !fails(function () { |
| Int8Array.prototype.toLocaleString.call([1, 2]); |
| }); |
| |
| // `%TypedArray%.prototype.toLocaleString` method |
| // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring |
| ArrayBufferViewCore.exportProto('toLocaleString', function toLocaleString() { |
| return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments); |
| }, FORCED); |