core-js 2.2.0 → 2.4.0

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.
Files changed (131) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/bower.json +1 -1
  3. package/build/config.js +7 -3
  4. package/client/core.js +1463 -1128
  5. package/client/core.min.js +4 -4
  6. package/client/core.min.js.map +1 -1
  7. package/client/library.js +1400 -1074
  8. package/client/library.min.js +4 -4
  9. package/client/library.min.js.map +1 -1
  10. package/client/shim.js +1406 -1071
  11. package/client/shim.min.js +4 -4
  12. package/client/shim.min.js.map +1 -1
  13. package/es7/asap.js +2 -0
  14. package/es7/index.js +4 -0
  15. package/es7/observable.js +7 -0
  16. package/es7/symbol.js +3 -0
  17. package/fn/asap.js +2 -0
  18. package/fn/observable.js +7 -0
  19. package/fn/symbol/async-iterator.js +2 -0
  20. package/fn/symbol/has-instance.js +2 -1
  21. package/fn/symbol/index.js +2 -0
  22. package/fn/symbol/is-concat-spreadable.js +1 -1
  23. package/fn/symbol/iterator.js +1 -1
  24. package/fn/symbol/match.js +1 -1
  25. package/fn/symbol/observable.js +2 -0
  26. package/fn/symbol/replace.js +1 -1
  27. package/fn/symbol/search.js +1 -1
  28. package/fn/symbol/species.js +1 -1
  29. package/fn/symbol/split.js +1 -1
  30. package/fn/symbol/to-primitive.js +1 -1
  31. package/fn/symbol/to-string-tag.js +1 -1
  32. package/fn/symbol/unscopables.js +1 -1
  33. package/library/es7/asap.js +2 -0
  34. package/library/es7/index.js +4 -0
  35. package/library/es7/observable.js +7 -0
  36. package/library/es7/symbol.js +3 -0
  37. package/library/fn/asap.js +2 -0
  38. package/library/fn/observable.js +7 -0
  39. package/library/fn/symbol/async-iterator.js +2 -0
  40. package/library/fn/symbol/has-instance.js +2 -1
  41. package/library/fn/symbol/index.js +2 -0
  42. package/library/fn/symbol/is-concat-spreadable.js +1 -1
  43. package/library/fn/symbol/iterator.js +1 -1
  44. package/library/fn/symbol/match.js +1 -1
  45. package/library/fn/symbol/observable.js +2 -0
  46. package/library/fn/symbol/replace.js +1 -1
  47. package/library/fn/symbol/search.js +1 -1
  48. package/library/fn/symbol/species.js +1 -1
  49. package/library/fn/symbol/split.js +1 -1
  50. package/library/fn/symbol/to-primitive.js +1 -1
  51. package/library/fn/symbol/to-string-tag.js +1 -1
  52. package/library/fn/symbol/unscopables.js +1 -1
  53. package/library/modules/_array-includes.js +1 -1
  54. package/library/modules/_array-species-constructor.js +16 -0
  55. package/library/modules/_array-species-create.js +3 -13
  56. package/library/modules/_core.js +1 -1
  57. package/library/modules/_create-property.js +8 -0
  58. package/library/modules/_for-of.js +12 -6
  59. package/library/modules/_iter-detect.js +1 -1
  60. package/library/modules/_math-expm1.js +8 -2
  61. package/library/modules/_microtask.js +58 -48
  62. package/library/modules/_object-gopn-ext.js +2 -2
  63. package/library/modules/_string-pad.js +1 -2
  64. package/library/modules/_wks-define.js +9 -0
  65. package/library/modules/_wks-ext.js +1 -0
  66. package/library/modules/_wks.js +5 -2
  67. package/library/modules/es6.array.filter.js +9 -9
  68. package/library/modules/es6.array.from.js +11 -9
  69. package/library/modules/es6.array.index-of.js +9 -4
  70. package/library/modules/es6.array.last-index-of.js +10 -6
  71. package/library/modules/es6.array.of.js +3 -2
  72. package/library/modules/es6.math.acosh.js +6 -2
  73. package/library/modules/es6.math.asinh.js +4 -2
  74. package/library/modules/es6.math.atanh.js +4 -2
  75. package/library/modules/es6.math.expm1.js +3 -2
  76. package/library/modules/es6.promise.js +1 -1
  77. package/library/modules/es6.reflect.apply.js +5 -3
  78. package/library/modules/es6.reflect.construct.js +2 -1
  79. package/library/modules/es6.symbol.js +59 -59
  80. package/library/modules/es7.asap.js +12 -0
  81. package/library/modules/es7.object.get-own-property-descriptors.js +7 -11
  82. package/library/modules/es7.observable.js +199 -0
  83. package/library/modules/es7.symbol.async-iterator.js +1 -0
  84. package/library/modules/es7.symbol.observable.js +1 -0
  85. package/library/shim.js +4 -0
  86. package/library/stage/0.js +1 -0
  87. package/library/stage/1.js +3 -2
  88. package/library/stage/2.js +3 -1
  89. package/library/stage/3.js +1 -3
  90. package/library/stage/4.js +3 -1
  91. package/modules/_array-includes.js +1 -1
  92. package/modules/_array-species-constructor.js +16 -0
  93. package/modules/_array-species-create.js +3 -13
  94. package/modules/_core.js +1 -1
  95. package/modules/_create-property.js +8 -0
  96. package/modules/_for-of.js +12 -6
  97. package/modules/_iter-detect.js +1 -1
  98. package/modules/_math-expm1.js +8 -2
  99. package/modules/_microtask.js +58 -48
  100. package/modules/_object-gopn-ext.js +2 -2
  101. package/modules/_string-pad.js +1 -2
  102. package/modules/_wks-define.js +9 -0
  103. package/modules/_wks-ext.js +1 -0
  104. package/modules/_wks.js +5 -2
  105. package/modules/es6.array.filter.js +9 -9
  106. package/modules/es6.array.from.js +11 -9
  107. package/modules/es6.array.index-of.js +9 -4
  108. package/modules/es6.array.last-index-of.js +10 -6
  109. package/modules/es6.array.of.js +3 -2
  110. package/modules/es6.function.name.js +13 -4
  111. package/modules/es6.math.acosh.js +6 -2
  112. package/modules/es6.math.asinh.js +4 -2
  113. package/modules/es6.math.atanh.js +4 -2
  114. package/modules/es6.math.expm1.js +3 -2
  115. package/modules/es6.promise.js +1 -1
  116. package/modules/es6.reflect.apply.js +5 -3
  117. package/modules/es6.reflect.construct.js +2 -1
  118. package/modules/es6.symbol.js +59 -59
  119. package/modules/es7.asap.js +12 -0
  120. package/modules/es7.object.get-own-property-descriptors.js +7 -11
  121. package/modules/es7.observable.js +199 -0
  122. package/modules/es7.symbol.async-iterator.js +1 -0
  123. package/modules/es7.symbol.observable.js +1 -0
  124. package/package.json +14 -12
  125. package/shim.js +4 -0
  126. package/stage/0.js +1 -0
  127. package/stage/1.js +3 -2
  128. package/stage/2.js +3 -1
  129. package/stage/3.js +1 -3
  130. package/stage/4.js +3 -1
  131. package/README.md +0 -1981
