babel-source 5.8.19 → 5.8.23

Sign up to get free protection for your applications and to get access to all the features.
@@ -132,7 +132,7 @@
132
132
 
133
133
  for (var _key in _descriptor) descriptor[_key] = _descriptor[_key];
134
134
 
135
- descriptor.value = descriptor.initializer.call(target);
135
+ descriptor.value = descriptor.initializer ? descriptor.initializer.call(target) : undefined;
136
136
  Object.defineProperty(target, key, descriptor);
137
137
  };
138
138
 
@@ -278,6 +278,12 @@
278
278
  };
279
279
  };
280
280
 
281
+ babelHelpers.interopExportWildcard = function (obj, defaults) {
282
+ var newObj = defaults({}, obj);
283
+ delete newObj["default"];
284
+ return newObj;
285
+ };
286
+
281
287
  babelHelpers.interopRequireWildcard = function (obj) {
282
288
  if (obj && obj.__esModule) {
283
289
  return obj;
@@ -366,6 +372,12 @@
366
372
  return value;
367
373
  };
368
374
 
375
+ babelHelpers.newArrowCheck = function (innerThis, boundThis) {
376
+ if (innerThis !== boundThis) {
377
+ throw new TypeError("Cannot instantiate an arrow function");
378
+ }
379
+ };
380
+
369
381
  babelHelpers.classCallCheck = function (instance, Constructor) {
370
382
  if (!(instance instanceof Constructor)) {
371
383
  throw new TypeError("Cannot call a class as a function");
@@ -103,25 +103,40 @@ if (global._babelPolyfill) {
103
103
  }
104
104
  global._babelPolyfill = true;
105
105
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
106
- },{"core-js/shim":91,"regenerator/runtime":92}],3:[function(require,module,exports){
106
+ },{"core-js/shim":182,"regenerator/runtime":183}],3:[function(require,module,exports){
107
+ module.exports = function(it){
108
+ if(typeof it != 'function')throw TypeError(it + ' is not a function!');
109
+ return it;
110
+ };
111
+ },{}],4:[function(require,module,exports){
112
+ var isObject = require('./$.is-object');
113
+ module.exports = function(it){
114
+ if(!isObject(it))throw TypeError(it + ' is not an object!');
115
+ return it;
116
+ };
117
+ },{"./$.is-object":34}],5:[function(require,module,exports){
107
118
  // false -> Array#indexOf
108
119
  // true -> Array#includes
109
- var $ = require('./$');
120
+ var toIObject = require('./$.to-iobject')
121
+ , toLength = require('./$.to-length')
122
+ , toIndex = require('./$.to-index');
110
123
  module.exports = function(IS_INCLUDES){
111
124
  return function($this, el, fromIndex){
112
- var O = $.toObject($this)
113
- , length = $.toLength(O.length)
114
- , index = $.toIndex(fromIndex, length)
125
+ var O = toIObject($this)
126
+ , length = toLength(O.length)
127
+ , index = toIndex(fromIndex, length)
115
128
  , value;
129
+ // Array#includes uses SameValueZero equality algorithm
116
130
  if(IS_INCLUDES && el != el)while(length > index){
117
131
  value = O[index++];
118
132
  if(value != value)return true;
133
+ // Array#toIndex ignores holes, Array#includes - not
119
134
  } else for(;length > index; index++)if(IS_INCLUDES || index in O){
120
135
  if(O[index] === el)return IS_INCLUDES || index;
121
136
  } return !IS_INCLUDES && -1;
122
137
  };
123
138
  };
124
- },{"./$":24}],4:[function(require,module,exports){
139
+ },{"./$.to-index":70,"./$.to-iobject":72,"./$.to-length":73}],6:[function(require,module,exports){
125
140
  // 0 -> Array#forEach
126
141
  // 1 -> Array#map
127
142
  // 2 -> Array#filter
@@ -129,8 +144,10 @@ module.exports = function(IS_INCLUDES){
129
144
  // 4 -> Array#every
130
145
  // 5 -> Array#find
131
146
  // 6 -> Array#findIndex
132
- var $ = require('./$')
133
- , ctx = require('./$.ctx');
147
+ var ctx = require('./$.ctx')
148
+ , IObject = require('./$.iobject')
149
+ , toObject = require('./$.to-object')
150
+ , toLength = require('./$.to-length');
134
151
  module.exports = function(TYPE){
135
152
  var IS_MAP = TYPE == 1
136
153
  , IS_FILTER = TYPE == 2
@@ -139,10 +156,10 @@ module.exports = function(TYPE){
139
156
  , IS_FIND_INDEX = TYPE == 6
140
157
  , NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
141
158
  return function($this, callbackfn, that){
142
- var O = Object($.assertDefined($this))
143
- , self = $.ES5Object(O)
159
+ var O = toObject($this)
160
+ , self = IObject(O)
144
161
  , f = ctx(callbackfn, that, 3)
145
- , length = $.toLength(self.length)
162
+ , length = toLength(self.length)
146
163
  , index = 0
147
164
  , result = IS_MAP ? Array(length) : IS_FILTER ? [] : undefined
148
165
  , val, res;
@@ -162,37 +179,19 @@ module.exports = function(TYPE){
162
179
  return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
163
180
  };
164
181
  };
165
- },{"./$":24,"./$.ctx":12}],5:[function(require,module,exports){
166
- var $ = require('./$');
167
- function assert(condition, msg1, msg2){
168
- if(!condition)throw TypeError(msg2 ? msg1 + msg2 : msg1);
169
- }
170
- assert.def = $.assertDefined;
171
- assert.fn = function(it){
172
- if(!$.isFunction(it))throw TypeError(it + ' is not a function!');
173
- return it;
174
- };
175
- assert.obj = function(it){
176
- if(!$.isObject(it))throw TypeError(it + ' is not an object!');
177
- return it;
178
- };
179
- assert.inst = function(it, Constructor, name){
180
- if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
181
- return it;
182
- };
183
- module.exports = assert;
184
- },{"./$":24}],6:[function(require,module,exports){
185
- var $ = require('./$')
186
- , enumKeys = require('./$.enum-keys');
182
+ },{"./$.ctx":15,"./$.iobject":31,"./$.to-length":73,"./$.to-object":74}],7:[function(require,module,exports){
187
183
  // 19.1.2.1 Object.assign(target, source, ...)
184
+ var toObject = require('./$.to-object')
185
+ , IObject = require('./$.iobject')
186
+ , enumKeys = require('./$.enum-keys');
188
187
  /* eslint-disable no-unused-vars */
189
188
  module.exports = Object.assign || function assign(target, source){
190
189
  /* eslint-enable no-unused-vars */
191
- var T = Object($.assertDefined(target))
190
+ var T = toObject(target)
192
191
  , l = arguments.length
193
192
  , i = 1;
194
193
  while(l > i){
195
- var S = $.ES5Object(arguments[i++])
194
+ var S = IObject(arguments[i++])
196
195
  , keys = enumKeys(S)
197
196
  , length = keys.length
198
197
  , j = 0
@@ -201,44 +200,48 @@ module.exports = Object.assign || function assign(target, source){
201
200
  }
202
201
  return T;
203
202
  };
204
- },{"./$":24,"./$.enum-keys":15}],7:[function(require,module,exports){
205
- var $ = require('./$')
206
- , TAG = require('./$.wks')('toStringTag')
207
- , toString = {}.toString;
208
- function cof(it){
209
- return toString.call(it).slice(8, -1);
210
- }
211
- cof.classof = function(it){
212
- var O, T;
213
- return it == undefined ? it === undefined ? 'Undefined' : 'Null'
214
- : typeof (T = (O = Object(it))[TAG]) == 'string' ? T : cof(O);
203
+ },{"./$.enum-keys":19,"./$.iobject":31,"./$.to-object":74}],8:[function(require,module,exports){
204
+ // getting tag from 19.1.3.6 Object.prototype.toString()
205
+ var cof = require('./$.cof')
206
+ , TAG = require('./$.wks')('toStringTag')
207
+ // ES3 wrong here
208
+ , ARG = cof(function(){ return arguments; }()) == 'Arguments';
209
+
210
+ module.exports = function(it){
211
+ var O, T, B;
212
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
213
+ // @@toStringTag case
214
+ : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
215
+ // builtinTag case
216
+ : ARG ? cof(O)
217
+ // ES3 arguments fallback
218
+ : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
215
219
  };
216
- cof.set = function(it, tag, stat){
217
- if(it && !$.has(it = stat ? it : it.prototype, TAG))$.hide(it, TAG, tag);
220
+ },{"./$.cof":9,"./$.wks":77}],9:[function(require,module,exports){
221
+ var toString = {}.toString;
222
+
223
+ module.exports = function(it){
224
+ return toString.call(it).slice(8, -1);
218
225
  };
219
- module.exports = cof;
220
- },{"./$":24,"./$.wks":42}],8:[function(require,module,exports){
226
+ },{}],10:[function(require,module,exports){
221
227
  'use strict';
222
- var $ = require('./$')
223
- , ctx = require('./$.ctx')
224
- , safe = require('./$.uid').safe
225
- , assert = require('./$.assert')
226
- , forOf = require('./$.for-of')
227
- , step = require('./$.iter').step
228
- , $has = $.has
229
- , set = $.set
230
- , isObject = $.isObject
231
- , hide = $.hide
228
+ var $ = require('./$')
229
+ , hide = require('./$.hide')
230
+ , ctx = require('./$.ctx')
231
+ , species = require('./$.species')
232
+ , strictNew = require('./$.strict-new')
233
+ , defined = require('./$.defined')
234
+ , forOf = require('./$.for-of')
235
+ , step = require('./$.iter-step')
236
+ , ID = require('./$.uid')('id')
237
+ , $has = require('./$.has')
238
+ , isObject = require('./$.is-object')
232
239
  , isExtensible = Object.isExtensible || isObject
233
- , ID = safe('id')
234
- , O1 = safe('O1')
235
- , LAST = safe('last')
236
- , FIRST = safe('first')
237
- , ITER = safe('iter')
238
- , SIZE = $.DESC ? safe('size') : 'size'
239
- , id = 0;
240
-
241
- function fastKey(it, create){
240
+ , SUPPORT_DESC = require('./$.support-desc')
241
+ , SIZE = SUPPORT_DESC ? '_s' : 'size'
242
+ , id = 0;
243
+
244
+ var fastKey = function(it, create){
242
245
  // return primitive with prefix
243
246
  if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
244
247
  if(!$has(it, ID)){
@@ -250,38 +253,38 @@ function fastKey(it, create){
250
253
  hide(it, ID, ++id);
251
254
  // return object id with prefix
252
255
  } return 'O' + it[ID];
253
- }
256
+ };
254
257
 
255
- function getEntry(that, key){
258
+ var getEntry = function(that, key){
256
259
  // fast case
257
260
  var index = fastKey(key), entry;
258
- if(index !== 'F')return that[O1][index];
261
+ if(index !== 'F')return that._i[index];
259
262
  // frozen object case
260
- for(entry = that[FIRST]; entry; entry = entry.n){
263
+ for(entry = that._f; entry; entry = entry.n){
261
264
  if(entry.k == key)return entry;
262
265
  }
263
- }
266
+ };
264
267
 
265
268
  module.exports = {
266
269
  getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
267
270
  var C = wrapper(function(that, iterable){
268
- assert.inst(that, C, NAME);
269
- set(that, O1, $.create(null));
270
- set(that, SIZE, 0);
271
- set(that, LAST, undefined);
272
- set(that, FIRST, undefined);
271
+ strictNew(that, C, NAME);
272
+ that._i = $.create(null); // index
273
+ that._f = undefined; // first entry
274
+ that._l = undefined; // last entry
275
+ that[SIZE] = 0; // size
273
276
  if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
274
277
  });
275
278
  require('./$.mix')(C.prototype, {
276
279
  // 23.1.3.1 Map.prototype.clear()
277
280
  // 23.2.3.2 Set.prototype.clear()
278
281
  clear: function clear(){
279
- for(var that = this, data = that[O1], entry = that[FIRST]; entry; entry = entry.n){
282
+ for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
280
283
  entry.r = true;
281
284
  if(entry.p)entry.p = entry.p.n = undefined;
282
285
  delete data[entry.i];
283
286
  }
284
- that[FIRST] = that[LAST] = undefined;
287
+ that._f = that._l = undefined;
285
288
  that[SIZE] = 0;
286
289
  },
287
290
  // 23.1.3.3 Map.prototype.delete(key)
@@ -292,12 +295,12 @@ module.exports = {
292
295
  if(entry){
293
296
  var next = entry.n
294
297
  , prev = entry.p;
295
- delete that[O1][entry.i];
298
+ delete that._i[entry.i];
296
299
  entry.r = true;
297
300
  if(prev)prev.n = next;
298
301
  if(next)next.p = prev;
299
- if(that[FIRST] == entry)that[FIRST] = next;
300
- if(that[LAST] == entry)that[LAST] = prev;
302
+ if(that._f == entry)that._f = next;
303
+ if(that._l == entry)that._l = prev;
301
304
  that[SIZE]--;
302
305
  } return !!entry;
303
306
  },
@@ -306,7 +309,7 @@ module.exports = {
306
309
  forEach: function forEach(callbackfn /*, that = undefined */){
307
310
  var f = ctx(callbackfn, arguments[1], 3)
308
311
  , entry;
309
- while(entry = entry ? entry.n : this[FIRST]){
312
+ while(entry = entry ? entry.n : this._f){
310
313
  f(entry.v, entry.k, this);
311
314
  // revert to the last existing entry
312
315
  while(entry && entry.r)entry = entry.p;
@@ -318,9 +321,9 @@ module.exports = {
318
321
  return !!getEntry(this, key);
319
322
  }
320
323
  });
321
- if($.DESC)$.setDesc(C.prototype, 'size', {
324
+ if(SUPPORT_DESC)$.setDesc(C.prototype, 'size', {
322
325
  get: function(){
323
- return assert.def(this[SIZE]);
326
+ return defined(this[SIZE]);
324
327
  }
325
328
  });
326
329
  return C;
@@ -333,37 +336,39 @@ module.exports = {
333
336
  entry.v = value;
334
337
  // create new entry
335
338
  } else {
336
- that[LAST] = entry = {
339
+ that._l = entry = {
337
340
  i: index = fastKey(key, true), // <- index
338
341
  k: key, // <- key
339
342
  v: value, // <- value
340
- p: prev = that[LAST], // <- previous entry
343
+ p: prev = that._l, // <- previous entry
341
344
  n: undefined, // <- next entry
342
345
  r: false // <- removed
343
346
  };
344
- if(!that[FIRST])that[FIRST] = entry;
347
+ if(!that._f)that._f = entry;
345
348
  if(prev)prev.n = entry;
346
349
  that[SIZE]++;
347
350
  // add to index
348
- if(index !== 'F')that[O1][index] = entry;
351
+ if(index !== 'F')that._i[index] = entry;
349
352
  } return that;
350
353
  },
351
354
  getEntry: getEntry,
352
- // add .keys, .values, .entries, [@@iterator]
353
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
354
- setIter: function(C, NAME, IS_MAP){
355
+ setStrong: function(C, NAME, IS_MAP){
356
+ // add .keys, .values, .entries, [@@iterator]
357
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
355
358
  require('./$.iter-define')(C, NAME, function(iterated, kind){
356
- set(this, ITER, {o: iterated, k: kind});
359
+ this._t = iterated; // target
360
+ this._k = kind; // kind
361
+ this._l = undefined; // previous
357
362
  }, function(){
358
- var iter = this[ITER]
359
- , kind = iter.k
360
- , entry = iter.l;
363
+ var that = this
364
+ , kind = that._k
365
+ , entry = that._l;
361
366
  // revert to the last existing entry
362
367
  while(entry && entry.r)entry = entry.p;
363
368
  // get next entry
364
- if(!iter.o || !(iter.l = entry = entry ? entry.n : iter.o[FIRST])){
369
+ if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
365
370
  // or finish the iteration
366
- iter.o = undefined;
371
+ that._t = undefined;
367
372
  return step(1);
368
373
  }
369
374
  // return step by kind
@@ -371,73 +376,79 @@ module.exports = {
371
376
  if(kind == 'values')return step(0, entry.v);
372
377
  return step(0, [entry.k, entry.v]);
373
378
  }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
379
+
380
+ // add [@@species], 23.1.2.2, 23.2.2.2
381
+ species(C);
382
+ species(require('./$.core')[NAME]); // for wrapper
374
383
  }
375
384
  };
376
- },{"./$":24,"./$.assert":5,"./$.ctx":12,"./$.for-of":16,"./$.iter":23,"./$.iter-define":21,"./$.mix":26,"./$.uid":40}],9:[function(require,module,exports){
385
+ },{"./$":42,"./$.core":14,"./$.ctx":15,"./$.defined":17,"./$.for-of":24,"./$.has":27,"./$.hide":28,"./$.is-object":34,"./$.iter-define":38,"./$.iter-step":40,"./$.mix":47,"./$.species":60,"./$.strict-new":61,"./$.support-desc":67,"./$.uid":75}],11:[function(require,module,exports){
377
386
  // https://github.com/DavidBruant/Map-Set.prototype.toJSON
378
- var $def = require('./$.def')
379
- , forOf = require('./$.for-of');
387
+ var forOf = require('./$.for-of')
388
+ , classof = require('./$.classof');
380
389
  module.exports = function(NAME){
381
- $def($def.P, NAME, {
382
- toJSON: function toJSON(){
383
- var arr = [];
384
- forOf(this, false, arr.push, arr);
385
- return arr;
386
- }
387
- });
390
+ return function toJSON(){
391
+ if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
392
+ var arr = [];
393
+ forOf(this, false, arr.push, arr);
394
+ return arr;
395
+ };
388
396
  };
389
- },{"./$.def":13,"./$.for-of":16}],10:[function(require,module,exports){
397
+ },{"./$.classof":8,"./$.for-of":24}],12:[function(require,module,exports){
390
398
  'use strict';
391
- var $ = require('./$')
392
- , safe = require('./$.uid').safe
393
- , assert = require('./$.assert')
394
- , forOf = require('./$.for-of')
395
- , $has = $.has
396
- , isObject = $.isObject
397
- , hide = $.hide
399
+ var hide = require('./$.hide')
400
+ , anObject = require('./$.an-object')
401
+ , strictNew = require('./$.strict-new')
402
+ , forOf = require('./$.for-of')
403
+ , method = require('./$.array-methods')
404
+ , WEAK = require('./$.uid')('weak')
405
+ , isObject = require('./$.is-object')
406
+ , $has = require('./$.has')
398
407
  , isExtensible = Object.isExtensible || isObject
399
- , id = 0
400
- , ID = safe('id')
401
- , WEAK = safe('weak')
402
- , LEAK = safe('leak')
403
- , method = require('./$.array-methods')
404
- , find = method(5)
405
- , findIndex = method(6);
406
- function findFrozen(store, key){
407
- return find(store.array, function(it){
408
+ , find = method(5)
409
+ , findIndex = method(6)
410
+ , id = 0;
411
+
412
+ // fallback for frozen keys
413
+ var frozenStore = function(that){
414
+ return that._l || (that._l = new FrozenStore);
415
+ };
416
+ var FrozenStore = function(){
417
+ this.a = [];
418
+ };
419
+ var findFrozen = function(store, key){
420
+ return find(store.a, function(it){
408
421
  return it[0] === key;
409
422
  });
410
- }
411
- // fallback for frozen keys
412
- function leakStore(that){
413
- return that[LEAK] || hide(that, LEAK, {
414
- array: [],
415
- get: function(key){
416
- var entry = findFrozen(this, key);
417
- if(entry)return entry[1];
418
- },
419
- has: function(key){
420
- return !!findFrozen(this, key);
421
- },
422
- set: function(key, value){
423
- var entry = findFrozen(this, key);
424
- if(entry)entry[1] = value;
425
- else this.array.push([key, value]);
426
- },
427
- 'delete': function(key){
428
- var index = findIndex(this.array, function(it){
429
- return it[0] === key;
430
- });
431
- if(~index)this.array.splice(index, 1);
432
- return !!~index;
433
- }
434
- })[LEAK];
435
- }
423
+ };
424
+ FrozenStore.prototype = {
425
+ get: function(key){
426
+ var entry = findFrozen(this, key);
427
+ if(entry)return entry[1];
428
+ },
429
+ has: function(key){
430
+ return !!findFrozen(this, key);
431
+ },
432
+ set: function(key, value){
433
+ var entry = findFrozen(this, key);
434
+ if(entry)entry[1] = value;
435
+ else this.a.push([key, value]);
436
+ },
437
+ 'delete': function(key){
438
+ var index = findIndex(this.a, function(it){
439
+ return it[0] === key;
440
+ });
441
+ if(~index)this.a.splice(index, 1);
442
+ return !!~index;
443
+ }
444
+ };
436
445
 
437
446
  module.exports = {
438
447
  getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
439
448
  var C = wrapper(function(that, iterable){
440
- $.set(assert.inst(that, C, NAME), ID, id++);
449
+ strictNew(that, C, NAME);
450
+ that._i = id++; // collection id
451
+ that._l = undefined; // leak store for frozen objects
441
452
  if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
442
453
  });
443
454
  require('./$.mix')(C.prototype, {
@@ -445,47 +456,45 @@ module.exports = {
445
456
  // 23.4.3.3 WeakSet.prototype.delete(value)
446
457
  'delete': function(key){
447
458
  if(!isObject(key))return false;
448
- if(!isExtensible(key))return leakStore(this)['delete'](key);
449
- return $has(key, WEAK) && $has(key[WEAK], this[ID]) && delete key[WEAK][this[ID]];
459
+ if(!isExtensible(key))return frozenStore(this)['delete'](key);
460
+ return $has(key, WEAK) && $has(key[WEAK], this._i) && delete key[WEAK][this._i];
450
461
  },
451
462
  // 23.3.3.4 WeakMap.prototype.has(key)
452
463
  // 23.4.3.4 WeakSet.prototype.has(value)
453
464
  has: function has(key){
454
465
  if(!isObject(key))return false;
455
- if(!isExtensible(key))return leakStore(this).has(key);
456
- return $has(key, WEAK) && $has(key[WEAK], this[ID]);
466
+ if(!isExtensible(key))return frozenStore(this).has(key);
467
+ return $has(key, WEAK) && $has(key[WEAK], this._i);
457
468
  }
458
469
  });
459
470
  return C;
460
471
  },
461
472
  def: function(that, key, value){
462
- if(!isExtensible(assert.obj(key))){
463
- leakStore(that).set(key, value);
473
+ if(!isExtensible(anObject(key))){
474
+ frozenStore(that).set(key, value);
464
475
  } else {
465
476
  $has(key, WEAK) || hide(key, WEAK, {});
466
- key[WEAK][that[ID]] = value;
477
+ key[WEAK][that._i] = value;
467
478
  } return that;
468
479
  },
469
- leakStore: leakStore,
470
- WEAK: WEAK,
471
- ID: ID
480
+ frozenStore: frozenStore,
481
+ WEAK: WEAK
472
482
  };
473
- },{"./$":24,"./$.array-methods":4,"./$.assert":5,"./$.for-of":16,"./$.mix":26,"./$.uid":40}],11:[function(require,module,exports){
483
+ },{"./$.an-object":4,"./$.array-methods":6,"./$.for-of":24,"./$.has":27,"./$.hide":28,"./$.is-object":34,"./$.mix":47,"./$.strict-new":61,"./$.uid":75}],13:[function(require,module,exports){
474
484
  'use strict';
475
- var $ = require('./$')
476
- , $def = require('./$.def')
477
- , BUGGY = require('./$.iter').BUGGY
478
- , forOf = require('./$.for-of')
479
- , species = require('./$.species')
480
- , assertInstance = require('./$.assert').inst;
485
+ var global = require('./$.global')
486
+ , $def = require('./$.def')
487
+ , BUGGY = require('./$.iter-buggy')
488
+ , forOf = require('./$.for-of')
489
+ , strictNew = require('./$.strict-new');
481
490
 
482
491
  module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
483
- var Base = $.g[NAME]
492
+ var Base = global[NAME]
484
493
  , C = Base
485
494
  , ADDER = IS_MAP ? 'set' : 'add'
486
495
  , proto = C && C.prototype
487
496
  , O = {};
488
- function fixMethod(KEY){
497
+ var fixMethod = function(KEY){
489
498
  var fn = proto[KEY];
490
499
  require('./$.redef')(proto, KEY,
491
500
  KEY == 'delete' ? function(a){ return fn.call(this, a === 0 ? 0 : a); }
@@ -494,8 +503,8 @@ module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
494
503
  : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }
495
504
  : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }
496
505
  );
497
- }
498
- if(!$.isFunction(C) || !(IS_WEAK || !BUGGY && proto.forEach && proto.entries)){
506
+ };
507
+ if(typeof C != 'function' || !(IS_WEAK || !BUGGY && proto.forEach && proto.entries)){
499
508
  // create collection constructor
500
509
  C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
501
510
  require('./$.mix')(C.prototype, methods);
@@ -506,7 +515,7 @@ module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
506
515
  // wrap for init collections from iterable
507
516
  if(!require('./$.iter-detect')(function(iter){ new C(iter); })){ // eslint-disable-line no-new
508
517
  C = wrapper(function(target, iterable){
509
- assertInstance(target, C, NAME);
518
+ strictNew(target, C, NAME);
510
519
  var that = new Base;
511
520
  if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
512
521
  return that;
@@ -525,25 +534,28 @@ module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
525
534
  }
526
535
  // + fix .add & .set for chaining
527
536
  if(buggyZero || chain !== inst)fixMethod(ADDER);
537
+ // weak collections should not contains .clear method
538
+ if(IS_WEAK && proto.clear)delete proto.clear;
528
539
  }
529
540
 
530
- require('./$.cof').set(C, NAME);
541
+ require('./$.tag')(C, NAME);
531
542
 
532
543
  O[NAME] = C;
533
544
  $def($def.G + $def.W + $def.F * (C != Base), O);
534
- species(C);
535
- species($.core[NAME]); // for wrapper
536
545
 
537
- if(!IS_WEAK)common.setIter(C, NAME, IS_MAP);
546
+ if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
538
547
 
539
548
  return C;
540
549
  };
541
- },{"./$":24,"./$.assert":5,"./$.cof":7,"./$.def":13,"./$.for-of":16,"./$.iter":23,"./$.iter-detect":22,"./$.mix":26,"./$.redef":29,"./$.species":34}],12:[function(require,module,exports){
542
- // Optional / simple context binding
543
- var assertFunction = require('./$.assert').fn;
550
+ },{"./$.def":16,"./$.for-of":24,"./$.global":26,"./$.iter-buggy":35,"./$.iter-detect":39,"./$.mix":47,"./$.redef":54,"./$.strict-new":61,"./$.tag":68}],14:[function(require,module,exports){
551
+ var core = module.exports = {};
552
+ if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
553
+ },{}],15:[function(require,module,exports){
554
+ // optional / simple context binding
555
+ var aFunction = require('./$.a-function');
544
556
  module.exports = function(fn, that, length){
545
- assertFunction(fn);
546
- if(~length && that === undefined)return fn;
557
+ aFunction(fn);
558
+ if(that === undefined)return fn;
547
559
  switch(length){
548
560
  case 1: return function(a){
549
561
  return fn.call(that, a);
@@ -558,31 +570,23 @@ module.exports = function(fn, that, length){
558
570
  return fn.apply(that, arguments);
559
571
  };
560
572
  };
561
- },{"./$.assert":5}],13:[function(require,module,exports){
562
- var $ = require('./$')
563
- , global = $.g
564
- , core = $.core
565
- , isFunction = $.isFunction
566
- , $redef = require('./$.redef');
567
- function ctx(fn, that){
573
+ },{"./$.a-function":3}],16:[function(require,module,exports){
574
+ var global = require('./$.global')
575
+ , core = require('./$.core')
576
+ , hide = require('./$.hide')
577
+ , $redef = require('./$.redef')
578
+ , PROTOTYPE = 'prototype';
579
+ var ctx = function(fn, that){
568
580
  return function(){
569
581
  return fn.apply(that, arguments);
570
582
  };
571
- }
572
- global.core = core;
573
- // type bitmap
574
- $def.F = 1; // forced
575
- $def.G = 2; // global
576
- $def.S = 4; // static
577
- $def.P = 8; // proto
578
- $def.B = 16; // bind
579
- $def.W = 32; // wrap
580
- function $def(type, name, source){
583
+ };
584
+ var $def = function(type, name, source){
581
585
  var key, own, out, exp
582
586
  , isGlobal = type & $def.G
583
587
  , isProto = type & $def.P
584
588
  , target = isGlobal ? global : type & $def.S
585
- ? global[name] : (global[name] || {}).prototype
589
+ ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]
586
590
  , exports = isGlobal ? core : core[name] || (core[name] = {});
587
591
  if(isGlobal)source = name;
588
592
  for(key in source){
@@ -592,79 +596,164 @@ function $def(type, name, source){
592
596
  out = (own ? target : source)[key];
593
597
  // bind timers to global for call from export context
594
598
  if(type & $def.B && own)exp = ctx(out, global);
595
- else exp = isProto && isFunction(out) ? ctx(Function.call, out) : out;
599
+ else exp = isProto && typeof out == 'function' ? ctx(Function.call, out) : out;
596
600
  // extend global
597
601
  if(target && !own)$redef(target, key, out);
598
602
  // export
599
- if(exports[key] != out)$.hide(exports, key, exp);
600
- if(isProto)(exports.prototype || (exports.prototype = {}))[key] = out;
603
+ if(exports[key] != out)hide(exports, key, exp);
604
+ if(isProto)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
601
605
  }
602
- }
606
+ };
607
+ global.core = core;
608
+ // type bitmap
609
+ $def.F = 1; // forced
610
+ $def.G = 2; // global
611
+ $def.S = 4; // static
612
+ $def.P = 8; // proto
613
+ $def.B = 16; // bind
614
+ $def.W = 32; // wrap
603
615
  module.exports = $def;
604
- },{"./$":24,"./$.redef":29}],14:[function(require,module,exports){
605
- var $ = require('./$')
606
- , document = $.g.document
607
- , isObject = $.isObject
616
+ },{"./$.core":14,"./$.global":26,"./$.hide":28,"./$.redef":54}],17:[function(require,module,exports){
617
+ // 7.2.1 RequireObjectCoercible(argument)
618
+ module.exports = function(it){
619
+ if(it == undefined)throw TypeError("Can't call method on " + it);
620
+ return it;
621
+ };
622
+ },{}],18:[function(require,module,exports){
623
+ var isObject = require('./$.is-object')
624
+ , document = require('./$.global').document
608
625
  // in old IE typeof document.createElement is 'object'
609
626
  , is = isObject(document) && isObject(document.createElement);
610
627
  module.exports = function(it){
611
628
  return is ? document.createElement(it) : {};
612
629
  };
613
- },{"./$":24}],15:[function(require,module,exports){
630
+ },{"./$.global":26,"./$.is-object":34}],19:[function(require,module,exports){
631
+ // all enumerable object keys, includes symbols
614
632
  var $ = require('./$');
615
633
  module.exports = function(it){
616
634
  var keys = $.getKeys(it)
617
- , getDesc = $.getDesc
618
635
  , getSymbols = $.getSymbols;
619
- if(getSymbols)$.each.call(getSymbols(it), function(key){
620
- if(getDesc(it, key).enumerable)keys.push(key);
621
- });
636
+ if(getSymbols){
637
+ var symbols = getSymbols(it)
638
+ , isEnum = $.isEnum
639
+ , i = 0
640
+ , key;
641
+ while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
642
+ }
622
643
  return keys;
623
644
  };
624
- },{"./$":24}],16:[function(require,module,exports){
625
- var ctx = require('./$.ctx')
626
- , get = require('./$.iter').get
627
- , call = require('./$.iter-call');
645
+ },{"./$":42}],20:[function(require,module,exports){
646
+ // 20.2.2.14 Math.expm1(x)
647
+ module.exports = Math.expm1 || function expm1(x){
648
+ return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
649
+ };
650
+ },{}],21:[function(require,module,exports){
651
+ module.exports = function(exec){
652
+ try {
653
+ return !!exec();
654
+ } catch(e){
655
+ return true;
656
+ }
657
+ };
658
+ },{}],22:[function(require,module,exports){
659
+ 'use strict';
660
+ module.exports = function(KEY, length, exec){
661
+ var defined = require('./$.defined')
662
+ , SYMBOL = require('./$.wks')(KEY)
663
+ , original = ''[KEY];
664
+ if(require('./$.fails')(function(){
665
+ var O = {};
666
+ O[SYMBOL] = function(){ return 7; };
667
+ return ''[KEY](O) != 7;
668
+ })){
669
+ require('./$.redef')(String.prototype, KEY, exec(defined, SYMBOL, original));
670
+ require('./$.hide')(RegExp.prototype, SYMBOL, length == 2
671
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
672
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
673
+ ? function(string, arg){ return original.call(string, this, arg); }
674
+ // 21.2.5.6 RegExp.prototype[@@match](string)
675
+ // 21.2.5.9 RegExp.prototype[@@search](string)
676
+ : function(string){ return original.call(string, this); }
677
+ );
678
+ }
679
+ };
680
+ },{"./$.defined":17,"./$.fails":21,"./$.hide":28,"./$.redef":54,"./$.wks":77}],23:[function(require,module,exports){
681
+ 'use strict';
682
+ // 21.2.5.3 get RegExp.prototype.flags
683
+ var anObject = require('./$.an-object');
684
+ module.exports = function(){
685
+ var that = anObject(this)
686
+ , result = '';
687
+ if(that.global)result += 'g';
688
+ if(that.ignoreCase)result += 'i';
689
+ if(that.multiline)result += 'm';
690
+ if(that.unicode)result += 'u';
691
+ if(that.sticky)result += 'y';
692
+ return result;
693
+ };
694
+ },{"./$.an-object":4}],24:[function(require,module,exports){
695
+ var ctx = require('./$.ctx')
696
+ , call = require('./$.iter-call')
697
+ , isArrayIter = require('./$.is-array-iter')
698
+ , anObject = require('./$.an-object')
699
+ , toLength = require('./$.to-length')
700
+ , getIterFn = require('./core.get-iterator-method');
628
701
  module.exports = function(iterable, entries, fn, that){
629
- var iterator = get(iterable)
630
- , f = ctx(fn, that, entries ? 2 : 1)
631
- , step;
632
- while(!(step = iterator.next()).done){
633
- if(call(iterator, f, step.value, entries) === false){
634
- return call.close(iterator);
635
- }
702
+ var iterFn = getIterFn(iterable)
703
+ , f = ctx(fn, that, entries ? 2 : 1)
704
+ , index = 0
705
+ , length, step, iterator;
706
+ if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
707
+ // fast case for arrays with default iterator
708
+ if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
709
+ entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
710
+ } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
711
+ call(iterator, f, step.value, entries);
712
+ }
713
+ };
714
+ },{"./$.an-object":4,"./$.ctx":15,"./$.is-array-iter":32,"./$.iter-call":36,"./$.to-length":73,"./core.get-iterator-method":78}],25:[function(require,module,exports){
715
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
716
+ var toString = {}.toString
717
+ , toIObject = require('./$.to-iobject')
718
+ , getNames = require('./$').getNames;
719
+
720
+ var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
721
+ ? Object.getOwnPropertyNames(window) : [];
722
+
723
+ var getWindowNames = function(it){
724
+ try {
725
+ return getNames(it);
726
+ } catch(e){
727
+ return windowNames.slice();
636
728
  }
637
729
  };
638
- },{"./$.ctx":12,"./$.iter":23,"./$.iter-call":20}],17:[function(require,module,exports){
639
- module.exports = function($){
640
- $.FW = true;
641
- $.path = $.g;
642
- return $;
730
+
731
+ module.exports.get = function getOwnPropertyNames(it){
732
+ if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
733
+ return getNames(toIObject(it));
643
734
  };
644
- },{}],18:[function(require,module,exports){
645
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
646
- var $ = require('./$')
647
- , toString = {}.toString
648
- , getNames = $.getNames;
649
-
650
- var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
651
- ? Object.getOwnPropertyNames(window) : [];
652
-
653
- function getWindowNames(it){
654
- try {
655
- return getNames(it);
656
- } catch(e){
657
- return windowNames.slice();
658
- }
659
- }
660
-
661
- module.exports.get = function getOwnPropertyNames(it){
662
- if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
663
- return getNames($.toObject(it));
735
+ },{"./$":42,"./$.to-iobject":72}],26:[function(require,module,exports){
736
+ var global = typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
737
+ module.exports = global;
738
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
739
+ },{}],27:[function(require,module,exports){
740
+ var hasOwnProperty = {}.hasOwnProperty;
741
+ module.exports = function(it, key){
742
+ return hasOwnProperty.call(it, key);
664
743
  };
665
- },{"./$":24}],19:[function(require,module,exports){
666
- // Fast apply
667
- // http://jsperf.lnkit.com/fast-apply/5
744
+ },{}],28:[function(require,module,exports){
745
+ var $ = require('./$')
746
+ , createDesc = require('./$.property-desc');
747
+ module.exports = require('./$.support-desc') ? function(object, key, value){
748
+ return $.setDesc(object, key, createDesc(1, value));
749
+ } : function(object, key, value){
750
+ object[key] = value;
751
+ return object;
752
+ };
753
+ },{"./$":42,"./$.property-desc":53,"./$.support-desc":67}],29:[function(require,module,exports){
754
+ module.exports = require('./$.global').document && document.documentElement;
755
+ },{"./$.global":26}],30:[function(require,module,exports){
756
+ // fast apply, http://jsperf.lnkit.com/fast-apply/5
668
757
  module.exports = function(fn, args, that){
669
758
  var un = that === undefined;
670
759
  switch(args.length){
@@ -678,48 +767,82 @@ module.exports = function(fn, args, that){
678
767
  : fn.call(that, args[0], args[1], args[2]);
679
768
  case 4: return un ? fn(args[0], args[1], args[2], args[3])
680
769
  : fn.call(that, args[0], args[1], args[2], args[3]);
681
- case 5: return un ? fn(args[0], args[1], args[2], args[3], args[4])
682
- : fn.call(that, args[0], args[1], args[2], args[3], args[4]);
683
770
  } return fn.apply(that, args);
684
771
  };
685
- },{}],20:[function(require,module,exports){
686
- var assertObject = require('./$.assert').obj;
687
- function close(iterator){
688
- var ret = iterator['return'];
689
- if(ret !== undefined)assertObject(ret.call(iterator));
690
- }
691
- function call(iterator, fn, value, entries){
772
+ },{}],31:[function(require,module,exports){
773
+ // indexed object, fallback for non-array-like ES3 strings
774
+ var cof = require('./$.cof');
775
+ module.exports = 0 in Object('z') ? Object : function(it){
776
+ return cof(it) == 'String' ? it.split('') : Object(it);
777
+ };
778
+ },{"./$.cof":9}],32:[function(require,module,exports){
779
+ // check on default Array iterator
780
+ var Iterators = require('./$.iterators')
781
+ , ITERATOR = require('./$.wks')('iterator');
782
+ module.exports = function(it){
783
+ return (Iterators.Array || Array.prototype[ITERATOR]) === it;
784
+ };
785
+ },{"./$.iterators":41,"./$.wks":77}],33:[function(require,module,exports){
786
+ // 20.1.2.3 Number.isInteger(number)
787
+ var isObject = require('./$.is-object')
788
+ , floor = Math.floor;
789
+ module.exports = function isInteger(it){
790
+ return !isObject(it) && isFinite(it) && floor(it) === it;
791
+ };
792
+ },{"./$.is-object":34}],34:[function(require,module,exports){
793
+ // http://jsperf.com/core-js-isobject
794
+ module.exports = function(it){
795
+ return it !== null && (typeof it == 'object' || typeof it == 'function');
796
+ };
797
+ },{}],35:[function(require,module,exports){
798
+ // Safari has buggy iterators w/o `next`
799
+ module.exports = 'keys' in [] && !('next' in [].keys());
800
+ },{}],36:[function(require,module,exports){
801
+ // call something on iterator step with safe closing on error
802
+ var anObject = require('./$.an-object');
803
+ module.exports = function(iterator, fn, value, entries){
692
804
  try {
693
- return entries ? fn(assertObject(value)[0], value[1]) : fn(value);
805
+ return entries ? fn(anObject(value)[0], value[1]) : fn(value);
806
+ // 7.4.6 IteratorClose(iterator, completion)
694
807
  } catch(e){
695
- close(iterator);
808
+ var ret = iterator['return'];
809
+ if(ret !== undefined)anObject(ret.call(iterator));
696
810
  throw e;
697
811
  }
698
- }
699
- call.close = close;
700
- module.exports = call;
701
- },{"./$.assert":5}],21:[function(require,module,exports){
702
- var $def = require('./$.def')
812
+ };
813
+ },{"./$.an-object":4}],37:[function(require,module,exports){
814
+ 'use strict';
815
+ var $ = require('./$')
816
+ , IteratorPrototype = {};
817
+
818
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
819
+ require('./$.hide')(IteratorPrototype, require('./$.wks')('iterator'), function(){ return this; });
820
+
821
+ module.exports = function(Constructor, NAME, next){
822
+ Constructor.prototype = $.create(IteratorPrototype, {next: require('./$.property-desc')(1,next)});
823
+ require('./$.tag')(Constructor, NAME + ' Iterator');
824
+ };
825
+ },{"./$":42,"./$.hide":28,"./$.property-desc":53,"./$.tag":68,"./$.wks":77}],38:[function(require,module,exports){
826
+ 'use strict';
827
+ var LIBRARY = require('./$.library')
828
+ , $def = require('./$.def')
703
829
  , $redef = require('./$.redef')
704
- , $ = require('./$')
705
- , cof = require('./$.cof')
706
- , $iter = require('./$.iter')
830
+ , hide = require('./$.hide')
831
+ , has = require('./$.has')
707
832
  , SYMBOL_ITERATOR = require('./$.wks')('iterator')
833
+ , Iterators = require('./$.iterators')
708
834
  , FF_ITERATOR = '@@iterator'
709
835
  , KEYS = 'keys'
710
- , VALUES = 'values'
711
- , Iterators = $iter.Iterators;
836
+ , VALUES = 'values';
837
+ var returnThis = function(){ return this; };
712
838
  module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE){
713
- $iter.create(Constructor, NAME, next);
714
- function createMethod(kind){
715
- function $$(that){
716
- return new Constructor(that, kind);
717
- }
839
+ require('./$.iter-create')(Constructor, NAME, next);
840
+ var createMethod = function(kind){
718
841
  switch(kind){
719
- case KEYS: return function keys(){ return $$(this); };
720
- case VALUES: return function values(){ return $$(this); };
721
- } return function entries(){ return $$(this); };
722
- }
842
+ case KEYS: return function keys(){ return new Constructor(this, kind); };
843
+ case VALUES: return function values(){ return new Constructor(this, kind); };
844
+ } return function entries(){ return new Constructor(this, kind); };
845
+ };
723
846
  var TAG = NAME + ' Iterator'
724
847
  , proto = Base.prototype
725
848
  , _native = proto[SYMBOL_ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
@@ -727,17 +850,17 @@ module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE)
727
850
  , methods, key;
728
851
  // Fix native
729
852
  if(_native){
730
- var IteratorPrototype = $.getProto(_default.call(new Base));
853
+ var IteratorPrototype = require('./$').getProto(_default.call(new Base));
731
854
  // Set @@toStringTag to native iterators
732
- cof.set(IteratorPrototype, TAG, true);
855
+ require('./$.tag')(IteratorPrototype, TAG, true);
733
856
  // FF fix
734
- if($.FW && $.has(proto, FF_ITERATOR))$iter.set(IteratorPrototype, $.that);
857
+ if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, SYMBOL_ITERATOR, returnThis);
735
858
  }
736
859
  // Define iterator
737
- if($.FW || FORCE)$iter.set(proto, _default);
860
+ if(!LIBRARY || FORCE)hide(proto, SYMBOL_ITERATOR, _default);
738
861
  // Plug for library
739
862
  Iterators[NAME] = _default;
740
- Iterators[TAG] = $.that;
863
+ Iterators[TAG] = returnThis;
741
864
  if(DEFAULT){
742
865
  methods = {
743
866
  keys: IS_SET ? _default : createMethod(KEYS),
@@ -746,10 +869,10 @@ module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE)
746
869
  };
747
870
  if(FORCE)for(key in methods){
748
871
  if(!(key in proto))$redef(proto, key, methods[key]);
749
- } else $def($def.P + $def.F * $iter.BUGGY, NAME, methods);
872
+ } else $def($def.P + $def.F * require('./$.iter-buggy'), NAME, methods);
750
873
  }
751
874
  };
752
- },{"./$":24,"./$.cof":7,"./$.def":13,"./$.iter":23,"./$.redef":29,"./$.wks":42}],22:[function(require,module,exports){
875
+ },{"./$":42,"./$.def":16,"./$.has":27,"./$.hide":28,"./$.iter-buggy":35,"./$.iter-create":37,"./$.iterators":41,"./$.library":44,"./$.redef":54,"./$.tag":68,"./$.wks":77}],39:[function(require,module,exports){
753
876
  var SYMBOL_ITERATOR = require('./$.wks')('iterator')
754
877
  , SAFE_CLOSING = false;
755
878
  try {
@@ -769,189 +892,143 @@ module.exports = function(exec){
769
892
  } catch(e){ /* empty */ }
770
893
  return safe;
771
894
  };
772
- },{"./$.wks":42}],23:[function(require,module,exports){
773
- 'use strict';
774
- var $ = require('./$')
775
- , cof = require('./$.cof')
776
- , classof = cof.classof
777
- , assert = require('./$.assert')
778
- , assertObject = assert.obj
779
- , SYMBOL_ITERATOR = require('./$.wks')('iterator')
780
- , FF_ITERATOR = '@@iterator'
781
- , Iterators = require('./$.shared')('iterators')
782
- , IteratorPrototype = {};
783
- // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
784
- setIterator(IteratorPrototype, $.that);
785
- function setIterator(O, value){
786
- $.hide(O, SYMBOL_ITERATOR, value);
787
- // Add iterator for FF iterator protocol
788
- if(FF_ITERATOR in [])$.hide(O, FF_ITERATOR, value);
789
- }
790
-
895
+ },{"./$.wks":77}],40:[function(require,module,exports){
896
+ module.exports = function(done, value){
897
+ return {value: value, done: !!done};
898
+ };
899
+ },{}],41:[function(require,module,exports){
900
+ module.exports = {};
901
+ },{}],42:[function(require,module,exports){
902
+ var $Object = Object;
791
903
  module.exports = {
792
- // Safari has buggy iterators w/o `next`
793
- BUGGY: 'keys' in [] && !('next' in [].keys()),
794
- Iterators: Iterators,
795
- step: function(done, value){
796
- return {value: value, done: !!done};
797
- },
798
- is: function(it){
799
- var O = Object(it)
800
- , Symbol = $.g.Symbol;
801
- return (Symbol && Symbol.iterator || FF_ITERATOR) in O
802
- || SYMBOL_ITERATOR in O
803
- || $.has(Iterators, classof(O));
804
- },
805
- get: function(it){
806
- var Symbol = $.g.Symbol
807
- , getIter;
808
- if(it != undefined){
809
- getIter = it[Symbol && Symbol.iterator || FF_ITERATOR]
810
- || it[SYMBOL_ITERATOR]
811
- || Iterators[classof(it)];
812
- }
813
- assert($.isFunction(getIter), it, ' is not iterable!');
814
- return assertObject(getIter.call(it));
815
- },
816
- set: setIterator,
817
- create: function(Constructor, NAME, next, proto){
818
- Constructor.prototype = $.create(proto || IteratorPrototype, {next: $.desc(1, next)});
819
- cof.set(Constructor, NAME + ' Iterator');
820
- }
904
+ create: $Object.create,
905
+ getProto: $Object.getPrototypeOf,
906
+ isEnum: {}.propertyIsEnumerable,
907
+ getDesc: $Object.getOwnPropertyDescriptor,
908
+ setDesc: $Object.defineProperty,
909
+ setDescs: $Object.defineProperties,
910
+ getKeys: $Object.keys,
911
+ getNames: $Object.getOwnPropertyNames,
912
+ getSymbols: $Object.getOwnPropertySymbols,
913
+ each: [].forEach
821
914
  };
822
- },{"./$":24,"./$.assert":5,"./$.cof":7,"./$.shared":33,"./$.wks":42}],24:[function(require,module,exports){
823
- 'use strict';
824
- var global = typeof self != 'undefined' ? self : Function('return this')()
825
- , core = {}
826
- , defineProperty = Object.defineProperty
827
- , hasOwnProperty = {}.hasOwnProperty
828
- , ceil = Math.ceil
829
- , floor = Math.floor
830
- , max = Math.max
831
- , min = Math.min;
832
- // The engine works fine with descriptors? Thank's IE8 for his funny defineProperty.
833
- var DESC = !!function(){
834
- try {
835
- return defineProperty({}, 'a', {get: function(){ return 2; }}).a == 2;
836
- } catch(e){ /* empty */ }
837
- }();
838
- var hide = createDefiner(1);
839
- // 7.1.4 ToInteger
840
- function toInteger(it){
841
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
842
- }
843
- function desc(bitmap, value){
844
- return {
845
- enumerable : !(bitmap & 1),
846
- configurable: !(bitmap & 2),
847
- writable : !(bitmap & 4),
848
- value : value
849
- };
850
- }
851
- function simpleSet(object, key, value){
852
- object[key] = value;
853
- return object;
854
- }
855
- function createDefiner(bitmap){
856
- return DESC ? function(object, key, value){
857
- return $.setDesc(object, key, desc(bitmap, value));
858
- } : simpleSet;
859
- }
860
-
861
- function isObject(it){
862
- return it !== null && (typeof it == 'object' || typeof it == 'function');
863
- }
864
- function isFunction(it){
865
- return typeof it == 'function';
866
- }
867
- function assertDefined(it){
868
- if(it == undefined)throw TypeError("Can't call method on " + it);
869
- return it;
870
- }
871
-
872
- var $ = module.exports = require('./$.fw')({
873
- g: global,
874
- core: core,
875
- html: global.document && document.documentElement,
876
- // http://jsperf.com/core-js-isobject
877
- isObject: isObject,
878
- isFunction: isFunction,
879
- that: function(){
880
- return this;
881
- },
882
- // 7.1.4 ToInteger
883
- toInteger: toInteger,
884
- // 7.1.15 ToLength
885
- toLength: function(it){
886
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
887
- },
888
- toIndex: function(index, length){
889
- index = toInteger(index);
890
- return index < 0 ? max(index + length, 0) : min(index, length);
891
- },
892
- has: function(it, key){
893
- return hasOwnProperty.call(it, key);
894
- },
895
- create: Object.create,
896
- getProto: Object.getPrototypeOf,
897
- DESC: DESC,
898
- desc: desc,
899
- getDesc: Object.getOwnPropertyDescriptor,
900
- setDesc: defineProperty,
901
- setDescs: Object.defineProperties,
902
- getKeys: Object.keys,
903
- getNames: Object.getOwnPropertyNames,
904
- getSymbols: Object.getOwnPropertySymbols,
905
- assertDefined: assertDefined,
906
- // Dummy, fix for not array-like ES3 string in es5 module
907
- ES5Object: Object,
908
- toObject: function(it){
909
- return $.ES5Object(assertDefined(it));
910
- },
911
- hide: hide,
912
- def: createDefiner(0),
913
- set: global.Symbol ? simpleSet : hide,
914
- each: [].forEach
915
- });
916
- /* eslint-disable no-undef */
917
- if(typeof __e != 'undefined')__e = core;
918
- if(typeof __g != 'undefined')__g = global;
919
- },{"./$.fw":17}],25:[function(require,module,exports){
920
- var $ = require('./$');
915
+ },{}],43:[function(require,module,exports){
916
+ var $ = require('./$')
917
+ , toIObject = require('./$.to-iobject');
921
918
  module.exports = function(object, el){
922
- var O = $.toObject(object)
919
+ var O = toIObject(object)
923
920
  , keys = $.getKeys(O)
924
921
  , length = keys.length
925
922
  , index = 0
926
923
  , key;
927
924
  while(length > index)if(O[key = keys[index++]] === el)return key;
928
925
  };
929
- },{"./$":24}],26:[function(require,module,exports){
930
- var $redef = require('./$.redef');
931
- module.exports = function(target, src){
932
- for(var key in src)$redef(target, key, src[key]);
933
- return target;
926
+ },{"./$":42,"./$.to-iobject":72}],44:[function(require,module,exports){
927
+ module.exports = false;
928
+ },{}],45:[function(require,module,exports){
929
+ // 20.2.2.20 Math.log1p(x)
930
+ module.exports = Math.log1p || function log1p(x){
931
+ return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
934
932
  };
935
- },{"./$.redef":29}],27:[function(require,module,exports){
936
- var $ = require('./$')
937
- , assertObject = require('./$.assert').obj;
933
+ },{}],46:[function(require,module,exports){
934
+ var global = require('./$.global')
935
+ , macrotask = require('./$.task').set
936
+ , Observer = global.MutationObserver || global.WebKitMutationObserver
937
+ , process = global.process
938
+ , head, last, notify;
939
+
940
+ function flush(){
941
+ while(head){
942
+ head.fn.call(); // <- currently we use it only for Promise - try / catch not required
943
+ head = head.next;
944
+ } last = undefined;
945
+ }
946
+
947
+ // Node.js
948
+ if(require('./$.cof')(process) == 'process'){
949
+ notify = function(){
950
+ process.nextTick(flush);
951
+ };
952
+ // browsers with MutationObserver
953
+ } else if(Observer){
954
+ var toggle = 1
955
+ , node = document.createTextNode('');
956
+ new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
957
+ notify = function(){
958
+ node.data = toggle = -toggle;
959
+ };
960
+ // for other environments - macrotask based on:
961
+ // - setImmediate
962
+ // - MessageChannel
963
+ // - window.postMessag
964
+ // - onreadystatechange
965
+ // - setTimeout
966
+ } else {
967
+ notify = function(){
968
+ // strange IE + webpack dev server bug - use .call(global)
969
+ macrotask.call(global, flush);
970
+ };
971
+ }
972
+
973
+ module.exports = function asap(fn){
974
+ var task = {fn: fn, next: undefined};
975
+ if(last)last.next = task;
976
+ if(!head){
977
+ head = task;
978
+ notify();
979
+ } last = task;
980
+ };
981
+ },{"./$.cof":9,"./$.global":26,"./$.task":69}],47:[function(require,module,exports){
982
+ var $redef = require('./$.redef');
983
+ module.exports = function(target, src){
984
+ for(var key in src)$redef(target, key, src[key]);
985
+ return target;
986
+ };
987
+ },{"./$.redef":54}],48:[function(require,module,exports){
988
+ // most Object methods by ES6 should accept primitives
989
+ module.exports = function(KEY, exec){
990
+ var $def = require('./$.def')
991
+ , fn = (require('./$.core').Object || {})[KEY] || Object[KEY]
992
+ , exp = {};
993
+ exp[KEY] = exec(fn);
994
+ $def($def.S + $def.F * require('./$.fails')(function(){ fn(1); }), 'Object', exp);
995
+ };
996
+ },{"./$.core":14,"./$.def":16,"./$.fails":21}],49:[function(require,module,exports){
997
+ var $ = require('./$')
998
+ , toIObject = require('./$.to-iobject');
999
+ module.exports = function(isEntries){
1000
+ return function(it){
1001
+ var O = toIObject(it)
1002
+ , keys = $.getKeys(O)
1003
+ , length = keys.length
1004
+ , i = 0
1005
+ , result = Array(length)
1006
+ , key;
1007
+ if(isEntries)while(length > i)result[i] = [key = keys[i++], O[key]];
1008
+ else while(length > i)result[i] = O[keys[i++]];
1009
+ return result;
1010
+ };
1011
+ };
1012
+ },{"./$":42,"./$.to-iobject":72}],50:[function(require,module,exports){
1013
+ // all object keys, includes non-enumerable and symbols
1014
+ var $ = require('./$')
1015
+ , anObject = require('./$.an-object');
938
1016
  module.exports = function ownKeys(it){
939
- assertObject(it);
940
- var keys = $.getNames(it)
1017
+ var keys = $.getNames(anObject(it))
941
1018
  , getSymbols = $.getSymbols;
942
1019
  return getSymbols ? keys.concat(getSymbols(it)) : keys;
943
1020
  };
944
- },{"./$":24,"./$.assert":5}],28:[function(require,module,exports){
1021
+ },{"./$":42,"./$.an-object":4}],51:[function(require,module,exports){
945
1022
  'use strict';
946
- var $ = require('./$')
947
- , invoke = require('./$.invoke')
948
- , assertFunction = require('./$.assert').fn;
1023
+ var path = require('./$.path')
1024
+ , invoke = require('./$.invoke')
1025
+ , aFunction = require('./$.a-function');
949
1026
  module.exports = function(/* ...pargs */){
950
- var fn = assertFunction(this)
1027
+ var fn = aFunction(this)
951
1028
  , length = arguments.length
952
1029
  , pargs = Array(length)
953
1030
  , i = 0
954
- , _ = $.path._
1031
+ , _ = path._
955
1032
  , holder = false;
956
1033
  while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
957
1034
  return function(/* ...args */){
@@ -965,65 +1042,73 @@ module.exports = function(/* ...pargs */){
965
1042
  return invoke(fn, args, that);
966
1043
  };
967
1044
  };
968
- },{"./$":24,"./$.assert":5,"./$.invoke":19}],29:[function(require,module,exports){
969
- var $ = require('./$')
970
- , tpl = String({}.hasOwnProperty)
971
- , SRC = require('./$.uid').safe('src')
972
- , _toString = Function.toString;
973
-
974
- function $redef(O, key, val, safe){
975
- if($.isFunction(val)){
976
- var base = O[key];
977
- $.hide(val, SRC, base ? String(base) : tpl.replace(/hasOwnProperty/, String(key)));
978
- if(!('name' in val))val.name = key;
979
- }
980
- if(O === $.g){
981
- O[key] = val;
982
- } else {
983
- if(!safe)delete O[key];
984
- $.hide(O, key, val);
985
- }
986
- }
987
-
988
- // add fake Function#toString for correct work wrapped methods / constructors
989
- // with methods similar to LoDash isNative
990
- $redef(Function.prototype, 'toString', function toString(){
991
- return $.has(this, SRC) ? this[SRC] : _toString.call(this);
992
- });
993
-
994
- $.core.inspectSource = function(it){
995
- return _toString.call(it);
996
- };
997
-
998
- module.exports = $redef;
999
- },{"./$":24,"./$.uid":40}],30:[function(require,module,exports){
1000
- 'use strict';
1001
- module.exports = function(regExp, replace, isStatic){
1045
+ },{"./$.a-function":3,"./$.invoke":30,"./$.path":52}],52:[function(require,module,exports){
1046
+ module.exports = require('./$.global');
1047
+ },{"./$.global":26}],53:[function(require,module,exports){
1048
+ module.exports = function(bitmap, value){
1049
+ return {
1050
+ enumerable : !(bitmap & 1),
1051
+ configurable: !(bitmap & 2),
1052
+ writable : !(bitmap & 4),
1053
+ value : value
1054
+ };
1055
+ };
1056
+ },{}],54:[function(require,module,exports){
1057
+ // add fake Function#toString
1058
+ // for correct work wrapped methods / constructors with methods like LoDash isNative
1059
+ var global = require('./$.global')
1060
+ , hide = require('./$.hide')
1061
+ , SRC = require('./$.uid')('src')
1062
+ , TO_STRING = 'toString'
1063
+ , $toString = Function[TO_STRING]
1064
+ , TPL = ('' + $toString).split(TO_STRING);
1065
+
1066
+ require('./$.core').inspectSource = function(it){
1067
+ return $toString.call(it);
1068
+ };
1069
+
1070
+ (module.exports = function(O, key, val, safe){
1071
+ if(typeof val == 'function'){
1072
+ hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
1073
+ if(!('name' in val))val.name = key;
1074
+ }
1075
+ if(O === global){
1076
+ O[key] = val;
1077
+ } else {
1078
+ if(!safe)delete O[key];
1079
+ hide(O, key, val);
1080
+ }
1081
+ })(Function.prototype, TO_STRING, function toString(){
1082
+ return typeof this == 'function' && this[SRC] || $toString.call(this);
1083
+ });
1084
+ },{"./$.core":14,"./$.global":26,"./$.hide":28,"./$.uid":75}],55:[function(require,module,exports){
1085
+ module.exports = function(regExp, replace){
1002
1086
  var replacer = replace === Object(replace) ? function(part){
1003
1087
  return replace[part];
1004
1088
  } : replace;
1005
1089
  return function(it){
1006
- return String(isStatic ? it : this).replace(regExp, replacer);
1090
+ return String(it).replace(regExp, replacer);
1007
1091
  };
1008
1092
  };
1009
- },{}],31:[function(require,module,exports){
1010
- module.exports = Object.is || function is(x, y){
1011
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
1093
+ },{}],56:[function(require,module,exports){
1094
+ module.exports = Object.is || function is(x, y){
1095
+ return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
1012
1096
  };
1013
- },{}],32:[function(require,module,exports){
1097
+ },{}],57:[function(require,module,exports){
1014
1098
  // Works with __proto__ only. Old v8 can't work with null proto objects.
1015
1099
  /* eslint-disable no-proto */
1016
- var $ = require('./$')
1017
- , assert = require('./$.assert');
1018
- function check(O, proto){
1019
- assert.obj(O);
1020
- assert(proto === null || $.isObject(proto), proto, ": can't set as prototype!");
1021
- }
1100
+ var getDesc = require('./$').getDesc
1101
+ , isObject = require('./$.is-object')
1102
+ , anObject = require('./$.an-object');
1103
+ var check = function(O, proto){
1104
+ anObject(O);
1105
+ if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
1106
+ };
1022
1107
  module.exports = {
1023
1108
  set: Object.setPrototypeOf || ('__proto__' in {} // eslint-disable-line
1024
1109
  ? function(buggy, set){
1025
1110
  try {
1026
- set = require('./$.ctx')(Function.call, $.getDesc(Object.prototype, '__proto__').set, 2);
1111
+ set = require('./$.ctx')(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
1027
1112
  set({}, []);
1028
1113
  } catch(e){ buggy = true; }
1029
1114
  return function setPrototypeOf(O, proto){
@@ -1036,30 +1121,42 @@ module.exports = {
1036
1121
  : undefined),
1037
1122
  check: check
1038
1123
  };
1039
- },{"./$":24,"./$.assert":5,"./$.ctx":12}],33:[function(require,module,exports){
1040
- var $ = require('./$')
1041
- , SHARED = '__core-js_shared__'
1042
- , store = $.g[SHARED] || ($.g[SHARED] = {});
1043
- module.exports = function(key){
1044
- return store[key] || (store[key] = {});
1124
+ },{"./$":42,"./$.an-object":4,"./$.ctx":15,"./$.is-object":34}],58:[function(require,module,exports){
1125
+ var global = require('./$.global')
1126
+ , SHARED = '__core-js_shared__'
1127
+ , store = global[SHARED] || (global[SHARED] = {});
1128
+ module.exports = function(key){
1129
+ return store[key] || (store[key] = {});
1045
1130
  };
1046
- },{"./$":24}],34:[function(require,module,exports){
1131
+ },{"./$.global":26}],59:[function(require,module,exports){
1132
+ // 20.2.2.28 Math.sign(x)
1133
+ module.exports = Math.sign || function sign(x){
1134
+ return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
1135
+ };
1136
+ },{}],60:[function(require,module,exports){
1137
+ 'use strict';
1047
1138
  var $ = require('./$')
1048
1139
  , SPECIES = require('./$.wks')('species');
1049
1140
  module.exports = function(C){
1050
- if($.DESC && !(SPECIES in C))$.setDesc(C, SPECIES, {
1141
+ if(require('./$.support-desc') && !(SPECIES in C))$.setDesc(C, SPECIES, {
1051
1142
  configurable: true,
1052
- get: $.that
1143
+ get: function(){ return this; }
1053
1144
  });
1054
1145
  };
1055
- },{"./$":24,"./$.wks":42}],35:[function(require,module,exports){
1146
+ },{"./$":42,"./$.support-desc":67,"./$.wks":77}],61:[function(require,module,exports){
1147
+ module.exports = function(it, Constructor, name){
1148
+ if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
1149
+ return it;
1150
+ };
1151
+ },{}],62:[function(require,module,exports){
1056
1152
  // true -> String#at
1057
1153
  // false -> String#codePointAt
1058
- var $ = require('./$');
1154
+ var toInteger = require('./$.to-integer')
1155
+ , defined = require('./$.defined');
1059
1156
  module.exports = function(TO_STRING){
1060
1157
  return function(that, pos){
1061
- var s = String($.assertDefined(that))
1062
- , i = $.toInteger(pos)
1158
+ var s = String(defined(that))
1159
+ , i = toInteger(pos)
1063
1160
  , l = s.length
1064
1161
  , a, b;
1065
1162
  if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
@@ -1070,61 +1167,95 @@ module.exports = function(TO_STRING){
1070
1167
  : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
1071
1168
  };
1072
1169
  };
1073
- },{"./$":24}],36:[function(require,module,exports){
1074
- // http://wiki.ecmascript.org/doku.php?id=strawman:string_padding
1075
- var $ = require('./$')
1076
- , repeat = require('./$.string-repeat');
1077
-
1078
- module.exports = function(that, minLength, fillChar, left){
1079
- // 1. Let O be CheckObjectCoercible(this value).
1080
- // 2. Let S be ToString(O).
1081
- var S = String($.assertDefined(that));
1082
- // 4. If intMinLength is undefined, return S.
1083
- if(minLength === undefined)return S;
1084
- // 4. Let intMinLength be ToInteger(minLength).
1085
- var intMinLength = $.toInteger(minLength);
1086
- // 5. Let fillLen be the number of characters in S minus intMinLength.
1087
- var fillLen = intMinLength - S.length;
1088
- // 6. If fillLen < 0, then throw a RangeError exception.
1089
- // 7. If fillLen is +∞, then throw a RangeError exception.
1090
- if(fillLen < 0 || fillLen === Infinity){
1091
- throw new RangeError('Cannot satisfy string length ' + minLength + ' for string: ' + S);
1092
- }
1093
- // 8. Let sFillStr be the string represented by fillStr.
1094
- // 9. If sFillStr is undefined, let sFillStr be a space character.
1095
- var sFillStr = fillChar === undefined ? ' ' : String(fillChar);
1096
- // 10. Let sFillVal be a String made of sFillStr, repeated until fillLen is met.
1097
- var sFillVal = repeat.call(sFillStr, Math.ceil(fillLen / sFillStr.length));
1098
- // truncate if we overflowed
1099
- if(sFillVal.length > fillLen)sFillVal = left
1100
- ? sFillVal.slice(sFillVal.length - fillLen)
1101
- : sFillVal.slice(0, fillLen);
1102
- // 11. Return a string made from sFillVal, followed by S.
1103
- // 11. Return a String made from S, followed by sFillVal.
1104
- return left ? sFillVal.concat(S) : S.concat(sFillVal);
1105
- };
1106
- },{"./$":24,"./$.string-repeat":37}],37:[function(require,module,exports){
1170
+ },{"./$.defined":17,"./$.to-integer":71}],63:[function(require,module,exports){
1171
+ // helper for String#{startsWith, endsWith, includes}
1172
+ var defined = require('./$.defined')
1173
+ , cof = require('./$.cof');
1174
+
1175
+ module.exports = function(that, searchString, NAME){
1176
+ if(cof(searchString) == 'RegExp')throw TypeError('String#' + NAME + " doesn't accept regex!");
1177
+ return String(defined(that));
1178
+ };
1179
+ },{"./$.cof":9,"./$.defined":17}],64:[function(require,module,exports){
1180
+ // https://github.com/ljharb/proposal-string-pad-left-right
1181
+ var toLength = require('./$.to-length')
1182
+ , repeat = require('./$.string-repeat')
1183
+ , defined = require('./$.defined');
1184
+
1185
+ module.exports = function(that, maxLength, fillString, left){
1186
+ var S = String(defined(that))
1187
+ , stringLength = S.length
1188
+ , fillStr = fillString === undefined ? ' ' : String(fillString)
1189
+ , intMaxLength = toLength(maxLength);
1190
+ if(intMaxLength <= stringLength)return S;
1191
+ if(fillStr == '')fillStr = ' ';
1192
+ var fillLen = intMaxLength - stringLength
1193
+ , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
1194
+ if(stringFiller.length > fillLen)stringFiller = left
1195
+ ? stringFiller.slice(stringFiller.length - fillLen)
1196
+ : stringFiller.slice(0, fillLen);
1197
+ return left ? stringFiller + S : S + stringFiller;
1198
+ };
1199
+ },{"./$.defined":17,"./$.string-repeat":65,"./$.to-length":73}],65:[function(require,module,exports){
1107
1200
  'use strict';
1108
- var $ = require('./$');
1201
+ var toInteger = require('./$.to-integer')
1202
+ , defined = require('./$.defined');
1109
1203
 
1110
1204
  module.exports = function repeat(count){
1111
- var str = String($.assertDefined(this))
1205
+ var str = String(defined(this))
1112
1206
  , res = ''
1113
- , n = $.toInteger(count);
1207
+ , n = toInteger(count);
1114
1208
  if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
1115
1209
  for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
1116
1210
  return res;
1117
1211
  };
1118
- },{"./$":24}],38:[function(require,module,exports){
1212
+ },{"./$.defined":17,"./$.to-integer":71}],66:[function(require,module,exports){
1213
+ // 1 -> String#trimLeft
1214
+ // 2 -> String#trimRight
1215
+ // 3 -> String#trim
1216
+ var trim = function(string, TYPE){
1217
+ string = String(defined(string));
1218
+ if(TYPE & 1)string = string.replace(ltrim, '');
1219
+ if(TYPE & 2)string = string.replace(rtrim, '');
1220
+ return string;
1221
+ };
1222
+
1223
+ var $def = require('./$.def')
1224
+ , defined = require('./$.defined')
1225
+ , spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
1226
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
1227
+ , space = '[' + spaces + ']'
1228
+ , non = '\u200b\u0085'
1229
+ , ltrim = RegExp('^' + space + space + '*')
1230
+ , rtrim = RegExp(space + space + '*$');
1231
+
1232
+ module.exports = function(KEY, exec){
1233
+ var exp = {};
1234
+ exp[KEY] = exec(trim);
1235
+ $def($def.P + $def.F * require('./$.fails')(function(){
1236
+ return !!spaces[KEY]() || non[KEY]() != non;
1237
+ }), 'String', exp);
1238
+ };
1239
+ },{"./$.def":16,"./$.defined":17,"./$.fails":21}],67:[function(require,module,exports){
1240
+ // Thank's IE8 for his funny defineProperty
1241
+ module.exports = !require('./$.fails')(function(){
1242
+ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
1243
+ });
1244
+ },{"./$.fails":21}],68:[function(require,module,exports){
1245
+ var has = require('./$.has')
1246
+ , hide = require('./$.hide')
1247
+ , TAG = require('./$.wks')('toStringTag');
1248
+
1249
+ module.exports = function(it, tag, stat){
1250
+ if(it && !has(it = stat ? it : it.prototype, TAG))hide(it, TAG, tag);
1251
+ };
1252
+ },{"./$.has":27,"./$.hide":28,"./$.wks":77}],69:[function(require,module,exports){
1119
1253
  'use strict';
1120
- var $ = require('./$')
1121
- , ctx = require('./$.ctx')
1122
- , cof = require('./$.cof')
1123
- , invoke = require('./$.invoke')
1124
- , cel = require('./$.dom-create')
1125
- , global = $.g
1126
- , isFunction = $.isFunction
1127
- , html = $.html
1254
+ var ctx = require('./$.ctx')
1255
+ , invoke = require('./$.invoke')
1256
+ , html = require('./$.html')
1257
+ , cel = require('./$.dom-create')
1258
+ , global = require('./$.global')
1128
1259
  , process = global.process
1129
1260
  , setTask = global.setImmediate
1130
1261
  , clearTask = global.clearImmediate
@@ -1133,49 +1264,49 @@ var $ = require('./$')
1133
1264
  , queue = {}
1134
1265
  , ONREADYSTATECHANGE = 'onreadystatechange'
1135
1266
  , defer, channel, port;
1136
- function run(){
1267
+ var run = function(){
1137
1268
  var id = +this;
1138
- if($.has(queue, id)){
1269
+ if(queue.hasOwnProperty(id)){
1139
1270
  var fn = queue[id];
1140
1271
  delete queue[id];
1141
1272
  fn();
1142
1273
  }
1143
- }
1144
- function listner(event){
1274
+ };
1275
+ var listner = function(event){
1145
1276
  run.call(event.data);
1146
- }
1277
+ };
1147
1278
  // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
1148
- if(!isFunction(setTask) || !isFunction(clearTask)){
1149
- setTask = function(fn){
1279
+ if(!setTask || !clearTask){
1280
+ setTask = function setImmediate(fn){
1150
1281
  var args = [], i = 1;
1151
1282
  while(arguments.length > i)args.push(arguments[i++]);
1152
1283
  queue[++counter] = function(){
1153
- invoke(isFunction(fn) ? fn : Function(fn), args);
1284
+ invoke(typeof fn == 'function' ? fn : Function(fn), args);
1154
1285
  };
1155
1286
  defer(counter);
1156
1287
  return counter;
1157
1288
  };
1158
- clearTask = function(id){
1289
+ clearTask = function clearImmediate(id){
1159
1290
  delete queue[id];
1160
1291
  };
1161
1292
  // Node.js 0.8-
1162
- if(cof(process) == 'process'){
1293
+ if(require('./$.cof')(process) == 'process'){
1163
1294
  defer = function(id){
1164
1295
  process.nextTick(ctx(run, id, 1));
1165
1296
  };
1166
- // Modern browsers, skip implementation for WebWorkers
1167
- // IE8 has postMessage, but it's sync & typeof its postMessage is object
1168
- } else if(global.addEventListener && isFunction(global.postMessage) && !global.importScripts){
1169
- defer = function(id){
1170
- global.postMessage(id, '*');
1171
- };
1172
- global.addEventListener('message', listner, false);
1173
- // WebWorkers
1174
- } else if(isFunction(MessageChannel)){
1297
+ // Browsers with MessageChannel, includes WebWorkers
1298
+ } else if(MessageChannel){
1175
1299
  channel = new MessageChannel;
1176
1300
  port = channel.port2;
1177
1301
  channel.port1.onmessage = listner;
1178
1302
  defer = ctx(port.postMessage, port, 1);
1303
+ // Browsers with postMessage, skip WebWorkers
1304
+ // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
1305
+ } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScript){
1306
+ defer = function(id){
1307
+ global.postMessage(id + '', '*');
1308
+ };
1309
+ global.addEventListener('message', listner, false);
1179
1310
  // IE8-
1180
1311
  } else if(ONREADYSTATECHANGE in cel('script')){
1181
1312
  defer = function(id){
@@ -1195,91 +1326,122 @@ module.exports = {
1195
1326
  set: setTask,
1196
1327
  clear: clearTask
1197
1328
  };
1198
- },{"./$":24,"./$.cof":7,"./$.ctx":12,"./$.dom-create":14,"./$.invoke":19}],39:[function(require,module,exports){
1199
- module.exports = function(exec){
1200
- try {
1201
- exec();
1202
- return false;
1203
- } catch(e){
1204
- return true;
1205
- }
1329
+ },{"./$.cof":9,"./$.ctx":15,"./$.dom-create":18,"./$.global":26,"./$.html":29,"./$.invoke":30}],70:[function(require,module,exports){
1330
+ var toInteger = require('./$.to-integer')
1331
+ , max = Math.max
1332
+ , min = Math.min;
1333
+ module.exports = function(index, length){
1334
+ index = toInteger(index);
1335
+ return index < 0 ? max(index + length, 0) : min(index, length);
1206
1336
  };
1207
- },{}],40:[function(require,module,exports){
1208
- var sid = 0;
1209
- function uid(key){
1210
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++sid + Math.random()).toString(36));
1211
- }
1212
- uid.safe = require('./$').g.Symbol || uid;
1213
- module.exports = uid;
1214
- },{"./$":24}],41:[function(require,module,exports){
1337
+ },{"./$.to-integer":71}],71:[function(require,module,exports){
1338
+ // 7.1.4 ToInteger
1339
+ var ceil = Math.ceil
1340
+ , floor = Math.floor;
1341
+ module.exports = function(it){
1342
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1343
+ };
1344
+ },{}],72:[function(require,module,exports){
1345
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
1346
+ var IObject = require('./$.iobject')
1347
+ , defined = require('./$.defined');
1348
+ module.exports = function(it){
1349
+ return IObject(defined(it));
1350
+ };
1351
+ },{"./$.defined":17,"./$.iobject":31}],73:[function(require,module,exports){
1352
+ // 7.1.15 ToLength
1353
+ var toInteger = require('./$.to-integer')
1354
+ , min = Math.min;
1355
+ module.exports = function(it){
1356
+ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
1357
+ };
1358
+ },{"./$.to-integer":71}],74:[function(require,module,exports){
1359
+ // 7.1.13 ToObject(argument)
1360
+ var defined = require('./$.defined');
1361
+ module.exports = function(it){
1362
+ return Object(defined(it));
1363
+ };
1364
+ },{"./$.defined":17}],75:[function(require,module,exports){
1365
+ var id = 0
1366
+ , px = Math.random();
1367
+ module.exports = function(key){
1368
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
1369
+ };
1370
+ },{}],76:[function(require,module,exports){
1215
1371
  // 22.1.3.31 Array.prototype[@@unscopables]
1216
1372
  var UNSCOPABLES = require('./$.wks')('unscopables');
1217
- if(!(UNSCOPABLES in []))require('./$').hide(Array.prototype, UNSCOPABLES, {});
1373
+ if(!(UNSCOPABLES in []))require('./$.hide')(Array.prototype, UNSCOPABLES, {});
1218
1374
  module.exports = function(key){
1219
1375
  [][UNSCOPABLES][key] = true;
1220
1376
  };
1221
- },{"./$":24,"./$.wks":42}],42:[function(require,module,exports){
1222
- var global = require('./$').g
1223
- , store = require('./$.shared')('wks');
1377
+ },{"./$.hide":28,"./$.wks":77}],77:[function(require,module,exports){
1378
+ var store = require('./$.shared')('wks')
1379
+ , Symbol = require('./$.global').Symbol;
1224
1380
  module.exports = function(name){
1225
1381
  return store[name] || (store[name] =
1226
- global.Symbol && global.Symbol[name] || require('./$.uid').safe('Symbol.' + name));
1382
+ Symbol && Symbol[name] || (Symbol || require('./$.uid'))('Symbol.' + name));
1383
+ };
1384
+ },{"./$.global":26,"./$.shared":58,"./$.uid":75}],78:[function(require,module,exports){
1385
+ var classof = require('./$.classof')
1386
+ , ITERATOR = require('./$.wks')('iterator')
1387
+ , Iterators = require('./$.iterators');
1388
+ module.exports = require('./$.core').getIteratorMethod = function(it){
1389
+ if(it != undefined)return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
1227
1390
  };
1228
- },{"./$":24,"./$.shared":33,"./$.uid":40}],43:[function(require,module,exports){
1391
+ },{"./$.classof":8,"./$.core":14,"./$.iterators":41,"./$.wks":77}],79:[function(require,module,exports){
1392
+ 'use strict';
1229
1393
  var $ = require('./$')
1394
+ , SUPPORT_DESC = require('./$.support-desc')
1395
+ , createDesc = require('./$.property-desc')
1396
+ , html = require('./$.html')
1230
1397
  , cel = require('./$.dom-create')
1398
+ , has = require('./$.has')
1231
1399
  , cof = require('./$.cof')
1232
1400
  , $def = require('./$.def')
1233
1401
  , invoke = require('./$.invoke')
1234
1402
  , arrayMethod = require('./$.array-methods')
1235
- , IE_PROTO = require('./$.uid').safe('__proto__')
1236
- , assert = require('./$.assert')
1237
- , assertObject = assert.obj
1403
+ , IE_PROTO = require('./$.uid')('__proto__')
1404
+ , isObject = require('./$.is-object')
1405
+ , anObject = require('./$.an-object')
1406
+ , aFunction = require('./$.a-function')
1407
+ , toObject = require('./$.to-object')
1408
+ , toIObject = require('./$.to-iobject')
1409
+ , toInteger = require('./$.to-integer')
1410
+ , toIndex = require('./$.to-index')
1411
+ , toLength = require('./$.to-length')
1412
+ , IObject = require('./$.iobject')
1413
+ , fails = require('./$.fails')
1238
1414
  , ObjectProto = Object.prototype
1239
- , html = $.html
1240
1415
  , A = []
1241
1416
  , _slice = A.slice
1242
1417
  , _join = A.join
1243
- , classof = cof.classof
1244
- , has = $.has
1245
1418
  , defineProperty = $.setDesc
1246
1419
  , getOwnDescriptor = $.getDesc
1247
1420
  , defineProperties = $.setDescs
1248
- , isFunction = $.isFunction
1249
- , isObject = $.isObject
1250
- , toObject = $.toObject
1251
- , toLength = $.toLength
1252
- , toIndex = $.toIndex
1253
- , IE8_DOM_DEFINE = false
1254
1421
  , $indexOf = require('./$.array-includes')(false)
1255
- , $forEach = arrayMethod(0)
1256
- , $map = arrayMethod(1)
1257
- , $filter = arrayMethod(2)
1258
- , $some = arrayMethod(3)
1259
- , $every = arrayMethod(4);
1422
+ , factories = {}
1423
+ , IE8_DOM_DEFINE;
1260
1424
 
1261
- if(!$.DESC){
1262
- try {
1263
- IE8_DOM_DEFINE = defineProperty(cel('div'), 'x',
1264
- {get: function(){ return 8; }}
1265
- ).x == 8;
1266
- } catch(e){ /* empty */ }
1425
+ if(!SUPPORT_DESC){
1426
+ IE8_DOM_DEFINE = !fails(function(){
1427
+ return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
1428
+ });
1267
1429
  $.setDesc = function(O, P, Attributes){
1268
1430
  if(IE8_DOM_DEFINE)try {
1269
1431
  return defineProperty(O, P, Attributes);
1270
1432
  } catch(e){ /* empty */ }
1271
1433
  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
1272
- if('value' in Attributes)assertObject(O)[P] = Attributes.value;
1434
+ if('value' in Attributes)anObject(O)[P] = Attributes.value;
1273
1435
  return O;
1274
1436
  };
1275
1437
  $.getDesc = function(O, P){
1276
1438
  if(IE8_DOM_DEFINE)try {
1277
1439
  return getOwnDescriptor(O, P);
1278
1440
  } catch(e){ /* empty */ }
1279
- if(has(O, P))return $.desc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
1441
+ if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
1280
1442
  };
1281
1443
  $.setDescs = defineProperties = function(O, Properties){
1282
- assertObject(O);
1444
+ anObject(O);
1283
1445
  var keys = $.getKeys(Properties)
1284
1446
  , length = keys.length
1285
1447
  , i = 0
@@ -1288,7 +1450,7 @@ if(!$.DESC){
1288
1450
  return O;
1289
1451
  };
1290
1452
  }
1291
- $def($def.S + $def.F * !$.DESC, 'Object', {
1453
+ $def($def.S + $def.F * !SUPPORT_DESC, 'Object', {
1292
1454
  // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
1293
1455
  getOwnPropertyDescriptor: $.getDesc,
1294
1456
  // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
@@ -1324,9 +1486,9 @@ var createDict = function(){
1324
1486
  while(i--)delete createDict.prototype[keys1[i]];
1325
1487
  return createDict();
1326
1488
  };
1327
- function createGetKeys(names, length){
1489
+ var createGetKeys = function(names, length){
1328
1490
  return function(object){
1329
- var O = toObject(object)
1491
+ var O = toIObject(object)
1330
1492
  , i = 0
1331
1493
  , result = []
1332
1494
  , key;
@@ -1337,14 +1499,14 @@ function createGetKeys(names, length){
1337
1499
  }
1338
1500
  return result;
1339
1501
  };
1340
- }
1341
- function Empty(){}
1502
+ };
1503
+ var Empty = function(){};
1342
1504
  $def($def.S, 'Object', {
1343
1505
  // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
1344
1506
  getPrototypeOf: $.getProto = $.getProto || function(O){
1345
- O = Object(assert.def(O));
1507
+ O = toObject(O);
1346
1508
  if(has(O, IE_PROTO))return O[IE_PROTO];
1347
- if(isFunction(O.constructor) && O instanceof O.constructor){
1509
+ if(typeof O.constructor == 'function' && O instanceof O.constructor){
1348
1510
  return O.constructor.prototype;
1349
1511
  } return O instanceof Object ? ObjectProto : null;
1350
1512
  },
@@ -1354,7 +1516,7 @@ $def($def.S, 'Object', {
1354
1516
  create: $.create = $.create || function(O, /*?*/Properties){
1355
1517
  var result;
1356
1518
  if(O !== null){
1357
- Empty.prototype = assertObject(O);
1519
+ Empty.prototype = anObject(O);
1358
1520
  result = new Empty();
1359
1521
  Empty.prototype = null;
1360
1522
  // add "__proto__" for Object.getPrototypeOf shim
@@ -1363,65 +1525,38 @@ $def($def.S, 'Object', {
1363
1525
  return Properties === undefined ? result : defineProperties(result, Properties);
1364
1526
  },
1365
1527
  // 19.1.2.14 / 15.2.3.14 Object.keys(O)
1366
- keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false),
1367
- // 19.1.2.17 / 15.2.3.8 Object.seal(O)
1368
- seal: function seal(it){
1369
- return it; // <- cap
1370
- },
1371
- // 19.1.2.5 / 15.2.3.9 Object.freeze(O)
1372
- freeze: function freeze(it){
1373
- return it; // <- cap
1374
- },
1375
- // 19.1.2.15 / 15.2.3.10 Object.preventExtensions(O)
1376
- preventExtensions: function preventExtensions(it){
1377
- return it; // <- cap
1378
- },
1379
- // 19.1.2.13 / 15.2.3.11 Object.isSealed(O)
1380
- isSealed: function isSealed(it){
1381
- return !isObject(it); // <- cap
1382
- },
1383
- // 19.1.2.12 / 15.2.3.12 Object.isFrozen(O)
1384
- isFrozen: function isFrozen(it){
1385
- return !isObject(it); // <- cap
1386
- },
1387
- // 19.1.2.11 / 15.2.3.13 Object.isExtensible(O)
1388
- isExtensible: function isExtensible(it){
1389
- return isObject(it); // <- cap
1390
- }
1528
+ keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
1391
1529
  });
1392
1530
 
1531
+ var construct = function(F, len, args){
1532
+ if(!(len in factories)){
1533
+ for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
1534
+ factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
1535
+ }
1536
+ return factories[len](F, args);
1537
+ };
1538
+
1393
1539
  // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
1394
1540
  $def($def.P, 'Function', {
1395
- bind: function(that /*, args... */){
1396
- var fn = assert.fn(this)
1541
+ bind: function bind(that /*, args... */){
1542
+ var fn = aFunction(this)
1397
1543
  , partArgs = _slice.call(arguments, 1);
1398
- function bound(/* args... */){
1399
- var args = partArgs.concat(_slice.call(arguments))
1400
- , constr = this instanceof bound
1401
- , ctx = constr ? $.create(fn.prototype) : that
1402
- , result = invoke(fn, args, ctx);
1403
- return constr ? ctx : result;
1404
- }
1405
- if(fn.prototype)bound.prototype = fn.prototype;
1544
+ var bound = function(/* args... */){
1545
+ var args = partArgs.concat(_slice.call(arguments));
1546
+ return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
1547
+ };
1548
+ if(isObject(fn.prototype))bound.prototype = fn.prototype;
1406
1549
  return bound;
1407
1550
  }
1408
1551
  });
1409
1552
 
1410
- // Fix for not array-like ES3 string and DOM objects
1411
- if(!(0 in Object('z') && 'z'[0] == 'z')){
1412
- $.ES5Object = function(it){
1413
- return cof(it) == 'String' ? it.split('') : Object(it);
1414
- };
1415
- }
1416
-
1417
- var buggySlice = true;
1418
- try {
1553
+ // fallback for not array-like ES3 strings and DOM objects
1554
+ var buggySlice = fails(function(){
1419
1555
  if(html)_slice.call(html);
1420
- buggySlice = false;
1421
- } catch(e){ /* empty */ }
1556
+ });
1422
1557
 
1423
1558
  $def($def.P + $def.F * buggySlice, 'Array', {
1424
- slice: function slice(begin, end){
1559
+ slice: function(begin, end){
1425
1560
  var len = toLength(this.length)
1426
1561
  , klass = cof(this);
1427
1562
  end = end === undefined ? len : end;
@@ -1437,23 +1572,19 @@ $def($def.P + $def.F * buggySlice, 'Array', {
1437
1572
  return cloned;
1438
1573
  }
1439
1574
  });
1440
-
1441
- $def($def.P + $def.F * ($.ES5Object != Object), 'Array', {
1442
- join: function join(){
1443
- return _join.apply($.ES5Object(this), arguments);
1575
+ $def($def.P + $def.F * (IObject != Object), 'Array', {
1576
+ join: function(){
1577
+ return _join.apply(IObject(this), arguments);
1444
1578
  }
1445
1579
  });
1446
1580
 
1447
1581
  // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
1448
- $def($def.S, 'Array', {
1449
- isArray: function(arg){
1450
- return cof(arg) == 'Array';
1451
- }
1452
- });
1453
- function createArrayReduce(isRight){
1582
+ $def($def.S, 'Array', {isArray: function(arg){ return cof(arg) == 'Array'; }});
1583
+
1584
+ var createArrayReduce = function(isRight){
1454
1585
  return function(callbackfn, memo){
1455
- assert.fn(callbackfn);
1456
- var O = toObject(this)
1586
+ aFunction(callbackfn);
1587
+ var O = IObject(this)
1457
1588
  , length = toLength(O.length)
1458
1589
  , index = isRight ? length - 1 : 0
1459
1590
  , i = isRight ? -1 : 1;
@@ -1464,98 +1595,86 @@ function createArrayReduce(isRight){
1464
1595
  break;
1465
1596
  }
1466
1597
  index += i;
1467
- assert(isRight ? index >= 0 : length > index, 'Reduce of empty array with no initial value');
1598
+ if(isRight ? index < 0 : length <= index){
1599
+ throw TypeError('Reduce of empty array with no initial value');
1600
+ }
1468
1601
  }
1469
1602
  for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
1470
1603
  memo = callbackfn(memo, O[index], index, this);
1471
1604
  }
1472
1605
  return memo;
1473
1606
  };
1474
- }
1607
+ };
1608
+ var methodize = function($fn){
1609
+ return function(arg1/*, arg2 = undefined */){
1610
+ return $fn(this, arg1, arguments[1]);
1611
+ };
1612
+ };
1475
1613
  $def($def.P, 'Array', {
1476
1614
  // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
1477
- forEach: $.each = $.each || function forEach(callbackfn/*, that = undefined */){
1478
- return $forEach(this, callbackfn, arguments[1]);
1479
- },
1615
+ forEach: $.each = $.each || methodize(arrayMethod(0)),
1480
1616
  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
1481
- map: function map(callbackfn/*, that = undefined */){
1482
- return $map(this, callbackfn, arguments[1]);
1483
- },
1617
+ map: methodize(arrayMethod(1)),
1484
1618
  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
1485
- filter: function filter(callbackfn/*, that = undefined */){
1486
- return $filter(this, callbackfn, arguments[1]);
1487
- },
1619
+ filter: methodize(arrayMethod(2)),
1488
1620
  // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
1489
- some: function some(callbackfn/*, that = undefined */){
1490
- return $some(this, callbackfn, arguments[1]);
1491
- },
1621
+ some: methodize(arrayMethod(3)),
1492
1622
  // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
1493
- every: function every(callbackfn/*, that = undefined */){
1494
- return $every(this, callbackfn, arguments[1]);
1495
- },
1623
+ every: methodize(arrayMethod(4)),
1496
1624
  // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
1497
1625
  reduce: createArrayReduce(false),
1498
1626
  // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
1499
1627
  reduceRight: createArrayReduce(true),
1500
1628
  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
1501
- indexOf: function indexOf(el /*, fromIndex = 0 */){
1502
- return $indexOf(this, el, arguments[1]);
1503
- },
1629
+ indexOf: methodize($indexOf),
1504
1630
  // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
1505
1631
  lastIndexOf: function(el, fromIndex /* = @[*-1] */){
1506
- var O = toObject(this)
1632
+ var O = toIObject(this)
1507
1633
  , length = toLength(O.length)
1508
1634
  , index = length - 1;
1509
- if(arguments.length > 1)index = Math.min(index, $.toInteger(fromIndex));
1635
+ if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
1510
1636
  if(index < 0)index = toLength(length + index);
1511
1637
  for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
1512
1638
  return -1;
1513
1639
  }
1514
1640
  });
1515
1641
 
1516
- // 21.1.3.25 / 15.5.4.20 String.prototype.trim()
1517
- $def($def.P, 'String', {trim: require('./$.replacer')(/^\s*([\s\S]*\S)?\s*$/, '$1')});
1518
-
1519
1642
  // 20.3.3.1 / 15.9.4.4 Date.now()
1520
- $def($def.S, 'Date', {now: function(){
1521
- return +new Date;
1522
- }});
1643
+ $def($def.S, 'Date', {now: function(){ return +new Date; }});
1523
1644
 
1524
- function lz(num){
1645
+ var lz = function(num){
1525
1646
  return num > 9 ? num : '0' + num;
1526
- }
1647
+ };
1527
1648
 
1528
1649
  // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
1529
1650
  // PhantomJS and old webkit had a broken Date implementation.
1530
1651
  var date = new Date(-5e13 - 1)
1531
1652
  , brokenDate = !(date.toISOString && date.toISOString() == '0385-07-25T07:06:39.999Z'
1532
- && require('./$.throws')(function(){ new Date(NaN).toISOString(); }));
1533
- $def($def.P + $def.F * brokenDate, 'Date', {toISOString: function(){
1534
- if(!isFinite(this))throw RangeError('Invalid time value');
1535
- var d = this
1536
- , y = d.getUTCFullYear()
1537
- , m = d.getUTCMilliseconds()
1538
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
1539
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
1540
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
1541
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
1542
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
1543
- }});
1544
-
1545
- if(classof(function(){ return arguments; }()) == 'Object')cof.classof = function(it){
1546
- var tag = classof(it);
1547
- return tag == 'Object' && isFunction(it.callee) ? 'Arguments' : tag;
1548
- };
1549
- },{"./$":24,"./$.array-includes":3,"./$.array-methods":4,"./$.assert":5,"./$.cof":7,"./$.def":13,"./$.dom-create":14,"./$.invoke":19,"./$.replacer":30,"./$.throws":39,"./$.uid":40}],44:[function(require,module,exports){
1653
+ && fails(function(){ new Date(NaN).toISOString(); }));
1654
+ $def($def.P + $def.F * brokenDate, 'Date', {
1655
+ toISOString: function toISOString(){
1656
+ if(!isFinite(this))throw RangeError('Invalid time value');
1657
+ var d = this
1658
+ , y = d.getUTCFullYear()
1659
+ , m = d.getUTCMilliseconds()
1660
+ , s = y < 0 ? '-' : y > 9999 ? '+' : '';
1661
+ return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
1662
+ '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
1663
+ 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
1664
+ ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
1665
+ }
1666
+ });
1667
+ },{"./$":42,"./$.a-function":3,"./$.an-object":4,"./$.array-includes":5,"./$.array-methods":6,"./$.cof":9,"./$.def":16,"./$.dom-create":18,"./$.fails":21,"./$.has":27,"./$.html":29,"./$.invoke":30,"./$.iobject":31,"./$.is-object":34,"./$.property-desc":53,"./$.support-desc":67,"./$.to-index":70,"./$.to-integer":71,"./$.to-iobject":72,"./$.to-length":73,"./$.to-object":74,"./$.uid":75}],80:[function(require,module,exports){
1550
1668
  'use strict';
1551
- var $ = require('./$')
1552
- , $def = require('./$.def')
1553
- , toIndex = $.toIndex;
1669
+ var $def = require('./$.def')
1670
+ , toObject = require('./$.to-object')
1671
+ , toIndex = require('./$.to-index')
1672
+ , toLength = require('./$.to-length');
1554
1673
  $def($def.P, 'Array', {
1555
1674
  // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
1556
1675
  copyWithin: function copyWithin(target/* = 0 */, start /* = 0, end = @length */){
1557
- var O = Object($.assertDefined(this))
1558
- , len = $.toLength(O.length)
1676
+ var O = toObject(this)
1677
+ , len = toLength(O.length)
1559
1678
  , to = toIndex(target, len)
1560
1679
  , from = toIndex(start, len)
1561
1680
  , end = arguments[2]
@@ -1576,16 +1695,17 @@ $def($def.P, 'Array', {
1576
1695
  }
1577
1696
  });
1578
1697
  require('./$.unscope')('copyWithin');
1579
- },{"./$":24,"./$.def":13,"./$.unscope":41}],45:[function(require,module,exports){
1698
+ },{"./$.def":16,"./$.to-index":70,"./$.to-length":73,"./$.to-object":74,"./$.unscope":76}],81:[function(require,module,exports){
1580
1699
  'use strict';
1581
- var $ = require('./$')
1582
- , $def = require('./$.def')
1583
- , toIndex = $.toIndex;
1700
+ var $def = require('./$.def')
1701
+ , toObject = require('./$.to-object')
1702
+ , toIndex = require('./$.to-index')
1703
+ , toLength = require('./$.to-length');
1584
1704
  $def($def.P, 'Array', {
1585
1705
  // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
1586
1706
  fill: function fill(value /*, start = 0, end = @length */){
1587
- var O = Object($.assertDefined(this))
1588
- , length = $.toLength(O.length)
1707
+ var O = toObject(this, true)
1708
+ , length = toLength(O.length)
1589
1709
  , index = toIndex(arguments[1], length)
1590
1710
  , end = arguments[2]
1591
1711
  , endPos = end === undefined ? length : toIndex(end, length);
@@ -1594,7 +1714,7 @@ $def($def.P, 'Array', {
1594
1714
  }
1595
1715
  });
1596
1716
  require('./$.unscope')('fill');
1597
- },{"./$":24,"./$.def":13,"./$.unscope":41}],46:[function(require,module,exports){
1717
+ },{"./$.def":16,"./$.to-index":70,"./$.to-length":73,"./$.to-object":74,"./$.unscope":76}],82:[function(require,module,exports){
1598
1718
  'use strict';
1599
1719
  // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
1600
1720
  var KEY = 'findIndex'
@@ -1609,7 +1729,7 @@ $def($def.P + $def.F * forced, 'Array', {
1609
1729
  }
1610
1730
  });
1611
1731
  require('./$.unscope')(KEY);
1612
- },{"./$.array-methods":4,"./$.def":13,"./$.unscope":41}],47:[function(require,module,exports){
1732
+ },{"./$.array-methods":6,"./$.def":16,"./$.unscope":76}],83:[function(require,module,exports){
1613
1733
  'use strict';
1614
1734
  // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
1615
1735
  var KEY = 'find'
@@ -1624,61 +1744,62 @@ $def($def.P + $def.F * forced, 'Array', {
1624
1744
  }
1625
1745
  });
1626
1746
  require('./$.unscope')(KEY);
1627
- },{"./$.array-methods":4,"./$.def":13,"./$.unscope":41}],48:[function(require,module,exports){
1628
- var $ = require('./$')
1629
- , ctx = require('./$.ctx')
1630
- , $def = require('./$.def')
1631
- , $iter = require('./$.iter')
1632
- , call = require('./$.iter-call');
1747
+ },{"./$.array-methods":6,"./$.def":16,"./$.unscope":76}],84:[function(require,module,exports){
1748
+ 'use strict';
1749
+ var ctx = require('./$.ctx')
1750
+ , $def = require('./$.def')
1751
+ , toObject = require('./$.to-object')
1752
+ , call = require('./$.iter-call')
1753
+ , isArrayIter = require('./$.is-array-iter')
1754
+ , toLength = require('./$.to-length')
1755
+ , getIterFn = require('./core.get-iterator-method');
1633
1756
  $def($def.S + $def.F * !require('./$.iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
1634
1757
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
1635
1758
  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
1636
- var O = Object($.assertDefined(arrayLike))
1759
+ var O = toObject(arrayLike)
1760
+ , C = typeof this == 'function' ? this : Array
1637
1761
  , mapfn = arguments[1]
1638
1762
  , mapping = mapfn !== undefined
1639
- , f = mapping ? ctx(mapfn, arguments[2], 2) : undefined
1640
1763
  , index = 0
1764
+ , iterFn = getIterFn(O)
1641
1765
  , length, result, step, iterator;
1642
- if($iter.is(O)){
1643
- iterator = $iter.get(O);
1644
- // strange IE quirks mode bug -> use typeof instead of isFunction
1645
- result = new (typeof this == 'function' ? this : Array);
1646
- for(; !(step = iterator.next()).done; index++){
1647
- result[index] = mapping ? call(iterator, f, [step.value, index], true) : step.value;
1766
+ if(mapping)mapfn = ctx(mapfn, arguments[2], 2);
1767
+ // if object isn't iterable or it's array with default iterator - use simple case
1768
+ if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
1769
+ for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
1770
+ result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
1648
1771
  }
1649
1772
  } else {
1650
- // strange IE quirks mode bug -> use typeof instead of isFunction
1651
- result = new (typeof this == 'function' ? this : Array)(length = $.toLength(O.length));
1652
- for(; length > index; index++){
1653
- result[index] = mapping ? f(O[index], index) : O[index];
1773
+ for(result = new C(length = toLength(O.length)); length > index; index++){
1774
+ result[index] = mapping ? mapfn(O[index], index) : O[index];
1654
1775
  }
1655
1776
  }
1656
1777
  result.length = index;
1657
1778
  return result;
1658
1779
  }
1659
1780
  });
1660
- },{"./$":24,"./$.ctx":12,"./$.def":13,"./$.iter":23,"./$.iter-call":20,"./$.iter-detect":22}],49:[function(require,module,exports){
1661
- var $ = require('./$')
1662
- , setUnscope = require('./$.unscope')
1663
- , ITER = require('./$.uid').safe('iter')
1664
- , $iter = require('./$.iter')
1665
- , step = $iter.step
1666
- , Iterators = $iter.Iterators;
1781
+ },{"./$.ctx":15,"./$.def":16,"./$.is-array-iter":32,"./$.iter-call":36,"./$.iter-detect":39,"./$.to-length":73,"./$.to-object":74,"./core.get-iterator-method":78}],85:[function(require,module,exports){
1782
+ 'use strict';
1783
+ var setUnscope = require('./$.unscope')
1784
+ , step = require('./$.iter-step')
1785
+ , Iterators = require('./$.iterators')
1786
+ , toIObject = require('./$.to-iobject');
1667
1787
 
1668
1788
  // 22.1.3.4 Array.prototype.entries()
1669
1789
  // 22.1.3.13 Array.prototype.keys()
1670
1790
  // 22.1.3.29 Array.prototype.values()
1671
1791
  // 22.1.3.30 Array.prototype[@@iterator]()
1672
1792
  require('./$.iter-define')(Array, 'Array', function(iterated, kind){
1673
- $.set(this, ITER, {o: $.toObject(iterated), i: 0, k: kind});
1793
+ this._t = toIObject(iterated); // target
1794
+ this._i = 0; // next index
1795
+ this._k = kind; // kind
1674
1796
  // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
1675
1797
  }, function(){
1676
- var iter = this[ITER]
1677
- , O = iter.o
1678
- , kind = iter.k
1679
- , index = iter.i++;
1798
+ var O = this._t
1799
+ , kind = this._k
1800
+ , index = this._i++;
1680
1801
  if(!O || index >= O.length){
1681
- iter.o = undefined;
1802
+ this._t = undefined;
1682
1803
  return step(1);
1683
1804
  }
1684
1805
  if(kind == 'keys' )return step(0, index);
@@ -1692,54 +1813,54 @@ Iterators.Arguments = Iterators.Array;
1692
1813
  setUnscope('keys');
1693
1814
  setUnscope('values');
1694
1815
  setUnscope('entries');
1695
- },{"./$":24,"./$.iter":23,"./$.iter-define":21,"./$.uid":40,"./$.unscope":41}],50:[function(require,module,exports){
1816
+ },{"./$.iter-define":38,"./$.iter-step":40,"./$.iterators":41,"./$.to-iobject":72,"./$.unscope":76}],86:[function(require,module,exports){
1817
+ 'use strict';
1696
1818
  var $def = require('./$.def');
1697
1819
  $def($def.S, 'Array', {
1698
1820
  // 22.1.2.3 Array.of( ...items)
1699
1821
  of: function of(/* ...args */){
1700
1822
  var index = 0
1701
1823
  , length = arguments.length
1702
- // strange IE quirks mode bug -> use typeof instead of isFunction
1703
1824
  , result = new (typeof this == 'function' ? this : Array)(length);
1704
1825
  while(length > index)result[index] = arguments[index++];
1705
1826
  result.length = length;
1706
1827
  return result;
1707
1828
  }
1708
1829
  });
1709
- },{"./$.def":13}],51:[function(require,module,exports){
1830
+ },{"./$.def":16}],87:[function(require,module,exports){
1710
1831
  require('./$.species')(Array);
1711
- },{"./$.species":34}],52:[function(require,module,exports){
1832
+ },{"./$.species":60}],88:[function(require,module,exports){
1833
+ 'use strict';
1712
1834
  var $ = require('./$')
1835
+ , isObject = require('./$.is-object')
1713
1836
  , HAS_INSTANCE = require('./$.wks')('hasInstance')
1714
1837
  , FunctionProto = Function.prototype;
1715
1838
  // 19.2.3.6 Function.prototype[@@hasInstance](V)
1716
1839
  if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
1717
- if(!$.isFunction(this) || !$.isObject(O))return false;
1718
- if(!$.isObject(this.prototype))return O instanceof this;
1840
+ if(typeof this != 'function' || !isObject(O))return false;
1841
+ if(!isObject(this.prototype))return O instanceof this;
1719
1842
  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
1720
1843
  while(O = $.getProto(O))if(this.prototype === O)return true;
1721
1844
  return false;
1722
1845
  }});
1723
- },{"./$":24,"./$.wks":42}],53:[function(require,module,exports){
1724
- 'use strict';
1725
- var $ = require('./$')
1726
- , NAME = 'name'
1727
- , setDesc = $.setDesc
1728
- , FunctionProto = Function.prototype;
1846
+ },{"./$":42,"./$.is-object":34,"./$.wks":77}],89:[function(require,module,exports){
1847
+ var setDesc = require('./$').setDesc
1848
+ , createDesc = require('./$.property-desc')
1849
+ , has = require('./$.has')
1850
+ , FProto = Function.prototype
1851
+ , nameRE = /^\s*function ([^ (]*)/
1852
+ , NAME = 'name';
1729
1853
  // 19.2.4.2 name
1730
- NAME in FunctionProto || $.FW && $.DESC && setDesc(FunctionProto, NAME, {
1854
+ NAME in FProto || require('./$.support-desc') && setDesc(FProto, NAME, {
1731
1855
  configurable: true,
1732
1856
  get: function(){
1733
- var match = String(this).match(/^\s*function ([^ (]*)/)
1857
+ var match = ('' + this).match(nameRE)
1734
1858
  , name = match ? match[1] : '';
1735
- $.has(this, NAME) || setDesc(this, NAME, $.desc(5, name));
1859
+ has(this, NAME) || setDesc(this, NAME, createDesc(5, name));
1736
1860
  return name;
1737
- },
1738
- set: function(value){
1739
- $.has(this, NAME) || setDesc(this, NAME, $.desc(0, value));
1740
1861
  }
1741
1862
  });
1742
- },{"./$":24}],54:[function(require,module,exports){
1863
+ },{"./$":42,"./$.has":27,"./$.property-desc":53,"./$.support-desc":67}],90:[function(require,module,exports){
1743
1864
  'use strict';
1744
1865
  var strong = require('./$.collection-strong');
1745
1866
 
@@ -1757,66 +1878,91 @@ require('./$.collection')('Map', function(get){
1757
1878
  return strong.def(this, key === 0 ? 0 : key, value);
1758
1879
  }
1759
1880
  }, strong, true);
1760
- },{"./$.collection":11,"./$.collection-strong":8}],55:[function(require,module,exports){
1761
- var Infinity = 1 / 0
1762
- , $def = require('./$.def')
1763
- , E = Math.E
1764
- , pow = Math.pow
1765
- , abs = Math.abs
1766
- , exp = Math.exp
1767
- , log = Math.log
1768
- , sqrt = Math.sqrt
1769
- , ceil = Math.ceil
1770
- , floor = Math.floor
1771
- , EPSILON = pow(2, -52)
1772
- , EPSILON32 = pow(2, -23)
1773
- , MAX32 = pow(2, 127) * (2 - EPSILON32)
1774
- , MIN32 = pow(2, -126);
1775
- function roundTiesToEven(n){
1776
- return n + 1 / EPSILON - 1 / EPSILON;
1777
- }
1778
-
1779
- // 20.2.2.28 Math.sign(x)
1780
- function sign(x){
1781
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
1782
- }
1881
+ },{"./$.collection":13,"./$.collection-strong":10}],91:[function(require,module,exports){
1882
+ // 20.2.2.3 Math.acosh(x)
1883
+ var $def = require('./$.def')
1884
+ , log1p = require('./$.log1p')
1885
+ , sqrt = Math.sqrt
1886
+ , $acosh = Math.acosh;
1887
+
1888
+ // V8 bug https://code.google.com/p/v8/issues/detail?id=3509
1889
+ $def($def.S + $def.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
1890
+ acosh: function acosh(x){
1891
+ return (x = +x) < 1 ? NaN : x > 94906265.62425156
1892
+ ? Math.log(x) + Math.LN2
1893
+ : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
1894
+ }
1895
+ });
1896
+ },{"./$.def":16,"./$.log1p":45}],92:[function(require,module,exports){
1783
1897
  // 20.2.2.5 Math.asinh(x)
1898
+ var $def = require('./$.def');
1899
+
1784
1900
  function asinh(x){
1785
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));
1786
- }
1787
- // 20.2.2.14 Math.expm1(x)
1788
- function expm1(x){
1789
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;
1901
+ return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
1790
1902
  }
1791
1903
 
1904
+ $def($def.S, 'Math', {asinh: asinh});
1905
+ },{"./$.def":16}],93:[function(require,module,exports){
1906
+ // 20.2.2.7 Math.atanh(x)
1907
+ var $def = require('./$.def');
1908
+
1792
1909
  $def($def.S, 'Math', {
1793
- // 20.2.2.3 Math.acosh(x)
1794
- acosh: function acosh(x){
1795
- return (x = +x) < 1 ? NaN : isFinite(x) ? log(x / E + sqrt(x + 1) * sqrt(x - 1) / E) + 1 : x;
1796
- },
1797
- // 20.2.2.5 Math.asinh(x)
1798
- asinh: asinh,
1799
- // 20.2.2.7 Math.atanh(x)
1800
1910
  atanh: function atanh(x){
1801
- return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;
1802
- },
1803
- // 20.2.2.9 Math.cbrt(x)
1911
+ return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
1912
+ }
1913
+ });
1914
+ },{"./$.def":16}],94:[function(require,module,exports){
1915
+ // 20.2.2.9 Math.cbrt(x)
1916
+ var $def = require('./$.def')
1917
+ , sign = require('./$.sign');
1918
+
1919
+ $def($def.S, 'Math', {
1804
1920
  cbrt: function cbrt(x){
1805
- return sign(x = +x) * pow(abs(x), 1 / 3);
1806
- },
1807
- // 20.2.2.11 Math.clz32(x)
1921
+ return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
1922
+ }
1923
+ });
1924
+ },{"./$.def":16,"./$.sign":59}],95:[function(require,module,exports){
1925
+ // 20.2.2.11 Math.clz32(x)
1926
+ var $def = require('./$.def');
1927
+
1928
+ $def($def.S, 'Math', {
1808
1929
  clz32: function clz32(x){
1809
- return (x >>>= 0) ? 31 - floor(log(x + 0.5) * Math.LOG2E) : 32;
1810
- },
1811
- // 20.2.2.12 Math.cosh(x)
1930
+ return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
1931
+ }
1932
+ });
1933
+ },{"./$.def":16}],96:[function(require,module,exports){
1934
+ // 20.2.2.12 Math.cosh(x)
1935
+ var $def = require('./$.def')
1936
+ , exp = Math.exp;
1937
+
1938
+ $def($def.S, 'Math', {
1812
1939
  cosh: function cosh(x){
1813
1940
  return (exp(x = +x) + exp(-x)) / 2;
1814
- },
1815
- // 20.2.2.14 Math.expm1(x)
1816
- expm1: expm1,
1817
- // 20.2.2.16 Math.fround(x)
1941
+ }
1942
+ });
1943
+ },{"./$.def":16}],97:[function(require,module,exports){
1944
+ // 20.2.2.14 Math.expm1(x)
1945
+ var $def = require('./$.def');
1946
+
1947
+ $def($def.S, 'Math', {expm1: require('./$.expm1')});
1948
+ },{"./$.def":16,"./$.expm1":20}],98:[function(require,module,exports){
1949
+ // 20.2.2.16 Math.fround(x)
1950
+ var $def = require('./$.def')
1951
+ , sign = require('./$.sign')
1952
+ , pow = Math.pow
1953
+ , EPSILON = pow(2, -52)
1954
+ , EPSILON32 = pow(2, -23)
1955
+ , MAX32 = pow(2, 127) * (2 - EPSILON32)
1956
+ , MIN32 = pow(2, -126);
1957
+
1958
+ var roundTiesToEven = function(n){
1959
+ return n + 1 / EPSILON - 1 / EPSILON;
1960
+ };
1961
+
1962
+
1963
+ $def($def.S, 'Math', {
1818
1964
  fround: function fround(x){
1819
- var $abs = abs(x)
1965
+ var $abs = Math.abs(x)
1820
1966
  , $sign = sign(x)
1821
1967
  , a, result;
1822
1968
  if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
@@ -1824,8 +1970,14 @@ $def($def.S, 'Math', {
1824
1970
  result = a - (a - $abs);
1825
1971
  if(result > MAX32 || result != result)return $sign * Infinity;
1826
1972
  return $sign * result;
1827
- },
1828
- // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
1973
+ }
1974
+ });
1975
+ },{"./$.def":16,"./$.sign":59}],99:[function(require,module,exports){
1976
+ // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
1977
+ var $def = require('./$.def')
1978
+ , abs = Math.abs;
1979
+
1980
+ $def($def.S, 'Math', {
1829
1981
  hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
1830
1982
  var sum = 0
1831
1983
  , i = 0
@@ -1843,62 +1995,110 @@ $def($def.S, 'Math', {
1843
1995
  sum += div * div;
1844
1996
  } else sum += arg;
1845
1997
  }
1846
- return larg === Infinity ? Infinity : larg * sqrt(sum);
1847
- },
1848
- // 20.2.2.18 Math.imul(x, y)
1998
+ return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
1999
+ }
2000
+ });
2001
+ },{"./$.def":16}],100:[function(require,module,exports){
2002
+ // 20.2.2.18 Math.imul(x, y)
2003
+ var $def = require('./$.def');
2004
+
2005
+ // WebKit fails with big numbers
2006
+ $def($def.S + $def.F * require('./$.fails')(function(){
2007
+ return Math.imul(0xffffffff, 5) != -5;
2008
+ }), 'Math', {
1849
2009
  imul: function imul(x, y){
1850
- var UInt16 = 0xffff
2010
+ var UINT16 = 0xffff
1851
2011
  , xn = +x
1852
2012
  , yn = +y
1853
- , xl = UInt16 & xn
1854
- , yl = UInt16 & yn;
1855
- return 0 | xl * yl + ((UInt16 & xn >>> 16) * yl + xl * (UInt16 & yn >>> 16) << 16 >>> 0);
1856
- },
1857
- // 20.2.2.20 Math.log1p(x)
1858
- log1p: function log1p(x){
1859
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
1860
- },
1861
- // 20.2.2.21 Math.log10(x)
2013
+ , xl = UINT16 & xn
2014
+ , yl = UINT16 & yn;
2015
+ return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
2016
+ }
2017
+ });
2018
+ },{"./$.def":16,"./$.fails":21}],101:[function(require,module,exports){
2019
+ // 20.2.2.21 Math.log10(x)
2020
+ var $def = require('./$.def');
2021
+
2022
+ $def($def.S, 'Math', {
1862
2023
  log10: function log10(x){
1863
- return log(x) / Math.LN10;
1864
- },
1865
- // 20.2.2.22 Math.log2(x)
2024
+ return Math.log(x) / Math.LN10;
2025
+ }
2026
+ });
2027
+ },{"./$.def":16}],102:[function(require,module,exports){
2028
+ // 20.2.2.20 Math.log1p(x)
2029
+ var $def = require('./$.def');
2030
+
2031
+ $def($def.S, 'Math', {log1p: require('./$.log1p')});
2032
+ },{"./$.def":16,"./$.log1p":45}],103:[function(require,module,exports){
2033
+ // 20.2.2.22 Math.log2(x)
2034
+ var $def = require('./$.def');
2035
+
2036
+ $def($def.S, 'Math', {
1866
2037
  log2: function log2(x){
1867
- return log(x) / Math.LN2;
1868
- },
1869
- // 20.2.2.28 Math.sign(x)
1870
- sign: sign,
1871
- // 20.2.2.30 Math.sinh(x)
2038
+ return Math.log(x) / Math.LN2;
2039
+ }
2040
+ });
2041
+ },{"./$.def":16}],104:[function(require,module,exports){
2042
+ // 20.2.2.28 Math.sign(x)
2043
+ var $def = require('./$.def');
2044
+
2045
+ $def($def.S, 'Math', {sign: require('./$.sign')});
2046
+ },{"./$.def":16,"./$.sign":59}],105:[function(require,module,exports){
2047
+ // 20.2.2.30 Math.sinh(x)
2048
+ var $def = require('./$.def')
2049
+ , expm1 = require('./$.expm1')
2050
+ , exp = Math.exp;
2051
+
2052
+ $def($def.S, 'Math', {
1872
2053
  sinh: function sinh(x){
1873
- return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);
1874
- },
1875
- // 20.2.2.33 Math.tanh(x)
2054
+ return Math.abs(x = +x) < 1
2055
+ ? (expm1(x) - expm1(-x)) / 2
2056
+ : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
2057
+ }
2058
+ });
2059
+ },{"./$.def":16,"./$.expm1":20}],106:[function(require,module,exports){
2060
+ // 20.2.2.33 Math.tanh(x)
2061
+ var $def = require('./$.def')
2062
+ , expm1 = require('./$.expm1')
2063
+ , exp = Math.exp;
2064
+
2065
+ $def($def.S, 'Math', {
1876
2066
  tanh: function tanh(x){
1877
2067
  var a = expm1(x = +x)
1878
2068
  , b = expm1(-x);
1879
2069
  return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
1880
- },
1881
- // 20.2.2.34 Math.trunc(x)
2070
+ }
2071
+ });
2072
+ },{"./$.def":16,"./$.expm1":20}],107:[function(require,module,exports){
2073
+ // 20.2.2.34 Math.trunc(x)
2074
+ var $def = require('./$.def');
2075
+
2076
+ $def($def.S, 'Math', {
1882
2077
  trunc: function trunc(it){
1883
- return (it > 0 ? floor : ceil)(it);
2078
+ return (it > 0 ? Math.floor : Math.ceil)(it);
1884
2079
  }
1885
2080
  });
1886
- },{"./$.def":13}],56:[function(require,module,exports){
2081
+ },{"./$.def":16}],108:[function(require,module,exports){
1887
2082
  'use strict';
1888
2083
  var $ = require('./$')
1889
- , isObject = $.isObject
1890
- , isFunction = $.isFunction
2084
+ , global = require('./$.global')
2085
+ , has = require('./$.has')
2086
+ , cof = require('./$.cof')
2087
+ , isObject = require('./$.is-object')
2088
+ , fails = require('./$.fails')
1891
2089
  , NUMBER = 'Number'
1892
- , $Number = $.g[NUMBER]
2090
+ , $Number = global[NUMBER]
1893
2091
  , Base = $Number
1894
- , proto = $Number.prototype;
1895
- function toPrimitive(it){
2092
+ , proto = $Number.prototype
2093
+ // Opera ~12 has broken Object#toString
2094
+ , BROKEN_COF = cof($.create(proto)) == NUMBER;
2095
+ var toPrimitive = function(it){
1896
2096
  var fn, val;
1897
- if(isFunction(fn = it.valueOf) && !isObject(val = fn.call(it)))return val;
1898
- if(isFunction(fn = it.toString) && !isObject(val = fn.call(it)))return val;
2097
+ if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
2098
+ if(typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
1899
2099
  throw TypeError("Can't convert object to number");
1900
- }
1901
- function toNumber(it){
2100
+ };
2101
+ var toNumber = function(it){
1902
2102
  if(isObject(it))it = toPrimitive(it);
1903
2103
  if(typeof it == 'string' && it.length > 2 && it.charCodeAt(0) == 48){
1904
2104
  var binary = false;
@@ -1907,155 +2107,232 @@ function toNumber(it){
1907
2107
  case 79 : case 111 : return parseInt(it.slice(2), binary ? 2 : 8);
1908
2108
  }
1909
2109
  } return +it;
1910
- }
1911
- if($.FW && !($Number('0o1') && $Number('0b1'))){
2110
+ };
2111
+ if(!($Number('0o1') && $Number('0b1'))){
1912
2112
  $Number = function Number(it){
1913
- return this instanceof $Number ? new Base(toNumber(it)) : toNumber(it);
2113
+ var that = this;
2114
+ return that instanceof $Number
2115
+ // check on 1..constructor(foo) case
2116
+ && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
2117
+ ? new Base(toNumber(it)) : toNumber(it);
1914
2118
  };
1915
- $.each.call($.DESC ? $.getNames(Base) : (
2119
+ $.each.call(require('./$.support-desc') ? $.getNames(Base) : (
1916
2120
  // ES3:
1917
2121
  'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
1918
2122
  // ES6 (in case, if modules with ES6 Number statics required before):
1919
2123
  'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
1920
2124
  'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
1921
2125
  ).split(','), function(key){
1922
- if($.has(Base, key) && !$.has($Number, key)){
2126
+ if(has(Base, key) && !has($Number, key)){
1923
2127
  $.setDesc($Number, key, $.getDesc(Base, key));
1924
2128
  }
1925
2129
  }
1926
2130
  );
1927
2131
  $Number.prototype = proto;
1928
2132
  proto.constructor = $Number;
1929
- require('./$.redef')($.g, NUMBER, $Number);
1930
- }
1931
- },{"./$":24,"./$.redef":29}],57:[function(require,module,exports){
1932
- var $ = require('./$')
1933
- , $def = require('./$.def')
1934
- , abs = Math.abs
1935
- , floor = Math.floor
1936
- , _isFinite = $.g.isFinite
1937
- , MAX_SAFE_INTEGER = 0x1fffffffffffff; // pow(2, 53) - 1 == 9007199254740991;
1938
- function isInteger(it){
1939
- return !$.isObject(it) && _isFinite(it) && floor(it) === it;
2133
+ require('./$.redef')(global, NUMBER, $Number);
1940
2134
  }
2135
+ },{"./$":42,"./$.cof":9,"./$.fails":21,"./$.global":26,"./$.has":27,"./$.is-object":34,"./$.redef":54,"./$.support-desc":67}],109:[function(require,module,exports){
2136
+ // 20.1.2.1 Number.EPSILON
2137
+ var $def = require('./$.def');
2138
+
2139
+ $def($def.S, 'Number', {EPSILON: Math.pow(2, -52)});
2140
+ },{"./$.def":16}],110:[function(require,module,exports){
2141
+ // 20.1.2.2 Number.isFinite(number)
2142
+ var $def = require('./$.def')
2143
+ , _isFinite = require('./$.global').isFinite;
2144
+
1941
2145
  $def($def.S, 'Number', {
1942
- // 20.1.2.1 Number.EPSILON
1943
- EPSILON: Math.pow(2, -52),
1944
- // 20.1.2.2 Number.isFinite(number)
1945
2146
  isFinite: function isFinite(it){
1946
2147
  return typeof it == 'number' && _isFinite(it);
1947
- },
1948
- // 20.1.2.3 Number.isInteger(number)
1949
- isInteger: isInteger,
1950
- // 20.1.2.4 Number.isNaN(number)
2148
+ }
2149
+ });
2150
+ },{"./$.def":16,"./$.global":26}],111:[function(require,module,exports){
2151
+ // 20.1.2.3 Number.isInteger(number)
2152
+ var $def = require('./$.def');
2153
+
2154
+ $def($def.S, 'Number', {isInteger: require('./$.is-integer')});
2155
+ },{"./$.def":16,"./$.is-integer":33}],112:[function(require,module,exports){
2156
+ // 20.1.2.4 Number.isNaN(number)
2157
+ var $def = require('./$.def');
2158
+
2159
+ $def($def.S, 'Number', {
1951
2160
  isNaN: function isNaN(number){
1952
2161
  return number != number;
1953
- },
1954
- // 20.1.2.5 Number.isSafeInteger(number)
2162
+ }
2163
+ });
2164
+ },{"./$.def":16}],113:[function(require,module,exports){
2165
+ // 20.1.2.5 Number.isSafeInteger(number)
2166
+ var $def = require('./$.def')
2167
+ , isInteger = require('./$.is-integer')
2168
+ , abs = Math.abs;
2169
+
2170
+ $def($def.S, 'Number', {
1955
2171
  isSafeInteger: function isSafeInteger(number){
1956
- return isInteger(number) && abs(number) <= MAX_SAFE_INTEGER;
1957
- },
1958
- // 20.1.2.6 Number.MAX_SAFE_INTEGER
1959
- MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,
1960
- // 20.1.2.10 Number.MIN_SAFE_INTEGER
1961
- MIN_SAFE_INTEGER: -MAX_SAFE_INTEGER,
1962
- // 20.1.2.12 Number.parseFloat(string)
1963
- parseFloat: parseFloat,
1964
- // 20.1.2.13 Number.parseInt(string, radix)
1965
- parseInt: parseInt
1966
- });
1967
- },{"./$":24,"./$.def":13}],58:[function(require,module,exports){
2172
+ return isInteger(number) && abs(number) <= 0x1fffffffffffff;
2173
+ }
2174
+ });
2175
+ },{"./$.def":16,"./$.is-integer":33}],114:[function(require,module,exports){
2176
+ // 20.1.2.6 Number.MAX_SAFE_INTEGER
2177
+ var $def = require('./$.def');
2178
+
2179
+ $def($def.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
2180
+ },{"./$.def":16}],115:[function(require,module,exports){
2181
+ // 20.1.2.10 Number.MIN_SAFE_INTEGER
2182
+ var $def = require('./$.def');
2183
+
2184
+ $def($def.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
2185
+ },{"./$.def":16}],116:[function(require,module,exports){
2186
+ // 20.1.2.12 Number.parseFloat(string)
2187
+ var $def = require('./$.def');
2188
+
2189
+ $def($def.S, 'Number', {parseFloat: parseFloat});
2190
+ },{"./$.def":16}],117:[function(require,module,exports){
2191
+ // 20.1.2.13 Number.parseInt(string, radix)
2192
+ var $def = require('./$.def');
2193
+
2194
+ $def($def.S, 'Number', {parseInt: parseInt});
2195
+ },{"./$.def":16}],118:[function(require,module,exports){
1968
2196
  // 19.1.3.1 Object.assign(target, source)
1969
2197
  var $def = require('./$.def');
1970
2198
  $def($def.S, 'Object', {assign: require('./$.assign')});
1971
- },{"./$.assign":6,"./$.def":13}],59:[function(require,module,exports){
2199
+ },{"./$.assign":7,"./$.def":16}],119:[function(require,module,exports){
2200
+ // 19.1.2.5 Object.freeze(O)
2201
+ var isObject = require('./$.is-object');
2202
+
2203
+ require('./$.object-sap')('freeze', function($freeze){
2204
+ return function freeze(it){
2205
+ return $freeze && isObject(it) ? $freeze(it) : it;
2206
+ };
2207
+ });
2208
+ },{"./$.is-object":34,"./$.object-sap":48}],120:[function(require,module,exports){
2209
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
2210
+ var toIObject = require('./$.to-iobject');
2211
+
2212
+ require('./$.object-sap')('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
2213
+ return function getOwnPropertyDescriptor(it, key){
2214
+ return $getOwnPropertyDescriptor(toIObject(it), key);
2215
+ };
2216
+ });
2217
+ },{"./$.object-sap":48,"./$.to-iobject":72}],121:[function(require,module,exports){
2218
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
2219
+ require('./$.object-sap')('getOwnPropertyNames', function(){
2220
+ return require('./$.get-names').get;
2221
+ });
2222
+ },{"./$.get-names":25,"./$.object-sap":48}],122:[function(require,module,exports){
2223
+ // 19.1.2.9 Object.getPrototypeOf(O)
2224
+ var toObject = require('./$.to-object');
2225
+
2226
+ require('./$.object-sap')('getPrototypeOf', function($getPrototypeOf){
2227
+ return function getPrototypeOf(it){
2228
+ return $getPrototypeOf(toObject(it));
2229
+ };
2230
+ });
2231
+ },{"./$.object-sap":48,"./$.to-object":74}],123:[function(require,module,exports){
2232
+ // 19.1.2.11 Object.isExtensible(O)
2233
+ var isObject = require('./$.is-object');
2234
+
2235
+ require('./$.object-sap')('isExtensible', function($isExtensible){
2236
+ return function isExtensible(it){
2237
+ return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
2238
+ };
2239
+ });
2240
+ },{"./$.is-object":34,"./$.object-sap":48}],124:[function(require,module,exports){
2241
+ // 19.1.2.12 Object.isFrozen(O)
2242
+ var isObject = require('./$.is-object');
2243
+
2244
+ require('./$.object-sap')('isFrozen', function($isFrozen){
2245
+ return function isFrozen(it){
2246
+ return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
2247
+ };
2248
+ });
2249
+ },{"./$.is-object":34,"./$.object-sap":48}],125:[function(require,module,exports){
2250
+ // 19.1.2.13 Object.isSealed(O)
2251
+ var isObject = require('./$.is-object');
2252
+
2253
+ require('./$.object-sap')('isSealed', function($isSealed){
2254
+ return function isSealed(it){
2255
+ return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
2256
+ };
2257
+ });
2258
+ },{"./$.is-object":34,"./$.object-sap":48}],126:[function(require,module,exports){
1972
2259
  // 19.1.3.10 Object.is(value1, value2)
1973
2260
  var $def = require('./$.def');
1974
2261
  $def($def.S, 'Object', {
1975
2262
  is: require('./$.same')
1976
2263
  });
1977
- },{"./$.def":13,"./$.same":31}],60:[function(require,module,exports){
2264
+ },{"./$.def":16,"./$.same":56}],127:[function(require,module,exports){
2265
+ // 19.1.2.14 Object.keys(O)
2266
+ var toObject = require('./$.to-object');
2267
+
2268
+ require('./$.object-sap')('keys', function($keys){
2269
+ return function keys(it){
2270
+ return $keys(toObject(it));
2271
+ };
2272
+ });
2273
+ },{"./$.object-sap":48,"./$.to-object":74}],128:[function(require,module,exports){
2274
+ // 19.1.2.15 Object.preventExtensions(O)
2275
+ var isObject = require('./$.is-object');
2276
+
2277
+ require('./$.object-sap')('preventExtensions', function($preventExtensions){
2278
+ return function preventExtensions(it){
2279
+ return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
2280
+ };
2281
+ });
2282
+ },{"./$.is-object":34,"./$.object-sap":48}],129:[function(require,module,exports){
2283
+ // 19.1.2.17 Object.seal(O)
2284
+ var isObject = require('./$.is-object');
2285
+
2286
+ require('./$.object-sap')('seal', function($seal){
2287
+ return function seal(it){
2288
+ return $seal && isObject(it) ? $seal(it) : it;
2289
+ };
2290
+ });
2291
+ },{"./$.is-object":34,"./$.object-sap":48}],130:[function(require,module,exports){
1978
2292
  // 19.1.3.19 Object.setPrototypeOf(O, proto)
1979
2293
  var $def = require('./$.def');
1980
2294
  $def($def.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});
1981
- },{"./$.def":13,"./$.set-proto":32}],61:[function(require,module,exports){
1982
- var $ = require('./$')
1983
- , $def = require('./$.def')
1984
- , isObject = $.isObject
1985
- , toObject = $.toObject;
1986
- $.each.call(('freeze,seal,preventExtensions,isFrozen,isSealed,isExtensible,' +
1987
- 'getOwnPropertyDescriptor,getPrototypeOf,keys,getOwnPropertyNames').split(',')
1988
- , function(KEY, ID){
1989
- var fn = ($.core.Object || {})[KEY] || Object[KEY]
1990
- , forced = 0
1991
- , method = {};
1992
- method[KEY] = ID == 0 ? function freeze(it){
1993
- return isObject(it) ? fn(it) : it;
1994
- } : ID == 1 ? function seal(it){
1995
- return isObject(it) ? fn(it) : it;
1996
- } : ID == 2 ? function preventExtensions(it){
1997
- return isObject(it) ? fn(it) : it;
1998
- } : ID == 3 ? function isFrozen(it){
1999
- return isObject(it) ? fn(it) : true;
2000
- } : ID == 4 ? function isSealed(it){
2001
- return isObject(it) ? fn(it) : true;
2002
- } : ID == 5 ? function isExtensible(it){
2003
- return isObject(it) ? fn(it) : false;
2004
- } : ID == 6 ? function getOwnPropertyDescriptor(it, key){
2005
- return fn(toObject(it), key);
2006
- } : ID == 7 ? function getPrototypeOf(it){
2007
- return fn(Object($.assertDefined(it)));
2008
- } : ID == 8 ? function keys(it){
2009
- return fn(toObject(it));
2010
- } : require('./$.get-names').get;
2011
- try {
2012
- fn('z');
2013
- } catch(e){
2014
- forced = 1;
2015
- }
2016
- $def($def.S + $def.F * forced, 'Object', method);
2017
- });
2018
- },{"./$":24,"./$.def":13,"./$.get-names":18}],62:[function(require,module,exports){
2295
+ },{"./$.def":16,"./$.set-proto":57}],131:[function(require,module,exports){
2019
2296
  'use strict';
2020
2297
  // 19.1.3.6 Object.prototype.toString()
2021
- var cof = require('./$.cof')
2022
- , tmp = {};
2023
- tmp[require('./$.wks')('toStringTag')] = 'z';
2024
- if(require('./$').FW && cof(tmp) != 'z'){
2298
+ var classof = require('./$.classof')
2299
+ , test = {};
2300
+ test[require('./$.wks')('toStringTag')] = 'z';
2301
+ if(test + '' != '[object z]'){
2025
2302
  require('./$.redef')(Object.prototype, 'toString', function toString(){
2026
- return '[object ' + cof.classof(this) + ']';
2303
+ return '[object ' + classof(this) + ']';
2027
2304
  }, true);
2028
2305
  }
2029
- },{"./$":24,"./$.cof":7,"./$.redef":29,"./$.wks":42}],63:[function(require,module,exports){
2306
+ },{"./$.classof":8,"./$.redef":54,"./$.wks":77}],132:[function(require,module,exports){
2030
2307
  'use strict';
2031
- var $ = require('./$')
2032
- , ctx = require('./$.ctx')
2033
- , cof = require('./$.cof')
2034
- , $def = require('./$.def')
2035
- , assert = require('./$.assert')
2036
- , forOf = require('./$.for-of')
2037
- , setProto = require('./$.set-proto').set
2038
- , same = require('./$.same')
2039
- , species = require('./$.species')
2040
- , SPECIES = require('./$.wks')('species')
2041
- , RECORD = require('./$.uid').safe('record')
2042
- , PROMISE = 'Promise'
2043
- , global = $.g
2044
- , process = global.process
2045
- , isNode = cof(process) == 'process'
2046
- , asap = process && process.nextTick || require('./$.task').set
2047
- , P = global[PROMISE]
2048
- , isFunction = $.isFunction
2049
- , isObject = $.isObject
2050
- , assertFunction = assert.fn
2051
- , assertObject = assert.obj
2308
+ var $ = require('./$')
2309
+ , LIBRARY = require('./$.library')
2310
+ , global = require('./$.global')
2311
+ , ctx = require('./$.ctx')
2312
+ , classof = require('./$.classof')
2313
+ , $def = require('./$.def')
2314
+ , isObject = require('./$.is-object')
2315
+ , anObject = require('./$.an-object')
2316
+ , aFunction = require('./$.a-function')
2317
+ , strictNew = require('./$.strict-new')
2318
+ , forOf = require('./$.for-of')
2319
+ , setProto = require('./$.set-proto').set
2320
+ , same = require('./$.same')
2321
+ , species = require('./$.species')
2322
+ , SPECIES = require('./$.wks')('species')
2323
+ , RECORD = require('./$.uid')('record')
2324
+ , asap = require('./$.microtask')
2325
+ , PROMISE = 'Promise'
2326
+ , process = global.process
2327
+ , isNode = classof(process) == 'process'
2328
+ , P = global[PROMISE]
2052
2329
  , Wrapper;
2053
2330
 
2054
- function testResolve(sub){
2331
+ var testResolve = function(sub){
2055
2332
  var test = new P(function(){});
2056
2333
  if(sub)test.constructor = Object;
2057
2334
  return P.resolve(test) === test;
2058
- }
2335
+ };
2059
2336
 
2060
2337
  var useNative = function(){
2061
2338
  var works = false;
@@ -2065,7 +2342,7 @@ var useNative = function(){
2065
2342
  return self;
2066
2343
  }
2067
2344
  try {
2068
- works = isFunction(P) && isFunction(P.resolve) && testResolve();
2345
+ works = P && P.resolve && testResolve();
2069
2346
  setProto(P2, P);
2070
2347
  P2.prototype = $.create(P.prototype, {constructor: {value: P2}});
2071
2348
  // actual Firefox has broken subclass support, test that
@@ -2073,7 +2350,7 @@ var useNative = function(){
2073
2350
  works = false;
2074
2351
  }
2075
2352
  // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
2076
- if(works && $.DESC){
2353
+ if(works && require('./$.support-desc')){
2077
2354
  var thenableThenGotten = false;
2078
2355
  P.resolve($.setDesc({}, 'then', {
2079
2356
  get: function(){ thenableThenGotten = true; }
@@ -2085,31 +2362,31 @@ var useNative = function(){
2085
2362
  }();
2086
2363
 
2087
2364
  // helpers
2088
- function isPromise(it){
2089
- return isObject(it) && (useNative ? cof.classof(it) == 'Promise' : RECORD in it);
2090
- }
2091
- function sameConstructor(a, b){
2365
+ var isPromise = function(it){
2366
+ return isObject(it) && (useNative ? classof(it) == 'Promise' : RECORD in it);
2367
+ };
2368
+ var sameConstructor = function(a, b){
2092
2369
  // library wrapper special case
2093
- if(!$.FW && a === P && b === Wrapper)return true;
2370
+ if(LIBRARY && a === P && b === Wrapper)return true;
2094
2371
  return same(a, b);
2095
- }
2096
- function getConstructor(C){
2097
- var S = assertObject(C)[SPECIES];
2372
+ };
2373
+ var getConstructor = function(C){
2374
+ var S = anObject(C)[SPECIES];
2098
2375
  return S != undefined ? S : C;
2099
- }
2100
- function isThenable(it){
2376
+ };
2377
+ var isThenable = function(it){
2101
2378
  var then;
2102
- if(isObject(it))then = it.then;
2103
- return isFunction(then) ? then : false;
2104
- }
2105
- function notify(record){
2379
+ return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
2380
+ };
2381
+ var notify = function(record, isReject){
2382
+ if(record.n)return;
2383
+ record.n = true;
2106
2384
  var chain = record.c;
2107
- // strange IE + webpack dev server bug - use .call(global)
2108
- if(chain.length)asap.call(global, function(){
2385
+ asap(function(){
2109
2386
  var value = record.v
2110
2387
  , ok = record.s == 1
2111
2388
  , i = 0;
2112
- function run(react){
2389
+ var run = function(react){
2113
2390
  var cb = ok ? react.ok : react.fail
2114
2391
  , ret, then;
2115
2392
  try {
@@ -2125,12 +2402,25 @@ function notify(record){
2125
2402
  } catch(err){
2126
2403
  react.rej(err);
2127
2404
  }
2128
- }
2405
+ };
2129
2406
  while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
2130
2407
  chain.length = 0;
2408
+ record.n = false;
2409
+ if(isReject)setTimeout(function(){
2410
+ asap(function(){
2411
+ if(isUnhandled(record.p)){
2412
+ if(isNode){
2413
+ process.emit('unhandledRejection', value, record.p);
2414
+ } else if(global.console && console.error){
2415
+ console.error('Unhandled promise rejection', value);
2416
+ }
2417
+ }
2418
+ record.a = undefined;
2419
+ });
2420
+ }, 1);
2131
2421
  });
2132
- }
2133
- function isUnhandled(promise){
2422
+ };
2423
+ var isUnhandled = function(promise){
2134
2424
  var record = promise[RECORD]
2135
2425
  , chain = record.a || record.c
2136
2426
  , i = 0
@@ -2140,32 +2430,18 @@ function isUnhandled(promise){
2140
2430
  react = chain[i++];
2141
2431
  if(react.fail || !isUnhandled(react.P))return false;
2142
2432
  } return true;
2143
- }
2144
- function $reject(value){
2145
- var record = this
2146
- , promise;
2433
+ };
2434
+ var $reject = function(value){
2435
+ var record = this;
2147
2436
  if(record.d)return;
2148
2437
  record.d = true;
2149
2438
  record = record.r || record; // unwrap
2150
2439
  record.v = value;
2151
2440
  record.s = 2;
2152
2441
  record.a = record.c.slice();
2153
- setTimeout(function(){
2154
- // strange IE + webpack dev server bug - use .call(global)
2155
- asap.call(global, function(){
2156
- if(isUnhandled(promise = record.p)){
2157
- if(isNode){
2158
- process.emit('unhandledRejection', value, promise);
2159
- } else if(global.console && console.error){
2160
- console.error('Unhandled promise rejection', value);
2161
- }
2162
- }
2163
- record.a = undefined;
2164
- });
2165
- }, 1);
2166
- notify(record);
2167
- }
2168
- function $resolve(value){
2442
+ notify(record, true);
2443
+ };
2444
+ var $resolve = function(value){
2169
2445
  var record = this
2170
2446
  , then;
2171
2447
  if(record.d)return;
@@ -2173,8 +2449,7 @@ function $resolve(value){
2173
2449
  record = record.r || record; // unwrap
2174
2450
  try {
2175
2451
  if(then = isThenable(value)){
2176
- // strange IE + webpack dev server bug - use .call(global)
2177
- asap.call(global, function(){
2452
+ asap(function(){
2178
2453
  var wrapper = {r: record, d: false}; // wrap
2179
2454
  try {
2180
2455
  then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
@@ -2185,28 +2460,29 @@ function $resolve(value){
2185
2460
  } else {
2186
2461
  record.v = value;
2187
2462
  record.s = 1;
2188
- notify(record);
2463
+ notify(record, false);
2189
2464
  }
2190
2465
  } catch(e){
2191
2466
  $reject.call({r: record, d: false}, e); // wrap
2192
2467
  }
2193
- }
2468
+ };
2194
2469
 
2195
2470
  // constructor polyfill
2196
2471
  if(!useNative){
2197
2472
  // 25.4.3.1 Promise(executor)
2198
2473
  P = function Promise(executor){
2199
- assertFunction(executor);
2474
+ aFunction(executor);
2200
2475
  var record = {
2201
- p: assert.inst(this, P, PROMISE), // <- promise
2476
+ p: strictNew(this, P, PROMISE), // <- promise
2202
2477
  c: [], // <- awaiting reactions
2203
2478
  a: undefined, // <- checked in isUnhandled reactions
2204
2479
  s: 0, // <- state
2205
2480
  d: false, // <- done
2206
2481
  v: undefined, // <- value
2207
- h: false // <- handled rejection
2482
+ h: false, // <- handled rejection
2483
+ n: false // <- notify
2208
2484
  };
2209
- $.hide(this, RECORD, record);
2485
+ this[RECORD] = record;
2210
2486
  try {
2211
2487
  executor(ctx($resolve, record, 1), ctx($reject, record, 1));
2212
2488
  } catch(err){
@@ -2216,19 +2492,19 @@ if(!useNative){
2216
2492
  require('./$.mix')(P.prototype, {
2217
2493
  // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
2218
2494
  then: function then(onFulfilled, onRejected){
2219
- var S = assertObject(assertObject(this).constructor)[SPECIES];
2495
+ var S = anObject(anObject(this).constructor)[SPECIES];
2220
2496
  var react = {
2221
- ok: isFunction(onFulfilled) ? onFulfilled : true,
2222
- fail: isFunction(onRejected) ? onRejected : false
2497
+ ok: typeof onFulfilled == 'function' ? onFulfilled : true,
2498
+ fail: typeof onRejected == 'function' ? onRejected : false
2223
2499
  };
2224
2500
  var promise = react.P = new (S != undefined ? S : P)(function(res, rej){
2225
- react.res = assertFunction(res);
2226
- react.rej = assertFunction(rej);
2501
+ react.res = aFunction(res);
2502
+ react.rej = aFunction(rej);
2227
2503
  });
2228
2504
  var record = this[RECORD];
2229
2505
  record.c.push(react);
2230
2506
  if(record.a)record.a.push(react);
2231
- if(record.s)notify(record);
2507
+ if(record.s)notify(record, false);
2232
2508
  return promise;
2233
2509
  },
2234
2510
  // 25.4.5.1 Promise.prototype.catch(onRejected)
@@ -2240,15 +2516,15 @@ if(!useNative){
2240
2516
 
2241
2517
  // export
2242
2518
  $def($def.G + $def.W + $def.F * !useNative, {Promise: P});
2243
- cof.set(P, PROMISE);
2519
+ require('./$.tag')(P, PROMISE);
2244
2520
  species(P);
2245
- species(Wrapper = $.core[PROMISE]);
2521
+ species(Wrapper = require('./$.core')[PROMISE]);
2246
2522
 
2247
2523
  // statics
2248
2524
  $def($def.S + $def.F * !useNative, PROMISE, {
2249
2525
  // 25.4.4.5 Promise.reject(r)
2250
2526
  reject: function reject(r){
2251
- return new (getConstructor(this))(function(res, rej){ rej(r); });
2527
+ return new this(function(res, rej){ rej(r); });
2252
2528
  }
2253
2529
  });
2254
2530
  $def($def.S + $def.F * (!useNative || testResolve(true)), PROMISE, {
@@ -2288,156 +2564,246 @@ $def($def.S + $def.F * !(useNative && require('./$.iter-detect')(function(iter){
2288
2564
  });
2289
2565
  }
2290
2566
  });
2291
- },{"./$":24,"./$.assert":5,"./$.cof":7,"./$.ctx":12,"./$.def":13,"./$.for-of":16,"./$.iter-detect":22,"./$.mix":26,"./$.same":31,"./$.set-proto":32,"./$.species":34,"./$.task":38,"./$.uid":40,"./$.wks":42}],64:[function(require,module,exports){
2292
- var $ = require('./$')
2293
- , $def = require('./$.def')
2294
- , setProto = require('./$.set-proto')
2295
- , $iter = require('./$.iter')
2296
- , ITERATOR = require('./$.wks')('iterator')
2297
- , ITER = require('./$.uid').safe('iter')
2298
- , step = $iter.step
2299
- , assert = require('./$.assert')
2300
- , isObject = $.isObject
2301
- , getProto = $.getProto
2302
- , $Reflect = $.g.Reflect
2303
- , _apply = Function.apply
2304
- , assertObject = assert.obj
2305
- , _isExtensible = Object.isExtensible || isObject
2306
- , _preventExtensions = Object.preventExtensions
2307
- // IE TP has broken Reflect.enumerate
2308
- , buggyEnumerate = !($Reflect && $Reflect.enumerate && ITERATOR in $Reflect.enumerate({}));
2309
-
2310
- function Enumerate(iterated){
2311
- $.set(this, ITER, {o: iterated, k: undefined, i: 0});
2312
- }
2313
- $iter.create(Enumerate, 'Object', function(){
2314
- var iter = this[ITER]
2315
- , keys = iter.k
2316
- , key;
2317
- if(keys == undefined){
2318
- iter.k = keys = [];
2319
- for(key in iter.o)keys.push(key);
2320
- }
2321
- do {
2322
- if(iter.i >= keys.length)return step(1);
2323
- } while(!((key = keys[iter.i++]) in iter.o));
2324
- return step(0, key);
2325
- });
2567
+ },{"./$":42,"./$.a-function":3,"./$.an-object":4,"./$.classof":8,"./$.core":14,"./$.ctx":15,"./$.def":16,"./$.for-of":24,"./$.global":26,"./$.is-object":34,"./$.iter-detect":39,"./$.library":44,"./$.microtask":46,"./$.mix":47,"./$.same":56,"./$.set-proto":57,"./$.species":60,"./$.strict-new":61,"./$.support-desc":67,"./$.tag":68,"./$.uid":75,"./$.wks":77}],133:[function(require,module,exports){
2568
+ // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
2569
+ var $def = require('./$.def')
2570
+ , _apply = Function.apply;
2326
2571
 
2327
- var reflect = {
2328
- // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
2572
+ $def($def.S, 'Reflect', {
2329
2573
  apply: function apply(target, thisArgument, argumentsList){
2330
2574
  return _apply.call(target, thisArgument, argumentsList);
2331
- },
2332
- // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
2333
- construct: function construct(target, argumentsList /*, newTarget*/){
2334
- var proto = assert.fn(arguments.length < 3 ? target : arguments[2]).prototype
2575
+ }
2576
+ });
2577
+ },{"./$.def":16}],134:[function(require,module,exports){
2578
+ // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
2579
+ var $ = require('./$')
2580
+ , $def = require('./$.def')
2581
+ , aFunction = require('./$.a-function')
2582
+ , anObject = require('./$.an-object')
2583
+ , isObject = require('./$.is-object')
2584
+ , bind = Function.bind || require('./$.core').Function.prototype.bind;
2585
+
2586
+ $def($def.S, 'Reflect', {
2587
+ construct: function construct(Target, args /*, newTarget*/){
2588
+ aFunction(Target);
2589
+ if(arguments.length < 3){
2590
+ // w/o newTarget, optimization for 0-4 arguments
2591
+ if(args != undefined)switch(anObject(args).length){
2592
+ case 0: return new Target;
2593
+ case 1: return new Target(args[0]);
2594
+ case 2: return new Target(args[0], args[1]);
2595
+ case 3: return new Target(args[0], args[1], args[2]);
2596
+ case 4: return new Target(args[0], args[1], args[2], args[3]);
2597
+ }
2598
+ // w/o newTarget, lot of arguments case
2599
+ var $args = [null];
2600
+ $args.push.apply($args, args);
2601
+ return new (bind.apply(Target, $args));
2602
+ }
2603
+ // with newTarget, not support built-in constructors
2604
+ var proto = aFunction(arguments[2]).prototype
2335
2605
  , instance = $.create(isObject(proto) ? proto : Object.prototype)
2336
- , result = _apply.call(target, instance, argumentsList);
2606
+ , result = Function.apply.call(Target, instance, args);
2337
2607
  return isObject(result) ? result : instance;
2338
- },
2339
- // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
2608
+ }
2609
+ });
2610
+ },{"./$":42,"./$.a-function":3,"./$.an-object":4,"./$.core":14,"./$.def":16,"./$.is-object":34}],135:[function(require,module,exports){
2611
+ // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
2612
+ var $ = require('./$')
2613
+ , $def = require('./$.def')
2614
+ , anObject = require('./$.an-object');
2615
+
2616
+ // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
2617
+ $def($def.S + $def.F * require('./$.fails')(function(){
2618
+ Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
2619
+ }), 'Reflect', {
2340
2620
  defineProperty: function defineProperty(target, propertyKey, attributes){
2341
- assertObject(target);
2621
+ anObject(target);
2342
2622
  try {
2343
2623
  $.setDesc(target, propertyKey, attributes);
2344
2624
  return true;
2345
2625
  } catch(e){
2346
2626
  return false;
2347
2627
  }
2348
- },
2349
- // 26.1.4 Reflect.deleteProperty(target, propertyKey)
2628
+ }
2629
+ });
2630
+ },{"./$":42,"./$.an-object":4,"./$.def":16,"./$.fails":21}],136:[function(require,module,exports){
2631
+ // 26.1.4 Reflect.deleteProperty(target, propertyKey)
2632
+ var $def = require('./$.def')
2633
+ , getDesc = require('./$').getDesc
2634
+ , anObject = require('./$.an-object');
2635
+
2636
+ $def($def.S, 'Reflect', {
2350
2637
  deleteProperty: function deleteProperty(target, propertyKey){
2351
- var desc = $.getDesc(assertObject(target), propertyKey);
2638
+ var desc = getDesc(anObject(target), propertyKey);
2352
2639
  return desc && !desc.configurable ? false : delete target[propertyKey];
2353
- },
2354
- // 26.1.6 Reflect.get(target, propertyKey [, receiver])
2355
- get: function get(target, propertyKey/*, receiver*/){
2356
- var receiver = arguments.length < 3 ? target : arguments[2]
2357
- , desc = $.getDesc(assertObject(target), propertyKey), proto;
2358
- if(desc)return $.has(desc, 'value')
2359
- ? desc.value
2360
- : desc.get === undefined
2361
- ? undefined
2362
- : desc.get.call(receiver);
2363
- return isObject(proto = getProto(target))
2364
- ? get(proto, propertyKey, receiver)
2365
- : undefined;
2366
- },
2367
- // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
2640
+ }
2641
+ });
2642
+ },{"./$":42,"./$.an-object":4,"./$.def":16}],137:[function(require,module,exports){
2643
+ 'use strict';
2644
+ // 26.1.5 Reflect.enumerate(target)
2645
+ var $def = require('./$.def')
2646
+ , anObject = require('./$.an-object');
2647
+ var Enumerate = function(iterated){
2648
+ this._t = anObject(iterated); // target
2649
+ this._i = 0; // next index
2650
+ var keys = this._k = [] // keys
2651
+ , key;
2652
+ for(key in iterated)keys.push(key);
2653
+ };
2654
+ require('./$.iter-create')(Enumerate, 'Object', function(){
2655
+ var that = this
2656
+ , keys = that._k
2657
+ , key;
2658
+ do {
2659
+ if(that._i >= keys.length)return {value: undefined, done: true};
2660
+ } while(!((key = keys[that._i++]) in that._t));
2661
+ return {value: key, done: false};
2662
+ });
2663
+
2664
+ $def($def.S, 'Reflect', {
2665
+ enumerate: function enumerate(target){
2666
+ return new Enumerate(target);
2667
+ }
2668
+ });
2669
+ },{"./$.an-object":4,"./$.def":16,"./$.iter-create":37}],138:[function(require,module,exports){
2670
+ // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
2671
+ var $ = require('./$')
2672
+ , $def = require('./$.def')
2673
+ , anObject = require('./$.an-object');
2674
+
2675
+ $def($def.S, 'Reflect', {
2368
2676
  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
2369
- return $.getDesc(assertObject(target), propertyKey);
2370
- },
2371
- // 26.1.8 Reflect.getPrototypeOf(target)
2677
+ return $.getDesc(anObject(target), propertyKey);
2678
+ }
2679
+ });
2680
+ },{"./$":42,"./$.an-object":4,"./$.def":16}],139:[function(require,module,exports){
2681
+ // 26.1.8 Reflect.getPrototypeOf(target)
2682
+ var $def = require('./$.def')
2683
+ , getProto = require('./$').getProto
2684
+ , anObject = require('./$.an-object');
2685
+
2686
+ $def($def.S, 'Reflect', {
2372
2687
  getPrototypeOf: function getPrototypeOf(target){
2373
- return getProto(assertObject(target));
2374
- },
2375
- // 26.1.9 Reflect.has(target, propertyKey)
2688
+ return getProto(anObject(target));
2689
+ }
2690
+ });
2691
+ },{"./$":42,"./$.an-object":4,"./$.def":16}],140:[function(require,module,exports){
2692
+ // 26.1.6 Reflect.get(target, propertyKey [, receiver])
2693
+ var $ = require('./$')
2694
+ , has = require('./$.has')
2695
+ , $def = require('./$.def')
2696
+ , isObject = require('./$.is-object')
2697
+ , anObject = require('./$.an-object');
2698
+
2699
+ function get(target, propertyKey/*, receiver*/){
2700
+ var receiver = arguments.length < 3 ? target : arguments[2]
2701
+ , desc, proto;
2702
+ if(anObject(target) === receiver)return target[propertyKey];
2703
+ if(desc = $.getDesc(target, propertyKey))return has(desc, 'value')
2704
+ ? desc.value
2705
+ : desc.get !== undefined
2706
+ ? desc.get.call(receiver)
2707
+ : undefined;
2708
+ if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver);
2709
+ }
2710
+
2711
+ $def($def.S, 'Reflect', {get: get});
2712
+ },{"./$":42,"./$.an-object":4,"./$.def":16,"./$.has":27,"./$.is-object":34}],141:[function(require,module,exports){
2713
+ // 26.1.9 Reflect.has(target, propertyKey)
2714
+ var $def = require('./$.def');
2715
+
2716
+ $def($def.S, 'Reflect', {
2376
2717
  has: function has(target, propertyKey){
2377
2718
  return propertyKey in target;
2378
- },
2379
- // 26.1.10 Reflect.isExtensible(target)
2719
+ }
2720
+ });
2721
+ },{"./$.def":16}],142:[function(require,module,exports){
2722
+ // 26.1.10 Reflect.isExtensible(target)
2723
+ var $def = require('./$.def')
2724
+ , anObject = require('./$.an-object')
2725
+ , $isExtensible = Object.isExtensible;
2726
+
2727
+ $def($def.S, 'Reflect', {
2380
2728
  isExtensible: function isExtensible(target){
2381
- return _isExtensible(assertObject(target));
2382
- },
2383
- // 26.1.11 Reflect.ownKeys(target)
2384
- ownKeys: require('./$.own-keys'),
2385
- // 26.1.12 Reflect.preventExtensions(target)
2729
+ anObject(target);
2730
+ return $isExtensible ? $isExtensible(target) : true;
2731
+ }
2732
+ });
2733
+ },{"./$.an-object":4,"./$.def":16}],143:[function(require,module,exports){
2734
+ // 26.1.11 Reflect.ownKeys(target)
2735
+ var $def = require('./$.def');
2736
+
2737
+ $def($def.S, 'Reflect', {ownKeys: require('./$.own-keys')});
2738
+ },{"./$.def":16,"./$.own-keys":50}],144:[function(require,module,exports){
2739
+ // 26.1.12 Reflect.preventExtensions(target)
2740
+ var $def = require('./$.def')
2741
+ , anObject = require('./$.an-object')
2742
+ , $preventExtensions = Object.preventExtensions;
2743
+
2744
+ $def($def.S, 'Reflect', {
2386
2745
  preventExtensions: function preventExtensions(target){
2387
- assertObject(target);
2746
+ anObject(target);
2388
2747
  try {
2389
- if(_preventExtensions)_preventExtensions(target);
2748
+ if($preventExtensions)$preventExtensions(target);
2390
2749
  return true;
2391
2750
  } catch(e){
2392
2751
  return false;
2393
2752
  }
2394
- },
2395
- // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
2396
- set: function set(target, propertyKey, V/*, receiver*/){
2397
- var receiver = arguments.length < 4 ? target : arguments[3]
2398
- , ownDesc = $.getDesc(assertObject(target), propertyKey)
2399
- , existingDescriptor, proto;
2400
- if(!ownDesc){
2401
- if(isObject(proto = getProto(target))){
2402
- return set(proto, propertyKey, V, receiver);
2403
- }
2404
- ownDesc = $.desc(0);
2405
- }
2406
- if($.has(ownDesc, 'value')){
2407
- if(ownDesc.writable === false || !isObject(receiver))return false;
2408
- existingDescriptor = $.getDesc(receiver, propertyKey) || $.desc(0);
2409
- existingDescriptor.value = V;
2410
- $.setDesc(receiver, propertyKey, existingDescriptor);
2411
- return true;
2412
- }
2413
- return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
2414
2753
  }
2415
- };
2754
+ });
2755
+ },{"./$.an-object":4,"./$.def":16}],145:[function(require,module,exports){
2416
2756
  // 26.1.14 Reflect.setPrototypeOf(target, proto)
2417
- if(setProto)reflect.setPrototypeOf = function setPrototypeOf(target, proto){
2418
- setProto.check(target, proto);
2419
- try {
2420
- setProto.set(target, proto);
2421
- return true;
2422
- } catch(e){
2423
- return false;
2424
- }
2425
- };
2426
-
2427
- $def($def.G, {Reflect: {}});
2757
+ var $def = require('./$.def')
2758
+ , setProto = require('./$.set-proto');
2428
2759
 
2429
- $def($def.S + $def.F * buggyEnumerate, 'Reflect', {
2430
- // 26.1.5 Reflect.enumerate(target)
2431
- enumerate: function enumerate(target){
2432
- return new Enumerate(assertObject(target));
2760
+ if(setProto)$def($def.S, 'Reflect', {
2761
+ setPrototypeOf: function setPrototypeOf(target, proto){
2762
+ setProto.check(target, proto);
2763
+ try {
2764
+ setProto.set(target, proto);
2765
+ return true;
2766
+ } catch(e){
2767
+ return false;
2768
+ }
2433
2769
  }
2434
2770
  });
2771
+ },{"./$.def":16,"./$.set-proto":57}],146:[function(require,module,exports){
2772
+ // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
2773
+ var $ = require('./$')
2774
+ , has = require('./$.has')
2775
+ , $def = require('./$.def')
2776
+ , createDesc = require('./$.property-desc')
2777
+ , anObject = require('./$.an-object')
2778
+ , isObject = require('./$.is-object');
2779
+
2780
+ function set(target, propertyKey, V/*, receiver*/){
2781
+ var receiver = arguments.length < 4 ? target : arguments[3]
2782
+ , ownDesc = $.getDesc(anObject(target), propertyKey)
2783
+ , existingDescriptor, proto;
2784
+ if(!ownDesc){
2785
+ if(isObject(proto = $.getProto(target))){
2786
+ return set(proto, propertyKey, V, receiver);
2787
+ }
2788
+ ownDesc = createDesc(0);
2789
+ }
2790
+ if(has(ownDesc, 'value')){
2791
+ if(ownDesc.writable === false || !isObject(receiver))return false;
2792
+ existingDescriptor = $.getDesc(receiver, propertyKey) || createDesc(0);
2793
+ existingDescriptor.value = V;
2794
+ $.setDesc(receiver, propertyKey, existingDescriptor);
2795
+ return true;
2796
+ }
2797
+ return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
2798
+ }
2435
2799
 
2436
- $def($def.S, 'Reflect', reflect);
2437
- },{"./$":24,"./$.assert":5,"./$.def":13,"./$.iter":23,"./$.own-keys":27,"./$.set-proto":32,"./$.uid":40,"./$.wks":42}],65:[function(require,module,exports){
2800
+ $def($def.S, 'Reflect', {set: set});
2801
+ },{"./$":42,"./$.an-object":4,"./$.def":16,"./$.has":27,"./$.is-object":34,"./$.property-desc":53}],147:[function(require,module,exports){
2438
2802
  var $ = require('./$')
2803
+ , global = require('./$.global')
2439
2804
  , cof = require('./$.cof')
2440
- , $RegExp = $.g.RegExp
2805
+ , $flags = require('./$.flags')
2806
+ , $RegExp = global.RegExp
2441
2807
  , Base = $RegExp
2442
2808
  , proto = $RegExp.prototype
2443
2809
  , re = /a/g
@@ -2449,7 +2815,8 @@ var $ = require('./$')
2449
2815
  return $RegExp(re, 'i') == '/a/i';
2450
2816
  } catch(e){ /* empty */ }
2451
2817
  }();
2452
- if($.FW && $.DESC){
2818
+
2819
+ if(require('./$.support-desc')){
2453
2820
  if(!CORRECT_NEW || !ALLOWS_RE_WITH_FLAGS){
2454
2821
  $RegExp = function RegExp(pattern, flags){
2455
2822
  var patternIsRegExp = cof(pattern) == 'RegExp'
@@ -2458,7 +2825,7 @@ if($.FW && $.DESC){
2458
2825
  return CORRECT_NEW
2459
2826
  ? new Base(patternIsRegExp && !flagsIsUndefined ? pattern.source : pattern, flags)
2460
2827
  : new Base(patternIsRegExp ? pattern.source : pattern
2461
- , patternIsRegExp && flagsIsUndefined ? pattern.flags : flags);
2828
+ , patternIsRegExp && flagsIsUndefined ? $flags.call(pattern) : flags);
2462
2829
  };
2463
2830
  $.each.call($.getNames(Base), function(key){
2464
2831
  key in $RegExp || $.setDesc($RegExp, key, {
@@ -2469,16 +2836,67 @@ if($.FW && $.DESC){
2469
2836
  });
2470
2837
  proto.constructor = $RegExp;
2471
2838
  $RegExp.prototype = proto;
2472
- require('./$.redef')($.g, 'RegExp', $RegExp);
2839
+ require('./$.redef')(global, 'RegExp', $RegExp);
2473
2840
  }
2474
- // 21.2.5.3 get RegExp.prototype.flags()
2475
- if(/./g.flags != 'g')$.setDesc(proto, 'flags', {
2476
- configurable: true,
2477
- get: require('./$.replacer')(/^.*\/(\w*)$/, '$1')
2478
- });
2479
2841
  }
2842
+
2480
2843
  require('./$.species')($RegExp);
2481
- },{"./$":24,"./$.cof":7,"./$.redef":29,"./$.replacer":30,"./$.species":34}],66:[function(require,module,exports){
2844
+ },{"./$":42,"./$.cof":9,"./$.flags":23,"./$.global":26,"./$.redef":54,"./$.species":60,"./$.support-desc":67}],148:[function(require,module,exports){
2845
+ // 21.2.5.3 get RegExp.prototype.flags()
2846
+ var $ = require('./$');
2847
+ if(require('./$.support-desc') && /./g.flags != 'g')$.setDesc(RegExp.prototype, 'flags', {
2848
+ configurable: true,
2849
+ get: require('./$.flags')
2850
+ });
2851
+ },{"./$":42,"./$.flags":23,"./$.support-desc":67}],149:[function(require,module,exports){
2852
+ // @@match logic
2853
+ require('./$.fix-re-wks')('match', 1, function(defined, MATCH){
2854
+ // 21.1.3.11 String.prototype.match(regexp)
2855
+ return function match(regexp){
2856
+ 'use strict';
2857
+ var O = defined(this)
2858
+ , fn = regexp == undefined ? undefined : regexp[MATCH];
2859
+ return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
2860
+ };
2861
+ });
2862
+ },{"./$.fix-re-wks":22}],150:[function(require,module,exports){
2863
+ // @@replace logic
2864
+ require('./$.fix-re-wks')('replace', 2, function(defined, REPLACE, $replace){
2865
+ // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
2866
+ return function replace(searchValue, replaceValue){
2867
+ 'use strict';
2868
+ var O = defined(this)
2869
+ , fn = searchValue == undefined ? undefined : searchValue[REPLACE];
2870
+ return fn !== undefined
2871
+ ? fn.call(searchValue, O, replaceValue)
2872
+ : $replace.call(String(O), searchValue, replaceValue);
2873
+ };
2874
+ });
2875
+ },{"./$.fix-re-wks":22}],151:[function(require,module,exports){
2876
+ // @@search logic
2877
+ require('./$.fix-re-wks')('search', 1, function(defined, SEARCH){
2878
+ // 21.1.3.15 String.prototype.search(regexp)
2879
+ return function search(regexp){
2880
+ 'use strict';
2881
+ var O = defined(this)
2882
+ , fn = regexp == undefined ? undefined : regexp[SEARCH];
2883
+ return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
2884
+ };
2885
+ });
2886
+ },{"./$.fix-re-wks":22}],152:[function(require,module,exports){
2887
+ // @@split logic
2888
+ require('./$.fix-re-wks')('split', 2, function(defined, SPLIT, $split){
2889
+ // 21.1.3.17 String.prototype.split(separator, limit)
2890
+ return function split(separator, limit){
2891
+ 'use strict';
2892
+ var O = defined(this)
2893
+ , fn = separator == undefined ? undefined : separator[SPLIT];
2894
+ return fn !== undefined
2895
+ ? fn.call(separator, O, limit)
2896
+ : $split.call(String(O), separator, limit);
2897
+ };
2898
+ });
2899
+ },{"./$.fix-re-wks":22}],153:[function(require,module,exports){
2482
2900
  'use strict';
2483
2901
  var strong = require('./$.collection-strong');
2484
2902
 
@@ -2491,7 +2909,7 @@ require('./$.collection')('Set', function(get){
2491
2909
  return strong.def(this, value = value === 0 ? 0 : value, value);
2492
2910
  }
2493
2911
  }, strong);
2494
- },{"./$.collection":11,"./$.collection-strong":8}],67:[function(require,module,exports){
2912
+ },{"./$.collection":13,"./$.collection-strong":10}],154:[function(require,module,exports){
2495
2913
  'use strict';
2496
2914
  var $def = require('./$.def')
2497
2915
  , $at = require('./$.string-at')(false);
@@ -2501,29 +2919,27 @@ $def($def.P, 'String', {
2501
2919
  return $at(this, pos);
2502
2920
  }
2503
2921
  });
2504
- },{"./$.def":13,"./$.string-at":35}],68:[function(require,module,exports){
2922
+ },{"./$.def":16,"./$.string-at":62}],155:[function(require,module,exports){
2505
2923
  'use strict';
2506
- var $ = require('./$')
2507
- , cof = require('./$.cof')
2508
- , $def = require('./$.def')
2509
- , toLength = $.toLength;
2924
+ var $def = require('./$.def')
2925
+ , toLength = require('./$.to-length')
2926
+ , context = require('./$.string-context');
2510
2927
 
2511
2928
  // should throw error on regex
2512
- $def($def.P + $def.F * !require('./$.throws')(function(){ 'q'.endsWith(/./); }), 'String', {
2929
+ $def($def.P + $def.F * !require('./$.fails')(function(){ 'q'.endsWith(/./); }), 'String', {
2513
2930
  // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
2514
2931
  endsWith: function endsWith(searchString /*, endPosition = @length */){
2515
- if(cof(searchString) == 'RegExp')throw TypeError();
2516
- var that = String($.assertDefined(this))
2932
+ var that = context(this, searchString, 'endsWith')
2517
2933
  , endPosition = arguments[1]
2518
- , len = toLength(that.length)
2519
- , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
2520
- searchString += '';
2521
- return that.slice(end - searchString.length, end) === searchString;
2934
+ , len = toLength(that.length)
2935
+ , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
2936
+ , search = String(searchString);
2937
+ return that.slice(end - search.length, end) === search;
2522
2938
  }
2523
2939
  });
2524
- },{"./$":24,"./$.cof":7,"./$.def":13,"./$.throws":39}],69:[function(require,module,exports){
2940
+ },{"./$.def":16,"./$.fails":21,"./$.string-context":63,"./$.to-length":73}],156:[function(require,module,exports){
2525
2941
  var $def = require('./$.def')
2526
- , toIndex = require('./$').toIndex
2942
+ , toIndex = require('./$.to-index')
2527
2943
  , fromCharCode = String.fromCharCode
2528
2944
  , $fromCodePoint = String.fromCodePoint;
2529
2945
 
@@ -2545,49 +2961,45 @@ $def($def.S + $def.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String
2545
2961
  } return res.join('');
2546
2962
  }
2547
2963
  });
2548
- },{"./$":24,"./$.def":13}],70:[function(require,module,exports){
2964
+ },{"./$.def":16,"./$.to-index":70}],157:[function(require,module,exports){
2549
2965
  'use strict';
2550
- var $ = require('./$')
2551
- , cof = require('./$.cof')
2552
- , $def = require('./$.def');
2966
+ var $def = require('./$.def')
2967
+ , context = require('./$.string-context');
2553
2968
 
2554
2969
  $def($def.P, 'String', {
2555
2970
  // 21.1.3.7 String.prototype.includes(searchString, position = 0)
2556
2971
  includes: function includes(searchString /*, position = 0 */){
2557
- if(cof(searchString) == 'RegExp')throw TypeError();
2558
- return !!~String($.assertDefined(this)).indexOf(searchString, arguments[1]);
2972
+ return !!~context(this, searchString, 'includes').indexOf(searchString, arguments[1]);
2559
2973
  }
2560
2974
  });
2561
- },{"./$":24,"./$.cof":7,"./$.def":13}],71:[function(require,module,exports){
2562
- var set = require('./$').set
2563
- , $at = require('./$.string-at')(true)
2564
- , ITER = require('./$.uid').safe('iter')
2565
- , $iter = require('./$.iter')
2566
- , step = $iter.step;
2975
+ },{"./$.def":16,"./$.string-context":63}],158:[function(require,module,exports){
2976
+ 'use strict';
2977
+ var $at = require('./$.string-at')(true);
2567
2978
 
2568
2979
  // 21.1.3.27 String.prototype[@@iterator]()
2569
2980
  require('./$.iter-define')(String, 'String', function(iterated){
2570
- set(this, ITER, {o: String(iterated), i: 0});
2981
+ this._t = String(iterated); // target
2982
+ this._i = 0; // next index
2571
2983
  // 21.1.5.2.1 %StringIteratorPrototype%.next()
2572
2984
  }, function(){
2573
- var iter = this[ITER]
2574
- , O = iter.o
2575
- , index = iter.i
2985
+ var O = this._t
2986
+ , index = this._i
2576
2987
  , point;
2577
- if(index >= O.length)return step(1);
2988
+ if(index >= O.length)return {value: undefined, done: true};
2578
2989
  point = $at(O, index);
2579
- iter.i += point.length;
2580
- return step(0, point);
2990
+ this._i += point.length;
2991
+ return {value: point, done: false};
2581
2992
  });
2582
- },{"./$":24,"./$.iter":23,"./$.iter-define":21,"./$.string-at":35,"./$.uid":40}],72:[function(require,module,exports){
2583
- var $ = require('./$')
2584
- , $def = require('./$.def');
2993
+ },{"./$.iter-define":38,"./$.string-at":62}],159:[function(require,module,exports){
2994
+ var $def = require('./$.def')
2995
+ , toIObject = require('./$.to-iobject')
2996
+ , toLength = require('./$.to-length');
2585
2997
 
2586
2998
  $def($def.S, 'String', {
2587
2999
  // 21.1.2.4 String.raw(callSite, ...substitutions)
2588
3000
  raw: function raw(callSite){
2589
- var tpl = $.toObject(callSite.raw)
2590
- , len = $.toLength(tpl.length)
3001
+ var tpl = toIObject(callSite.raw)
3002
+ , len = toLength(tpl.length)
2591
3003
  , sln = arguments.length
2592
3004
  , res = []
2593
3005
  , i = 0;
@@ -2597,62 +3009,70 @@ $def($def.S, 'String', {
2597
3009
  } return res.join('');
2598
3010
  }
2599
3011
  });
2600
- },{"./$":24,"./$.def":13}],73:[function(require,module,exports){
3012
+ },{"./$.def":16,"./$.to-iobject":72,"./$.to-length":73}],160:[function(require,module,exports){
2601
3013
  var $def = require('./$.def');
2602
3014
 
2603
3015
  $def($def.P, 'String', {
2604
3016
  // 21.1.3.13 String.prototype.repeat(count)
2605
3017
  repeat: require('./$.string-repeat')
2606
3018
  });
2607
- },{"./$.def":13,"./$.string-repeat":37}],74:[function(require,module,exports){
3019
+ },{"./$.def":16,"./$.string-repeat":65}],161:[function(require,module,exports){
2608
3020
  'use strict';
2609
- var $ = require('./$')
2610
- , cof = require('./$.cof')
2611
- , $def = require('./$.def');
3021
+ var $def = require('./$.def')
3022
+ , toLength = require('./$.to-length')
3023
+ , context = require('./$.string-context');
2612
3024
 
2613
3025
  // should throw error on regex
2614
- $def($def.P + $def.F * !require('./$.throws')(function(){ 'q'.startsWith(/./); }), 'String', {
3026
+ $def($def.P + $def.F * !require('./$.fails')(function(){ 'q'.startsWith(/./); }), 'String', {
2615
3027
  // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
2616
3028
  startsWith: function startsWith(searchString /*, position = 0 */){
2617
- if(cof(searchString) == 'RegExp')throw TypeError();
2618
- var that = String($.assertDefined(this))
2619
- , index = $.toLength(Math.min(arguments[1], that.length));
2620
- searchString += '';
2621
- return that.slice(index, index + searchString.length) === searchString;
3029
+ var that = context(this, searchString, 'startsWith')
3030
+ , index = toLength(Math.min(arguments[1], that.length))
3031
+ , search = String(searchString);
3032
+ return that.slice(index, index + search.length) === search;
2622
3033
  }
2623
3034
  });
2624
- },{"./$":24,"./$.cof":7,"./$.def":13,"./$.throws":39}],75:[function(require,module,exports){
3035
+ },{"./$.def":16,"./$.fails":21,"./$.string-context":63,"./$.to-length":73}],162:[function(require,module,exports){
3036
+ 'use strict';
3037
+ // 21.1.3.25 String.prototype.trim()
3038
+ require('./$.string-trim')('trim', function($trim){
3039
+ return function trim(){
3040
+ return $trim(this, 3);
3041
+ };
3042
+ });
3043
+ },{"./$.string-trim":66}],163:[function(require,module,exports){
2625
3044
  'use strict';
2626
3045
  // ECMAScript 6 symbols shim
2627
- var $ = require('./$')
2628
- , setTag = require('./$.cof').set
2629
- , uid = require('./$.uid')
2630
- , shared = require('./$.shared')
2631
- , $def = require('./$.def')
2632
- , $redef = require('./$.redef')
2633
- , keyOf = require('./$.keyof')
2634
- , enumKeys = require('./$.enum-keys')
2635
- , assertObject = require('./$.assert').obj
2636
- , ObjectProto = Object.prototype
2637
- , DESC = $.DESC
2638
- , has = $.has
2639
- , $create = $.create
2640
- , getDesc = $.getDesc
2641
- , setDesc = $.setDesc
2642
- , desc = $.desc
2643
- , $names = require('./$.get-names')
2644
- , getNames = $names.get
2645
- , toObject = $.toObject
2646
- , $Symbol = $.g.Symbol
2647
- , setter = false
2648
- , TAG = uid('tag')
2649
- , HIDDEN = uid('hidden')
2650
- , _propertyIsEnumerable = {}.propertyIsEnumerable
3046
+ var $ = require('./$')
3047
+ , global = require('./$.global')
3048
+ , has = require('./$.has')
3049
+ , SUPPORT_DESC = require('./$.support-desc')
3050
+ , $def = require('./$.def')
3051
+ , $redef = require('./$.redef')
3052
+ , shared = require('./$.shared')
3053
+ , setTag = require('./$.tag')
3054
+ , uid = require('./$.uid')
3055
+ , wks = require('./$.wks')
3056
+ , keyOf = require('./$.keyof')
3057
+ , $names = require('./$.get-names')
3058
+ , enumKeys = require('./$.enum-keys')
3059
+ , anObject = require('./$.an-object')
3060
+ , toIObject = require('./$.to-iobject')
3061
+ , createDesc = require('./$.property-desc')
3062
+ , getDesc = $.getDesc
3063
+ , setDesc = $.setDesc
3064
+ , $create = $.create
3065
+ , getNames = $names.get
3066
+ , $Symbol = global.Symbol
3067
+ , setter = false
3068
+ , HIDDEN = wks('_hidden')
3069
+ , isEnum = $.isEnum
2651
3070
  , SymbolRegistry = shared('symbol-registry')
2652
- , AllSymbols = shared('symbols')
2653
- , useNative = $.isFunction($Symbol);
3071
+ , AllSymbols = shared('symbols')
3072
+ , useNative = typeof $Symbol == 'function'
3073
+ , ObjectProto = Object.prototype;
2654
3074
 
2655
- var setSymbolDesc = DESC ? function(){ // fallback for old Android
3075
+ var setSymbolDesc = SUPPORT_DESC ? function(){ // fallback for old Android
2656
3076
  try {
2657
3077
  return $create(setDesc({}, HIDDEN, {
2658
3078
  get: function(){
@@ -2669,32 +3089,33 @@ var setSymbolDesc = DESC ? function(){ // fallback for old Android
2669
3089
  }
2670
3090
  }() : setDesc;
2671
3091
 
2672
- function wrap(tag){
2673
- var sym = AllSymbols[tag] = $.set($create($Symbol.prototype), TAG, tag);
2674
- DESC && setter && setSymbolDesc(ObjectProto, tag, {
3092
+ var wrap = function(tag){
3093
+ var sym = AllSymbols[tag] = $create($Symbol.prototype);
3094
+ sym._k = tag;
3095
+ SUPPORT_DESC && setter && setSymbolDesc(ObjectProto, tag, {
2675
3096
  configurable: true,
2676
3097
  set: function(value){
2677
3098
  if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
2678
- setSymbolDesc(this, tag, desc(1, value));
3099
+ setSymbolDesc(this, tag, createDesc(1, value));
2679
3100
  }
2680
3101
  });
2681
3102
  return sym;
2682
- }
3103
+ };
2683
3104
 
2684
3105
  function defineProperty(it, key, D){
2685
3106
  if(D && has(AllSymbols, key)){
2686
3107
  if(!D.enumerable){
2687
- if(!has(it, HIDDEN))setDesc(it, HIDDEN, desc(1, {}));
3108
+ if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
2688
3109
  it[HIDDEN][key] = true;
2689
3110
  } else {
2690
3111
  if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
2691
- D = $create(D, {enumerable: desc(0, false)});
3112
+ D = $create(D, {enumerable: createDesc(0, false)});
2692
3113
  } return setSymbolDesc(it, key, D);
2693
3114
  } return setDesc(it, key, D);
2694
3115
  }
2695
3116
  function defineProperties(it, P){
2696
- assertObject(it);
2697
- var keys = enumKeys(P = toObject(P))
3117
+ anObject(it);
3118
+ var keys = enumKeys(P = toIObject(P))
2698
3119
  , i = 0
2699
3120
  , l = keys.length
2700
3121
  , key;
@@ -2705,17 +3126,17 @@ function create(it, P){
2705
3126
  return P === undefined ? $create(it) : defineProperties($create(it), P);
2706
3127
  }
2707
3128
  function propertyIsEnumerable(key){
2708
- var E = _propertyIsEnumerable.call(this, key);
3129
+ var E = isEnum.call(this, key);
2709
3130
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
2710
3131
  ? E : true;
2711
3132
  }
2712
3133
  function getOwnPropertyDescriptor(it, key){
2713
- var D = getDesc(it = toObject(it), key);
3134
+ var D = getDesc(it = toIObject(it), key);
2714
3135
  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
2715
3136
  return D;
2716
3137
  }
2717
3138
  function getOwnPropertyNames(it){
2718
- var names = getNames(toObject(it))
3139
+ var names = getNames(toIObject(it))
2719
3140
  , result = []
2720
3141
  , i = 0
2721
3142
  , key;
@@ -2723,7 +3144,7 @@ function getOwnPropertyNames(it){
2723
3144
  return result;
2724
3145
  }
2725
3146
  function getOwnPropertySymbols(it){
2726
- var names = getNames(toObject(it))
3147
+ var names = getNames(toIObject(it))
2727
3148
  , result = []
2728
3149
  , i = 0
2729
3150
  , key;
@@ -2738,17 +3159,20 @@ if(!useNative){
2738
3159
  return wrap(uid(arguments[0]));
2739
3160
  };
2740
3161
  $redef($Symbol.prototype, 'toString', function(){
2741
- return this[TAG];
3162
+ return this._k;
2742
3163
  });
2743
3164
 
2744
3165
  $.create = create;
2745
- $.setDesc = defineProperty;
3166
+ $.isEnum = propertyIsEnumerable;
2746
3167
  $.getDesc = getOwnPropertyDescriptor;
3168
+ $.setDesc = defineProperty;
2747
3169
  $.setDescs = defineProperties;
2748
3170
  $.getNames = $names.get = getOwnPropertyNames;
2749
3171
  $.getSymbols = getOwnPropertySymbols;
2750
3172
 
2751
- if($.DESC && $.FW)$redef(ObjectProto, 'propertyIsEnumerable', propertyIsEnumerable, true);
3173
+ if(SUPPORT_DESC && !require('./$.library')){
3174
+ $redef(ObjectProto, 'propertyIsEnumerable', propertyIsEnumerable, true);
3175
+ }
2752
3176
  }
2753
3177
 
2754
3178
  var symbolStatics = {
@@ -2780,7 +3204,7 @@ $.each.call((
2780
3204
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
2781
3205
  'species,split,toPrimitive,toStringTag,unscopables'
2782
3206
  ).split(','), function(it){
2783
- var sym = require('./$.wks')(it);
3207
+ var sym = wks(it);
2784
3208
  symbolStatics[it] = useNative ? sym : wrap(sym);
2785
3209
  }
2786
3210
  );
@@ -2811,18 +3235,17 @@ setTag($Symbol, 'Symbol');
2811
3235
  // 20.2.1.9 Math[@@toStringTag]
2812
3236
  setTag(Math, 'Math', true);
2813
3237
  // 24.3.3 JSON[@@toStringTag]
2814
- setTag($.g.JSON, 'JSON', true);
2815
- },{"./$":24,"./$.assert":5,"./$.cof":7,"./$.def":13,"./$.enum-keys":15,"./$.get-names":18,"./$.keyof":25,"./$.redef":29,"./$.shared":33,"./$.uid":40,"./$.wks":42}],76:[function(require,module,exports){
3238
+ setTag(global.JSON, 'JSON', true);
3239
+ },{"./$":42,"./$.an-object":4,"./$.def":16,"./$.enum-keys":19,"./$.get-names":25,"./$.global":26,"./$.has":27,"./$.keyof":43,"./$.library":44,"./$.property-desc":53,"./$.redef":54,"./$.shared":58,"./$.support-desc":67,"./$.tag":68,"./$.to-iobject":72,"./$.uid":75,"./$.wks":77}],164:[function(require,module,exports){
2816
3240
  'use strict';
2817
- var $ = require('./$')
2818
- , weak = require('./$.collection-weak')
2819
- , leakStore = weak.leakStore
2820
- , ID = weak.ID
2821
- , WEAK = weak.WEAK
2822
- , has = $.has
2823
- , isObject = $.isObject
3241
+ var $ = require('./$')
3242
+ , weak = require('./$.collection-weak')
3243
+ , isObject = require('./$.is-object')
3244
+ , has = require('./$.has')
3245
+ , frozenStore = weak.frozenStore
3246
+ , WEAK = weak.WEAK
2824
3247
  , isExtensible = Object.isExtensible || isObject
2825
- , tmp = {};
3248
+ , tmp = {};
2826
3249
 
2827
3250
  // 23.3 WeakMap Objects
2828
3251
  var $WeakMap = require('./$.collection')('WeakMap', function(get){
@@ -2831,8 +3254,8 @@ var $WeakMap = require('./$.collection')('WeakMap', function(get){
2831
3254
  // 23.3.3.3 WeakMap.prototype.get(key)
2832
3255
  get: function get(key){
2833
3256
  if(isObject(key)){
2834
- if(!isExtensible(key))return leakStore(this).get(key);
2835
- if(has(key, WEAK))return key[WEAK][this[ID]];
3257
+ if(!isExtensible(key))return frozenStore(this).get(key);
3258
+ if(has(key, WEAK))return key[WEAK][this._i];
2836
3259
  }
2837
3260
  },
2838
3261
  // 23.3.3.5 WeakMap.prototype.set(key, value)
@@ -2849,14 +3272,14 @@ if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
2849
3272
  require('./$.redef')(proto, key, function(a, b){
2850
3273
  // store frozen objects on leaky map
2851
3274
  if(isObject(a) && !isExtensible(a)){
2852
- var result = leakStore(this)[key](a, b);
3275
+ var result = frozenStore(this)[key](a, b);
2853
3276
  return key == 'set' ? this : result;
2854
3277
  // store all the rest on native weakmap
2855
3278
  } return method.call(this, a, b);
2856
3279
  });
2857
3280
  });
2858
3281
  }
2859
- },{"./$":24,"./$.collection":11,"./$.collection-weak":10,"./$.redef":29}],77:[function(require,module,exports){
3282
+ },{"./$":42,"./$.collection":13,"./$.collection-weak":12,"./$.has":27,"./$.is-object":34,"./$.redef":54}],165:[function(require,module,exports){
2860
3283
  'use strict';
2861
3284
  var weak = require('./$.collection-weak');
2862
3285
 
@@ -2869,7 +3292,7 @@ require('./$.collection')('WeakSet', function(get){
2869
3292
  return weak.def(this, value, true);
2870
3293
  }
2871
3294
  }, weak, false, true);
2872
- },{"./$.collection":11,"./$.collection-weak":10}],78:[function(require,module,exports){
3295
+ },{"./$.collection":13,"./$.collection-weak":12}],166:[function(require,module,exports){
2873
3296
  'use strict';
2874
3297
  var $def = require('./$.def')
2875
3298
  , $includes = require('./$.array-includes')(true);
@@ -2880,57 +3303,67 @@ $def($def.P, 'Array', {
2880
3303
  }
2881
3304
  });
2882
3305
  require('./$.unscope')('includes');
2883
- },{"./$.array-includes":3,"./$.def":13,"./$.unscope":41}],79:[function(require,module,exports){
3306
+ },{"./$.array-includes":5,"./$.def":16,"./$.unscope":76}],167:[function(require,module,exports){
2884
3307
  // https://github.com/DavidBruant/Map-Set.prototype.toJSON
2885
- require('./$.collection-to-json')('Map');
2886
- },{"./$.collection-to-json":9}],80:[function(require,module,exports){
3308
+ var $def = require('./$.def');
3309
+
3310
+ $def($def.P, 'Map', {toJSON: require('./$.collection-to-json')('Map')});
3311
+ },{"./$.collection-to-json":11,"./$.def":16}],168:[function(require,module,exports){
3312
+ // http://goo.gl/XkBrjD
3313
+ var $def = require('./$.def')
3314
+ , $entries = require('./$.object-to-array')(true);
3315
+
3316
+ $def($def.S, 'Object', {
3317
+ entries: function entries(it){
3318
+ return $entries(it);
3319
+ }
3320
+ });
3321
+ },{"./$.def":16,"./$.object-to-array":49}],169:[function(require,module,exports){
2887
3322
  // https://gist.github.com/WebReflection/9353781
2888
- var $ = require('./$')
2889
- , $def = require('./$.def')
2890
- , ownKeys = require('./$.own-keys');
3323
+ var $ = require('./$')
3324
+ , $def = require('./$.def')
3325
+ , ownKeys = require('./$.own-keys')
3326
+ , toIObject = require('./$.to-iobject')
3327
+ , createDesc = require('./$.property-desc');
2891
3328
 
2892
3329
  $def($def.S, 'Object', {
2893
3330
  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
2894
- var O = $.toObject(object)
2895
- , result = {};
2896
- $.each.call(ownKeys(O), function(key){
2897
- $.setDesc(result, key, $.desc(0, $.getDesc(O, key)));
2898
- });
2899
- return result;
3331
+ var O = toIObject(object)
3332
+ , setDesc = $.setDesc
3333
+ , getDesc = $.getDesc
3334
+ , keys = ownKeys(O)
3335
+ , result = {}
3336
+ , i = 0
3337
+ , key, D;
3338
+ while(keys.length > i){
3339
+ D = getDesc(O, key = keys[i++]);
3340
+ if(key in result)setDesc(result, key, createDesc(0, D));
3341
+ else result[key] = D;
3342
+ } return result;
2900
3343
  }
2901
3344
  });
2902
- },{"./$":24,"./$.def":13,"./$.own-keys":27}],81:[function(require,module,exports){
3345
+ },{"./$":42,"./$.def":16,"./$.own-keys":50,"./$.property-desc":53,"./$.to-iobject":72}],170:[function(require,module,exports){
2903
3346
  // http://goo.gl/XkBrjD
2904
- var $ = require('./$')
2905
- , $def = require('./$.def');
2906
- function createObjectToArray(isEntries){
2907
- return function(object){
2908
- var O = $.toObject(object)
2909
- , keys = $.getKeys(O)
2910
- , length = keys.length
2911
- , i = 0
2912
- , result = Array(length)
2913
- , key;
2914
- if(isEntries)while(length > i)result[i] = [key = keys[i++], O[key]];
2915
- else while(length > i)result[i] = O[keys[i++]];
2916
- return result;
2917
- };
2918
- }
3347
+ var $def = require('./$.def')
3348
+ , $values = require('./$.object-to-array')(false);
3349
+
2919
3350
  $def($def.S, 'Object', {
2920
- values: createObjectToArray(false),
2921
- entries: createObjectToArray(true)
3351
+ values: function values(it){
3352
+ return $values(it);
3353
+ }
2922
3354
  });
2923
- },{"./$":24,"./$.def":13}],82:[function(require,module,exports){
3355
+ },{"./$.def":16,"./$.object-to-array":49}],171:[function(require,module,exports){
2924
3356
  // https://github.com/benjamingr/RexExp.escape
2925
- var $def = require('./$.def');
2926
- $def($def.S, 'RegExp', {
2927
- escape: require('./$.replacer')(/[\\^$*+?.()|[\]{}]/g, '\\$&', true)
2928
- });
3357
+ var $def = require('./$.def')
3358
+ , $re = require('./$.replacer')(/[\\^$*+?.()|[\]{}]/g, '\\$&');
3359
+ $def($def.S, 'RegExp', {escape: function escape(it){ return $re(it); }});
2929
3360
 
2930
- },{"./$.def":13,"./$.replacer":30}],83:[function(require,module,exports){
3361
+ },{"./$.def":16,"./$.replacer":55}],172:[function(require,module,exports){
2931
3362
  // https://github.com/DavidBruant/Map-Set.prototype.toJSON
2932
- require('./$.collection-to-json')('Set');
2933
- },{"./$.collection-to-json":9}],84:[function(require,module,exports){
3363
+ var $def = require('./$.def');
3364
+
3365
+ $def($def.P, 'Set', {toJSON: require('./$.collection-to-json')('Set')});
3366
+ },{"./$.collection-to-json":11,"./$.def":16}],173:[function(require,module,exports){
2934
3367
  // https://github.com/mathiasbynens/String.prototype.at
2935
3368
  'use strict';
2936
3369
  var $def = require('./$.def')
@@ -2940,99 +3373,147 @@ $def($def.P, 'String', {
2940
3373
  return $at(this, pos);
2941
3374
  }
2942
3375
  });
2943
- },{"./$.def":13,"./$.string-at":35}],85:[function(require,module,exports){
3376
+ },{"./$.def":16,"./$.string-at":62}],174:[function(require,module,exports){
2944
3377
  'use strict';
2945
3378
  var $def = require('./$.def')
2946
3379
  , $pad = require('./$.string-pad');
2947
3380
  $def($def.P, 'String', {
2948
- lpad: function lpad(n){
2949
- return $pad(this, n, arguments[1], true);
3381
+ padLeft: function padLeft(maxLength /*, fillString = ' ' */){
3382
+ return $pad(this, maxLength, arguments[1], true);
2950
3383
  }
2951
3384
  });
2952
- },{"./$.def":13,"./$.string-pad":36}],86:[function(require,module,exports){
3385
+ },{"./$.def":16,"./$.string-pad":64}],175:[function(require,module,exports){
2953
3386
  'use strict';
2954
3387
  var $def = require('./$.def')
2955
3388
  , $pad = require('./$.string-pad');
2956
3389
  $def($def.P, 'String', {
2957
- rpad: function rpad(n){
2958
- return $pad(this, n, arguments[1], false);
3390
+ padRight: function padRight(maxLength /*, fillString = ' ' */){
3391
+ return $pad(this, maxLength, arguments[1], false);
2959
3392
  }
2960
3393
  });
2961
- },{"./$.def":13,"./$.string-pad":36}],87:[function(require,module,exports){
3394
+ },{"./$.def":16,"./$.string-pad":64}],176:[function(require,module,exports){
3395
+ 'use strict';
3396
+ // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
3397
+ require('./$.string-trim')('trimLeft', function($trim){
3398
+ return function trimLeft(){
3399
+ return $trim(this, 1);
3400
+ };
3401
+ });
3402
+ },{"./$.string-trim":66}],177:[function(require,module,exports){
3403
+ 'use strict';
3404
+ // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
3405
+ require('./$.string-trim')('trimRight', function($trim){
3406
+ return function trimRight(){
3407
+ return $trim(this, 2);
3408
+ };
3409
+ });
3410
+ },{"./$.string-trim":66}],178:[function(require,module,exports){
2962
3411
  // JavaScript 1.6 / Strawman array statics shim
2963
3412
  var $ = require('./$')
2964
3413
  , $def = require('./$.def')
2965
- , $Array = $.core.Array || Array
3414
+ , $Array = require('./$.core').Array || Array
2966
3415
  , statics = {};
2967
- function setStatics(keys, length){
3416
+ var setStatics = function(keys, length){
2968
3417
  $.each.call(keys.split(','), function(key){
2969
3418
  if(length == undefined && key in $Array)statics[key] = $Array[key];
2970
3419
  else if(key in [])statics[key] = require('./$.ctx')(Function.call, [][key], length);
2971
3420
  });
2972
- }
3421
+ };
2973
3422
  setStatics('pop,reverse,shift,keys,values,entries', 1);
2974
3423
  setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
2975
3424
  setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
2976
- 'reduce,reduceRight,copyWithin,fill,turn');
3425
+ 'reduce,reduceRight,copyWithin,fill');
2977
3426
  $def($def.S, 'Array', statics);
2978
- },{"./$":24,"./$.ctx":12,"./$.def":13}],88:[function(require,module,exports){
3427
+ },{"./$":42,"./$.core":14,"./$.ctx":15,"./$.def":16}],179:[function(require,module,exports){
2979
3428
  require('./es6.array.iterator');
2980
- var $ = require('./$')
2981
- , Iterators = require('./$.iter').Iterators
3429
+ var global = require('./$.global')
3430
+ , hide = require('./$.hide')
3431
+ , Iterators = require('./$.iterators')
2982
3432
  , ITERATOR = require('./$.wks')('iterator')
2983
- , ArrayValues = Iterators.Array
2984
- , NL = $.g.NodeList
2985
- , HTC = $.g.HTMLCollection
3433
+ , NL = global.NodeList
3434
+ , HTC = global.HTMLCollection
2986
3435
  , NLProto = NL && NL.prototype
2987
- , HTCProto = HTC && HTC.prototype;
2988
- if($.FW){
2989
- if(NL && !(ITERATOR in NLProto))$.hide(NLProto, ITERATOR, ArrayValues);
2990
- if(HTC && !(ITERATOR in HTCProto))$.hide(HTCProto, ITERATOR, ArrayValues);
2991
- }
2992
- Iterators.NodeList = Iterators.HTMLCollection = ArrayValues;
2993
- },{"./$":24,"./$.iter":23,"./$.wks":42,"./es6.array.iterator":49}],89:[function(require,module,exports){
3436
+ , HTCProto = HTC && HTC.prototype
3437
+ , ArrayValues = Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array;
3438
+ if(NL && !(ITERATOR in NLProto))hide(NLProto, ITERATOR, ArrayValues);
3439
+ if(HTC && !(ITERATOR in HTCProto))hide(HTCProto, ITERATOR, ArrayValues);
3440
+ },{"./$.global":26,"./$.hide":28,"./$.iterators":41,"./$.wks":77,"./es6.array.iterator":85}],180:[function(require,module,exports){
2994
3441
  var $def = require('./$.def')
2995
3442
  , $task = require('./$.task');
2996
3443
  $def($def.G + $def.B, {
2997
3444
  setImmediate: $task.set,
2998
3445
  clearImmediate: $task.clear
2999
3446
  });
3000
- },{"./$.def":13,"./$.task":38}],90:[function(require,module,exports){
3447
+ },{"./$.def":16,"./$.task":69}],181:[function(require,module,exports){
3001
3448
  // ie9- setTimeout & setInterval additional parameters fix
3002
- var $ = require('./$')
3003
- , $def = require('./$.def')
3004
- , invoke = require('./$.invoke')
3005
- , partial = require('./$.partial')
3006
- , navigator = $.g.navigator
3007
- , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
3008
- function wrap(set){
3449
+ var global = require('./$.global')
3450
+ , $def = require('./$.def')
3451
+ , invoke = require('./$.invoke')
3452
+ , partial = require('./$.partial')
3453
+ , navigator = global.navigator
3454
+ , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check
3455
+ var wrap = function(set){
3009
3456
  return MSIE ? function(fn, time /*, ...args */){
3010
3457
  return set(invoke(
3011
3458
  partial,
3012
3459
  [].slice.call(arguments, 2),
3013
- $.isFunction(fn) ? fn : Function(fn)
3460
+ typeof fn == 'function' ? fn : Function(fn)
3014
3461
  ), time);
3015
3462
  } : set;
3016
- }
3463
+ };
3017
3464
  $def($def.G + $def.B + $def.F * MSIE, {
3018
- setTimeout: wrap($.g.setTimeout),
3019
- setInterval: wrap($.g.setInterval)
3465
+ setTimeout: wrap(global.setTimeout),
3466
+ setInterval: wrap(global.setInterval)
3020
3467
  });
3021
- },{"./$":24,"./$.def":13,"./$.invoke":19,"./$.partial":28}],91:[function(require,module,exports){
3468
+ },{"./$.def":16,"./$.global":26,"./$.invoke":30,"./$.partial":51}],182:[function(require,module,exports){
3022
3469
  require('./modules/es5');
3023
3470
  require('./modules/es6.symbol');
3024
3471
  require('./modules/es6.object.assign');
3025
3472
  require('./modules/es6.object.is');
3026
3473
  require('./modules/es6.object.set-prototype-of');
3027
3474
  require('./modules/es6.object.to-string');
3028
- require('./modules/es6.object.statics-accept-primitives');
3475
+ require('./modules/es6.object.freeze');
3476
+ require('./modules/es6.object.seal');
3477
+ require('./modules/es6.object.prevent-extensions');
3478
+ require('./modules/es6.object.is-frozen');
3479
+ require('./modules/es6.object.is-sealed');
3480
+ require('./modules/es6.object.is-extensible');
3481
+ require('./modules/es6.object.get-own-property-descriptor');
3482
+ require('./modules/es6.object.get-prototype-of');
3483
+ require('./modules/es6.object.keys');
3484
+ require('./modules/es6.object.get-own-property-names');
3029
3485
  require('./modules/es6.function.name');
3030
3486
  require('./modules/es6.function.has-instance');
3031
3487
  require('./modules/es6.number.constructor');
3032
- require('./modules/es6.number.statics');
3033
- require('./modules/es6.math');
3488
+ require('./modules/es6.number.epsilon');
3489
+ require('./modules/es6.number.is-finite');
3490
+ require('./modules/es6.number.is-integer');
3491
+ require('./modules/es6.number.is-nan');
3492
+ require('./modules/es6.number.is-safe-integer');
3493
+ require('./modules/es6.number.max-safe-integer');
3494
+ require('./modules/es6.number.min-safe-integer');
3495
+ require('./modules/es6.number.parse-float');
3496
+ require('./modules/es6.number.parse-int');
3497
+ require('./modules/es6.math.acosh');
3498
+ require('./modules/es6.math.asinh');
3499
+ require('./modules/es6.math.atanh');
3500
+ require('./modules/es6.math.cbrt');
3501
+ require('./modules/es6.math.clz32');
3502
+ require('./modules/es6.math.cosh');
3503
+ require('./modules/es6.math.expm1');
3504
+ require('./modules/es6.math.fround');
3505
+ require('./modules/es6.math.hypot');
3506
+ require('./modules/es6.math.imul');
3507
+ require('./modules/es6.math.log10');
3508
+ require('./modules/es6.math.log1p');
3509
+ require('./modules/es6.math.log2');
3510
+ require('./modules/es6.math.sign');
3511
+ require('./modules/es6.math.sinh');
3512
+ require('./modules/es6.math.tanh');
3513
+ require('./modules/es6.math.trunc');
3034
3514
  require('./modules/es6.string.from-code-point');
3035
3515
  require('./modules/es6.string.raw');
3516
+ require('./modules/es6.string.trim');
3036
3517
  require('./modules/es6.string.iterator');
3037
3518
  require('./modules/es6.string.code-point-at');
3038
3519
  require('./modules/es6.string.ends-with');
@@ -3047,29 +3528,49 @@ require('./modules/es6.array.copy-within');
3047
3528
  require('./modules/es6.array.fill');
3048
3529
  require('./modules/es6.array.find');
3049
3530
  require('./modules/es6.array.find-index');
3050
- require('./modules/es6.regexp');
3531
+ require('./modules/es6.regexp.constructor');
3532
+ require('./modules/es6.regexp.flags');
3533
+ require('./modules/es6.regexp.match');
3534
+ require('./modules/es6.regexp.replace');
3535
+ require('./modules/es6.regexp.search');
3536
+ require('./modules/es6.regexp.split');
3051
3537
  require('./modules/es6.promise');
3052
3538
  require('./modules/es6.map');
3053
3539
  require('./modules/es6.set');
3054
3540
  require('./modules/es6.weak-map');
3055
3541
  require('./modules/es6.weak-set');
3056
- require('./modules/es6.reflect');
3542
+ require('./modules/es6.reflect.apply');
3543
+ require('./modules/es6.reflect.construct');
3544
+ require('./modules/es6.reflect.define-property');
3545
+ require('./modules/es6.reflect.delete-property');
3546
+ require('./modules/es6.reflect.enumerate');
3547
+ require('./modules/es6.reflect.get');
3548
+ require('./modules/es6.reflect.get-own-property-descriptor');
3549
+ require('./modules/es6.reflect.get-prototype-of');
3550
+ require('./modules/es6.reflect.has');
3551
+ require('./modules/es6.reflect.is-extensible');
3552
+ require('./modules/es6.reflect.own-keys');
3553
+ require('./modules/es6.reflect.prevent-extensions');
3554
+ require('./modules/es6.reflect.set');
3555
+ require('./modules/es6.reflect.set-prototype-of');
3057
3556
  require('./modules/es7.array.includes');
3058
3557
  require('./modules/es7.string.at');
3059
- require('./modules/es7.string.lpad');
3060
- require('./modules/es7.string.rpad');
3558
+ require('./modules/es7.string.pad-left');
3559
+ require('./modules/es7.string.pad-right');
3560
+ require('./modules/es7.string.trim-left');
3561
+ require('./modules/es7.string.trim-right');
3061
3562
  require('./modules/es7.regexp.escape');
3062
3563
  require('./modules/es7.object.get-own-property-descriptors');
3063
- require('./modules/es7.object.to-array');
3564
+ require('./modules/es7.object.values');
3565
+ require('./modules/es7.object.entries');
3064
3566
  require('./modules/es7.map.to-json');
3065
3567
  require('./modules/es7.set.to-json');
3066
3568
  require('./modules/js.array.statics');
3067
3569
  require('./modules/web.timers');
3068
3570
  require('./modules/web.immediate');
3069
3571
  require('./modules/web.dom.iterable');
3070
- module.exports = require('./modules/$').core;
3071
-
3072
- },{"./modules/$":24,"./modules/es5":43,"./modules/es6.array.copy-within":44,"./modules/es6.array.fill":45,"./modules/es6.array.find":47,"./modules/es6.array.find-index":46,"./modules/es6.array.from":48,"./modules/es6.array.iterator":49,"./modules/es6.array.of":50,"./modules/es6.array.species":51,"./modules/es6.function.has-instance":52,"./modules/es6.function.name":53,"./modules/es6.map":54,"./modules/es6.math":55,"./modules/es6.number.constructor":56,"./modules/es6.number.statics":57,"./modules/es6.object.assign":58,"./modules/es6.object.is":59,"./modules/es6.object.set-prototype-of":60,"./modules/es6.object.statics-accept-primitives":61,"./modules/es6.object.to-string":62,"./modules/es6.promise":63,"./modules/es6.reflect":64,"./modules/es6.regexp":65,"./modules/es6.set":66,"./modules/es6.string.code-point-at":67,"./modules/es6.string.ends-with":68,"./modules/es6.string.from-code-point":69,"./modules/es6.string.includes":70,"./modules/es6.string.iterator":71,"./modules/es6.string.raw":72,"./modules/es6.string.repeat":73,"./modules/es6.string.starts-with":74,"./modules/es6.symbol":75,"./modules/es6.weak-map":76,"./modules/es6.weak-set":77,"./modules/es7.array.includes":78,"./modules/es7.map.to-json":79,"./modules/es7.object.get-own-property-descriptors":80,"./modules/es7.object.to-array":81,"./modules/es7.regexp.escape":82,"./modules/es7.set.to-json":83,"./modules/es7.string.at":84,"./modules/es7.string.lpad":85,"./modules/es7.string.rpad":86,"./modules/js.array.statics":87,"./modules/web.dom.iterable":88,"./modules/web.immediate":89,"./modules/web.timers":90}],92:[function(require,module,exports){
3572
+ module.exports = require('./modules/$.core');
3573
+ },{"./modules/$.core":14,"./modules/es5":79,"./modules/es6.array.copy-within":80,"./modules/es6.array.fill":81,"./modules/es6.array.find":83,"./modules/es6.array.find-index":82,"./modules/es6.array.from":84,"./modules/es6.array.iterator":85,"./modules/es6.array.of":86,"./modules/es6.array.species":87,"./modules/es6.function.has-instance":88,"./modules/es6.function.name":89,"./modules/es6.map":90,"./modules/es6.math.acosh":91,"./modules/es6.math.asinh":92,"./modules/es6.math.atanh":93,"./modules/es6.math.cbrt":94,"./modules/es6.math.clz32":95,"./modules/es6.math.cosh":96,"./modules/es6.math.expm1":97,"./modules/es6.math.fround":98,"./modules/es6.math.hypot":99,"./modules/es6.math.imul":100,"./modules/es6.math.log10":101,"./modules/es6.math.log1p":102,"./modules/es6.math.log2":103,"./modules/es6.math.sign":104,"./modules/es6.math.sinh":105,"./modules/es6.math.tanh":106,"./modules/es6.math.trunc":107,"./modules/es6.number.constructor":108,"./modules/es6.number.epsilon":109,"./modules/es6.number.is-finite":110,"./modules/es6.number.is-integer":111,"./modules/es6.number.is-nan":112,"./modules/es6.number.is-safe-integer":113,"./modules/es6.number.max-safe-integer":114,"./modules/es6.number.min-safe-integer":115,"./modules/es6.number.parse-float":116,"./modules/es6.number.parse-int":117,"./modules/es6.object.assign":118,"./modules/es6.object.freeze":119,"./modules/es6.object.get-own-property-descriptor":120,"./modules/es6.object.get-own-property-names":121,"./modules/es6.object.get-prototype-of":122,"./modules/es6.object.is":126,"./modules/es6.object.is-extensible":123,"./modules/es6.object.is-frozen":124,"./modules/es6.object.is-sealed":125,"./modules/es6.object.keys":127,"./modules/es6.object.prevent-extensions":128,"./modules/es6.object.seal":129,"./modules/es6.object.set-prototype-of":130,"./modules/es6.object.to-string":131,"./modules/es6.promise":132,"./modules/es6.reflect.apply":133,"./modules/es6.reflect.construct":134,"./modules/es6.reflect.define-property":135,"./modules/es6.reflect.delete-property":136,"./modules/es6.reflect.enumerate":137,"./modules/es6.reflect.get":140,"./modules/es6.reflect.get-own-property-descriptor":138,"./modules/es6.reflect.get-prototype-of":139,"./modules/es6.reflect.has":141,"./modules/es6.reflect.is-extensible":142,"./modules/es6.reflect.own-keys":143,"./modules/es6.reflect.prevent-extensions":144,"./modules/es6.reflect.set":146,"./modules/es6.reflect.set-prototype-of":145,"./modules/es6.regexp.constructor":147,"./modules/es6.regexp.flags":148,"./modules/es6.regexp.match":149,"./modules/es6.regexp.replace":150,"./modules/es6.regexp.search":151,"./modules/es6.regexp.split":152,"./modules/es6.set":153,"./modules/es6.string.code-point-at":154,"./modules/es6.string.ends-with":155,"./modules/es6.string.from-code-point":156,"./modules/es6.string.includes":157,"./modules/es6.string.iterator":158,"./modules/es6.string.raw":159,"./modules/es6.string.repeat":160,"./modules/es6.string.starts-with":161,"./modules/es6.string.trim":162,"./modules/es6.symbol":163,"./modules/es6.weak-map":164,"./modules/es6.weak-set":165,"./modules/es7.array.includes":166,"./modules/es7.map.to-json":167,"./modules/es7.object.entries":168,"./modules/es7.object.get-own-property-descriptors":169,"./modules/es7.object.values":170,"./modules/es7.regexp.escape":171,"./modules/es7.set.to-json":172,"./modules/es7.string.at":173,"./modules/es7.string.pad-left":174,"./modules/es7.string.pad-right":175,"./modules/es7.string.trim-left":176,"./modules/es7.string.trim-right":177,"./modules/js.array.statics":178,"./modules/web.dom.iterable":179,"./modules/web.immediate":180,"./modules/web.timers":181}],183:[function(require,module,exports){
3073
3574
  (function (process,global){
3074
3575
  /**
3075
3576
  * Copyright (c) 2014, Facebook, Inc.