core-js 3.20.0 → 3.21.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 (174) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/actual/array/group-by-to-map.js +1 -0
  4. package/actual/array/index.js +1 -0
  5. package/actual/array/virtual/group-by-to-map.js +1 -0
  6. package/actual/array/virtual/index.js +1 -0
  7. package/actual/atob.js +3 -0
  8. package/actual/btoa.js +3 -0
  9. package/features/atob.js +3 -0
  10. package/features/btoa.js +3 -0
  11. package/features/index.js +2 -0
  12. package/internals/array-buffer-view-core.js +9 -4
  13. package/internals/base64-map.js +9 -0
  14. package/internals/function-apply.js +3 -2
  15. package/internals/function-bind-context.js +2 -1
  16. package/internals/function-bind-native.js +7 -0
  17. package/internals/function-bind.js +2 -1
  18. package/internals/function-call.js +3 -1
  19. package/internals/function-uncurry-this.js +5 -3
  20. package/internals/ie8-dom-define.js +2 -2
  21. package/internals/native-url.js +1 -0
  22. package/internals/numeric-range-iterator.js +1 -1
  23. package/internals/object-create.js +2 -2
  24. package/internals/object-define-properties.js +2 -1
  25. package/internals/object-define-property.js +22 -1
  26. package/internals/queue.js +23 -0
  27. package/internals/shared.js +4 -2
  28. package/internals/task.js +5 -2
  29. package/internals/v8-prototype-define-bug.js +12 -0
  30. package/internals/validate-arguments-length.js +8 -0
  31. package/modules/es.function.bind.js +1 -1
  32. package/modules/es.object.define-properties.js +3 -2
  33. package/modules/es.object.define-property.js +4 -3
  34. package/modules/es.promise.finally.js +1 -0
  35. package/modules/es.promise.js +47 -43
  36. package/modules/es.symbol.js +2 -0
  37. package/modules/es.typed-array.set.js +20 -5
  38. package/modules/es.weak-map.js +5 -5
  39. package/modules/esnext.array.filter-out.js +1 -1
  40. package/modules/esnext.array.filter-reject.js +1 -1
  41. package/modules/esnext.array.from-async.js +1 -1
  42. package/modules/esnext.array.is-template-object.js +1 -1
  43. package/modules/esnext.array.last-index.js +1 -1
  44. package/modules/esnext.array.last-item.js +1 -1
  45. package/modules/esnext.array.to-reversed.js +1 -1
  46. package/modules/esnext.array.to-sorted.js +1 -1
  47. package/modules/esnext.array.to-spliced.js +1 -1
  48. package/modules/esnext.array.unique-by.js +1 -1
  49. package/modules/esnext.array.with.js +1 -1
  50. package/modules/esnext.async-iterator.as-indexed-pairs.js +1 -1
  51. package/modules/esnext.async-iterator.drop.js +1 -1
  52. package/modules/esnext.async-iterator.every.js +1 -1
  53. package/modules/esnext.async-iterator.filter.js +1 -1
  54. package/modules/esnext.async-iterator.find.js +1 -1
  55. package/modules/esnext.async-iterator.flat-map.js +1 -1
  56. package/modules/esnext.async-iterator.for-each.js +1 -1
  57. package/modules/esnext.async-iterator.from.js +1 -1
  58. package/modules/esnext.async-iterator.map.js +1 -1
  59. package/modules/esnext.async-iterator.reduce.js +1 -1
  60. package/modules/esnext.async-iterator.some.js +1 -1
  61. package/modules/esnext.async-iterator.take.js +1 -1
  62. package/modules/esnext.async-iterator.to-array.js +1 -1
  63. package/modules/esnext.bigint.range.js +1 -1
  64. package/modules/esnext.composite-key.js +1 -1
  65. package/modules/esnext.composite-symbol.js +1 -1
  66. package/modules/esnext.function.is-callable.js +1 -1
  67. package/modules/esnext.function.is-constructor.js +1 -1
  68. package/modules/esnext.function.un-this.js +1 -1
  69. package/modules/esnext.iterator.as-indexed-pairs.js +1 -1
  70. package/modules/esnext.iterator.drop.js +1 -1
  71. package/modules/esnext.iterator.every.js +1 -1
  72. package/modules/esnext.iterator.filter.js +1 -1
  73. package/modules/esnext.iterator.find.js +1 -1
  74. package/modules/esnext.iterator.flat-map.js +1 -1
  75. package/modules/esnext.iterator.for-each.js +1 -1
  76. package/modules/esnext.iterator.from.js +1 -1
  77. package/modules/esnext.iterator.map.js +1 -1
  78. package/modules/esnext.iterator.reduce.js +1 -1
  79. package/modules/esnext.iterator.some.js +1 -1
  80. package/modules/esnext.iterator.take.js +1 -1
  81. package/modules/esnext.iterator.to-array.js +1 -1
  82. package/modules/esnext.iterator.to-async.js +1 -1
  83. package/modules/esnext.map.delete-all.js +1 -2
  84. package/modules/esnext.map.emplace.js +1 -2
  85. package/modules/esnext.map.every.js +1 -2
  86. package/modules/esnext.map.filter.js +1 -2
  87. package/modules/esnext.map.find-key.js +1 -2
  88. package/modules/esnext.map.find.js +1 -2
  89. package/modules/esnext.map.from.js +1 -1
  90. package/modules/esnext.map.group-by.js +1 -1
  91. package/modules/esnext.map.includes.js +1 -2
  92. package/modules/esnext.map.key-by.js +1 -1
  93. package/modules/esnext.map.key-of.js +1 -2
  94. package/modules/esnext.map.map-keys.js +1 -2
  95. package/modules/esnext.map.map-values.js +1 -2
  96. package/modules/esnext.map.merge.js +2 -3
  97. package/modules/esnext.map.of.js +1 -1
  98. package/modules/esnext.map.reduce.js +1 -2
  99. package/modules/esnext.map.some.js +1 -2
  100. package/modules/esnext.map.update-or-insert.js +1 -2
  101. package/modules/esnext.map.update.js +1 -2
  102. package/modules/esnext.map.upsert.js +1 -2
  103. package/modules/esnext.math.clamp.js +1 -1
  104. package/modules/esnext.math.deg-per-rad.js +1 -1
  105. package/modules/esnext.math.degrees.js +1 -1
  106. package/modules/esnext.math.fscale.js +1 -1
  107. package/modules/esnext.math.iaddh.js +1 -1
  108. package/modules/esnext.math.imulh.js +1 -1
  109. package/modules/esnext.math.isubh.js +1 -1
  110. package/modules/esnext.math.rad-per-deg.js +1 -1
  111. package/modules/esnext.math.radians.js +1 -1
  112. package/modules/esnext.math.scale.js +1 -1
  113. package/modules/esnext.math.signbit.js +1 -1
  114. package/modules/esnext.math.umulh.js +1 -1
  115. package/modules/esnext.number.from-string.js +1 -1
  116. package/modules/esnext.number.range.js +1 -1
  117. package/modules/esnext.object.iterate-entries.js +1 -1
  118. package/modules/esnext.object.iterate-keys.js +1 -1
  119. package/modules/esnext.object.iterate-values.js +1 -1
  120. package/modules/esnext.observable.js +9 -1
  121. package/modules/esnext.promise.try.js +1 -1
  122. package/modules/esnext.set.add-all.js +1 -2
  123. package/modules/esnext.set.delete-all.js +1 -2
  124. package/modules/esnext.set.difference.js +1 -2
  125. package/modules/esnext.set.every.js +1 -2
  126. package/modules/esnext.set.filter.js +1 -2
  127. package/modules/esnext.set.find.js +1 -2
  128. package/modules/esnext.set.from.js +1 -1
  129. package/modules/esnext.set.intersection.js +1 -2
  130. package/modules/esnext.set.is-disjoint-from.js +1 -2
  131. package/modules/esnext.set.is-subset-of.js +1 -2
  132. package/modules/esnext.set.is-superset-of.js +1 -2
  133. package/modules/esnext.set.join.js +1 -2
  134. package/modules/esnext.set.map.js +1 -2
  135. package/modules/esnext.set.of.js +1 -1
  136. package/modules/esnext.set.reduce.js +1 -2
  137. package/modules/esnext.set.some.js +1 -2
  138. package/modules/esnext.set.symmetric-difference.js +1 -2
  139. package/modules/esnext.set.union.js +1 -2
  140. package/modules/esnext.string.at.js +1 -6
  141. package/modules/esnext.string.code-points.js +1 -1
  142. package/modules/esnext.string.cooked.js +1 -1
  143. package/modules/esnext.typed-array.filter-out.js +1 -1
  144. package/modules/esnext.typed-array.filter-reject.js +1 -1
  145. package/modules/esnext.typed-array.from-async.js +1 -2
  146. package/modules/esnext.typed-array.group-by.js +1 -1
  147. package/modules/esnext.typed-array.to-reversed.js +1 -1
  148. package/modules/esnext.typed-array.to-sorted.js +1 -1
  149. package/modules/esnext.typed-array.to-spliced.js +1 -1
  150. package/modules/esnext.typed-array.unique-by.js +1 -1
  151. package/modules/esnext.typed-array.with.js +1 -1
  152. package/modules/esnext.weak-map.delete-all.js +1 -2
  153. package/modules/esnext.weak-map.emplace.js +1 -2
  154. package/modules/esnext.weak-map.from.js +1 -1
  155. package/modules/esnext.weak-map.of.js +1 -1
  156. package/modules/esnext.weak-map.upsert.js +1 -2
  157. package/modules/esnext.weak-set.add-all.js +1 -2
  158. package/modules/esnext.weak-set.delete-all.js +1 -2
  159. package/modules/esnext.weak-set.from.js +1 -1
  160. package/modules/esnext.weak-set.of.js +1 -1
  161. package/modules/web.atob.js +52 -0
  162. package/modules/web.btoa.js +37 -0
  163. package/modules/web.dom-exception.constructor.js +1 -1
  164. package/modules/web.queue-microtask.js +4 -0
  165. package/modules/web.structured-clone.js +5 -4
  166. package/modules/web.timers.js +5 -3
  167. package/modules/web.url-search-params.js +1 -4
  168. package/modules/web.url.js +3 -2
  169. package/package.json +2 -2
  170. package/postinstall.js +1 -1
  171. package/stable/atob.js +9 -0
  172. package/stable/btoa.js +9 -0
  173. package/stable/index.js +2 -0
  174. package/web/index.js +2 -0
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var anObject = require('../internals/an-object');
5
4
  var bind = require('../internals/function-bind-context');
