babel-source 5.0.12 → 5.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -87,6 +87,37 @@
87
87
  };
88
88
  })();
89
89
 
90
+ babelHelpers.createDecoratedObject = function (descriptors) {
91
+ var target = {};
92
+
93
+ for (var i = 0; i < descriptors.length; i++) {
94
+ var descriptor = descriptors[i];
95
+ var decorators = descriptor.decorators;
96
+ var key = descriptor.key;
97
+ delete descriptor.key;
98
+ delete descriptor.decorators;
99
+ descriptor.enumerable = true;
100
+ descriptor.configurable = true;
101
+ if ("value" in descriptor) descriptor.writable = true;
102
+
103
+ if (decorators) {
104
+ for (var f = 0; f < decorators.length; f++) {
105
+ var decorator = decorators[f];
106
+
107
+ if (typeof decorator === "function") {
108
+ descriptor = decorator(target, key, descriptor) || descriptor;
109
+ } else {
110
+ throw new TypeError("The decorator for method " + descriptor.key + " is of the invalid type " + typeof decorator);
111
+ }
112
+ }
113
+ }
114
+
115
+ Object.defineProperty(target, key, descriptor);
116
+ }
117
+
118
+ return target;
119
+ };
120
+
90
121
  babelHelpers.taggedTemplateLiteral = function (strings, raw) {
91
122
  return Object.freeze(Object.defineProperties(strings, {
92
123
  raw: {
@@ -9,9 +9,9 @@ global._babelPolyfill = true;
9
9
 
10
10
  require("core-js/shim");
11
11
 
12
- require("regenerator-babel/runtime");
12
+ require("regenerator/runtime");
13
13
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
14
- },{"core-js/shim":70,"regenerator-babel/runtime":71}],2:[function(require,module,exports){
14
+ },{"core-js/shim":72,"regenerator/runtime":73}],2:[function(require,module,exports){
15
15
  'use strict';
16
16
  // false -> Array#indexOf
17
17
  // true -> Array#includes
@@ -30,7 +30,7 @@ module.exports = function(IS_INCLUDES){
30
30
  } return !IS_INCLUDES && -1;
31
31
  };
32
32
  };
33
- },{"./$":15}],3:[function(require,module,exports){
33
+ },{"./$":16}],3:[function(require,module,exports){
34
34
  'use strict';
35
35
  // 0 -> Array#forEach
36
36
  // 1 -> Array#map
@@ -72,7 +72,7 @@ module.exports = function(TYPE){
72
72
  return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
73
73
  };
74
74
  };
75
- },{"./$":15,"./$.ctx":10}],4:[function(require,module,exports){
75
+ },{"./$":16,"./$.ctx":10}],4:[function(require,module,exports){
76
76
  var $ = require('./$');
77
77
  function assert(condition, msg1, msg2){
78
78
  if(!condition)throw TypeError(msg2 ? msg1 + msg2 : msg1);
@@ -91,10 +91,12 @@ assert.inst = function(it, Constructor, name){
91
91
  return it;
92
92
  };
93
93
  module.exports = assert;
94
- },{"./$":15}],5:[function(require,module,exports){
94
+ },{"./$":16}],5:[function(require,module,exports){
95
95
  var $ = require('./$');
96
96
  // 19.1.2.1 Object.assign(target, source, ...)
97
- module.exports = Object.assign || function(target, source){ // eslint-disable-line no-unused-vars
97
+ /*eslint-disable no-unused-vars */
98
+ module.exports = Object.assign || function assign(target, source){
99
+ /*eslint-enable no-unused-vars */
98
100
  var T = Object($.assertDefined(target))
99
101
  , l = arguments.length
100
102
  , i = 1;
@@ -108,7 +110,7 @@ module.exports = Object.assign || function(target, source){ // eslint-disable-li
108
110
  }
109
111
  return T;
110
112
  };
111
- },{"./$":15}],6:[function(require,module,exports){
113
+ },{"./$":16}],6:[function(require,module,exports){
112
114
  var $ = require('./$')
113
115
  , TAG = require('./$.wks')('toStringTag')
114
116
  , toString = {}.toString;
@@ -124,7 +126,7 @@ cof.set = function(it, tag, stat){
124
126
  if(it && !$.has(it = stat ? it : it.prototype, TAG))$.hide(it, TAG, tag);
125
127
  };
126
128
  module.exports = cof;
127
- },{"./$":15,"./$.wks":26}],7:[function(require,module,exports){
129
+ },{"./$":16,"./$.wks":27}],7:[function(require,module,exports){
128
130
  'use strict';
129
131
  var $ = require('./$')
130
132
  , ctx = require('./$.ctx')
@@ -182,7 +184,7 @@ module.exports = {
182
184
  $.mix(C.prototype, {
183
185
  // 23.1.3.1 Map.prototype.clear()
184
186
  // 23.2.3.2 Set.prototype.clear()
185
- clear: function(){
187
+ clear: function clear(){
186
188
  for(var that = this, data = that[O1], entry = that[FIRST]; entry; entry = entry.n){
187
189
  entry.r = true;
188
190
  if(entry.p)entry.p = entry.p.n = undefined;
@@ -210,7 +212,7 @@ module.exports = {
210
212
  },
211
213
  // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
212
214
  // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
213
- forEach: function(callbackfn /*, that = undefined */){
215
+ forEach: function forEach(callbackfn /*, that = undefined */){
214
216
  var f = ctx(callbackfn, arguments[1], 3)
215
217
  , entry;
216
218
  while(entry = entry ? entry.n : this[FIRST]){
@@ -221,7 +223,7 @@ module.exports = {
221
223
  },
222
224
  // 23.1.3.7 Map.prototype.has(key)
223
225
  // 23.2.3.7 Set.prototype.has(value)
224
- has: function(key){
226
+ has: function has(key){
225
227
  return !!getEntry(this, key);
226
228
  }
227
229
  });
@@ -279,13 +281,13 @@ module.exports = {
279
281
  return step(0, [entry.k, entry.v]);
280
282
  }
281
283
  };
282
- },{"./$":15,"./$.assert":4,"./$.ctx":10,"./$.iter":14,"./$.uid":24}],8:[function(require,module,exports){
284
+ },{"./$":16,"./$.assert":4,"./$.ctx":10,"./$.iter":15,"./$.uid":25}],8:[function(require,module,exports){
283
285
  'use strict';
284
286
  var $ = require('./$')
285
287
  , safe = require('./$.uid').safe
286
288
  , assert = require('./$.assert')
287
289
  , forOf = require('./$.iter').forOf
288
- , has = $.has
290
+ , _has = $.has
289
291
  , isObject = $.isObject
290
292
  , hide = $.hide
291
293
  , isFrozen = Object.isFrozen || $.core.Object.isFrozen
@@ -339,14 +341,14 @@ module.exports = {
339
341
  'delete': function(key){
340
342
  if(!isObject(key))return false;
341
343
  if(isFrozen(key))return leakStore(this)['delete'](key);
342
- return has(key, WEAK) && has(key[WEAK], this[ID]) && delete key[WEAK][this[ID]];
344
+ return _has(key, WEAK) && _has(key[WEAK], this[ID]) && delete key[WEAK][this[ID]];
343
345
  },
344
346
  // 23.3.3.4 WeakMap.prototype.has(key)
345
347
  // 23.4.3.4 WeakSet.prototype.has(value)
346
- has: function(key){
348
+ has: function has(key){
347
349
  if(!isObject(key))return false;
348
350
  if(isFrozen(key))return leakStore(this).has(key);
349
- return has(key, WEAK) && has(key[WEAK], this[ID]);
351
+ return _has(key, WEAK) && _has(key[WEAK], this[ID]);
350
352
  }
351
353
  });
352
354
  return C;
@@ -355,7 +357,7 @@ module.exports = {
355
357
  if(isFrozen(assert.obj(key))){
356
358
  leakStore(that).set(key, value);
357
359
  } else {
358
- has(key, WEAK) || hide(key, WEAK, {});
360
+ _has(key, WEAK) || hide(key, WEAK, {});
359
361
  key[WEAK][that[ID]] = value;
360
362
  } return that;
361
363
  },
@@ -363,7 +365,7 @@ module.exports = {
363
365
  WEAK: WEAK,
364
366
  ID: ID
365
367
  };
366
- },{"./$":15,"./$.array-methods":3,"./$.assert":4,"./$.iter":14,"./$.uid":24}],9:[function(require,module,exports){
368
+ },{"./$":16,"./$.array-methods":3,"./$.assert":4,"./$.iter":15,"./$.uid":25}],9:[function(require,module,exports){
367
369
  'use strict';
368
370
  var $ = require('./$')
369
371
  , $def = require('./$.def')
@@ -392,9 +394,7 @@ module.exports = function(NAME, methods, common, IS_MAP, isWeak){
392
394
  , chain = inst[ADDER](isWeak ? {} : -0, 1)
393
395
  , buggyZero;
394
396
  // wrap for init collections from iterable
395
- if($iter.fail(function(iter){
396
- new C(iter); // eslint-disable-line no-new
397
- }) || $iter.DANGER_CLOSING){
397
+ if(!require('./$.iter-detect')(function(iter){ new C(iter); })){ // eslint-disable-line no-new
398
398
  C = function(iterable){
399
399
  assertInstance(this, C, NAME);
400
400
  var that = new Base;
@@ -433,7 +433,7 @@ module.exports = function(NAME, methods, common, IS_MAP, isWeak){
433
433
 
434
434
  return C;
435
435
  };
436
- },{"./$":15,"./$.assert":4,"./$.cof":6,"./$.def":11,"./$.iter":14,"./$.species":21}],10:[function(require,module,exports){
436
+ },{"./$":16,"./$.assert":4,"./$.cof":6,"./$.def":11,"./$.iter":15,"./$.iter-detect":14,"./$.species":22}],10:[function(require,module,exports){
437
437
  // Optional / simple context binding
438
438
  var assertFunction = require('./$.assert').fn;
439
439
  module.exports = function(fn, that, length){
@@ -496,7 +496,7 @@ function $def(type, name, source){
496
496
  }
497
497
  }
498
498
  module.exports = $def;
499
- },{"./$":15}],12:[function(require,module,exports){
499
+ },{"./$":16}],12:[function(require,module,exports){
500
500
  module.exports = function($){
501
501
  $.FW = true;
502
502
  $.path = $.g;
@@ -523,6 +523,26 @@ module.exports = function(fn, args, that){
523
523
  } return fn.apply(that, args);
524
524
  };
525
525
  },{}],14:[function(require,module,exports){
526
+ var SYMBOL_ITERATOR = require('./$.wks')('iterator')
527
+ , SAFE_CLOSING = false;
528
+ try {
529
+ var riter = [7][SYMBOL_ITERATOR]();
530
+ riter['return'] = function(){ SAFE_CLOSING = true; };
531
+ Array.from(riter, function(){ throw 2; });
532
+ } catch(e){ /* empty */ }
533
+ module.exports = function(exec){
534
+ if(!SAFE_CLOSING)return false;
535
+ var safe = false;
536
+ try {
537
+ var arr = [7]
538
+ , iter = arr[SYMBOL_ITERATOR]();
539
+ iter.next = function(){ safe = true; };
540
+ arr[SYMBOL_ITERATOR] = function(){ return iter; };
541
+ exec(arr);
542
+ } catch(e){ /* empty */ }
543
+ return safe;
544
+ };
545
+ },{"./$.wks":27}],15:[function(require,module,exports){
526
546
  'use strict';
527
547
  var $ = require('./$')
528
548
  , ctx = require('./$.ctx')
@@ -578,34 +598,8 @@ function stepCall(iterator, fn, value, entries){
578
598
  throw e;
579
599
  }
580
600
  }
581
- var DANGER_CLOSING = true;
582
- !function(){
583
- try {
584
- var iter = [1].keys();
585
- iter['return'] = function(){ DANGER_CLOSING = false; };
586
- Array.from(iter, function(){ throw 2; });
587
- } catch(e){ /* empty */ }
588
- }();
589
601
  var $iter = module.exports = {
590
602
  BUGGY: BUGGY,
591
- DANGER_CLOSING: DANGER_CLOSING,
592
- fail: function(exec){
593
- var fail = true;
594
- try {
595
- var arr = [[{}, 1]]
596
- , iter = arr[SYMBOL_ITERATOR]()
597
- , next = iter.next;
598
- iter.next = function(){
599
- fail = false;
600
- return next.call(this);
601
- };
602
- arr[SYMBOL_ITERATOR] = function(){
603
- return iter;
604
- };
605
- exec(arr);
606
- } catch(e){ /* empty */ }
607
- return fail;
608
- },
609
603
  Iterators: Iterators,
610
604
  prototype: IteratorPrototype,
611
605
  step: function(done, value){
@@ -662,7 +656,7 @@ var $iter = module.exports = {
662
656
  }
663
657
  }
664
658
  };
665
- },{"./$":15,"./$.assert":4,"./$.cof":6,"./$.ctx":10,"./$.def":11,"./$.wks":26}],15:[function(require,module,exports){
659
+ },{"./$":16,"./$.assert":4,"./$.cof":6,"./$.ctx":10,"./$.def":11,"./$.wks":27}],16:[function(require,module,exports){
666
660
  'use strict';
667
661
  var global = typeof self != 'undefined' ? self : Function('return this')()
668
662
  , core = {}
@@ -764,7 +758,7 @@ var $ = module.exports = require('./$.fw')({
764
758
  });
765
759
  if(typeof __e != 'undefined')__e = core;
766
760
  if(typeof __g != 'undefined')__g = global;
767
- },{"./$.fw":12}],16:[function(require,module,exports){
761
+ },{"./$.fw":12}],17:[function(require,module,exports){
768
762
  var $ = require('./$');
769
763
  module.exports = function(object, el){
770
764
  var O = $.toObject(object)
@@ -774,14 +768,14 @@ module.exports = function(object, el){
774
768
  , key;
775
769
  while(length > index)if(O[key = keys[index++]] === el)return key;
776
770
  };
777
- },{"./$":15}],17:[function(require,module,exports){
771
+ },{"./$":16}],18:[function(require,module,exports){
778
772
  var $ = require('./$')
779
773
  , assertObject = require('./$.assert').obj;
780
- module.exports = function(it){
774
+ module.exports = function ownKeys(it){
781
775
  assertObject(it);
782
776
  return $.getSymbols ? $.getNames(it).concat($.getSymbols(it)) : $.getNames(it);
783
777
  };
784
- },{"./$":15,"./$.assert":4}],18:[function(require,module,exports){
778
+ },{"./$":16,"./$.assert":4}],19:[function(require,module,exports){
785
779
  'use strict';
786
780
  var $ = require('./$')
787
781
  , invoke = require('./$.invoke')
@@ -805,7 +799,7 @@ module.exports = function(/* ...pargs */){
805
799
  return invoke(fn, args, that);
806
800
  };
807
801
  };
808
- },{"./$":15,"./$.assert":4,"./$.invoke":13}],19:[function(require,module,exports){
802
+ },{"./$":16,"./$.assert":4,"./$.invoke":13}],20:[function(require,module,exports){
809
803
  'use strict';
810
804
  module.exports = function(regExp, replace, isStatic){
811
805
  var replacer = replace === Object(replace) ? function(part){
@@ -815,27 +809,33 @@ module.exports = function(regExp, replace, isStatic){
815
809
  return String(isStatic ? it : this).replace(regExp, replacer);
816
810
  };
817
811
  };
818
- },{}],20:[function(require,module,exports){
819
- // Works with __proto__ only. Old v8 can't works with null proto objects.
812
+ },{}],21:[function(require,module,exports){
813
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
820
814
  /*eslint-disable no-proto */
821
815
  var $ = require('./$')
822
816
  , assert = require('./$.assert');
823
- module.exports = Object.setPrototypeOf || ('__proto__' in {} // eslint-disable-line
824
- ? function(buggy, set){
825
- try {
826
- set = require('./$.ctx')(Function.call, $.getDesc(Object.prototype, '__proto__').set, 2);
827
- set({}, []);
828
- } catch(e){ buggy = true; }
829
- return function(O, proto){
830
- assert.obj(O);
831
- assert(proto === null || $.isObject(proto), proto, ": can't set as prototype!");
832
- if(buggy)O.__proto__ = proto;
833
- else set(O, proto);
834
- return O;
835
- };
836
- }()
837
- : undefined);
838
- },{"./$":15,"./$.assert":4,"./$.ctx":10}],21:[function(require,module,exports){
817
+ function check(O, proto){
818
+ assert.obj(O);
819
+ assert(proto === null || $.isObject(proto), proto, ": can't set as prototype!");
820
+ }
821
+ module.exports = {
822
+ set: Object.setPrototypeOf || ('__proto__' in {} // eslint-disable-line
823
+ ? function(buggy, set){
824
+ try {
825
+ set = require('./$.ctx')(Function.call, $.getDesc(Object.prototype, '__proto__').set, 2);
826
+ set({}, []);
827
+ } catch(e){ buggy = true; }
828
+ return function setPrototypeOf(O, proto){
829
+ check(O, proto);
830
+ if(buggy)O.__proto__ = proto;
831
+ else set(O, proto);
832
+ return O;
833
+ };
834
+ }()
835
+ : undefined),
836
+ check: check
837
+ };
838
+ },{"./$":16,"./$.assert":4,"./$.ctx":10}],22:[function(require,module,exports){
839
839
  var $ = require('./$');
840
840
  module.exports = function(C){
841
841
  if($.DESC && $.FW)$.setDesc(C, require('./$.wks')('species'), {
@@ -843,7 +843,7 @@ module.exports = function(C){
843
843
  get: $.that
844
844
  });
845
845
  };
846
- },{"./$":15,"./$.wks":26}],22:[function(require,module,exports){
846
+ },{"./$":16,"./$.wks":27}],23:[function(require,module,exports){
847
847
  'use strict';
848
848
  // true -> String#at
849
849
  // false -> String#codePointAt
@@ -862,7 +862,7 @@ module.exports = function(TO_STRING){
862
862
  : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
863
863
  };
864
864
  };
865
- },{"./$":15}],23:[function(require,module,exports){
865
+ },{"./$":16}],24:[function(require,module,exports){
866
866
  'use strict';
867
867
  var $ = require('./$')
868
868
  , ctx = require('./$.ctx')
@@ -870,6 +870,9 @@ var $ = require('./$')
870
870
  , invoke = require('./$.invoke')
871
871
  , global = $.g
872
872
  , isFunction = $.isFunction
873
+ , html = $.html
874
+ , document = global.document
875
+ , process = global.process
873
876
  , setTask = global.setImmediate
874
877
  , clearTask = global.clearImmediate
875
878
  , postMessage = global.postMessage
@@ -905,13 +908,13 @@ if(!isFunction(setTask) || !isFunction(clearTask)){
905
908
  delete queue[id];
906
909
  };
907
910
  // Node.js 0.8-
908
- if(cof(global.process) == 'process'){
911
+ if(cof(process) == 'process'){
909
912
  defer = function(id){
910
- global.process.nextTick(ctx(run, id, 1));
913
+ process.nextTick(ctx(run, id, 1));
911
914
  };
912
915
  // Modern browsers, skip implementation for WebWorkers
913
916
  // IE8 has postMessage, but it's sync & typeof its postMessage is object
914
- } else if(addEventListener && isFunction(postMessage) && !$.g.importScripts){
917
+ } else if(addEventListener && isFunction(postMessage) && !global.importScripts){
915
918
  defer = function(id){
916
919
  postMessage(id, '*');
917
920
  };
@@ -923,10 +926,10 @@ if(!isFunction(setTask) || !isFunction(clearTask)){
923
926
  channel.port1.onmessage = listner;
924
927
  defer = ctx(port.postMessage, port, 1);
925
928
  // IE8-
926
- } else if($.g.document && ONREADYSTATECHANGE in document.createElement('script')){
929
+ } else if(document && ONREADYSTATECHANGE in document.createElement('script')){
927
930
  defer = function(id){
928
- $.html.appendChild(document.createElement('script'))[ONREADYSTATECHANGE] = function(){
929
- $.html.removeChild(this);
931
+ html.appendChild(document.createElement('script'))[ONREADYSTATECHANGE] = function(){
932
+ html.removeChild(this);
930
933
  run.call(id);
931
934
  };
932
935
  };
@@ -941,14 +944,14 @@ module.exports = {
941
944
  set: setTask,
942
945
  clear: clearTask
943
946
  };
944
- },{"./$":15,"./$.cof":6,"./$.ctx":10,"./$.invoke":13}],24:[function(require,module,exports){
947
+ },{"./$":16,"./$.cof":6,"./$.ctx":10,"./$.invoke":13}],25:[function(require,module,exports){
945
948
  var sid = 0;
946
949
  function uid(key){
947
950
  return 'Symbol(' + key + ')_' + (++sid + Math.random()).toString(36);
948
951
  }
949
952
  uid.safe = require('./$').g.Symbol || uid;
950
953
  module.exports = uid;
951
- },{"./$":15}],25:[function(require,module,exports){
954
+ },{"./$":16}],26:[function(require,module,exports){
952
955
  // 22.1.3.31 Array.prototype[@@unscopables]
953
956
  var $ = require('./$')
954
957
  , UNSCOPABLES = require('./$.wks')('unscopables');
@@ -956,14 +959,14 @@ if($.FW && !(UNSCOPABLES in []))$.hide(Array.prototype, UNSCOPABLES, {});
956
959
  module.exports = function(key){
957
960
  if($.FW)[][UNSCOPABLES][key] = true;
958
961
  };
959
- },{"./$":15,"./$.wks":26}],26:[function(require,module,exports){
962
+ },{"./$":16,"./$.wks":27}],27:[function(require,module,exports){
960
963
  var global = require('./$').g
961
964
  , store = {};
962
965
  module.exports = function(name){
963
966
  return store[name] || (store[name] =
964
967
  global.Symbol && global.Symbol[name] || require('./$.uid').safe('Symbol.' + name));
965
968
  };
966
- },{"./$":15,"./$.uid":24}],27:[function(require,module,exports){
969
+ },{"./$":16,"./$.uid":25}],28:[function(require,module,exports){
967
970
  var $ = require('./$')
968
971
  , cof = require('./$.cof')
969
972
  , $def = require('./$.def')
@@ -1037,6 +1040,7 @@ var createDict = function(){
1037
1040
  // Thrash, waste and sodomy: IE GC bug
1038
1041
  var iframe = document.createElement('iframe')
1039
1042
  , i = keysLen1
1043
+ , gt = '>'
1040
1044
  , iframeDocument;
1041
1045
  iframe.style.display = 'none';
1042
1046
  $.html.appendChild(iframe);
@@ -1045,7 +1049,7 @@ var createDict = function(){
1045
1049
  // html.removeChild(iframe);
1046
1050
  iframeDocument = iframe.contentWindow.document;
1047
1051
  iframeDocument.open();
1048
- iframeDocument.write('<script>document.F=Object</script>');
1052
+ iframeDocument.write('<script>document.F=Object</script' + gt);
1049
1053
  iframeDocument.close();
1050
1054
  createDict = iframeDocument.F;
1051
1055
  while(i--)delete createDict.prototype[keys1[i]];
@@ -1221,14 +1225,14 @@ if(classof(function(){ return arguments; }()) == 'Object')cof.classof = function
1221
1225
  var tag = classof(it);
1222
1226
  return tag == 'Object' && isFunction(it.callee) ? 'Arguments' : tag;
1223
1227
  };
1224
- },{"./$":15,"./$.array-includes":2,"./$.array-methods":3,"./$.assert":4,"./$.cof":6,"./$.def":11,"./$.invoke":13,"./$.replacer":19,"./$.uid":24}],28:[function(require,module,exports){
1228
+ },{"./$":16,"./$.array-includes":2,"./$.array-methods":3,"./$.assert":4,"./$.cof":6,"./$.def":11,"./$.invoke":13,"./$.replacer":20,"./$.uid":25}],29:[function(require,module,exports){
1225
1229
  'use strict';
1226
1230
  var $ = require('./$')
1227
1231
  , $def = require('./$.def')
1228
1232
  , toIndex = $.toIndex;
1229
1233
  $def($def.P, 'Array', {
1230
1234
  // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
1231
- copyWithin: function(target/* = 0 */, start /* = 0, end = @length */){
1235
+ copyWithin: function copyWithin(target/* = 0 */, start /* = 0, end = @length */){
1232
1236
  var O = Object($.assertDefined(this))
1233
1237
  , len = $.toLength(O.length)
1234
1238
  , to = toIndex(target, len)
@@ -1251,14 +1255,14 @@ $def($def.P, 'Array', {
1251
1255
  }
1252
1256
  });
1253
1257
  require('./$.unscope')('copyWithin');
1254
- },{"./$":15,"./$.def":11,"./$.unscope":25}],29:[function(require,module,exports){
1258
+ },{"./$":16,"./$.def":11,"./$.unscope":26}],30:[function(require,module,exports){
1255
1259
  'use strict';
1256
1260
  var $ = require('./$')
1257
1261
  , $def = require('./$.def')
1258
1262
  , toIndex = $.toIndex;
1259
1263
  $def($def.P, 'Array', {
1260
1264
  // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
1261
- fill: function(value /*, start = 0, end = @length */){
1265
+ fill: function fill(value /*, start = 0, end = @length */){
1262
1266
  var O = Object($.assertDefined(this))
1263
1267
  , length = $.toLength(O.length)
1264
1268
  , index = toIndex(arguments[1], length)
@@ -1269,29 +1273,29 @@ $def($def.P, 'Array', {
1269
1273
  }
1270
1274
  });
1271
1275
  require('./$.unscope')('fill');
1272
- },{"./$":15,"./$.def":11,"./$.unscope":25}],30:[function(require,module,exports){
1276
+ },{"./$":16,"./$.def":11,"./$.unscope":26}],31:[function(require,module,exports){
1273
1277
  var $def = require('./$.def');
1274
1278
  $def($def.P, 'Array', {
1275
1279
  // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
1276
1280
  findIndex: require('./$.array-methods')(6)
1277
1281
  });
1278
1282
  require('./$.unscope')('findIndex');
1279
- },{"./$.array-methods":3,"./$.def":11,"./$.unscope":25}],31:[function(require,module,exports){
1283
+ },{"./$.array-methods":3,"./$.def":11,"./$.unscope":26}],32:[function(require,module,exports){
1280
1284
  var $def = require('./$.def');
1281
1285
  $def($def.P, 'Array', {
1282
1286
  // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
1283
1287
  find: require('./$.array-methods')(5)
1284
1288
  });
1285
1289
  require('./$.unscope')('find');
1286
- },{"./$.array-methods":3,"./$.def":11,"./$.unscope":25}],32:[function(require,module,exports){
1290
+ },{"./$.array-methods":3,"./$.def":11,"./$.unscope":26}],33:[function(require,module,exports){
1287
1291
  var $ = require('./$')
1288
1292
  , ctx = require('./$.ctx')
1289
1293
  , $def = require('./$.def')
1290
1294
  , $iter = require('./$.iter')
1291
1295
  , stepCall = $iter.stepCall;
1292
- $def($def.S + $def.F * $iter.DANGER_CLOSING, 'Array', {
1296
+ $def($def.S + $def.F * !require('./$.iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
1293
1297
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
1294
- from: function(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
1298
+ from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
1295
1299
  var O = Object($.assertDefined(arrayLike))
1296
1300
  , mapfn = arguments[1]
1297
1301
  , mapping = mapfn !== undefined
@@ -1316,7 +1320,7 @@ $def($def.S + $def.F * $iter.DANGER_CLOSING, 'Array', {
1316
1320
  return result;
1317
1321
  }
1318
1322
  });
1319
- },{"./$":15,"./$.ctx":10,"./$.def":11,"./$.iter":14}],33:[function(require,module,exports){
1323
+ },{"./$":16,"./$.ctx":10,"./$.def":11,"./$.iter":15,"./$.iter-detect":14}],34:[function(require,module,exports){
1320
1324
  var $ = require('./$')
1321
1325
  , setUnscope = require('./$.unscope')
1322
1326
  , ITER = require('./$.uid').safe('iter')
@@ -1351,11 +1355,11 @@ Iterators.Arguments = Iterators.Array;
1351
1355
  setUnscope('keys');
1352
1356
  setUnscope('values');
1353
1357
  setUnscope('entries');
1354
- },{"./$":15,"./$.iter":14,"./$.uid":24,"./$.unscope":25}],34:[function(require,module,exports){
1358
+ },{"./$":16,"./$.iter":15,"./$.uid":25,"./$.unscope":26}],35:[function(require,module,exports){
1355
1359
  var $def = require('./$.def');
1356
1360
  $def($def.S, 'Array', {
1357
1361
  // 22.1.2.3 Array.of( ...items)
1358
- of: function(/* ...args */){
1362
+ of: function of(/* ...args */){
1359
1363
  var index = 0
1360
1364
  , length = arguments.length
1361
1365
  // strange IE quirks mode bug -> use typeof instead of isFunction
@@ -1365,9 +1369,9 @@ $def($def.S, 'Array', {
1365
1369
  return result;
1366
1370
  }
1367
1371
  });
1368
- },{"./$.def":11}],35:[function(require,module,exports){
1372
+ },{"./$.def":11}],36:[function(require,module,exports){
1369
1373
  require('./$.species')(Array);
1370
- },{"./$.species":21}],36:[function(require,module,exports){
1374
+ },{"./$.species":22}],37:[function(require,module,exports){
1371
1375
  'use strict';
1372
1376
  var $ = require('./$')
1373
1377
  , NAME = 'name'
@@ -1386,23 +1390,23 @@ NAME in FunctionProto || $.FW && $.DESC && setDesc(FunctionProto, NAME, {
1386
1390
  $.has(this, NAME) || setDesc(this, NAME, $.desc(0, value));
1387
1391
  }
1388
1392
  });
1389
- },{"./$":15}],37:[function(require,module,exports){
1393
+ },{"./$":16}],38:[function(require,module,exports){
1390
1394
  'use strict';
1391
1395
  var strong = require('./$.collection-strong');
1392
1396
 
1393
1397
  // 23.1 Map Objects
1394
1398
  require('./$.collection')('Map', {
1395
1399
  // 23.1.3.6 Map.prototype.get(key)
1396
- get: function(key){
1400
+ get: function get(key){
1397
1401
  var entry = strong.getEntry(this, key);
1398
1402
  return entry && entry.v;
1399
1403
  },
1400
1404
  // 23.1.3.9 Map.prototype.set(key, value)
1401
- set: function(key, value){
1405
+ set: function set(key, value){
1402
1406
  return strong.def(this, key === 0 ? 0 : key, value);
1403
1407
  }
1404
1408
  }, strong, true);
1405
- },{"./$.collection":9,"./$.collection-strong":7}],38:[function(require,module,exports){
1409
+ },{"./$.collection":9,"./$.collection-strong":7}],39:[function(require,module,exports){
1406
1410
  var Infinity = 1 / 0
1407
1411
  , $def = require('./$.def')
1408
1412
  , E = Math.E
@@ -1413,10 +1417,18 @@ var Infinity = 1 / 0
1413
1417
  , sqrt = Math.sqrt
1414
1418
  , ceil = Math.ceil
1415
1419
  , floor = Math.floor
1416
- , sign = Math.sign || function(x){
1417
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
1418
- };
1420
+ , EPSILON = pow(2, -52)
1421
+ , EPSILON32 = pow(2, -23)
1422
+ , MAX32 = pow(2, 127) * (2 - EPSILON32)
1423
+ , MIN32 = pow(2, -126);
1424
+ function roundTiesToEven(n){
1425
+ return n + 1 / EPSILON - 1 / EPSILON;
1426
+ }
1419
1427
 
1428
+ // 20.2.2.28 Math.sign(x)
1429
+ function sign(x){
1430
+ return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
1431
+ }
1420
1432
  // 20.2.2.5 Math.asinh(x)
1421
1433
  function asinh(x){
1422
1434
  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));
@@ -1428,36 +1440,42 @@ function expm1(x){
1428
1440
 
1429
1441
  $def($def.S, 'Math', {
1430
1442
  // 20.2.2.3 Math.acosh(x)
1431
- acosh: function(x){
1443
+ acosh: function acosh(x){
1432
1444
  return (x = +x) < 1 ? NaN : isFinite(x) ? log(x / E + sqrt(x + 1) * sqrt(x - 1) / E) + 1 : x;
1433
1445
  },
1434
1446
  // 20.2.2.5 Math.asinh(x)
1435
1447
  asinh: asinh,
1436
1448
  // 20.2.2.7 Math.atanh(x)
1437
- atanh: function(x){
1449
+ atanh: function atanh(x){
1438
1450
  return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;
1439
1451
  },
1440
1452
  // 20.2.2.9 Math.cbrt(x)
1441
- cbrt: function(x){
1453
+ cbrt: function cbrt(x){
1442
1454
  return sign(x = +x) * pow(abs(x), 1 / 3);
1443
1455
  },
1444
1456
  // 20.2.2.11 Math.clz32(x)
1445
- clz32: function(x){
1446
- return (x >>>= 0) ? 32 - x.toString(2).length : 32;
1457
+ clz32: function clz32(x){
1458
+ return (x >>>= 0) ? 31 - floor(log(x + 0.5) * Math.LOG2E) : 32;
1447
1459
  },
1448
1460
  // 20.2.2.12 Math.cosh(x)
1449
- cosh: function(x){
1461
+ cosh: function cosh(x){
1450
1462
  return (exp(x = +x) + exp(-x)) / 2;
1451
1463
  },
1452
1464
  // 20.2.2.14 Math.expm1(x)
1453
1465
  expm1: expm1,
1454
1466
  // 20.2.2.16 Math.fround(x)
1455
- // TODO: fallback for IE9-
1456
- fround: function(x){
1457
- return new Float32Array([x])[0];
1467
+ fround: function fround(x){
1468
+ var $abs = abs(x)
1469
+ , $sign = sign(x)
1470
+ , a, result;
1471
+ if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
1472
+ a = (1 + EPSILON32 / EPSILON) * $abs;
1473
+ result = a - (a - $abs);
1474
+ if(result > MAX32 || result != result)return $sign * Infinity;
1475
+ return $sign * result;
1458
1476
  },
1459
1477
  // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
1460
- hypot: function(value1, value2){ // eslint-disable-line no-unused-vars
1478
+ hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
1461
1479
  var sum = 0
1462
1480
  , len1 = arguments.length
1463
1481
  , len2 = len1
@@ -1474,7 +1492,7 @@ $def($def.S, 'Math', {
1474
1492
  return larg * sqrt(sum);
1475
1493
  },
1476
1494
  // 20.2.2.18 Math.imul(x, y)
1477
- imul: function(x, y){
1495
+ imul: function imul(x, y){
1478
1496
  var UInt16 = 0xffff
1479
1497
  , xn = +x
1480
1498
  , yn = +y
@@ -1483,35 +1501,35 @@ $def($def.S, 'Math', {
1483
1501
  return 0 | xl * yl + ((UInt16 & xn >>> 16) * yl + xl * (UInt16 & yn >>> 16) << 16 >>> 0);
1484
1502
  },
1485
1503
  // 20.2.2.20 Math.log1p(x)
1486
- log1p: function(x){
1504
+ log1p: function log1p(x){
1487
1505
  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
1488
1506
  },
1489
1507
  // 20.2.2.21 Math.log10(x)
1490
- log10: function(x){
1508
+ log10: function log10(x){
1491
1509
  return log(x) / Math.LN10;
1492
1510
  },
1493
1511
  // 20.2.2.22 Math.log2(x)
1494
- log2: function(x){
1512
+ log2: function log2(x){
1495
1513
  return log(x) / Math.LN2;
1496
1514
  },
1497
1515
  // 20.2.2.28 Math.sign(x)
1498
1516
  sign: sign,
1499
1517
  // 20.2.2.30 Math.sinh(x)
1500
- sinh: function(x){
1518
+ sinh: function sinh(x){
1501
1519
  return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);
1502
1520
  },
1503
1521
  // 20.2.2.33 Math.tanh(x)
1504
- tanh: function(x){
1522
+ tanh: function tanh(x){
1505
1523
  var a = expm1(x = +x)
1506
1524
  , b = expm1(-x);
1507
1525
  return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
1508
1526
  },
1509
1527
  // 20.2.2.34 Math.trunc(x)
1510
- trunc: function(it){
1528
+ trunc: function trunc(it){
1511
1529
  return (it > 0 ? floor : ceil)(it);
1512
1530
  }
1513
1531
  });
1514
- },{"./$.def":11}],39:[function(require,module,exports){
1532
+ },{"./$.def":11}],40:[function(require,module,exports){
1515
1533
  'use strict';
1516
1534
  var $ = require('./$')
1517
1535
  , isObject = $.isObject
@@ -1556,30 +1574,31 @@ if($.FW && !(Number('0o1') && Number('0b1'))){
1556
1574
  proto.constructor = Number;
1557
1575
  $.hide($.g, NUMBER, Number);
1558
1576
  }
1559
- },{"./$":15}],40:[function(require,module,exports){
1577
+ },{"./$":16}],41:[function(require,module,exports){
1560
1578
  var $ = require('./$')
1561
1579
  , $def = require('./$.def')
1562
1580
  , abs = Math.abs
1563
1581
  , floor = Math.floor
1582
+ , _isFinite = $.g.isFinite
1564
1583
  , MAX_SAFE_INTEGER = 0x1fffffffffffff; // pow(2, 53) - 1 == 9007199254740991;
1565
1584
  function isInteger(it){
1566
- return !$.isObject(it) && isFinite(it) && floor(it) === it;
1585
+ return !$.isObject(it) && _isFinite(it) && floor(it) === it;
1567
1586
  }
1568
1587
  $def($def.S, 'Number', {
1569
1588
  // 20.1.2.1 Number.EPSILON
1570
1589
  EPSILON: Math.pow(2, -52),
1571
1590
  // 20.1.2.2 Number.isFinite(number)
1572
- isFinite: function(it){
1573
- return typeof it == 'number' && isFinite(it);
1591
+ isFinite: function isFinite(it){
1592
+ return typeof it == 'number' && _isFinite(it);
1574
1593
  },
1575
1594
  // 20.1.2.3 Number.isInteger(number)
1576
1595
  isInteger: isInteger,
1577
1596
  // 20.1.2.4 Number.isNaN(number)
1578
- isNaN: function(number){
1597
+ isNaN: function isNaN(number){
1579
1598
  return number != number;
1580
1599
  },
1581
1600
  // 20.1.2.5 Number.isSafeInteger(number)
1582
- isSafeInteger: function(number){
1601
+ isSafeInteger: function isSafeInteger(number){
1583
1602
  return isInteger(number) && abs(number) <= MAX_SAFE_INTEGER;
1584
1603
  },
1585
1604
  // 20.1.2.6 Number.MAX_SAFE_INTEGER
@@ -1591,23 +1610,23 @@ $def($def.S, 'Number', {
1591
1610
  // 20.1.2.13 Number.parseInt(string, radix)
1592
1611
  parseInt: parseInt
1593
1612
  });
1594
- },{"./$":15,"./$.def":11}],41:[function(require,module,exports){
1613
+ },{"./$":16,"./$.def":11}],42:[function(require,module,exports){
1595
1614
  // 19.1.3.1 Object.assign(target, source)
1596
1615
  var $def = require('./$.def');
1597
1616
  $def($def.S, 'Object', {assign: require('./$.assign')});
1598
- },{"./$.assign":5,"./$.def":11}],42:[function(require,module,exports){
1617
+ },{"./$.assign":5,"./$.def":11}],43:[function(require,module,exports){
1599
1618
  // 19.1.3.10 Object.is(value1, value2)
1600
1619
  var $def = require('./$.def');
1601
1620
  $def($def.S, 'Object', {
1602
- is: function(x, y){
1621
+ is: function is(x, y){
1603
1622
  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
1604
1623
  }
1605
1624
  });
1606
- },{"./$.def":11}],43:[function(require,module,exports){
1625
+ },{"./$.def":11}],44:[function(require,module,exports){
1607
1626
  // 19.1.3.19 Object.setPrototypeOf(O, proto)
1608
1627
  var $def = require('./$.def');
1609
- $def($def.S, 'Object', {setPrototypeOf: require('./$.set-proto')});
1610
- },{"./$.def":11,"./$.set-proto":20}],44:[function(require,module,exports){
1628
+ $def($def.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});
1629
+ },{"./$.def":11,"./$.set-proto":21}],45:[function(require,module,exports){
1611
1630
  var $ = require('./$')
1612
1631
  , $def = require('./$.def')
1613
1632
  , isObject = $.isObject
@@ -1622,9 +1641,9 @@ function wrapObjectMethod(METHOD, MODE){
1622
1641
  return isObject(it) ? fn(it) : true;
1623
1642
  } : MODE == 3 ? function(it){
1624
1643
  return isObject(it) ? fn(it) : false;
1625
- } : MODE == 4 ? function(it, key){
1644
+ } : MODE == 4 ? function getOwnPropertyDescriptor(it, key){
1626
1645
  return fn(toObject(it), key);
1627
- } : MODE == 5 ? function(it){
1646
+ } : MODE == 5 ? function getPrototypeOf(it){
1628
1647
  return fn(Object($.assertDefined(it)));
1629
1648
  } : function(it){
1630
1649
  return fn(toObject(it));
@@ -1646,17 +1665,17 @@ wrapObjectMethod('getOwnPropertyDescriptor', 4);
1646
1665
  wrapObjectMethod('getPrototypeOf', 5);
1647
1666
  wrapObjectMethod('keys');
1648
1667
  wrapObjectMethod('getOwnPropertyNames');
1649
- },{"./$":15,"./$.def":11}],45:[function(require,module,exports){
1668
+ },{"./$":16,"./$.def":11}],46:[function(require,module,exports){
1650
1669
  'use strict';
1651
1670
  // 19.1.3.6 Object.prototype.toString()
1652
1671
  var $ = require('./$')
1653
1672
  , cof = require('./$.cof')
1654
1673
  , tmp = {};
1655
1674
  tmp[require('./$.wks')('toStringTag')] = 'z';
1656
- if($.FW && cof(tmp) != 'z')$.hide(Object.prototype, 'toString', function(){
1675
+ if($.FW && cof(tmp) != 'z')$.hide(Object.prototype, 'toString', function toString(){
1657
1676
  return '[object ' + cof.classof(this) + ']';
1658
1677
  });
1659
- },{"./$":15,"./$.cof":6,"./$.wks":26}],46:[function(require,module,exports){
1678
+ },{"./$":16,"./$.cof":6,"./$.wks":27}],47:[function(require,module,exports){
1660
1679
  'use strict';
1661
1680
  var $ = require('./$')
1662
1681
  , ctx = require('./$.ctx')
@@ -1671,106 +1690,108 @@ var $ = require('./$')
1671
1690
  , global = $.g
1672
1691
  , process = global.process
1673
1692
  , asap = process && process.nextTick || require('./$.task').set
1674
- , Promise = global[PROMISE]
1675
- , Base = Promise
1693
+ , P = global[PROMISE]
1694
+ , Base = P
1676
1695
  , isFunction = $.isFunction
1677
1696
  , isObject = $.isObject
1678
1697
  , assertFunction = assert.fn
1679
1698
  , assertObject = assert.obj
1680
1699
  , test;
1700
+
1701
+ // helpers
1681
1702
  function getConstructor(C){
1682
1703
  var S = assertObject(C)[SPECIES];
1683
1704
  return S != undefined ? S : C;
1684
1705
  }
1685
- isFunction(Promise) && isFunction(Promise.resolve)
1686
- && Promise.resolve(test = new Promise(function(){})) == test
1687
- || function(){
1688
- function isThenable(it){
1689
- var then;
1690
- if(isObject(it))then = it.then;
1691
- return isFunction(then) ? then : false;
1692
- }
1693
- function handledRejectionOrHasOnRejected(promise){
1694
- var record = promise[RECORD]
1695
- , chain = record.c
1696
- , i = 0
1697
- , react;
1698
- if(record.h)return true;
1699
- while(chain.length > i){
1700
- react = chain[i++];
1701
- if(react.fail || handledRejectionOrHasOnRejected(react.P))return true;
1702
- }
1703
- }
1704
- function notify(record, isReject){
1705
- var chain = record.c;
1706
- if(isReject || chain.length)asap(function(){
1707
- var promise = record.p
1708
- , value = record.v
1709
- , ok = record.s == 1
1710
- , i = 0;
1711
- if(isReject && !handledRejectionOrHasOnRejected(promise)){
1712
- setTimeout(function(){
1713
- if(!handledRejectionOrHasOnRejected(promise)){
1714
- if(cof(process) == 'process'){
1715
- process.emit('unhandledRejection', value, promise);
1716
- } else if(global.console && isFunction(console.error)){
1717
- console.error('Unhandled promise rejection', value);
1718
- }
1706
+ function isThenable(it){
1707
+ var then;
1708
+ if(isObject(it))then = it.then;
1709
+ return isFunction(then) ? then : false;
1710
+ }
1711
+ function isUnhandled(promise){
1712
+ var record = promise[RECORD]
1713
+ , chain = record.c
1714
+ , i = 0
1715
+ , react;
1716
+ if(record.h)return false;
1717
+ while(chain.length > i){
1718
+ react = chain[i++];
1719
+ if(react.fail || !isUnhandled(react.P))return false;
1720
+ } return true;
1721
+ }
1722
+ function notify(record, isReject){
1723
+ var chain = record.c;
1724
+ if(isReject || chain.length)asap(function(){
1725
+ var promise = record.p
1726
+ , value = record.v
1727
+ , ok = record.s == 1
1728
+ , i = 0;
1729
+ if(isReject && isUnhandled(promise)){
1730
+ setTimeout(function(){
1731
+ if(isUnhandled(promise)){
1732
+ if(cof(process) == 'process'){
1733
+ process.emit('unhandledRejection', value, promise);
1734
+ } else if(global.console && isFunction(console.error)){
1735
+ console.error('Unhandled promise rejection', value);
1719
1736
  }
1720
- }, 1e3);
1721
- } else while(chain.length > i)!function(react){
1722
- var cb = ok ? react.ok : react.fail
1723
- , ret, then;
1724
- try {
1725
- if(cb){
1726
- if(!ok)record.h = true;
1727
- ret = cb === true ? value : cb(value);
1728
- if(ret === react.P){
1729
- react.rej(TypeError(PROMISE + '-chain cycle'));
1730
- } else if(then = isThenable(ret)){
1731
- then.call(ret, react.res, react.rej);
1732
- } else react.res(ret);
1733
- } else react.rej(value);
1734
- } catch(err){
1735
- react.rej(err);
1736
1737
  }
1737
- }(chain[i++]);
1738
- chain.length = 0;
1739
- });
1740
- }
1741
- function reject(value){
1742
- var record = this;
1743
- if(record.d)return;
1744
- record.d = true;
1745
- record = record.r || record; // unwrap
1746
- record.v = value;
1747
- record.s = 2;
1748
- notify(record, true);
1749
- }
1750
- function resolve(value){
1751
- var record = this
1752
- , then, wrapper;
1753
- if(record.d)return;
1754
- record.d = true;
1755
- record = record.r || record; // unwrap
1756
- try {
1757
- if(then = isThenable(value)){
1758
- wrapper = {r: record, d: false}; // wrap
1759
- then.call(value, ctx(resolve, wrapper, 1), ctx(reject, wrapper, 1));
1760
- } else {
1761
- record.v = value;
1762
- record.s = 1;
1763
- notify(record);
1738
+ }, 1e3);
1739
+ } else while(chain.length > i)!function(react){
1740
+ var cb = ok ? react.ok : react.fail
1741
+ , ret, then;
1742
+ try {
1743
+ if(cb){
1744
+ if(!ok)record.h = true;
1745
+ ret = cb === true ? value : cb(value);
1746
+ if(ret === react.P){
1747
+ react.rej(TypeError(PROMISE + '-chain cycle'));
1748
+ } else if(then = isThenable(ret)){
1749
+ then.call(ret, react.res, react.rej);
1750
+ } else react.res(ret);
1751
+ } else react.rej(value);
1752
+ } catch(err){
1753
+ react.rej(err);
1764
1754
  }
1765
- } catch(err){
1766
- reject.call(wrapper || {r: record, d: false}, err); // wrap
1755
+ }(chain[i++]);
1756
+ chain.length = 0;
1757
+ });
1758
+ }
1759
+ function $reject(value){
1760
+ var record = this;
1761
+ if(record.d)return;
1762
+ record.d = true;
1763
+ record = record.r || record; // unwrap
1764
+ record.v = value;
1765
+ record.s = 2;
1766
+ notify(record, true);
1767
+ }
1768
+ function $resolve(value){
1769
+ var record = this
1770
+ , then, wrapper;
1771
+ if(record.d)return;
1772
+ record.d = true;
1773
+ record = record.r || record; // unwrap
1774
+ try {
1775
+ if(then = isThenable(value)){
1776
+ wrapper = {r: record, d: false}; // wrap
1777
+ then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
1778
+ } else {
1779
+ record.v = value;
1780
+ record.s = 1;
1781
+ notify(record);
1767
1782
  }
1783
+ } catch(err){
1784
+ $reject.call(wrapper || {r: record, d: false}, err); // wrap
1768
1785
  }
1786
+ }
1787
+
1788
+ // constructor polyfill
1789
+ if(!(isFunction(P) && isFunction(P.resolve) && P.resolve(test = new P(function(){})) == test)){
1769
1790
  // 25.4.3.1 Promise(executor)
1770
- Promise = function(executor){
1791
+ P = function Promise(executor){
1771
1792
  assertFunction(executor);
1772
1793
  var record = {
1773
- p: assert.inst(this, Promise, PROMISE), // <- promise
1794
+ p: assert.inst(this, P, PROMISE), // <- promise
1774
1795
  c: [], // <- chain
1775
1796
  s: 0, // <- state
1776
1797
  d: false, // <- done
@@ -1779,83 +1800,87 @@ isFunction(Promise) && isFunction(Promise.resolve)
1779
1800
  };
1780
1801
  $.hide(this, RECORD, record);
1781
1802
  try {
1782
- executor(ctx(resolve, record, 1), ctx(reject, record, 1));
1803
+ executor(ctx($resolve, record, 1), ctx($reject, record, 1));
1783
1804
  } catch(err){
1784
- reject.call(record, err);
1805
+ $reject.call(record, err);
1785
1806
  }
1786
1807
  };
1787
- $.mix(Promise.prototype, {
1808
+ $.mix(P.prototype, {
1788
1809
  // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
1789
- then: function(onFulfilled, onRejected){
1810
+ then: function then(onFulfilled, onRejected){
1790
1811
  var S = assertObject(assertObject(this).constructor)[SPECIES];
1791
1812
  var react = {
1792
1813
  ok: isFunction(onFulfilled) ? onFulfilled : true,
1793
1814
  fail: isFunction(onRejected) ? onRejected : false
1794
1815
  };
1795
- var P = react.P = new (S != undefined ? S : Promise)(function(res, rej){
1816
+ var promise = react.P = new (S != undefined ? S : P)(function(res, rej){
1796
1817
  react.res = assertFunction(res);
1797
1818
  react.rej = assertFunction(rej);
1798
1819
  });
1799
1820
  var record = this[RECORD];
1800
1821
  record.c.push(react);
1801
1822
  record.s && notify(record);
1802
- return P;
1823
+ return promise;
1803
1824
  },
1804
1825
  // 25.4.5.1 Promise.prototype.catch(onRejected)
1805
1826
  'catch': function(onRejected){
1806
1827
  return this.then(undefined, onRejected);
1807
1828
  }
1808
1829
  });
1809
- }();
1810
- $def($def.G + $def.W + $def.F * (Promise != Base), {Promise: Promise});
1830
+ }
1831
+
1832
+ // export
1833
+ $def($def.G + $def.W + $def.F * (P != Base), {Promise: P});
1834
+ cof.set(P, PROMISE);
1835
+ require('./$.species')(P);
1836
+
1837
+ // statics
1811
1838
  $def($def.S, PROMISE, {
1812
1839
  // 25.4.4.5 Promise.reject(r)
1813
- reject: function(r){
1840
+ reject: function reject(r){
1814
1841
  return new (getConstructor(this))(function(res, rej){
1815
1842
  rej(r);
1816
1843
  });
1817
1844
  },
1818
1845
  // 25.4.4.6 Promise.resolve(x)
1819
- resolve: function(x){
1846
+ resolve: function resolve(x){
1820
1847
  return isObject(x) && RECORD in x && $.getProto(x) === this.prototype
1821
1848
  ? x : new (getConstructor(this))(function(res){
1822
1849
  res(x);
1823
1850
  });
1824
1851
  }
1825
1852
  });
1826
- $def($def.S + $def.F * ($iter.fail(function(iter){
1827
- Promise.all(iter)['catch'](function(){});
1828
- }) || $iter.DANGER_CLOSING), PROMISE, {
1853
+ $def($def.S + $def.F * !require('./$.iter-detect')(function(iter){
1854
+ P.all(iter)['catch'](function(){});
1855
+ }), PROMISE, {
1829
1856
  // 25.4.4.1 Promise.all(iterable)
1830
- all: function(iterable){
1857
+ all: function all(iterable){
1831
1858
  var C = getConstructor(this)
1832
1859
  , values = [];
1833
- return new C(function(resolve, reject){
1860
+ return new C(function(res, rej){
1834
1861
  forOf(iterable, false, values.push, values);
1835
1862
  var remaining = values.length
1836
1863
  , results = Array(remaining);
1837
1864
  if(remaining)$.each.call(values, function(promise, index){
1838
1865
  C.resolve(promise).then(function(value){
1839
1866
  results[index] = value;
1840
- --remaining || resolve(results);
1841
- }, reject);
1867
+ --remaining || res(results);
1868
+ }, rej);
1842
1869
  });
1843
- else resolve(results);
1870
+ else res(results);
1844
1871
  });
1845
1872
  },
1846
1873
  // 25.4.4.4 Promise.race(iterable)
1847
- race: function(iterable){
1874
+ race: function race(iterable){
1848
1875
  var C = getConstructor(this);
1849
- return new C(function(resolve, reject){
1876
+ return new C(function(res, rej){
1850
1877
  forOf(iterable, false, function(promise){
1851
- C.resolve(promise).then(resolve, reject);
1878
+ C.resolve(promise).then(res, rej);
1852
1879
  });
1853
1880
  });
1854
1881
  }
1855
- });
1856
- cof.set(Promise, PROMISE);
1857
- require('./$.species')(Promise);
1858
- },{"./$":15,"./$.assert":4,"./$.cof":6,"./$.ctx":10,"./$.def":11,"./$.iter":14,"./$.species":21,"./$.task":23,"./$.uid":24,"./$.wks":26}],47:[function(require,module,exports){
1882
+ });
1883
+ },{"./$":16,"./$.assert":4,"./$.cof":6,"./$.ctx":10,"./$.def":11,"./$.iter":15,"./$.iter-detect":14,"./$.species":22,"./$.task":24,"./$.uid":25,"./$.wks":27}],48:[function(require,module,exports){
1859
1884
  var $ = require('./$')
1860
1885
  , $def = require('./$.def')
1861
1886
  , setProto = require('./$.set-proto')
@@ -1868,8 +1893,8 @@ var $ = require('./$')
1868
1893
  , setDesc = $.setDesc
1869
1894
  , getProto = $.getProto
1870
1895
  , apply = Function.apply
1871
- , assertObject = assert.obj
1872
- , isExtensible = Object.isExtensible || $.it;
1896
+ , assertObject = assert.obj
1897
+ , _isExtensible = Object.isExtensible || $.it;
1873
1898
  function Enumerate(iterated){
1874
1899
  var keys = [], key;
1875
1900
  for(key in iterated)keys.push(key);
@@ -1897,7 +1922,7 @@ function wrap(fn){
1897
1922
  };
1898
1923
  }
1899
1924
 
1900
- function reflectGet(target, propertyKey/*, receiver*/){
1925
+ function get(target, propertyKey/*, receiver*/){
1901
1926
  var receiver = arguments.length < 3 ? target : arguments[2]
1902
1927
  , desc = getDesc(assertObject(target), propertyKey), proto;
1903
1928
  if(desc)return $.has(desc, 'value')
@@ -1906,16 +1931,16 @@ function reflectGet(target, propertyKey/*, receiver*/){
1906
1931
  ? undefined
1907
1932
  : desc.get.call(receiver);
1908
1933
  return isObject(proto = getProto(target))
1909
- ? reflectGet(proto, propertyKey, receiver)
1934
+ ? get(proto, propertyKey, receiver)
1910
1935
  : undefined;
1911
1936
  }
1912
- function reflectSet(target, propertyKey, V/*, receiver*/){
1937
+ function set(target, propertyKey, V/*, receiver*/){
1913
1938
  var receiver = arguments.length < 4 ? target : arguments[3]
1914
1939
  , ownDesc = getDesc(assertObject(target), propertyKey)
1915
1940
  , existingDescriptor, proto;
1916
1941
  if(!ownDesc){
1917
1942
  if(isObject(proto = getProto(target))){
1918
- return reflectSet(proto, propertyKey, V, receiver);
1943
+ return set(proto, propertyKey, V, receiver);
1919
1944
  }
1920
1945
  ownDesc = $.desc(0);
1921
1946
  }
@@ -1933,7 +1958,7 @@ var reflect = {
1933
1958
  // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
1934
1959
  apply: require('./$.ctx')(Function.call, apply, 3),
1935
1960
  // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
1936
- construct: function(target, argumentsList /*, newTarget*/){
1961
+ construct: function construct(target, argumentsList /*, newTarget*/){
1937
1962
  var proto = assert.fn(arguments.length < 3 ? target : arguments[2]).prototype
1938
1963
  , instance = $.create(isObject(proto) ? proto : Object.prototype)
1939
1964
  , result = apply.call(target, instance, argumentsList);
@@ -1942,48 +1967,53 @@ var reflect = {
1942
1967
  // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
1943
1968
  defineProperty: wrap(setDesc),
1944
1969
  // 26.1.4 Reflect.deleteProperty(target, propertyKey)
1945
- deleteProperty: function(target, propertyKey){
1970
+ deleteProperty: function deleteProperty(target, propertyKey){
1946
1971
  var desc = getDesc(assertObject(target), propertyKey);
1947
1972
  return desc && !desc.configurable ? false : delete target[propertyKey];
1948
1973
  },
1949
1974
  // 26.1.5 Reflect.enumerate(target)
1950
- enumerate: function(target){
1975
+ enumerate: function enumerate(target){
1951
1976
  return new Enumerate(assertObject(target));
1952
1977
  },
1953
1978
  // 26.1.6 Reflect.get(target, propertyKey [, receiver])
1954
- get: reflectGet,
1979
+ get: get,
1955
1980
  // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
1956
- getOwnPropertyDescriptor: function(target, propertyKey){
1981
+ getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){
1957
1982
  return getDesc(assertObject(target), propertyKey);
1958
1983
  },
1959
1984
  // 26.1.8 Reflect.getPrototypeOf(target)
1960
- getPrototypeOf: function(target){
1985
+ getPrototypeOf: function getPrototypeOf(target){
1961
1986
  return getProto(assertObject(target));
1962
1987
  },
1963
1988
  // 26.1.9 Reflect.has(target, propertyKey)
1964
- has: function(target, propertyKey){
1989
+ has: function has(target, propertyKey){
1965
1990
  return propertyKey in target;
1966
1991
  },
1967
1992
  // 26.1.10 Reflect.isExtensible(target)
1968
- isExtensible: function(target){
1969
- return !!isExtensible(assertObject(target));
1993
+ isExtensible: function isExtensible(target){
1994
+ return !!_isExtensible(assertObject(target));
1970
1995
  },
1971
1996
  // 26.1.11 Reflect.ownKeys(target)
1972
1997
  ownKeys: require('./$.own-keys'),
1973
1998
  // 26.1.12 Reflect.preventExtensions(target)
1974
1999
  preventExtensions: wrap(Object.preventExtensions || $.it),
1975
2000
  // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
1976
- set: reflectSet
2001
+ set: set
1977
2002
  };
1978
2003
  // 26.1.14 Reflect.setPrototypeOf(target, proto)
1979
- if(setProto)reflect.setPrototypeOf = function(target, proto){
1980
- setProto(assertObject(target), proto);
1981
- return true;
2004
+ if(setProto)reflect.setPrototypeOf = function setPrototypeOf(target, proto){
2005
+ setProto.check(target, proto);
2006
+ try {
2007
+ setProto.set(target, proto);
2008
+ return true;
2009
+ } catch(e){
2010
+ return false;
2011
+ }
1982
2012
  };
1983
2013
 
1984
2014
  $def($def.G, {Reflect: {}});
1985
2015
  $def($def.S, 'Reflect', reflect);
1986
- },{"./$":15,"./$.assert":4,"./$.ctx":10,"./$.def":11,"./$.iter":14,"./$.own-keys":17,"./$.set-proto":20,"./$.uid":24}],48:[function(require,module,exports){
2016
+ },{"./$":16,"./$.assert":4,"./$.ctx":10,"./$.def":11,"./$.iter":15,"./$.own-keys":18,"./$.set-proto":21,"./$.uid":25}],49:[function(require,module,exports){
1987
2017
  var $ = require('./$')
1988
2018
  , cof = require('./$.cof')
1989
2019
  , RegExp = $.g.RegExp
@@ -2014,24 +2044,24 @@ if($.FW && $.DESC){
2014
2044
  });
2015
2045
  }
2016
2046
  require('./$.species')(RegExp);
2017
- },{"./$":15,"./$.cof":6,"./$.replacer":19,"./$.species":21}],49:[function(require,module,exports){
2047
+ },{"./$":16,"./$.cof":6,"./$.replacer":20,"./$.species":22}],50:[function(require,module,exports){
2018
2048
  'use strict';
2019
2049
  var strong = require('./$.collection-strong');
2020
2050
 
2021
2051
  // 23.2 Set Objects
2022
2052
  require('./$.collection')('Set', {
2023
2053
  // 23.2.3.1 Set.prototype.add(value)
2024
- add: function(value){
2054
+ add: function add(value){
2025
2055
  return strong.def(this, value = value === 0 ? 0 : value, value);
2026
2056
  }
2027
2057
  }, strong);
2028
- },{"./$.collection":9,"./$.collection-strong":7}],50:[function(require,module,exports){
2058
+ },{"./$.collection":9,"./$.collection-strong":7}],51:[function(require,module,exports){
2029
2059
  var $def = require('./$.def');
2030
2060
  $def($def.P, 'String', {
2031
2061
  // 21.1.3.3 String.prototype.codePointAt(pos)
2032
2062
  codePointAt: require('./$.string-at')(false)
2033
2063
  });
2034
- },{"./$.def":11,"./$.string-at":22}],51:[function(require,module,exports){
2064
+ },{"./$.def":11,"./$.string-at":23}],52:[function(require,module,exports){
2035
2065
  'use strict';
2036
2066
  var $ = require('./$')
2037
2067
  , cof = require('./$.cof')
@@ -2040,7 +2070,7 @@ var $ = require('./$')
2040
2070
 
2041
2071
  $def($def.P, 'String', {
2042
2072
  // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
2043
- endsWith: function(searchString /*, endPosition = @length */){
2073
+ endsWith: function endsWith(searchString /*, endPosition = @length */){
2044
2074
  if(cof(searchString) == 'RegExp')throw TypeError();
2045
2075
  var that = String($.assertDefined(this))
2046
2076
  , endPosition = arguments[1]
@@ -2050,14 +2080,14 @@ $def($def.P, 'String', {
2050
2080
  return that.slice(end - searchString.length, end) === searchString;
2051
2081
  }
2052
2082
  });
2053
- },{"./$":15,"./$.cof":6,"./$.def":11}],52:[function(require,module,exports){
2083
+ },{"./$":16,"./$.cof":6,"./$.def":11}],53:[function(require,module,exports){
2054
2084
  var $def = require('./$.def')
2055
2085
  , toIndex = require('./$').toIndex
2056
2086
  , fromCharCode = String.fromCharCode;
2057
2087
 
2058
2088
  $def($def.S, 'String', {
2059
2089
  // 21.1.2.2 String.fromCodePoint(...codePoints)
2060
- fromCodePoint: function(x){ // eslint-disable-line no-unused-vars
2090
+ fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
2061
2091
  var res = []
2062
2092
  , len = arguments.length
2063
2093
  , i = 0
@@ -2072,7 +2102,7 @@ $def($def.S, 'String', {
2072
2102
  } return res.join('');
2073
2103
  }
2074
2104
  });
2075
- },{"./$":15,"./$.def":11}],53:[function(require,module,exports){
2105
+ },{"./$":16,"./$.def":11}],54:[function(require,module,exports){
2076
2106
  'use strict';
2077
2107
  var $ = require('./$')
2078
2108
  , cof = require('./$.cof')
@@ -2080,12 +2110,12 @@ var $ = require('./$')
2080
2110
 
2081
2111
  $def($def.P, 'String', {
2082
2112
  // 21.1.3.7 String.prototype.includes(searchString, position = 0)
2083
- includes: function(searchString /*, position = 0 */){
2113
+ includes: function includes(searchString /*, position = 0 */){
2084
2114
  if(cof(searchString) == 'RegExp')throw TypeError();
2085
2115
  return !!~String($.assertDefined(this)).indexOf(searchString, arguments[1]);
2086
2116
  }
2087
2117
  });
2088
- },{"./$":15,"./$.cof":6,"./$.def":11}],54:[function(require,module,exports){
2118
+ },{"./$":16,"./$.cof":6,"./$.def":11}],55:[function(require,module,exports){
2089
2119
  var set = require('./$').set
2090
2120
  , at = require('./$.string-at')(true)
2091
2121
  , ITER = require('./$.uid').safe('iter')
@@ -2106,32 +2136,32 @@ $iter.std(String, 'String', function(iterated){
2106
2136
  iter.i += point.length;
2107
2137
  return step(0, point);
2108
2138
  });
2109
- },{"./$":15,"./$.iter":14,"./$.string-at":22,"./$.uid":24}],55:[function(require,module,exports){
2139
+ },{"./$":16,"./$.iter":15,"./$.string-at":23,"./$.uid":25}],56:[function(require,module,exports){
2110
2140
  var $ = require('./$')
2111
2141
  , $def = require('./$.def');
2112
2142
 
2113
2143
  $def($def.S, 'String', {
2114
2144
  // 21.1.2.4 String.raw(callSite, ...substitutions)
2115
- raw: function(callSite){
2116
- var raw = $.toObject(callSite.raw)
2117
- , len = $.toLength(raw.length)
2145
+ raw: function raw(callSite){
2146
+ var tpl = $.toObject(callSite.raw)
2147
+ , len = $.toLength(tpl.length)
2118
2148
  , sln = arguments.length
2119
2149
  , res = []
2120
2150
  , i = 0;
2121
2151
  while(len > i){
2122
- res.push(String(raw[i++]));
2152
+ res.push(String(tpl[i++]));
2123
2153
  if(i < sln)res.push(String(arguments[i]));
2124
2154
  } return res.join('');
2125
2155
  }
2126
2156
  });
2127
- },{"./$":15,"./$.def":11}],56:[function(require,module,exports){
2157
+ },{"./$":16,"./$.def":11}],57:[function(require,module,exports){
2128
2158
  'use strict';
2129
2159
  var $ = require('./$')
2130
2160
  , $def = require('./$.def');
2131
2161
 
2132
2162
  $def($def.P, 'String', {
2133
2163
  // 21.1.3.13 String.prototype.repeat(count)
2134
- repeat: function(count){
2164
+ repeat: function repeat(count){
2135
2165
  var str = String($.assertDefined(this))
2136
2166
  , res = ''
2137
2167
  , n = $.toInteger(count);
@@ -2140,7 +2170,7 @@ $def($def.P, 'String', {
2140
2170
  return res;
2141
2171
  }
2142
2172
  });
2143
- },{"./$":15,"./$.def":11}],57:[function(require,module,exports){
2173
+ },{"./$":16,"./$.def":11}],58:[function(require,module,exports){
2144
2174
  'use strict';
2145
2175
  var $ = require('./$')
2146
2176
  , cof = require('./$.cof')
@@ -2148,7 +2178,7 @@ var $ = require('./$')
2148
2178
 
2149
2179
  $def($def.P, 'String', {
2150
2180
  // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
2151
- startsWith: function(searchString /*, position = 0 */){
2181
+ startsWith: function startsWith(searchString /*, position = 0 */){
2152
2182
  if(cof(searchString) == 'RegExp')throw TypeError();
2153
2183
  var that = String($.assertDefined(this))
2154
2184
  , index = $.toLength(Math.min(arguments[1], that.length));
@@ -2156,7 +2186,7 @@ $def($def.P, 'String', {
2156
2186
  return that.slice(index, index + searchString.length) === searchString;
2157
2187
  }
2158
2188
  });
2159
- },{"./$":15,"./$.cof":6,"./$.def":11}],58:[function(require,module,exports){
2189
+ },{"./$":16,"./$.cof":6,"./$.def":11}],59:[function(require,module,exports){
2160
2190
  'use strict';
2161
2191
  // ECMAScript 6 symbols shim
2162
2192
  var $ = require('./$')
@@ -2188,7 +2218,7 @@ function wrap(tag){
2188
2218
 
2189
2219
  // 19.4.1.1 Symbol([description])
2190
2220
  if(!$.isFunction(Symbol)){
2191
- Symbol = function(description){
2221
+ Symbol = function Symbol(description){
2192
2222
  if(this instanceof Symbol)throw TypeError('Symbol is not a constructor');
2193
2223
  return wrap(uid(description));
2194
2224
  };
@@ -2206,7 +2236,7 @@ var symbolStatics = {
2206
2236
  : SymbolRegistry[key] = Symbol(key);
2207
2237
  },
2208
2238
  // 19.4.2.5 Symbol.keyFor(sym)
2209
- keyFor: function(key){
2239
+ keyFor: function keyFor(key){
2210
2240
  return keyOf(SymbolRegistry, key);
2211
2241
  },
2212
2242
  pure: uid.safe,
@@ -2240,13 +2270,13 @@ $def($def.S, 'Symbol', symbolStatics);
2240
2270
 
2241
2271
  $def($def.S + $def.F * (Symbol != Base), 'Object', {
2242
2272
  // 19.1.2.7 Object.getOwnPropertyNames(O)
2243
- getOwnPropertyNames: function(it){
2273
+ getOwnPropertyNames: function getOwnPropertyNames(it){
2244
2274
  var names = getNames(toObject(it)), result = [], key, i = 0;
2245
2275
  while(names.length > i)has(AllSymbols, key = names[i++]) || result.push(key);
2246
2276
  return result;
2247
2277
  },
2248
2278
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
2249
- getOwnPropertySymbols: function(it){
2279
+ getOwnPropertySymbols: function getOwnPropertySymbols(it){
2250
2280
  var names = getNames(toObject(it)), result = [], key, i = 0;
2251
2281
  while(names.length > i)has(AllSymbols, key = names[i++]) && result.push(AllSymbols[key]);
2252
2282
  return result;
@@ -2258,7 +2288,7 @@ setTag(Symbol, 'Symbol');
2258
2288
  setTag(Math, 'Math', true);
2259
2289
  // 24.3.3 JSON[@@toStringTag]
2260
2290
  setTag($.g.JSON, 'JSON', true);
2261
- },{"./$":15,"./$.cof":6,"./$.def":11,"./$.keyof":16,"./$.uid":24,"./$.wks":26}],59:[function(require,module,exports){
2291
+ },{"./$":16,"./$.cof":6,"./$.def":11,"./$.keyof":17,"./$.uid":25,"./$.wks":27}],60:[function(require,module,exports){
2262
2292
  'use strict';
2263
2293
  var $ = require('./$')
2264
2294
  , weak = require('./$.collection-weak')
@@ -2273,14 +2303,14 @@ var $ = require('./$')
2273
2303
  // 23.3 WeakMap Objects
2274
2304
  var WeakMap = require('./$.collection')('WeakMap', {
2275
2305
  // 23.3.3.3 WeakMap.prototype.get(key)
2276
- get: function(key){
2306
+ get: function get(key){
2277
2307
  if(isObject(key)){
2278
2308
  if(isFrozen(key))return leakStore(this).get(key);
2279
2309
  if(has(key, WEAK))return key[WEAK][this[ID]];
2280
2310
  }
2281
2311
  },
2282
2312
  // 23.3.3.5 WeakMap.prototype.set(key, value)
2283
- set: function(key, value){
2313
+ set: function set(key, value){
2284
2314
  return weak.def(this, key, value);
2285
2315
  }
2286
2316
  }, weak, true, true);
@@ -2299,32 +2329,32 @@ if($.FW && new WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
2299
2329
  };
2300
2330
  });
2301
2331
  }
2302
- },{"./$":15,"./$.collection":9,"./$.collection-weak":8}],60:[function(require,module,exports){
2332
+ },{"./$":16,"./$.collection":9,"./$.collection-weak":8}],61:[function(require,module,exports){
2303
2333
  'use strict';
2304
2334
  var weak = require('./$.collection-weak');
2305
2335
 
2306
2336
  // 23.4 WeakSet Objects
2307
2337
  require('./$.collection')('WeakSet', {
2308
2338
  // 23.4.3.1 WeakSet.prototype.add(value)
2309
- add: function(value){
2339
+ add: function add(value){
2310
2340
  return weak.def(this, value, true);
2311
2341
  }
2312
2342
  }, weak, false, true);
2313
- },{"./$.collection":9,"./$.collection-weak":8}],61:[function(require,module,exports){
2343
+ },{"./$.collection":9,"./$.collection-weak":8}],62:[function(require,module,exports){
2314
2344
  // https://github.com/domenic/Array.prototype.includes
2315
2345
  var $def = require('./$.def');
2316
2346
  $def($def.P, 'Array', {
2317
2347
  includes: require('./$.array-includes')(true)
2318
2348
  });
2319
2349
  require('./$.unscope')('includes');
2320
- },{"./$.array-includes":2,"./$.def":11,"./$.unscope":25}],62:[function(require,module,exports){
2350
+ },{"./$.array-includes":2,"./$.def":11,"./$.unscope":26}],63:[function(require,module,exports){
2321
2351
  // https://gist.github.com/WebReflection/9353781
2322
2352
  var $ = require('./$')
2323
2353
  , $def = require('./$.def')
2324
2354
  , ownKeys = require('./$.own-keys');
2325
2355
 
2326
2356
  $def($def.S, 'Object', {
2327
- getOwnPropertyDescriptors: function(object){
2357
+ getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){
2328
2358
  var O = $.toObject(object)
2329
2359
  , result = {};
2330
2360
  $.each.call(ownKeys(O), function(key){
@@ -2333,7 +2363,7 @@ $def($def.S, 'Object', {
2333
2363
  return result;
2334
2364
  }
2335
2365
  });
2336
- },{"./$":15,"./$.def":11,"./$.own-keys":17}],63:[function(require,module,exports){
2366
+ },{"./$":16,"./$.def":11,"./$.own-keys":18}],64:[function(require,module,exports){
2337
2367
  // http://goo.gl/XkBrjD
2338
2368
  var $ = require('./$')
2339
2369
  , $def = require('./$.def');
@@ -2354,27 +2384,38 @@ $def($def.S, 'Object', {
2354
2384
  values: createObjectToArray(false),
2355
2385
  entries: createObjectToArray(true)
2356
2386
  });
2357
- },{"./$":15,"./$.def":11}],64:[function(require,module,exports){
2387
+ },{"./$":16,"./$.def":11}],65:[function(require,module,exports){
2358
2388
  // https://gist.github.com/kangax/9698100
2359
2389
  var $def = require('./$.def');
2360
2390
  $def($def.S, 'RegExp', {
2361
2391
  escape: require('./$.replacer')(/([\\\-[\]{}()*+?.,^$|])/g, '\\$1', true)
2362
2392
  });
2363
- },{"./$.def":11,"./$.replacer":19}],65:[function(require,module,exports){
2393
+ },{"./$.def":11,"./$.replacer":20}],66:[function(require,module,exports){
2394
+ // https://github.com/DavidBruant/Map-Set.prototype.toJSON
2395
+ var $def = require('./$.def')
2396
+ , forOf = require('./$.iter').forOf;
2397
+ $def($def.P, 'Set', {
2398
+ toJSON: function(){
2399
+ var arr = [];
2400
+ forOf(this, false, arr.push, arr);
2401
+ return arr;
2402
+ }
2403
+ });
2404
+ },{"./$.def":11,"./$.iter":15}],67:[function(require,module,exports){
2364
2405
  // https://github.com/mathiasbynens/String.prototype.at
2365
2406
  var $def = require('./$.def');
2366
2407
  $def($def.P, 'String', {
2367
2408
  at: require('./$.string-at')(true)
2368
2409
  });
2369
- },{"./$.def":11,"./$.string-at":22}],66:[function(require,module,exports){
2410
+ },{"./$.def":11,"./$.string-at":23}],68:[function(require,module,exports){
2370
2411
  // JavaScript 1.6 / Strawman array statics shim
2371
2412
  var $ = require('./$')
2372
2413
  , $def = require('./$.def')
2373
- , core = $.core
2414
+ , $Array = $.core.Array || Array
2374
2415
  , statics = {};
2375
2416
  function setStatics(keys, length){
2376
2417
  $.each.call(keys.split(','), function(key){
2377
- if(length == undefined && key in core.Array)statics[key] = core.Array[key];
2418
+ if(length == undefined && key in $Array)statics[key] = $Array[key];
2378
2419
  else if(key in [])statics[key] = require('./$.ctx')(Function.call, [][key], length);
2379
2420
  });
2380
2421
  }
@@ -2383,7 +2424,7 @@ setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3);
2383
2424
  setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' +
2384
2425
  'reduce,reduceRight,copyWithin,fill,turn');
2385
2426
  $def($def.S, 'Array', statics);
2386
- },{"./$":15,"./$.ctx":10,"./$.def":11}],67:[function(require,module,exports){
2427
+ },{"./$":16,"./$.ctx":10,"./$.def":11}],69:[function(require,module,exports){
2387
2428
  require('./es6.array.iterator');
2388
2429
  var $ = require('./$')
2389
2430
  , Iterators = require('./$.iter').Iterators
@@ -2393,14 +2434,14 @@ if($.FW && NodeList && !(ITERATOR in NodeList.prototype)){
2393
2434
  $.hide(NodeList.prototype, ITERATOR, Iterators.Array);
2394
2435
  }
2395
2436
  Iterators.NodeList = Iterators.Array;
2396
- },{"./$":15,"./$.iter":14,"./$.wks":26,"./es6.array.iterator":33}],68:[function(require,module,exports){
2437
+ },{"./$":16,"./$.iter":15,"./$.wks":27,"./es6.array.iterator":34}],70:[function(require,module,exports){
2397
2438
  var $def = require('./$.def')
2398
2439
  , $task = require('./$.task');
2399
2440
  $def($def.G + $def.B, {
2400
2441
  setImmediate: $task.set,
2401
2442
  clearImmediate: $task.clear
2402
2443
  });
2403
- },{"./$.def":11,"./$.task":23}],69:[function(require,module,exports){
2444
+ },{"./$.def":11,"./$.task":24}],71:[function(require,module,exports){
2404
2445
  // ie9- setTimeout & setInterval additional parameters fix
2405
2446
  var $ = require('./$')
2406
2447
  , $def = require('./$.def')
@@ -2420,7 +2461,7 @@ $def($def.G + $def.B + $def.F * MSIE, {
2420
2461
  setTimeout: wrap($.g.setTimeout),
2421
2462
  setInterval: wrap($.g.setInterval)
2422
2463
  });
2423
- },{"./$":15,"./$.def":11,"./$.invoke":13,"./$.partial":18}],70:[function(require,module,exports){
2464
+ },{"./$":16,"./$.def":11,"./$.invoke":13,"./$.partial":19}],72:[function(require,module,exports){
2424
2465
  require('./modules/es5');
2425
2466
  require('./modules/es6.symbol');
2426
2467
  require('./modules/es6.object.assign');
@@ -2460,12 +2501,13 @@ require('./modules/es7.string.at');
2460
2501
  require('./modules/es7.regexp.escape');
2461
2502
  require('./modules/es7.object.get-own-property-descriptors');
2462
2503
  require('./modules/es7.object.to-array');
2504
+ require('./modules/es7.set.to-json');
2463
2505
  require('./modules/js.array.statics');
2464
2506
  require('./modules/web.timers');
2465
2507
  require('./modules/web.immediate');
2466
2508
  require('./modules/web.dom.iterable');
2467
2509
  module.exports = require('./modules/$').core;
2468
- },{"./modules/$":15,"./modules/es5":27,"./modules/es6.array.copy-within":28,"./modules/es6.array.fill":29,"./modules/es6.array.find":31,"./modules/es6.array.find-index":30,"./modules/es6.array.from":32,"./modules/es6.array.iterator":33,"./modules/es6.array.of":34,"./modules/es6.array.species":35,"./modules/es6.function.name":36,"./modules/es6.map":37,"./modules/es6.math":38,"./modules/es6.number.constructor":39,"./modules/es6.number.statics":40,"./modules/es6.object.assign":41,"./modules/es6.object.is":42,"./modules/es6.object.set-prototype-of":43,"./modules/es6.object.statics-accept-primitives":44,"./modules/es6.object.to-string":45,"./modules/es6.promise":46,"./modules/es6.reflect":47,"./modules/es6.regexp":48,"./modules/es6.set":49,"./modules/es6.string.code-point-at":50,"./modules/es6.string.ends-with":51,"./modules/es6.string.from-code-point":52,"./modules/es6.string.includes":53,"./modules/es6.string.iterator":54,"./modules/es6.string.raw":55,"./modules/es6.string.repeat":56,"./modules/es6.string.starts-with":57,"./modules/es6.symbol":58,"./modules/es6.weak-map":59,"./modules/es6.weak-set":60,"./modules/es7.array.includes":61,"./modules/es7.object.get-own-property-descriptors":62,"./modules/es7.object.to-array":63,"./modules/es7.regexp.escape":64,"./modules/es7.string.at":65,"./modules/js.array.statics":66,"./modules/web.dom.iterable":67,"./modules/web.immediate":68,"./modules/web.timers":69}],71:[function(require,module,exports){
2510
+ },{"./modules/$":16,"./modules/es5":28,"./modules/es6.array.copy-within":29,"./modules/es6.array.fill":30,"./modules/es6.array.find":32,"./modules/es6.array.find-index":31,"./modules/es6.array.from":33,"./modules/es6.array.iterator":34,"./modules/es6.array.of":35,"./modules/es6.array.species":36,"./modules/es6.function.name":37,"./modules/es6.map":38,"./modules/es6.math":39,"./modules/es6.number.constructor":40,"./modules/es6.number.statics":41,"./modules/es6.object.assign":42,"./modules/es6.object.is":43,"./modules/es6.object.set-prototype-of":44,"./modules/es6.object.statics-accept-primitives":45,"./modules/es6.object.to-string":46,"./modules/es6.promise":47,"./modules/es6.reflect":48,"./modules/es6.regexp":49,"./modules/es6.set":50,"./modules/es6.string.code-point-at":51,"./modules/es6.string.ends-with":52,"./modules/es6.string.from-code-point":53,"./modules/es6.string.includes":54,"./modules/es6.string.iterator":55,"./modules/es6.string.raw":56,"./modules/es6.string.repeat":57,"./modules/es6.string.starts-with":58,"./modules/es6.symbol":59,"./modules/es6.weak-map":60,"./modules/es6.weak-set":61,"./modules/es7.array.includes":62,"./modules/es7.object.get-own-property-descriptors":63,"./modules/es7.object.to-array":64,"./modules/es7.regexp.escape":65,"./modules/es7.set.to-json":66,"./modules/es7.string.at":67,"./modules/js.array.statics":68,"./modules/web.dom.iterable":69,"./modules/web.immediate":70,"./modules/web.timers":71}],73:[function(require,module,exports){
2469
2511
  (function (global){
2470
2512
  /**
2471
2513
  * Copyright (c) 2014, Facebook, Inc.
@@ -2503,7 +2545,15 @@ module.exports = require('./modules/$').core;
2503
2545
  runtime = global.regeneratorRuntime = inModule ? module.exports : {};
2504
2546
 
2505
2547
  function wrap(innerFn, outerFn, self, tryLocsList) {
2506
- return new Generator(innerFn, outerFn, self || null, tryLocsList || []);
2548
+ // If outerFn provided, then outerFn.prototype instanceof Generator.
2549
+ var generator = Object.create((outerFn || Generator).prototype);
2550
+
2551
+ generator._invoke = makeInvokeMethod(
2552
+ innerFn, self || null,
2553
+ new Context(tryLocsList || [])
2554
+ );
2555
+
2556
+ return generator;
2507
2557
  }
2508
2558
  runtime.wrap = wrap;
2509
2559
 
@@ -2538,6 +2588,7 @@ module.exports = require('./modules/$').core;
2538
2588
  // .constructor.prototype properties for functions that return Generator
2539
2589
  // objects. For full spec compliance, you may wish to configure your
2540
2590
  // minifier not to mangle the names of these two functions.
2591
+ function Generator() {}
2541
2592
  function GeneratorFunction() {}
2542
2593
  function GeneratorFunctionPrototype() {}
2543
2594
 
@@ -2565,11 +2616,11 @@ module.exports = require('./modules/$').core;
2565
2616
  runtime.async = function(innerFn, outerFn, self, tryLocsList) {
2566
2617
  return new Promise(function(resolve, reject) {
2567
2618
  var generator = wrap(innerFn, outerFn, self, tryLocsList);
2568
- var callNext = step.bind(generator.next);
2569
- var callThrow = step.bind(generator["throw"]);
2619
+ var callNext = step.bind(generator, "next");
2620
+ var callThrow = step.bind(generator, "throw");
2570
2621
 
2571
- function step(arg) {
2572
- var record = tryCatch(this, null, arg);
2622
+ function step(method, arg) {
2623
+ var record = tryCatch(generator[method], generator, arg);
2573
2624
  if (record.type === "throw") {
2574
2625
  reject(record.arg);
2575
2626
  return;
@@ -2587,12 +2638,10 @@ module.exports = require('./modules/$').core;
2587
2638
  });
2588
2639
  };
2589
2640
 
2590
- function Generator(innerFn, outerFn, self, tryLocsList) {
2591
- var generator = outerFn ? Object.create(outerFn.prototype) : this;
2592
- var context = new Context(tryLocsList);
2641
+ function makeInvokeMethod(innerFn, self, context) {
2593
2642
  var state = GenStateSuspendedStart;
2594
2643
 
2595
- function invoke(method, arg) {
2644
+ return function invoke(method, arg) {
2596
2645
  if (state === GenStateExecuting) {
2597
2646
  throw new Error("Generator is already running");
2598
2647
  }
@@ -2606,6 +2655,33 @@ module.exports = require('./modules/$').core;
2606
2655
  while (true) {
2607
2656
  var delegate = context.delegate;
2608
2657
  if (delegate) {
2658
+ if (method === "return" ||
2659
+ (method === "throw" && delegate.iterator.throw === undefined)) {
2660
+ // A return or throw (when the delegate iterator has no throw
2661
+ // method) always terminates the yield* loop.
2662
+ context.delegate = null;
2663
+
2664
+ // If the delegate iterator has a return method, give it a
2665
+ // chance to clean up.
2666
+ var returnMethod = delegate.iterator.return;
2667
+ if (returnMethod) {
2668
+ var record = tryCatch(returnMethod, delegate.iterator, arg);
2669
+ if (record.type === "throw") {
2670
+ // If the return method threw an exception, let that
2671
+ // exception prevail over the original return or throw.
2672
+ method = "throw";
2673
+ arg = record.arg;
2674
+ continue;
2675
+ }
2676
+ }
2677
+
2678
+ if (method === "return") {
2679
+ // Continue with the outer return, now that the delegate
2680
+ // iterator has been terminated.
2681
+ continue;
2682
+ }
2683
+ }
2684
+
2609
2685
  var record = tryCatch(
2610
2686
  delegate.iterator[method],
2611
2687
  delegate.iterator,
@@ -2619,7 +2695,6 @@ module.exports = require('./modules/$').core;
2619
2695
  // overhead of an extra function call.
2620
2696
  method = "throw";
2621
2697
  arg = record.arg;
2622
-
2623
2698
  continue;
2624
2699
  }
2625
2700
 
@@ -2642,14 +2717,6 @@ module.exports = require('./modules/$').core;
2642
2717
  }
2643
2718
 
2644
2719
  if (method === "next") {
2645
- if (state === GenStateSuspendedStart &&
2646
- typeof arg !== "undefined") {
2647
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
2648
- throw new TypeError(
2649
- "attempt to send " + JSON.stringify(arg) + " to newborn generator"
2650
- );
2651
- }
2652
-
2653
2720
  if (state === GenStateSuspendedYield) {
2654
2721
  context.sent = arg;
2655
2722
  } else {
@@ -2700,22 +2767,23 @@ module.exports = require('./modules/$').core;
2700
2767
 
2701
2768
  } else if (record.type === "throw") {
2702
2769
  state = GenStateCompleted;
2703
-
2704
- if (method === "next") {
2705
- context.dispatchException(record.arg);
2706
- } else {
2707
- arg = record.arg;
2708
- }
2770
+ // Dispatch the exception by looping back around to the
2771
+ // context.dispatchException(arg) call above.
2772
+ method = "throw";
2773
+ arg = record.arg;
2709
2774
  }
2710
2775
  }
2711
- }
2712
-
2713
- generator.next = invoke.bind(generator, "next");
2714
- generator["throw"] = invoke.bind(generator, "throw");
2715
- generator["return"] = invoke.bind(generator, "return");
2776
+ };
2777
+ }
2716
2778
 
2717
- return generator;
2779
+ function defineGeneratorMethod(method) {
2780
+ Gp[method] = function(arg) {
2781
+ return this._invoke(method, arg);
2782
+ };
2718
2783
  }
2784
+ defineGeneratorMethod("next");
2785
+ defineGeneratorMethod("throw");
2786
+ defineGeneratorMethod("return");
2719
2787
 
2720
2788
  Gp[iteratorSymbol] = function() {
2721
2789
  return this;
@@ -3002,7 +3070,8 @@ module.exports = require('./modules/$').core;
3002
3070
  // object, this seems to be the most reliable technique that does not
3003
3071
  // use indirect eval (which violates Content Security Policy).
3004
3072
  typeof global === "object" ? global :
3005
- typeof window === "object" ? window : this
3073
+ typeof window === "object" ? window :
3074
+ typeof self === "object" ? self : this
3006
3075
  );
3007
3076
 
3008
3077
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})