| if (!Int32Array.__proto__.from) { |
| Object.defineProperty(Int32Array.__proto__, 'from', { |
| value: function(obj) { |
| obj = Object(obj); |
| if (!obj['length']) { |
| return new this(0); |
| } |
| let typed_array = new this(obj.length); |
| for (let i = 0; i < typed_array.length; i++) { |
| typed_array[i] = obj[i]; |
| } |
| return typed_array; |
| } |
| }); |
| } |
| |
| if (!Array.prototype.copyWithin) { |
| Array.prototype.copyWithin = function(target, start, end) { |
| let O = Object(this); |
| let len = O.length >>> 0; |
| let to = target | 0; |
| let from = start | 0; |
| let count = Math.min(Math.min(end | 0, len) - from, len - to); |
| let direction = 1; |
| if (from < to && to < (from + count)) { |
| direction = -1; |
| from += count - 1; |
| to += count - 1; |
| } |
| while (count > 0) { |
| O[to] = O[from]; |
| from += direction; |
| to += direction; |
| count--; |
| } |
| return O; |
| }; |
| } |
| |
| if (!Array.prototype.fill) { |
| Object.defineProperty(Array.prototype, 'fill', { |
| value: function(value, start, end) { |
| end = end | 0; |
| let O = Object(this); |
| let k = start | 0; |
| while (k < end) { |
| O[k] = value; |
| k++; |
| } |
| return O; |
| } |
| }); |
| } |
| |
| if (!Int8Array.prototype.copyWithin) { |
| Int8Array.prototype.copyWithin = Array.prototype.copyWithin; |
| } |
| |
| if (!Int8Array.prototype.fill) { |
| Int8Array.prototype.fill = Array.prototype.fill; |
| } |
| |
| if (!Int32Array.prototype.fill) { |
| Int32Array.prototype.fill = Array.prototype.fill; |
| } |
| |
| if (!Int8Array.prototype.slice) { |
| Object.defineProperty(Int8Array.prototype, 'slice', { |
| value: function(begin, end) { |
| return new Int8Array(Array.prototype.slice.call(this, begin, end)); |
| } |
| }); |
| } |