6
5
  var getMapIterator = require('../internals/get-map-iterator');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Map.prototype.find` method
10
9
  // https://github.com/tc39/proposal-collection-methods
11
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
12
11
  find: function find(callbackfn /* , thisArg */) {
13
12
  var map = anObject(this);
14
13
  var iterator = getMapIterator(map);
@@ -3,6 +3,6 @@ var from = require('../internals/collection-from');
3
3
 
4
4
  // `Map.from` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
6
- $({ target: 'Map', stat: true }, {
6
+ $({ target: 'Map', stat: true, forced: true }, {
7
7
  from: from
8
8
  });
@@ -10,7 +10,7 @@ var push = uncurryThis([].push);
10
10
 
11
11
  // `Map.groupBy` method
12
12
  // https://github.com/tc39/proposal-collection-methods
13
- $({ target: 'Map', stat: true }, {
13
+ $({ target: 'Map', stat: true, forced: true }, {
14
14
  groupBy: function groupBy(iterable, keyDerivative) {
15
15
  aCallable(keyDerivative);
16
16
  var iterator = getIterator(iterable);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var anObject = require('../internals/an-object');
5
4
  var getMapIterator = require('../internals/get-map-iterator');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Map.prototype.includes` method
10
9
  // https://github.com/tc39/proposal-collection-methods
