core-js-pure 3.4.8 → 3.6.2

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 (157) hide show
  1. package/LICENSE +1 -1
  2. package/es/index.js +2 -0
  3. package/es/regexp/index.js +2 -0
  4. package/es/regexp/sticky.js +5 -0
  5. package/es/regexp/test.js +6 -0
  6. package/es/string/index.js +1 -0
  7. package/es/string/match.js +1 -0
  8. package/es/string/replace.js +1 -0
  9. package/es/string/search.js +1 -0
  10. package/es/string/split.js +1 -0
  11. package/es/symbol/async-iterator.js +1 -1
  12. package/es/symbol/has-instance.js +1 -1
  13. package/es/symbol/is-concat-spreadable.js +1 -1
  14. package/es/symbol/iterator.js +1 -1
  15. package/es/symbol/match-all.js +1 -1
  16. package/es/symbol/match.js +1 -1
  17. package/es/symbol/replace.js +1 -1
  18. package/es/symbol/search.js +1 -1
  19. package/es/symbol/species.js +1 -1
  20. package/es/symbol/split.js +1 -1
  21. package/es/symbol/to-primitive.js +1 -1
  22. package/es/symbol/to-string-tag.js +1 -1
  23. package/es/symbol/unscopables.js +1 -1
  24. package/features/instance/match-all.js +3 -0
  25. package/features/object/index.js +3 -0
  26. package/features/object/iterate-entries.js +4 -0
  27. package/features/object/iterate-keys.js +4 -0
  28. package/features/object/iterate-values.js +4 -0
  29. package/features/regexp/sticky.js +3 -0
  30. package/features/regexp/test.js +3 -0
  31. package/features/symbol/async-dispose.js +1 -1
  32. package/features/symbol/dispose.js +1 -1
  33. package/features/symbol/observable.js +1 -1
  34. package/features/symbol/pattern-match.js +1 -1
  35. package/features/symbol/replace-all.js +1 -1
  36. package/internals/array-buffer-native.js +1 -0
  37. package/internals/array-for-each.js +6 -2
  38. package/internals/array-from.js +7 -8
  39. package/internals/array-iteration.js +1 -1
  40. package/internals/array-last-index-of.js +6 -3
  41. package/internals/array-method-has-species-support.js +1 -1
  42. package/internals/{sloppy-array-method.js → array-method-is-strict.js} +1 -1
  43. package/internals/array-method-uses-to-length.js +30 -0
  44. package/internals/{create-async-iterator-proxy.js → async-iterator-create-proxy.js} +0 -0
  45. package/internals/collection-from.js +1 -1
  46. package/internals/collection-strong.js +1 -1
  47. package/internals/define-well-known-symbol.js +1 -1
  48. package/internals/descriptors.js +1 -1
  49. package/internals/{is-ios.js → engine-is-ios.js} +1 -1
  50. package/internals/{user-agent.js → engine-user-agent.js} +0 -0
  51. package/internals/{v8-version.js → engine-v8-version.js} +1 -1
  52. package/internals/export.js +1 -1
  53. package/internals/flatten-into-array.js +1 -1
  54. package/internals/{bind-context.js → function-bind-context.js} +0 -0
  55. package/internals/iterate.js +1 -1
  56. package/internals/{create-iterator-proxy.js → iterator-create-proxy.js} +0 -0
  57. package/internals/microtask.js +1 -1
  58. package/internals/{parse-float.js → number-parse-float.js} +4 -4
  59. package/internals/{parse-int.js → number-parse-int.js} +4 -4
  60. package/internals/object-create.js +48 -19
  61. package/internals/object-iterator.js +37 -0
  62. package/internals/{forced-object-prototype-accessors-methods.js → object-prototype-accessors-forced.js} +0 -0
  63. package/internals/regexp-sticky-helpers.js +1 -0
  64. package/internals/shared.js +2 -2
  65. package/internals/{forced-string-html-method.js → string-html-forced.js} +0 -0
  66. package/internals/{webkit-string-pad-bug.js → string-pad-webkit-bug.js} +1 -1
  67. package/internals/{punycode-to-ascii.js → string-punycode-to-ascii.js} +0 -0
  68. package/internals/{forced-string-trim-method.js → string-trim-forced.js} +0 -0
  69. package/internals/task.js +2 -2
  70. package/internals/{typed-arrays-constructors-requires-wrappers.js → typed-array-constructors-require-wrappers.js} +0 -0
  71. package/internals/use-symbol-as-uid.js +1 -1
  72. package/internals/{wrapped-well-known-symbol.js → well-known-symbol-wrapped.js} +0 -0
  73. package/internals/well-known-symbol.js +1 -1
  74. package/modules/es.array.concat.js +1 -1
  75. package/modules/es.array.every.js +6 -2
  76. package/modules/es.array.filter.js +2 -4
  77. package/modules/es.array.find-index.js +4 -1
  78. package/modules/es.array.find.js +4 -1
  79. package/modules/es.array.includes.js +4 -1
  80. package/modules/es.array.index-of.js +5 -3
  81. package/modules/es.array.join.js +3 -3
  82. package/modules/es.array.map.js +2 -4
  83. package/modules/es.array.reduce-right.js +6 -2
  84. package/modules/es.array.reduce.js +6 -2
  85. package/modules/es.array.slice.js +6 -2
  86. package/modules/es.array.some.js +6 -2
  87. package/modules/es.array.sort.js +3 -3
  88. package/modules/es.array.splice.js +5 -1
  89. package/modules/es.number.parse-float.js +1 -1
  90. package/modules/es.number.parse-int.js +1 -1
  91. package/modules/es.object.define-getter.js +1 -1
  92. package/modules/es.object.define-setter.js +1 -1
  93. package/modules/es.object.lookup-getter.js +1 -1
  94. package/modules/es.object.lookup-setter.js +1 -1
  95. package/modules/es.parse-float.js +1 -1
  96. package/modules/es.parse-int.js +1 -1
  97. package/modules/es.promise.js +1 -1
  98. package/modules/es.regexp.sticky.js +1 -0
  99. package/modules/es.regexp.test.js +1 -0
  100. package/modules/es.string.anchor.js +1 -1
  101. package/modules/es.string.big.js +1 -1
  102. package/modules/es.string.blink.js +1 -1
  103. package/modules/es.string.bold.js +1 -1
  104. package/modules/es.string.fixed.js +1 -1
  105. package/modules/es.string.fontcolor.js +1 -1
  106. package/modules/es.string.fontsize.js +1 -1
  107. package/modules/es.string.italics.js +1 -1
  108. package/modules/es.string.link.js +1 -1
  109. package/modules/es.string.pad-end.js +1 -1
  110. package/modules/es.string.pad-start.js +1 -1
  111. package/modules/es.string.small.js +1 -1
  112. package/modules/es.string.strike.js +1 -1
  113. package/modules/es.string.sub.js +1 -1
  114. package/modules/es.string.sup.js +1 -1
  115. package/modules/es.string.trim-end.js +1 -1
  116. package/modules/es.string.trim-start.js +1 -1
  117. package/modules/es.string.trim.js +1 -1
  118. package/modules/es.symbol.js +10 -8
  119. package/modules/esnext.async-iterator.as-indexed-pairs.js +1 -1
  120. package/modules/esnext.async-iterator.drop.js +1 -1
  121. package/modules/esnext.async-iterator.filter.js +1 -1
  122. package/modules/esnext.async-iterator.flat-map.js +1 -1
  123. package/modules/esnext.async-iterator.from.js +1 -1
  124. package/modules/esnext.async-iterator.map.js +1 -1
  125. package/modules/esnext.async-iterator.take.js +1 -1
  126. package/modules/esnext.iterator.as-indexed-pairs.js +1 -1
  127. package/modules/esnext.iterator.drop.js +1 -1
  128. package/modules/esnext.iterator.filter.js +1 -1
  129. package/modules/esnext.iterator.flat-map.js +1 -1
  130. package/modules/esnext.iterator.from.js +1 -1
  131. package/modules/esnext.iterator.map.js +1 -1
  132. package/modules/esnext.iterator.take.js +1 -1
  133. package/modules/esnext.map.every.js +1 -1
  134. package/modules/esnext.map.filter.js +1 -1
  135. package/modules/esnext.map.find-key.js +1 -1
  136. package/modules/esnext.map.find.js +1 -1
  137. package/modules/esnext.map.map-keys.js +1 -1
  138. package/modules/esnext.map.map-values.js +1 -1
  139. package/modules/esnext.map.some.js +1 -1
  140. package/modules/esnext.number.from-string.js +1 -1
  141. package/modules/esnext.object.iterate-entries.js +11 -0
  142. package/modules/esnext.object.iterate-keys.js +11 -0
  143. package/modules/esnext.object.iterate-values.js +11 -0
  144. package/modules/esnext.set.every.js +1 -1
  145. package/modules/esnext.set.filter.js +1 -1
  146. package/modules/esnext.set.find.js +1 -1
  147. package/modules/esnext.set.map.js +1 -1
  148. package/modules/esnext.set.some.js +1 -1
  149. package/modules/web.dom-collections.iterator.js +2 -1
  150. package/modules/web.timers.js +1 -1
  151. package/modules/web.url-search-params.js +1 -1
  152. package/modules/web.url.js +1 -1
  153. package/package.json +1 -1
  154. package/proposals/object-iteration.js +3 -0
  155. package/stable/regexp/sticky.js +3 -0
  156. package/stable/regexp/test.js +3 -0
  157. package/stage/1.js +1 -0
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2019 Denis Pushkarev
1
+ Copyright (c) 2014-2020 Denis Pushkarev
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
package/es/index.js CHANGED
@@ -105,6 +105,8 @@ require('../modules/es.string.sup');
105
105
  require('../modules/es.regexp.constructor');
