babel-source 5.0.12 → 5.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 : {})