package/es7/asap.js ADDED
@@ -0,0 +1,2 @@
1
+ require('../modules/es7.asap');
2
+ module.exports = require('../modules/_core').asap;
package/es7/index.js CHANGED
@@ -5,6 +5,8 @@ require('../modules/es7.string.pad-end');
5
5
  require('../modules/es7.string.trim-left');
6
6
  require('../modules/es7.string.trim-right');
7
7
  require('../modules/es7.string.match-all');
8
+ require('../modules/es7.symbol.async-iterator');
9
+ require('../modules/es7.symbol.observable');
8
10
  require('../modules/es7.object.get-own-property-descriptors');
9
11
  require('../modules/es7.object.values');
10
12
  require('../modules/es7.object.entries');
@@ -29,4 +31,6 @@ require('../modules/es7.reflect.get-own-metadata-keys');
29
31
  require('../modules/es7.reflect.has-metadata');
30
32
  require('../modules/es7.reflect.has-own-metadata');
31
33
  require('../modules/es7.reflect.metadata');
34
+ require('../modules/es7.asap');
35
+ require('../modules/es7.observable');
32
36
  module.exports = require('../modules/_core');
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
package/es7/symbol.js ADDED
@@ -0,0 +1,3 @@
1
+ require('../modules/es7.symbol.async-iterator');
2
+ require('../modules/es7.symbol.observable');
3
+ module.exports = require('../modules/_core').Symbol;
package/fn/asap.js ADDED
@@ -0,0 +1,2 @@
1
+ require('../modules/es7.asap');
2
+ module.exports = require('../modules/_core').asap;
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
@@ -0,0 +1,2 @@
1
+ require('../../modules/es7.symbol.async-iterator');
2
+ module.exports = require('../../modules/_wks-ext').f('asyncIterator');
@@ -1 +1,2 @@
1
- module.exports = require('../../modules/_wks')('hasInstance');
1
+ require('../../modules/es6.function.has-instance');
2
+ module.exports = require('../../modules/_wks-ext').f('hasInstance');
@@ -1,3 +1,5 @@
1
1
  require('../../modules/es6.symbol');