106
106
  require('../modules/es.regexp.exec');
107
107
  require('../modules/es.regexp.flags');
108
+ require('../modules/es.regexp.sticky');
109
+ require('../modules/es.regexp.test');
108
110
  require('../modules/es.regexp.to-string');
109
111
  require('../modules/es.parse-int');
110
112
  require('../modules/es.parse-float');
@@ -2,6 +2,8 @@ require('../../modules/es.regexp.constructor');
2
2
  require('../../modules/es.regexp.to-string');
3
3
  require('../../modules/es.regexp.exec');
4
4
  require('../../modules/es.regexp.flags');
5
+ require('../../modules/es.regexp.sticky');
6
+ require('../../modules/es.regexp.test');
5
7
  require('../../modules/es.string.match');
6
8
  require('../../modules/es.string.replace');
7
9
  require('../../modules/es.string.search');
@@ -0,0 +1,5 @@
1
+ require('../../modules/es.regexp.sticky');
2
+
3
+ module.exports = function (it) {
4
+ return it.sticky;
5
+ };
@@ -0,0 +1,6 @@
1
+ require('../../modules/es.regexp.exec');
2
+ require('../../modules/es.regexp.test');
3
+
4
+ module.exports = function (re, string) {
5
+ return RegExp.prototype.test.call(re, string);
6
+ };
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.from-code-point');
2
3
  require('../../modules/es.string.raw');
