| if (!Int32Array.__proto__.from) { | 
 |   Object.defineProperty(Int32Array.__proto__, 'from', { | 
 |     value: function(obj) { | 
 |       obj = Object(obj); | 
 |       if (!obj['length']) { | 
 |         return new this(0); | 
 |       } | 
 |       var typed_array = new this(obj.length); | 
 |       for(var 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) { | 
 |     var O = Object(this); | 
 |     var len = O.length >>> 0; | 
 |     var to = target | 0; | 
 |     var from = start | 0; | 
 |     var count = Math.min(Math.min(end | 0, len) - from, len - to); | 
 |     var 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; | 
 |       var O = Object(this); | 
 |       var 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; | 
 | } |