2
2
  require('../../modules/es6.object.to-string');
3
+ require('../../modules/es7.symbol.async-iterator');
4
+ require('../../modules/es7.symbol.observable');
3
5
  module.exports = require('../../modules/_core').Symbol;
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('isConcatSpreadable');
1
+ module.exports = require('../../modules/_wks-ext').f('isConcatSpreadable');
@@ -1,3 +1,3 @@
1
1
  require('../../modules/es6.string.iterator');
2
2
  require('../../modules/web.dom.iterable');
3
- module.exports = require('../../modules/_wks')('iterator');
3
+ module.exports = require('../../modules/_wks-ext').f('iterator');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.match');
2
- module.exports = require('../../modules/_wks')('match');
2
+ module.exports = require('../../modules/_wks-ext').f('match');
@@ -0,0 +1,2 @@
1
+ require('../../modules/es7.symbol.observable');
2
+ module.exports = require('../../modules/_wks-ext').f('observable');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.replace');
2
- module.exports = require('../../modules/_wks')('replace');
2
+ module.exports = require('../../modules/_wks-ext').f('replace');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.search');
2
- module.exports = require('../../modules/_wks')('search');
2
+ module.exports = require('../../modules/_wks-ext').f('search');
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('species');
1
+ module.exports = require('../../modules/_wks-ext').f('species');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.split');
2
- module.exports = require('../../modules/_wks')('split');
2
+ module.exports = require('../../modules/_wks-ext').f('split');
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('toPrimitive');
1
+ module.exports = require('../../modules/_wks-ext').f('toPrimitive');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.object.to-string');
2
- module.exports = require('../../modules/_wks')('toStringTag');
2
+ module.exports = require('../../modules/_wks-ext').f('toStringTag');
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('unscopables');
1
+ module.exports = require('../../modules/_wks-ext').f('unscopables');
@@ -0,0 +1,2 @@
1
+ require('../modules/es7.asap');
2
+ module.exports = require('../modules/_core').asap;
@@ -5,6 +5,8 @@ require('../modules/es7.string.pad-end');
5
5
  require('../modules/es7.string.trim-left');
6
6
  require('../modules/es7.string.trim-right');
7
7
  require('../modules/es7.string.match-all');
8
+ require('../modules/es7.symbol.async-iterator');
9
+ require('../modules/es7.symbol.observable');
8
10
  require('../modules/es7.object.get-own-property-descriptors');
9
11
  require('../modules/es7.object.values');
10
12
  require('../modules/es7.object.entries');
@@ -29,4 +31,6 @@ require('../modules/es7.reflect.get-own-metadata-keys');
29
31
  require('../modules/es7.reflect.has-metadata');