3
4
  require('../../modules/es.string.code-point-at');
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.match');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.replace');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.search');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,3 +1,4 @@
1
+ require('../../modules/es.regexp.exec');
1
2
  require('../../modules/es.string.split');
2
3
  var entryUnbind = require('../../internals/entry-unbind');
3
4
 
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.async-iterator');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('asyncIterator');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.has-instance');
2
2
  require('../../modules/es.function.has-instance');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('hasInstance');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.is-concat-spreadable');
2
2
  require('../../modules/es.array.concat');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('isConcatSpreadable');
@@ -1,6 +1,6 @@
1
1
  require('../../modules/es.symbol.iterator');
2
2
  require('../../modules/es.string.iterator');
3
3
  require('../../modules/web.dom-collections.iterator');
4
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
4
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
5
5
 
6
6
  module.exports = WrappedWellKnownSymbolModule.f('iterator');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.match-all');
2
2
  require('../../modules/es.string.match-all');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('matchAll');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.match');
2
2
  require('../../modules/es.string.match');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('match');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.replace');
2
2
  require('../../modules/es.string.replace');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('replace');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.search');
2
2
  require('../../modules/es.string.search');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('search');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.species');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('species');
@@ -1,5 +1,5 @@
1
1
  require('../../modules/es.symbol.split');
2
2
  require('../../modules/es.string.split');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('split');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.to-primitive');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('toPrimitive');
