xref: /aosp_15_r20/external/brotli/js/polyfill.js (revision f4ee7fba7774faf2a30f13154332c0a06550dbc4)
1*f4ee7fbaSAndroid Build Coastguard Workerif (!Int32Array.__proto__.from) {
2*f4ee7fbaSAndroid Build Coastguard Worker  Object.defineProperty(Int32Array.__proto__, 'from', {
3*f4ee7fbaSAndroid Build Coastguard Worker    value: function(obj) {
4*f4ee7fbaSAndroid Build Coastguard Worker      obj = Object(obj);
5*f4ee7fbaSAndroid Build Coastguard Worker      if (!obj['length']) {
6*f4ee7fbaSAndroid Build Coastguard Worker        return new this(0);
7*f4ee7fbaSAndroid Build Coastguard Worker      }
8*f4ee7fbaSAndroid Build Coastguard Worker      var typed_array = new this(obj.length);
9*f4ee7fbaSAndroid Build Coastguard Worker      for(var i = 0; i < typed_array.length; i++) {
10*f4ee7fbaSAndroid Build Coastguard Worker        typed_array[i] = obj[i];
11*f4ee7fbaSAndroid Build Coastguard Worker      }
12*f4ee7fbaSAndroid Build Coastguard Worker      return typed_array;
13*f4ee7fbaSAndroid Build Coastguard Worker    }
14*f4ee7fbaSAndroid Build Coastguard Worker  });
15*f4ee7fbaSAndroid Build Coastguard Worker}
16*f4ee7fbaSAndroid Build Coastguard Worker
17*f4ee7fbaSAndroid Build Coastguard Workerif (!Array.prototype.copyWithin) {
18*f4ee7fbaSAndroid Build Coastguard Worker  Array.prototype.copyWithin = function(target, start, end) {
19*f4ee7fbaSAndroid Build Coastguard Worker    var O = Object(this);
20*f4ee7fbaSAndroid Build Coastguard Worker    var len = O.length >>> 0;
21*f4ee7fbaSAndroid Build Coastguard Worker    var to = target | 0;
22*f4ee7fbaSAndroid Build Coastguard Worker    var from = start | 0;
23*f4ee7fbaSAndroid Build Coastguard Worker    var count = Math.min(Math.min(end | 0, len) - from, len - to);
24*f4ee7fbaSAndroid Build Coastguard Worker    var direction = 1;
25*f4ee7fbaSAndroid Build Coastguard Worker    if (from < to && to < (from + count)) {
26*f4ee7fbaSAndroid Build Coastguard Worker      direction = -1;
27*f4ee7fbaSAndroid Build Coastguard Worker      from += count - 1;
28*f4ee7fbaSAndroid Build Coastguard Worker      to += count - 1;
29*f4ee7fbaSAndroid Build Coastguard Worker    }
30*f4ee7fbaSAndroid Build Coastguard Worker    while (count > 0) {
31*f4ee7fbaSAndroid Build Coastguard Worker      O[to] = O[from];
32*f4ee7fbaSAndroid Build Coastguard Worker      from += direction;
33*f4ee7fbaSAndroid Build Coastguard Worker      to += direction;
34*f4ee7fbaSAndroid Build Coastguard Worker      count--;
35*f4ee7fbaSAndroid Build Coastguard Worker    }
36*f4ee7fbaSAndroid Build Coastguard Worker    return O;
37*f4ee7fbaSAndroid Build Coastguard Worker  };
38*f4ee7fbaSAndroid Build Coastguard Worker}
39*f4ee7fbaSAndroid Build Coastguard Worker
40*f4ee7fbaSAndroid Build Coastguard Workerif (!Array.prototype.fill) {
41*f4ee7fbaSAndroid Build Coastguard Worker  Object.defineProperty(Array.prototype, 'fill', {
42*f4ee7fbaSAndroid Build Coastguard Worker    value: function(value, start, end) {
43*f4ee7fbaSAndroid Build Coastguard Worker      end = end | 0;
44*f4ee7fbaSAndroid Build Coastguard Worker      var O = Object(this);
45*f4ee7fbaSAndroid Build Coastguard Worker      var k = start | 0;
46*f4ee7fbaSAndroid Build Coastguard Worker      while (k < end) {
47*f4ee7fbaSAndroid Build Coastguard Worker        O[k] = value;
48*f4ee7fbaSAndroid Build Coastguard Worker        k++;
49*f4ee7fbaSAndroid Build Coastguard Worker      }
50*f4ee7fbaSAndroid Build Coastguard Worker      return O;
51*f4ee7fbaSAndroid Build Coastguard Worker    }
52*f4ee7fbaSAndroid Build Coastguard Worker  });
53*f4ee7fbaSAndroid Build Coastguard Worker}
54*f4ee7fbaSAndroid Build Coastguard Worker
55*f4ee7fbaSAndroid Build Coastguard Workerif (!Int8Array.prototype.copyWithin) {
56*f4ee7fbaSAndroid Build Coastguard Worker  Int8Array.prototype.copyWithin = Array.prototype.copyWithin;
57*f4ee7fbaSAndroid Build Coastguard Worker}
58*f4ee7fbaSAndroid Build Coastguard Worker
59*f4ee7fbaSAndroid Build Coastguard Workerif (!Int8Array.prototype.fill) {
60*f4ee7fbaSAndroid Build Coastguard Worker  Int8Array.prototype.fill = Array.prototype.fill;
61*f4ee7fbaSAndroid Build Coastguard Worker}
62*f4ee7fbaSAndroid Build Coastguard Worker
63*f4ee7fbaSAndroid Build Coastguard Workerif (!Int32Array.prototype.fill) {
64*f4ee7fbaSAndroid Build Coastguard Worker  Int32Array.prototype.fill = Array.prototype.fill;
65*f4ee7fbaSAndroid Build Coastguard Worker}
66