30
32
  require('../modules/es7.reflect.has-own-metadata');
31
33
  require('../modules/es7.reflect.metadata');
34
+ require('../modules/es7.asap');
35
+ require('../modules/es7.observable');
32
36
  module.exports = require('../modules/_core');
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
@@ -0,0 +1,3 @@
1
+ require('../modules/es7.symbol.async-iterator');
2
+ require('../modules/es7.symbol.observable');
3
+ module.exports = require('../modules/_core').Symbol;
@@ -0,0 +1,2 @@
1
+ require('../modules/es7.asap');
2
+ module.exports = require('../modules/_core').asap;
@@ -0,0 +1,7 @@
1
+ require('../modules/es6.object.to-string');
2
+ require('../modules/es6.string.iterator');
3
+ require('../modules/web.dom.iterable');
4
+ require('../modules/es6.promise');
5
+ require('../modules/es7.symbol.observable');
6
+ require('../modules/es7.observable');
7
+ module.exports = require('../modules/_core').Observable;
@@ -0,0 +1,2 @@
1
+ require('../../modules/es7.symbol.async-iterator');
2
+ module.exports = require('../../modules/_wks-ext').f('asyncIterator');
@@ -1 +1,2 @@
1
- module.exports = require('../../modules/_wks')('hasInstance');
1
+ require('../../modules/es6.function.has-instance');
2
+ module.exports = require('../../modules/_wks-ext').f('hasInstance');
@@ -1,3 +1,5 @@
1
1
  require('../../modules/es6.symbol');
2
2
  require('../../modules/es6.object.to-string');
3
+ require('../../modules/es7.symbol.async-iterator');
4
+ require('../../modules/es7.symbol.observable');
3
5
  module.exports = require('../../modules/_core').Symbol;
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('isConcatSpreadable');
1
+ module.exports = require('../../modules/_wks-ext').f('isConcatSpreadable');
@@ -1,3 +1,3 @@
1
1
  require('../../modules/es6.string.iterator');
2
2
  require('../../modules/web.dom.iterable');
3
- module.exports = require('../../modules/_wks')('iterator');
3
+ module.exports = require('../../modules/_wks-ext').f('iterator');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.match');
2
- module.exports = require('../../modules/_wks')('match');
2
+ module.exports = require('../../modules/_wks-ext').f('match');
@@ -0,0 +1,2 @@
1
+ require('../../modules/es7.symbol.observable');
2
+ module.exports = require('../../modules/_wks-ext').f('observable');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.replace');
2
- module.exports = require('../../modules/_wks')('replace');
2
+ module.exports = require('../../modules/_wks-ext').f('replace');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.search');
2
- module.exports = require('../../modules/_wks')('search');
2
+ module.exports = require('../../modules/_wks-ext').f('search');
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('species');
1
+ module.exports = require('../../modules/_wks-ext').f('species');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.regexp.split');
2
- module.exports = require('../../modules/_wks')('split');
2
+ module.exports = require('../../modules/_wks-ext').f('split');
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('toPrimitive');
1
+ module.exports = require('../../modules/_wks-ext').f('toPrimitive');
@@ -1,2 +1,2 @@
1
1
  require('../../modules/es6.object.to-string');
2
- module.exports = require('../../modules/_wks')('toStringTag');
2
+ module.exports = require('../../modules/_wks-ext').f('toStringTag');
@@ -1 +1 @@
1
- module.exports = require('../../modules/_wks')('unscopables');
1
+ module.exports = require('../../modules/_wks-ext').f('unscopables');
@@ -15,7 +15,7 @@ module.exports = function(IS_INCLUDES){
15
15
  if(value != value)return true;
16
16
  // Array#toIndex ignores holes, Array#includes - not
17
17
  } else for(;length > index; index++)if(IS_INCLUDES || index in O){
18
- if(O[index] === el)return IS_INCLUDES || index;
18
+ if(O[index] === el)return IS_INCLUDES || index || 0;
19
19
  } return !IS_INCLUDES && -1;