@@ -2,6 +2,6 @@ require('../../modules/es.symbol.to-string-tag');
2
2
  require('../../modules/es.object.to-string');
3
3
  require('../../modules/es.math.to-string-tag');
4
4
  require('../../modules/es.json.to-string-tag');
5
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
5
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
6
6
 
7
7
  module.exports = WrappedWellKnownSymbolModule.f('toStringTag');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/es.symbol.unscopables');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('unscopables');
@@ -1,3 +1,6 @@
1
+ // TODO: remove from `core-js@4`
2
+ require('../../modules/esnext.string.match-all');
3
+
1
4
  var parent = require('../../es/instance/match-all');
2
5
 
3
6
  module.exports = parent;
@@ -1,3 +1,6 @@
1
1
  var parent = require('../../es/object');
2
+ require('../../modules/esnext.object.iterate-entries');
3
+ require('../../modules/esnext.object.iterate-keys');
4
+ require('../../modules/esnext.object.iterate-values');
2
5
 
3
6
  module.exports = parent;
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.object.iterate-entries');
2
+ var path = require('../../internals/path');
3
+
4
+ module.exports = path.Object.iterateEntries;
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.object.iterate-keys');
2
+ var path = require('../../internals/path');
3
+
4
+ module.exports = path.Object.iterateKeys;
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.object.iterate-values');
2
+ var path = require('../../internals/path');
3
+
4
+ module.exports = path.Object.iterateValues;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/regexp/sticky');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/regexp/test');
2
+
3
+ module.exports = parent;
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.async-dispose');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('asyncDispose');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.dispose');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('dispose');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.observable');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('observable');
@@ -1,4 +1,4 @@
1
1
  require('../../modules/esnext.symbol.pattern-match');
2
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
3
 
4
4
  module.exports = WrappedWellKnownSymbolModule.f('patternMatch');
@@ -1,5 +1,5 @@
1
1
  // TODO: Remove from `core-js@4`
2
2
  require('../../modules/esnext.symbol.replace-all');
3
- var WrappedWellKnownSymbolModule = require('../../internals/wrapped-well-known-symbol');
3
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
4
4
 
5
5
  module.exports = WrappedWellKnownSymbolModule.f('replaceAll');
@@ -0,0 +1 @@
1
+ module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';
@@ -1,9 +1,13 @@
1
1
  'use strict';
2
2
  var $forEach = require('../internals/array-iteration').forEach;
3
- var sloppyArrayMethod = require('../internals/sloppy-array-method');
3
+ var arrayMethodIsStrict = require('../internals/array-method-is-strict');
4
+ var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
5
+
6
+ var STRICT_METHOD = arrayMethodIsStrict('forEach');
7
+ var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
4
8
 
5
9
  // `Array.prototype.forEach` method implementation
6
10
  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
7
- module.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {
11
+ module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
8
12
  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
9
13
  } : [].forEach;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var bind = require('../internals/bind-context');
2
+ var bind = require('../internals/function-bind-context');
3
3
  var toObject = require('../internals/to-object');
4
4
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
5
5
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
@@ -15,9 +15,9 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
15
15
  var argumentsLength = arguments.length;
16
16
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
17
17
  var mapping = mapfn !== undefined;
18
- var index = 0;
19
18
  var iteratorMethod = getIteratorMethod(O);
20
- var length, result, step, iterator, next;
19
+ var index = 0;
20
+ var length, result, step, iterator, next, value;
21
21
  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
22
22
  // if the target is not iterable or it's an array with the default iterator - use a simple case
23
23
  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
@@ -25,16 +25,15 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
25
25
  next = iterator.next;
26
26
  result = new C();
27
27
  for (;!(step = next.call(iterator)).done; index++) {
28
- createProperty(result, index, mapping
29
- ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)
30
- : step.value
31
- );
28
+ value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
29
+ createProperty(result, index, value);
32
30
  }
33
31
  } else {
34
32
  length = toLength(O.length);
35
33
  result = new C(length);
36
34
  for (;length > index; index++) {
37
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
35
+ value = mapping ? mapfn(O[index], index) : O[index];
36
+ createProperty(result, index, value);
38
37
  }
39
38
  }
40
39
  result.length = index;