11
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
12
11
  includes: function includes(searchElement) {
13
12
  return iterate(getMapIterator(anObject(this)), function (key, value, stop) {
14
13
  if (sameValueZero(value, searchElement)) return stop();
@@ -6,7 +6,7 @@ var aCallable = require('../internals/a-callable');
6
6
 
7
7
  // `Map.keyBy` method
8
8
  // https://github.com/tc39/proposal-collection-methods
9
- $({ target: 'Map', stat: true }, {
9
+ $({ target: 'Map', stat: true, forced: true }, {
10
10
  keyBy: function keyBy(iterable, keyDerivative) {
11
11
  var newMap = new this();
12
12
  aCallable(keyDerivative);
@@ -1,13 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var anObject = require('../internals/an-object');
5
4
  var getMapIterator = require('../internals/get-map-iterator');
6
5
  var iterate = require('../internals/iterate');
7
6
 
8
7
  // `Map.prototype.keyOf` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
9
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
11
10
  keyOf: function keyOf(searchElement) {
12
11
  return iterate(getMapIterator(anObject(this)), function (key, value, stop) {
13
12
  if (value === searchElement) return stop(key);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var bind = require('../internals/function-bind-context');
@@ -12,7 +11,7 @@ var iterate = require('../internals/iterate');
12
11
 
13
12
  // `Map.prototype.mapKeys` method
14
13
  // https://github.com/tc39/proposal-collection-methods
15
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
14
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
16
15
  mapKeys: function mapKeys(callbackfn /* , thisArg */) {
17
16
  var map = anObject(this);
18
17
  var iterator = getMapIterator(map);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var bind = require('../internals/function-bind-context');
@@ -12,7 +11,7 @@ var iterate = require('../internals/iterate');
12
11
 
13
12
  // `Map.prototype.mapValues` method
14
13
  // https://github.com/tc39/proposal-collection-methods
15
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
14
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
16
15
  mapValues: function mapValues(callbackfn /* , thisArg */) {
17
16
  var map = anObject(this);
18
17
  var iterator = getMapIterator(map);
@@ -1,15 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var aCallable = require('../internals/a-callable');
5
4
  var anObject = require('../internals/an-object');
6
5
  var iterate = require('../internals/iterate');
7
6
 
8
7
  // `Map.prototype.merge` method
9
8
  // https://github.com/tc39/proposal-collection-methods
10
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
9
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
11
10
  // eslint-disable-next-line no-unused-vars -- required for `.length`
12
- merge: function merge(iterable /* ...iterbles */) {
11
+ merge: function merge(iterable /* ...iterables */) {
13
12
  var map = anObject(this);
14
13
  var setter = aCallable(map.set);
15
14
  var argumentsLength = arguments.length;
@@ -3,6 +3,6 @@ var of = require('../internals/collection-of');
3
3
 
4
4
  // `Map.of` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
6
- $({ target: 'Map', stat: true }, {
6
+ $({ target: 'Map', stat: true, forced: true }, {
7
7
  of: of
8
8
  });
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var global = require('../internals/global');
4
- var IS_PURE = require('../internals/is-pure');
5
4
  var anObject = require('../internals/an-object');
6
5
  var aCallable = require('../internals/a-callable');
7
6
  var getMapIterator = require('../internals/get-map-iterator');
@@ -11,7 +10,7 @@ var TypeError = global.TypeError;
11
10
 
12
11
  // `Map.prototype.reduce` method
13
12
  // https://github.com/tc39/proposal-collection-methods
14
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
13
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
15
14
  reduce: function reduce(callbackfn /* , initialValue */) {
16
15
  var map = anObject(this);
17
16
  var iterator = getMapIterator(map);
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var anObject = require('../internals/an-object');
5
4
  var bind = require('../internals/function-bind-context');
6
5
  var getMapIterator = require('../internals/get-map-iterator');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Set.prototype.some` method
10
9
  // https://github.com/tc39/proposal-collection-methods
11
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
12
11
  some: function some(callbackfn /* , thisArg */) {
13
12
  var map = anObject(this);
14
13
  var iterator = getMapIterator(map);
@@ -1,11 +1,10 @@
1
1
  'use strict';
2
2
  // TODO: remove from `core-js@4`
3
3
  var $ = require('../internals/export');
4
- var IS_PURE = require('../internals/is-pure');
5
4
  var upsert = require('../internals/map-upsert');
6
5
 
7
6
  // `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)
8
7
  // https://github.com/thumbsupep/proposal-upsert
9
- $({ target: 'Map', proto: true, real: true, name: 'upsert', forced: IS_PURE }, {
8
+ $({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, {
10
9
  updateOrInsert: upsert
11
10
  });
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var global = require('../internals/global');
5
4
  var call = require('../internals/function-call');
@@ -10,7 +9,7 @@ var TypeError = global.TypeError;
10
9
 
11
10
  // `Set.prototype.update` method
12
11
  // https://github.com/tc39/proposal-collection-methods
13
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
12
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
14
13
  update: function update(key, callback /* , thunk */) {
15
14
  var map = anObject(this);
16
15
  var get = aCallable(map.get);
@@ -1,11 +1,10 @@
1
1
  'use strict';
2
2
  // TODO: remove from `core-js@4`
3
3
  var $ = require('../internals/export');
4
- var IS_PURE = require('../internals/is-pure');
5
4
  var upsert = require('../internals/map-upsert');
6
5
 
7
6
  // `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`)
8
7
  // https://github.com/thumbsupep/proposal-upsert
9
- $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
8
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
10
9
  upsert: upsert
11
10
  });
@@ -5,7 +5,7 @@ var max = Math.max;
5
5
 
6
6
  // `Math.clamp` method
7
7
  // https://rwaldron.github.io/proposal-math-extensions/
8
- $({ target: 'Math', stat: true }, {
8
+ $({ target: 'Math', stat: true, forced: true }, {
9
9
  clamp: function clamp(x, lower, upper) {
10
10
  return min(upper, max(lower, x));
11
11
  }
@@ -2,6 +2,6 @@ var $ = require('../internals/export');
2
2
 
3
3
  // `Math.DEG_PER_RAD` constant
4
4
  // https://rwaldron.github.io/proposal-math-extensions/
5
- $({ target: 'Math', stat: true }, {
5
+ $({ target: 'Math', stat: true, forced: true }, {
6
6
  DEG_PER_RAD: Math.PI / 180
7
7
  });
@@ -4,7 +4,7 @@ var RAD_PER_DEG = 180 / Math.PI;
4
4
 
5
5
  // `Math.degrees` method
6
6
  // https://rwaldron.github.io/proposal-math-extensions/
7
- $({ target: 'Math', stat: true }, {
7
+ $({ target: 'Math', stat: true, forced: true }, {
8
8
  degrees: function degrees(radians) {
9
9
  return radians * RAD_PER_DEG;
10
10
  }
@@ -5,7 +5,7 @@ var fround = require('../internals/math-fround');
5
5
 
6
6
  // `Math.fscale` method
7
7
  // https://rwaldron.github.io/proposal-math-extensions/
8
- $({ target: 'Math', stat: true }, {
8
+ $({ target: 'Math', stat: true, forced: true }, {
9
9
  fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {
10
10
  return fround(scale(x, inLow, inHigh, outLow, outHigh));
11
11
  }
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  // `Math.iaddh` method
4
4
  // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
5
5
  // TODO: Remove from `core-js@4`
6
- $({ target: 'Math', stat: true }, {
6
+ $({ target: 'Math', stat: true, forced: true }, {
7
7
  iaddh: function iaddh(x0, x1, y0, y1) {
8
8
  var $x0 = x0 >>> 0;
9
9
  var $x1 = x1 >>> 0;
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  // `Math.imulh` method
4
4
  // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
5
5
  // TODO: Remove from `core-js@4`
6
- $({ target: 'Math', stat: true }, {
6
+ $({ target: 'Math', stat: true, forced: true }, {
7
7
  imulh: function imulh(u, v) {
8
8
  var UINT16 = 0xFFFF;
9
9
  var $u = +u;
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  // `Math.isubh` method
4
4
  // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
5
5
  // TODO: Remove from `core-js@4`
6
- $({ target: 'Math', stat: true }, {
6
+ $({ target: 'Math', stat: true, forced: true }, {
7
7
  isubh: function isubh(x0, x1, y0, y1) {
8
8
  var $x0 = x0 >>> 0;
9
9
  var $x1 = x1 >>> 0;
@@ -2,6 +2,6 @@ var $ = require('../internals/export');
2
2
 
3
3
  // `Math.RAD_PER_DEG` constant
4
4
  // https://rwaldron.github.io/proposal-math-extensions/
5
- $({ target: 'Math', stat: true }, {
5
+ $({ target: 'Math', stat: true, forced: true }, {
6
6
  RAD_PER_DEG: 180 / Math.PI
7
7
  });
@@ -4,7 +4,7 @@ var DEG_PER_RAD = Math.PI / 180;
4
4
 
5
5
  // `Math.radians` method
6
6
  // https://rwaldron.github.io/proposal-math-extensions/
7
- $({ target: 'Math', stat: true }, {
7
+ $({ target: 'Math', stat: true, forced: true }, {
8
8
  radians: function radians(degrees) {
9
9
  return degrees * DEG_PER_RAD;
10
10
  }
@@ -3,6 +3,6 @@ var scale = require('../internals/math-scale');
3
3
 
4
4
  // `Math.scale` method
5
5
  // https://rwaldron.github.io/proposal-math-extensions/
6
- $({ target: 'Math', stat: true }, {
6
+ $({ target: 'Math', stat: true, forced: true }, {
7
7
  scale: scale
8
8
  });
@@ -2,7 +2,7 @@ var $ = require('../internals/export');
2
2
 
3
3
  // `Math.signbit` method
4
4
  // https://github.com/tc39/proposal-Math.signbit
5
- $({ target: 'Math', stat: true }, {
5
+ $({ target: 'Math', stat: true, forced: true }, {
6
6
  signbit: function signbit(x) {
7
7
  return (x = +x) == x && x == 0 ? 1 / x == -Infinity : x < 0;
8
8
  }
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  // `Math.umulh` method
4
4
  // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
5
5
  // TODO: Remove from `core-js@4`
6
- $({ target: 'Math', stat: true }, {
6
+ $({ target: 'Math', stat: true, forced: true }, {
7
7
  umulh: function umulh(u, v) {
8
8
  var UINT16 = 0xFFFF;
9
9
  var $u = +u;
@@ -18,7 +18,7 @@ var stringSlice = uncurryThis(''.slice);
18
18
 
19
19
  // `Number.fromString` method
20
20
  // https://github.com/tc39/proposal-number-fromstring
21
- $({ target: 'Number', stat: true }, {
21
+ $({ target: 'Number', stat: true, forced: true }, {
22
22
  fromString: function fromString(string, radix) {
23
23
  var sign = 1;
24
24
  var R, mathNum;
@@ -4,7 +4,7 @@ var NumericRangeIterator = require('../internals/numeric-range-iterator');
4
4
 
5
5
  // `Number.range` method
6
6
  // https://github.com/tc39/proposal-Number.range
7
- $({ target: 'Number', stat: true }, {
7
+ $({ target: 'Number', stat: true, forced: true }, {
8
8
  range: function range(start, end, option) {
9
9
  return new NumericRangeIterator(start, end, option, 'number', 0, 1);
10
10
  }
@@ -4,7 +4,7 @@ var ObjectIterator = require('../internals/object-iterator');
4
4
 
5
5
  // `Object.iterateEntries` method
6
6
  // https://github.com/tc39/proposal-object-iteration
7
- $({ target: 'Object', stat: true }, {
7
+ $({ target: 'Object', stat: true, forced: true }, {
8
8
  iterateEntries: function iterateEntries(object) {
9
9
  return new ObjectIterator(object, 'entries');
10
10
  }
@@ -4,7 +4,7 @@ var ObjectIterator = require('../internals/object-iterator');
4
4
 
5
5
  // `Object.iterateKeys` method
6
6
  // https://github.com/tc39/proposal-object-iteration
7
- $({ target: 'Object', stat: true }, {
7
+ $({ target: 'Object', stat: true, forced: true }, {
8
8
  iterateKeys: function iterateKeys(object) {
9
9
  return new ObjectIterator(object, 'keys');
10
10
  }
@@ -4,7 +4,7 @@ var ObjectIterator = require('../internals/object-iterator');
4
4
 
5
5
  // `Object.iterateValues` method
6
6
  // https://github.com/tc39/proposal-object-iteration
7
- $({ target: 'Object', stat: true }, {
7
+ $({ target: 'Object', stat: true, forced: true }, {
8
8
  iterateValues: function iterateValues(object) {
9
9
  return new ObjectIterator(object, 'values');
10
10
  }
@@ -31,6 +31,14 @@ var getObservableInternalState = getterFor(OBSERVABLE);
31
31
  var getSubscriptionInternalState = getterFor(SUBSCRIPTION);
32
32
  var getSubscriptionObserverInternalState = getterFor(SUBSCRIPTION_OBSERVER);
33
33
  var Array = global.Array;
34
+ var NativeObservable = global.Observable;
35
+ var NativeObservablePrototype = NativeObservable && NativeObservable.prototype;
36
+
37
+ var FORCED = !isCallable(NativeObservable)
38
+ || !isCallable(NativeObservable.from)
39
+ || !isCallable(NativeObservable.of)
40
+ || !isCallable(NativeObservablePrototype.subscribe)
41
+ || !isCallable(NativeObservablePrototype[$$OBSERVABLE]);
34
42
 
35
43
  var SubscriptionState = function (observer) {
36
44
  this.observer = anObject(observer);
@@ -218,7 +226,7 @@ redefineAll($Observable, {
218
226
 
219
227
  redefine(ObservablePrototype, $$OBSERVABLE, function () { return this; });
220
228
 
221
- $({ global: true }, {
229
+ $({ global: true, forced: FORCED }, {
222
230
  Observable: $Observable
223
231
  });
224
232
 
@@ -5,7 +5,7 @@ var perform = require('../internals/perform');
5
5
 
6
6
  // `Promise.try` method
7
7
  // https://github.com/tc39/proposal-promise-try
8
- $({ target: 'Promise', stat: true }, {
8
+ $({ target: 'Promise', stat: true, forced: true }, {
9
9
  'try': function (callbackfn) {
10
10
  var promiseCapability = newPromiseCapabilityModule.f(this);
11
11
  var result = perform(callbackfn);
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var addAll = require('../internals/collection-add-all');
5
4
 
6
5
  // `Set.prototype.addAll` method
7
6
  // https://github.com/tc39/proposal-collection-methods
8
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
7
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
9
8
  addAll: addAll
10
9
  });
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var deleteAll = require('../internals/collection-delete-all');
5
4
 
6
5
  // `Set.prototype.deleteAll` method
7
6
  // https://github.com/tc39/proposal-collection-methods
8
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
7
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
9
8
  deleteAll: deleteAll
10
9
  });
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var call = require('../internals/function-call');
@@ -10,7 +9,7 @@ var iterate = require('../internals/iterate');
10
9
 
11
10
  // `Set.prototype.difference` method
12
11
  // https://github.com/tc39/proposal-set-methods
13
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
12
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
14
13
  difference: function difference(iterable) {
15
14
  var set = anObject(this);
16
15
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var anObject = require('../internals/an-object');
5
4
  var bind = require('../internals/function-bind-context');
6
5
  var getSetIterator = require('../internals/get-set-iterator');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Set.prototype.every` method
10
9
  // https://github.com/tc39/proposal-collection-methods
11
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
12
11
  every: function every(callbackfn /* , thisArg */) {
13
12
  var set = anObject(this);
14
13
  var iterator = getSetIterator(set);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var call = require('../internals/function-call');
@@ -12,7 +11,7 @@ var iterate = require('../internals/iterate');
12
11
 
13
12
  // `Set.prototype.filter` method
14
13
  // https://github.com/tc39/proposal-collection-methods
15
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
14
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
16
15
  filter: function filter(callbackfn /* , thisArg */) {
17
16
  var set = anObject(this);
18
17
  var iterator = getSetIterator(set);
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var IS_PURE = require('../internals/is-pure');
4
3
  var anObject = require('../internals/an-object');
5
4
  var bind = require('../internals/function-bind-context');
6
5
  var getSetIterator = require('../internals/get-set-iterator');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Set.prototype.find` method
10
9
  // https://github.com/tc39/proposal-collection-methods
11
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
12
11
  find: function find(callbackfn /* , thisArg */) {
13
12
  var set = anObject(this);
14
13
  var iterator = getSetIterator(set);
@@ -3,6 +3,6 @@ var from = require('../internals/collection-from');
3
3
 
4
4
  // `Set.from` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-set.from
6
- $({ target: 'Set', stat: true }, {
6
+ $({ target: 'Set', stat: true, forced: true }, {
7
7
  from: from
8
8
  });
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var call = require('../internals/function-call');
@@ -10,7 +9,7 @@ var iterate = require('../internals/iterate');
10
9
 
11
10
  // `Set.prototype.intersection` method
12
11
  // https://github.com/tc39/proposal-set-methods
13
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
12
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
14
13
  intersection: function intersection(iterable) {
15
14
  var set = anObject(this);
16
15
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var call = require('../internals/function-call');
5
4
  var aCallable = require('../internals/a-callable');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Set.prototype.isDisjointFrom` method
10
9
  // https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom
11
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
12
11
  isDisjointFrom: function isDisjointFrom(iterable) {
13
12
  var set = anObject(this);
14
13
  var hasCheck = aCallable(set.has);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var call = require('../internals/function-call');
@@ -11,7 +10,7 @@ var iterate = require('../internals/iterate');
11
10
 
12
11
  // `Set.prototype.isSubsetOf` method
13
12
  // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf
14
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
15
14
  isSubsetOf: function isSubsetOf(iterable) {
16
15
  var iterator = getIterator(this);
17
16
  var otherSet = anObject(iterable);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var call = require('../internals/function-call');
5
4
  var aCallable = require('../internals/a-callable');
@@ -8,7 +7,7 @@ var iterate = require('../internals/iterate');
8
7
 
9
8
  // `Set.prototype.isSupersetOf` method
10
9
  // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf
11
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
10
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
12
11
  isSupersetOf: function isSupersetOf(iterable) {
13
12
  var set = anObject(this);
14
13
  var hasCheck = aCallable(set.has);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var uncurryThis = require('../internals/function-uncurry-this');
5
4
  var anObject = require('../internals/an-object');
@@ -12,7 +11,7 @@ var push = [].push;
12
11
 
13
12
  // `Set.prototype.join` method
14
13
  // https://github.com/tc39/proposal-collection-methods
15
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
14
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
16
15
  join: function join(separator) {
17
16
  var set = anObject(this);
18
17
  var iterator = getSetIterator(set);
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
- var IS_PURE = require('../internals/is-pure');
3
2
  var $ = require('../internals/export');
4
3
  var getBuiltIn = require('../internals/get-built-in');
5
4
  var bind = require('../internals/function-bind-context');
@@ -12,7 +11,7 @@ var iterate = require('../internals/iterate');
12
11
 
13
12
  // `Set.prototype.map` method
14
13
  // https://github.com/tc39/proposal-collection-methods
15
- $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
14
+ $({ target: 'Set', proto: true, real: true, forced: true }, {
16
15
  map: function map(callbackfn /* , thisArg */) {
17
16
  var set = anObject(this);
18
17
  var iterator = getSetIterator(set);
@@ -3,6 +3,6 @@ var of = require('../internals/collection-of');
3
3
 
4
4
  // `Set.of` method
5
5
  // https://tc39.github.io/proposal-setmap-offrom/#sec-set.of
6
- $({ target: 'Set', stat: true }, {
6
+ $({ target: 'Set', stat: true, forced: true }, {
7
7
  of: of
8
8
  });