20
20
  };
21
21
  };
@@ -0,0 +1,16 @@
1
+ var isObject = require('./_is-object')
2
+ , isArray = require('./_is-array')
3
+ , SPECIES = require('./_wks')('species');
4
+
5
+ module.exports = function(original){
6
+ var C;
7
+ if(isArray(original)){
8
+ C = original.constructor;
9
+ // cross-realm fallback
10
+ if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
11
+ if(isObject(C)){
12
+ C = C[SPECIES];
13
+ if(C === null)C = undefined;
14
+ }
15
+ } return C === undefined ? Array : C;
16
+ };
@@ -1,16 +1,6 @@
1
1
  // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
2
- var isObject = require('./_is-object')
3
- , isArray = require('./_is-array')
4
- , SPECIES = require('./_wks')('species');
2
+ var speciesConstructor = require('./_array-species-constructor');
3
+
5
4
  module.exports = function(original, length){
6
- var C;
7
- if(isArray(original)){
8
- C = original.constructor;
9
- // cross-realm fallback
10
- if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
11
- if(isObject(C)){
12
- C = C[SPECIES];
13
- if(C === null)C = undefined;
14
- }
15
- } return new (C === undefined ? Array : C)(length);
5
+ return new (speciesConstructor(original))(length);
16
6
  };
@@ -1,2 +1,2 @@
1
- var core = module.exports = {version: '2.2.0'};
1
+ var core = module.exports = {version: '2.4.0'};
2
2
  if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ var $defineProperty = require('./_object-dp')
3
+ , createDesc = require('./_property-desc');
4
+
5
+ module.exports = function(object, index, value){
6
+ if(index in object)$defineProperty.f(object, index, createDesc(0, value));
7
+ else object[index] = value;
8
+ };
@@ -3,17 +3,23 @@ var ctx = require('./_ctx')
3
3
  , isArrayIter = require('./_is-array-iter')
4
4
  , anObject = require('./_an-object')
5
5
  , toLength = require('./_to-length')
6
- , getIterFn = require('./core.get-iterator-method');
7
- module.exports = function(iterable, entries, fn, that, ITERATOR){
6
+ , getIterFn = require('./core.get-iterator-method')
7
+ , BREAK = {}
8
+ , RETURN = {};
9
+ var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
8
10
  var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
9
11
  , f = ctx(fn, that, entries ? 2 : 1)
10
12
  , index = 0
11
- , length, step, iterator;
13
+ , length, step, iterator, result;
12
14
  if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
13
15
  // fast case for arrays with default iterator
14
16
  if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
15
- entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
17
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
18
+ if(result === BREAK || result === RETURN)return result;
16
19
  } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
17
- call(iterator, f, step.value, entries);
20
+ result = call(iterator, f, step.value, entries);
21
+ if(result === BREAK || result === RETURN)return result;
18
22
  }