@@ -1,4 +1,4 @@
1
- var bind = require('../internals/bind-context');
1
+ var bind = require('../internals/function-bind-context');
2
2
  var IndexedObject = require('../internals/indexed-object');
3
3
  var toObject = require('../internals/to-object');
4
4
  var toLength = require('../internals/to-length');
@@ -2,16 +2,19 @@
2
2
  var toIndexedObject = require('../internals/to-indexed-object');
3
3
  var toInteger = require('../internals/to-integer');
4
4
  var toLength = require('../internals/to-length');
5
- var sloppyArrayMethod = require('../internals/sloppy-array-method');
5
+ var arrayMethodIsStrict = require('../internals/array-method-is-strict');
6
+ var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
6
7
 
7
8
  var min = Math.min;
8
9
  var nativeLastIndexOf = [].lastIndexOf;
9
10
  var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
10
- var SLOPPY_METHOD = sloppyArrayMethod('lastIndexOf');
11
+ var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
12
+ var USES_TO_LENGTH = arrayMethodUsesToLength('lastIndexOf', { ACCESSORS: true, 1: 2147483647 });
13
+ var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
11
14
 
12
15
  // `Array.prototype.lastIndexOf` method implementation
13
16
  // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
14
- module.exports = (NEGATIVE_ZERO || SLOPPY_METHOD) ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
17
+ module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
15
18
  // convert -0 to +0
16
19
  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
17
20
  var O = toIndexedObject(this);
@@ -1,6 +1,6 @@
1
1
  var fails = require('../internals/fails');
2
2
  var wellKnownSymbol = require('../internals/well-known-symbol');
3
- var V8_VERSION = require('../internals/v8-version');
3
+ var V8_VERSION = require('../internals/engine-v8-version');
4
4
 
5
5
  var SPECIES = wellKnownSymbol('species');
6
6
 
@@ -3,7 +3,7 @@ var fails = require('../internals/fails');
3
3
 
4
4
  module.exports = function (METHOD_NAME, argument) {
5
5
  var method = [][METHOD_NAME];
6
- return !method || !fails(function () {
6
+ return !!method && fails(function () {
7
7
  // eslint-disable-next-line no-useless-call,no-throw-literal
8
8
  method.call(null, argument || function () { throw 1; }, 1);
9
9
  });
@@ -0,0 +1,30 @@
1
+ var DESCRIPTORS = require('../internals/descriptors');
2
+ var fails = require('../internals/fails');
3
+ var has = require('../internals/has');
4
+
5
+ var defineProperty = Object.defineProperty;
6
+
7
+ var thrower = function (it) { throw it; };
8
+
9
+ module.exports = function (METHOD_NAME, options) {
10
+ if (!options) options = {};
11
+ var method = [][METHOD_NAME];
12
+ var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
13
+ var argument0 = has(options, 0) ? options[0] : thrower;
14
+ var argument1 = has(options, 1) ? options[1] : undefined;
15
+
16
+ return !!method && !fails(function () {
17
+ if (ACCESSORS && !DESCRIPTORS) return true;
18
+ var O = { length: -1 };
19
+
20
+ var addTrap = function (key) {
21
+ if (ACCESSORS) defineProperty(O, key, { enumerable: true, get: thrower });
22
+ else O[key] = 1;
23
+ };
24
+
25
+ addTrap(1);
26
+ addTrap(2147483646);
27
+ addTrap(4294967294);
28
+ method.call(O, argument0, argument1);
29
+ });
30
+ };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  // https://tc39.github.io/proposal-setmap-offrom/
3
3
  var aFunction = require('../internals/a-function');
4
- var bind = require('../internals/bind-context');
4
+ var bind = require('../internals/function-bind-context');
5
5
  var iterate = require('../internals/iterate');
6
6
 
7
7
  module.exports = function from(source /* , mapFn, thisArg */) {
@@ -2,7 +2,7 @@
2
2
  var defineProperty = require('../internals/object-define-property').f;
3
3
  var create = require('../internals/object-create');
4
4
  var redefineAll = require('../internals/redefine-all');
5
- var bind = require('../internals/bind-context');
5
+ var bind = require('../internals/function-bind-context');
6
6
  var anInstance = require('../internals/an-instance');
7
7
  var iterate = require('../internals/iterate');
8
8
  var defineIterator = require('../internals/define-iterator');
@@ -1,6 +1,6 @@
1
1
  var path = require('../internals/path');
2
2
  var has = require('../internals/has');
3
- var wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');
3
+ var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');
4
4
  var defineProperty = require('../internals/object-define-property').f;
5
5
 
6
6
  module.exports = function (NAME) {
@@ -2,5 +2,5 @@ var fails = require('../internals/fails');
2
2
 
3
3
  // Thank's IE8 for his funny defineProperty
4
4
  module.exports = !fails(function () {
5
- return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
5
+ return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
6
6
  });
@@ -1,3 +1,3 @@
1
- var userAgent = require('../internals/user-agent');
1
+ var userAgent = require('../internals/engine-user-agent');
2
2
 
3
3
  module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);
@@ -1,5 +1,5 @@
1
1
  var global = require('../internals/global');
2
- var userAgent = require('../internals/user-agent');
2
+ var userAgent = require('../internals/engine-user-agent');
3
3
 
4
4
  var process = global.process;
5
5
  var versions = process && process.versions;
@@ -3,7 +3,7 @@ var global = require('../internals/global');
3
3
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
4
4
  var isForced = require('../internals/is-forced');
5
5
  var path = require('../internals/path');
6
- var bind = require('../internals/bind-context');
6
+ var bind = require('../internals/function-bind-context');
7
7
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
8
8
  var has = require('../internals/has');
9
9
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var isArray = require('../internals/is-array');
3
3
  var toLength = require('../internals/to-length');
4
- var bind = require('../internals/bind-context');
4
+ var bind = require('../internals/function-bind-context');
5
5
 
6
6
  // `FlattenIntoArray` abstract operation
7
7
  // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
@@ -1,7 +1,7 @@
1
1
  var anObject = require('../internals/an-object');
2
2
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
3
3
  var toLength = require('../internals/to-length');
4
- var bind = require('../internals/bind-context');
4
+ var bind = require('../internals/function-bind-context');
5
5
  var getIteratorMethod = require('../internals/get-iterator-method');
6
6
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
7
7
 
@@ -2,7 +2,7 @@ var global = require('../internals/global');
2
2
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
3
3
  var classof = require('../internals/classof-raw');
4
4
  var macrotask = require('../internals/task').set;
5
- var IS_IOS = require('../internals/is-ios');
5
+ var IS_IOS = require('../internals/engine-is-ios');
6
6
 
7
7
  var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
8
8
  var process = global.process;
@@ -2,13 +2,13 @@ var global = require('../internals/global');
2
2
  var trim = require('../internals/string-trim').trim;
3
3
  var whitespaces = require('../internals/whitespaces');
4
4
 
5
- var nativeParseFloat = global.parseFloat;
6
- var FORCED = 1 / nativeParseFloat(whitespaces + '-0') !== -Infinity;
5
+ var $parseFloat = global.parseFloat;
6
+ var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
7
7
 
8
8
  // `parseFloat` method
9
9
  // https://tc39.github.io/ecma262/#sec-parsefloat-string
10
10
  module.exports = FORCED ? function parseFloat(string) {
11
11
  var trimmedString = trim(String(string));
12
- var result = nativeParseFloat(trimmedString);
12
+ var result = $parseFloat(trimmedString);
13
13
  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
14
- } : nativeParseFloat;
14
+ } : $parseFloat;
@@ -2,13 +2,13 @@ var global = require('../internals/global');
2
2
  var trim = require('../internals/string-trim').trim;
3
3
  var whitespaces = require('../internals/whitespaces');
4
4
 
5
- var nativeParseInt = global.parseInt;
5
+ var $parseInt = global.parseInt;
6
6
  var hex = /^[+-]?0[Xx]/;
7
- var FORCED = nativeParseInt(whitespaces + '08') !== 8 || nativeParseInt(whitespaces + '0x16') !== 22;
7
+ var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;
8
8
 
9
9
  // `parseInt` method
10
10
  // https://tc39.github.io/ecma262/#sec-parseint-string-radix
11
11
  module.exports = FORCED ? function parseInt(string, radix) {
12
12
  var S = trim(String(string));
13
- return nativeParseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
14
- } : nativeParseInt;
13
+ return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
14
+ } : $parseInt;