19
- };
23
+ };
24
+ exports.BREAK = BREAK;
25
+ exports.RETURN = RETURN;
@@ -13,7 +13,7 @@ module.exports = function(exec, skipClosing){
13
13
  try {
14
14
  var arr = [7]
15
15
  , iter = arr[ITERATOR]();
16
- iter.next = function(){ safe = true; };
16
+ iter.next = function(){ return {done: safe = true}; };
17
17
  arr[ITERATOR] = function(){ return iter; };
18
18
  exec(arr);
19
19
  } catch(e){ /* empty */ }
@@ -1,4 +1,10 @@
1
1
  // 20.2.2.14 Math.expm1(x)
2
- module.exports = Math.expm1 || function expm1(x){
2
+ var $expm1 = Math.expm1;
3
+ module.exports = (!$expm1
4
+ // Old FF bug
5
+ || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
6
+ // Tor Browser bug
7
+ || $expm1(-2e-17) != -2e-17
8
+ ) ? function expm1(x){
3
9
  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
4
- };
10
+ } : $expm1;
@@ -3,56 +3,66 @@ var global = require('./_global')
3
3
  , Observer = global.MutationObserver || global.WebKitMutationObserver
4
4
  , process = global.process
5
5
  , Promise = global.Promise
6
- , isNode = require('./_cof')(process) == 'process'
7
- , head, last, notify;
6
+ , isNode = require('./_cof')(process) == 'process';
8
7
 
9
- var flush = function(){
10
- var parent, fn;
11
- if(isNode && (parent = process.domain))parent.exit();
12
- while(head){
13
- fn = head.fn;
14
- fn(); // <- currently we use it only for Promise - try / catch not required
15
- head = head.next;
16
- } last = undefined;
17
- if(parent)parent.enter();
18
- };
8
+ module.exports = function(){
9
+ var head, last, notify;
19
10
 
20
- // Node.js
21
- if(isNode){
22
- notify = function(){
23
- process.nextTick(flush);
11
+ var flush = function(){
12
+ var parent, fn;
13
+ if(isNode && (parent = process.domain))parent.exit();
14
+ while(head){
15
+ fn = head.fn;
16
+ head = head.next;
17
+ try {
18
+ fn();
19
+ } catch(e){
20
+ if(head)notify();
21
+ else last = undefined;
22
+ throw e;
23
+ }
24
+ } last = undefined;
25
+ if(parent)parent.enter();
24
26
  };
25
- // browsers with MutationObserver
26
- } else if(Observer){
27
- var toggle = true
28
- , node = document.createTextNode('');
29
- new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
30
- notify = function(){
31
- node.data = toggle = !toggle;
32
- };
33
- // environments with maybe non-completely correct, but existent Promise
34
- } else if(Promise && Promise.resolve){
35
- notify = function(){
36
- Promise.resolve().then(flush);
37
- };
38
- // for other environments - macrotask based on:
39
- // - setImmediate
40
- // - MessageChannel
41
- // - window.postMessag
42
- // - onreadystatechange
43
- // - setTimeout
44
- } else {
45
- notify = function(){
46
- // strange IE + webpack dev server bug - use .call(global)
47
- macrotask.call(global, flush);
48
- };
49
- }
50
27
 
51
- module.exports = function(fn){
52
- var task = {fn: fn, next: undefined};
53
- if(last)last.next = task;
54
- if(!head){
55
- head = task;
56
- notify();
57
- } last = task;
28
+ // Node.js
29
+ if(isNode){
30
+ notify = function(){
31
+ process.nextTick(flush);
32
+ };
33
+ // browsers with MutationObserver
34
+ } else if(Observer){
35
+ var toggle = true
36
+ , node = document.createTextNode('');
37
+ new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
38
+ notify = function(){
39
+ node.data = toggle = !toggle;
40
+ };
41
+ // environments with maybe non-completely correct, but existent Promise
42
+ } else if(Promise && Promise.resolve){
43
+ var promise = Promise.resolve();
44
+ notify = function(){
45
+ promise.then(flush);
46
+ };
47
+ // for other environments - macrotask based on:
48
+ // - setImmediate
49
+ // - MessageChannel
50
+ // - window.postMessag
51
+ // - onreadystatechange
52
+ // - setTimeout
53
+ } else {
54
+ notify = function(){
55
+ // strange IE + webpack dev server bug - use .call(global)
56
+ macrotask.call(global, flush);
57
+ };
58
+ }
59
+
60
+ return function(fn){
61
+ var task = {fn: fn, next: undefined};
62
+ if(last)last.next = task;
63
+ if(!head){
64
+ head = task;
65
+ notify();
66
+ } last = task;
67
+ };
58
68
  };
@@ -8,7 +8,7 @@ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNa
8
8
 
9
9
  var getWindowNames = function(it){
10
10
  try {
11
- return gOPN.f(it);
11
+ return gOPN(it);
12
12
  } catch(e){
13
13
  return windowNames.slice();
14
14
  }
@@ -16,4 +16,4 @@ var getWindowNames = function(it){
16
16
 
17
17
  module.exports.f = function getOwnPropertyNames(it){
18
18
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
19
- };
19
+ };
@@ -8,8 +8,7 @@ module.exports = function(that, maxLength, fillString, left){
8
8
  , stringLength = S.length
9
9
  , fillStr = fillString === undefined ? ' ' : String(fillString)
10
10
  , intMaxLength = toLength(maxLength);
11
- if(intMaxLength <= stringLength)return S;
12
- if(fillStr == '')fillStr = ' ';
11
+ if(intMaxLength <= stringLength || fillStr == '')return S;
13
12
  var fillLen = intMaxLength - stringLength
14
13
  , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
15
14
  if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
@@ -0,0 +1,9 @@
1
+ var global = require('./_global')
2
+ , core = require('./_core')
3
+ , LIBRARY = require('./_library')
4
+ , wksExt = require('./_wks-ext')
5
+ , defineProperty = require('./_object-dp').f;
6
+ module.exports = function(name){
7
+ var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
8
+ if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
9
+ };
@@ -0,0 +1 @@
1
+ exports.f = require('./_wks');
@@ -2,7 +2,10 @@ var store = require('./_shared')('wks')
2
2
  , uid = require('./_uid')
3
3
  , Symbol = require('./_global').Symbol
4
4
  , USE_SYMBOL = typeof Symbol == 'function';
5
- module.exports = function(name){
5
+
6
+ var $exports = module.exports = function(name){
6
7
  return store[name] || (store[name] =
7
8
  USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
8
- };
9
+ };
10
+
11
+ $exports.store = store;
@@ -1,10 +1,10 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , $filter = require('./_array-methods')(2);
4
-
5
- $export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {
6
- // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
7
- filter: function filter(callbackfn /* , thisArg */){
8
- return $filter(this, callbackfn, arguments[1]);
9
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , $filter = require('./_array-methods')(2);
4
+
5
+ $export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {
6
+ // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
7
+ filter: function filter(callbackfn /* , thisArg */){
8
+ return $filter(this, callbackfn, arguments[1]);
9
+ }
10
10
  });
@@ -1,11 +1,13 @@
1
1
  'use strict';
2
- var ctx = require('./_ctx')
3
- , $export = require('./_export')
4
- , toObject = require('./_to-object')
5
- , call = require('./_iter-call')
6
- , isArrayIter = require('./_is-array-iter')
7
- , toLength = require('./_to-length')
8
- , getIterFn = require('./core.get-iterator-method');
2
+ var ctx = require('./_ctx')
3
+ , $export = require('./_export')
4
+ , toObject = require('./_to-object')
5
+ , call = require('./_iter-call')
6
+ , isArrayIter = require('./_is-array-iter')
7
+ , toLength = require('./_to-length')
8
+ , createProperty = require('./_create-property')
9
+ , getIterFn = require('./core.get-iterator-method');
10
+
9
11
  $export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
10
12
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
11
13
  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
@@ -21,12 +23,12 @@ $export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array
21
23
  // if object isn't iterable or it's array with default iterator - use simple case
22
24
  if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
23
25
  for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
24
- result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
26
+ createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
25
27
  }
26
28
  } else {
27
29
  length = toLength(O.length);
28
30
  for(result = new C(length); length > index; index++){
29
- result[index] = mapping ? mapfn(O[index], index) : O[index];
31
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
30
32
  }
31
33
  }
32
34
  result.length = index;
@@ -1,10 +1,15 @@
1
1
  'use strict';
2
- var $export = require('./_export')
3
- , $indexOf = require('./_array-includes')(false);
2
+ var $export = require('./_export')
3
+ , $indexOf = require('./_array-includes')(false)
4
+ , $native = [].indexOf
5
+ , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
4
6
 
5
- $export($export.P + $export.F * !require('./_strict-method')([].indexOf), 'Array', {
7
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
6
8
  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
7
9
  indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
8
- return $indexOf(this, searchElement, arguments[1]);
10
+ return NEGATIVE_ZERO
11
+ // convert -0 to +0
12
+ ? $native.apply(this, arguments) || 0
13
+ : $indexOf(this, searchElement, arguments[1]);
9
14
  }
10
15
  });