core-js 3.6.5 → 3.8.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.
- package/LICENSE +1 -1
- package/README.md +3 -2
- package/es/aggregate-error.js +6 -0
- package/es/array/virtual/filter-out.js +4 -0
- package/es/index.js +33 -29
- package/es/instance/replace-all.js +9 -0
- package/es/object/index.js +2 -1
- package/es/object/to-string.js +3 -2
- package/es/promise/all-settled.js +2 -0
- package/es/promise/any.js +14 -0
- package/es/promise/index.js +4 -2
- package/es/reflect/index.js +1 -0
- package/es/reflect/to-string-tag.js +3 -0
- package/es/string/index.js +1 -0
- package/es/string/replace-all.js +4 -0
- package/es/string/virtual/index.js +1 -0
- package/es/string/virtual/replace-all.js +4 -0
- package/es/symbol/index.js +2 -1
- package/es/symbol/to-string-tag.js +2 -1
- package/features/aggregate-error.js +4 -4
- package/features/array/at.js +4 -0
- package/features/array/filter-out.js +4 -0
- package/features/array/index.js +4 -0
- package/features/array/unique-by.js +5 -0
- package/features/array/virtual/at.js +4 -0
- package/features/array/virtual/filter-out.js +4 -0
- package/features/array/virtual/index.js +3 -0
- package/features/array/virtual/unique-by.js +5 -0
- package/features/bigint/index.js +4 -0
- package/features/bigint/range.js +4 -0
- package/features/instance/at.js +7 -3
- package/features/instance/filter-out.js +8 -0
- package/features/instance/replace-all.js +2 -8
- package/features/instance/unique-by.js +8 -0
- package/features/map/emplace.js +5 -0
- package/features/map/index.js +2 -0
- package/features/number/index.js +1 -0
- package/features/number/range.js +4 -0
- package/features/promise/any.js +4 -9
- package/features/reflect/to-string-tag.js +3 -0
- package/features/string/index.js +2 -0
- package/features/string/replace-all.js +4 -2
- package/features/string/virtual/index.js +2 -0
- package/features/string/virtual/replace-all.js +4 -2
- package/features/typed-array/at.js +1 -0
- package/features/typed-array/filter-out.js +1 -0
- package/features/typed-array/index.js +2 -0
- package/features/weak-map/emplace.js +5 -0
- package/features/weak-map/index.js +2 -0
- package/internals/add-to-unscopables.js +1 -1
- package/internals/advance-string-index.js +1 -1
- package/internals/array-buffer-view-core.js +13 -2
- package/internals/array-copy-within.js +1 -1
- package/internals/array-fill.js +1 -1
- package/internals/array-for-each.js +1 -1
- package/internals/array-from.js +1 -1
- package/internals/array-includes.js +2 -2
- package/internals/array-iteration.js +18 -11
- package/internals/array-last-index-of.js +1 -1
- package/internals/array-reduce.js +2 -2
- package/internals/array-species-create.js +1 -1
- package/internals/async-iterator-iteration.js +25 -6
- package/internals/call-with-safe-iteration-closing.js +2 -2
- package/internals/collection-from.js +5 -5
- package/internals/collection-strong.js +1 -1
- package/internals/collection-weak.js +1 -1
- package/internals/collection.js +1 -1
- package/internals/correct-is-regexp-logic.js +2 -2
- package/internals/create-html.js +1 -1
- package/internals/date-to-iso-string.js +1 -1
- package/internals/descriptors.js +1 -1
- package/internals/engine-is-node.js +4 -0
- package/internals/engine-is-webos-webkit.js +3 -0
- package/internals/function-bind.js +1 -1
- package/internals/get-substitution.js +40 -0
- package/internals/global.js +1 -1
- package/internals/internal-state.js +4 -1
- package/internals/is-array.js +1 -1
- package/internals/is-integer.js +1 -1
- package/internals/is-regexp.js +1 -1
- package/internals/iterate.js +26 -11
- package/internals/iterator-close.js +8 -0
- package/internals/iterators-core.js +1 -1
- package/internals/map-emplace.js +13 -0
- package/internals/math-expm1.js +1 -1
- package/internals/math-fround.js +1 -1
- package/internals/math-log1p.js +1 -1
- package/internals/math-sign.js +1 -1
- package/internals/microtask.js +10 -8
- package/internals/number-is-finite.js +1 -1
- package/internals/number-parse-float.js +1 -1
- package/internals/number-parse-int.js +1 -1
- package/internals/object-assign.js +1 -1
- package/internals/object-create.js +1 -1
- package/internals/object-define-properties.js +1 -1
- package/internals/object-define-property.js +1 -1
- package/internals/object-get-own-property-descriptor.js +1 -1
- package/internals/object-get-own-property-names.js +1 -1
- package/internals/object-get-prototype-of.js +1 -1
- package/internals/object-keys.js +1 -1
- package/internals/object-property-is-enumerable.js +1 -1
- package/internals/object-set-prototype-of.js +1 -1
- package/internals/object-to-array.js +2 -2
- package/internals/object-to-string.js +1 -1
- package/internals/range-iterator.js +102 -0
- package/internals/redefine.js +8 -2
- package/internals/regexp-exec-abstract.js +1 -1
- package/internals/regexp-flags.js +1 -1
- package/internals/require-object-coercible.js +1 -1
- package/internals/same-value-zero.js +1 -1
- package/internals/same-value.js +1 -1
- package/internals/shared.js +2 -2
- package/internals/species-constructor.js +1 -1
- package/internals/string-multibyte.js +1 -1
- package/internals/string-pad.js +2 -2
- package/internals/string-repeat.js +1 -1
- package/internals/string-trim.js +3 -3
- package/internals/task.js +4 -4
- package/internals/this-number-value.js +1 -1
- package/internals/to-index.js +1 -1
- package/internals/to-integer.js +1 -1
- package/internals/to-length.js +1 -1
- package/internals/to-object.js +1 -1
- package/internals/to-primitive.js +1 -1
- package/modules/es.aggregate-error.js +34 -0
- package/modules/es.array-buffer.constructor.js +1 -1
- package/modules/es.array-buffer.is-view.js +1 -1
- package/modules/es.array-buffer.slice.js +1 -1
- package/modules/es.array.concat.js +1 -1
- package/modules/es.array.copy-within.js +2 -2
- package/modules/es.array.every.js +1 -1
- package/modules/es.array.fill.js +2 -2
- package/modules/es.array.filter.js +1 -1
- package/modules/es.array.find-index.js +2 -2
- package/modules/es.array.find.js +2 -2
- package/modules/es.array.flat-map.js +1 -1
- package/modules/es.array.flat.js +1 -1
- package/modules/es.array.for-each.js +1 -1
- package/modules/es.array.from.js +1 -1
- package/modules/es.array.includes.js +2 -2
- package/modules/es.array.index-of.js +1 -1
- package/modules/es.array.is-array.js +1 -1
- package/modules/es.array.iterator.js +9 -9
- package/modules/es.array.join.js +1 -1
- package/modules/es.array.last-index-of.js +1 -1
- package/modules/es.array.map.js +1 -1
- package/modules/es.array.of.js +1 -1
- package/modules/es.array.reduce-right.js +7 -2
- package/modules/es.array.reduce.js +7 -2
- package/modules/es.array.reverse.js +1 -1
- package/modules/es.array.slice.js +1 -1
- package/modules/es.array.some.js +1 -1
- package/modules/es.array.sort.js +1 -1
- package/modules/es.array.species.js +1 -1
- package/modules/es.array.splice.js +1 -1
- package/modules/es.array.unscopables.flat-map.js +1 -0
- package/modules/es.array.unscopables.flat.js +1 -0
- package/modules/es.data-view.js +1 -1
- package/modules/es.date.now.js +1 -1
- package/modules/es.date.to-iso-string.js +1 -1
- package/modules/es.date.to-json.js +1 -1
- package/modules/es.date.to-primitive.js +1 -1
- package/modules/es.date.to-string.js +1 -1
- package/modules/es.function.bind.js +1 -1
- package/modules/es.function.has-instance.js +1 -1
- package/modules/es.function.name.js +1 -1
- package/modules/es.global-this.js +1 -1
- package/modules/es.json.stringify.js +2 -0
- package/modules/es.json.to-string-tag.js +1 -1
- package/modules/es.map.js +1 -1
- package/modules/es.math.acosh.js +1 -1
- package/modules/es.math.asinh.js +1 -1
- package/modules/es.math.atanh.js +1 -1
- package/modules/es.math.cbrt.js +1 -1
- package/modules/es.math.clz32.js +1 -1
- package/modules/es.math.cosh.js +1 -1
- package/modules/es.math.expm1.js +1 -1
- package/modules/es.math.fround.js +1 -1
- package/modules/es.math.hypot.js +1 -1
- package/modules/es.math.imul.js +1 -1
- package/modules/es.math.log10.js +1 -1
- package/modules/es.math.log1p.js +1 -1
- package/modules/es.math.log2.js +1 -1
- package/modules/es.math.sign.js +1 -1
- package/modules/es.math.sinh.js +1 -1
- package/modules/es.math.tanh.js +1 -1
- package/modules/es.math.to-string-tag.js +1 -1
- package/modules/es.math.trunc.js +1 -1
- package/modules/es.number.constructor.js +5 -3
- package/modules/es.number.epsilon.js +1 -1
- package/modules/es.number.is-finite.js +1 -1
- package/modules/es.number.is-integer.js +1 -1
- package/modules/es.number.is-nan.js +1 -1
- package/modules/es.number.is-safe-integer.js +1 -1
- package/modules/es.number.max-safe-integer.js +1 -1
- package/modules/es.number.min-safe-integer.js +1 -1
- package/modules/es.number.parse-float.js +1 -1
- package/modules/es.number.parse-int.js +1 -1
- package/modules/es.number.to-fixed.js +1 -1
- package/modules/es.number.to-precision.js +1 -1
- package/modules/es.object.assign.js +1 -1
- package/modules/es.object.create.js +1 -1
- package/modules/es.object.define-getter.js +1 -1
- package/modules/es.object.define-properties.js +1 -1
- package/modules/es.object.define-property.js +1 -1
- package/modules/es.object.define-setter.js +1 -1
- package/modules/es.object.entries.js +1 -1
- package/modules/es.object.freeze.js +1 -1
- package/modules/es.object.from-entries.js +1 -1
- package/modules/es.object.get-own-property-descriptor.js +1 -1
- package/modules/es.object.get-own-property-descriptors.js +1 -1
- package/modules/es.object.get-own-property-names.js +1 -1
- package/modules/es.object.get-prototype-of.js +1 -1
- package/modules/es.object.is-extensible.js +1 -1
- package/modules/es.object.is-frozen.js +1 -1
- package/modules/es.object.is-sealed.js +1 -1
- package/modules/es.object.is.js +1 -1
- package/modules/es.object.keys.js +1 -1
- package/modules/es.object.lookup-getter.js +1 -1
- package/modules/es.object.lookup-setter.js +1 -1
- package/modules/es.object.prevent-extensions.js +1 -1
- package/modules/es.object.seal.js +1 -1
- package/modules/es.object.set-prototype-of.js +1 -1
- package/modules/es.object.to-string.js +1 -1
- package/modules/es.object.values.js +1 -1
- package/modules/es.parse-float.js +1 -1
- package/modules/es.parse-int.js +1 -1
- package/modules/es.promise.all-settled.js +3 -3
- package/modules/es.promise.any.js +46 -0
- package/modules/es.promise.finally.js +1 -1
- package/modules/es.promise.js +33 -31
- package/modules/es.reflect.apply.js +1 -1
- package/modules/es.reflect.construct.js +1 -1
- package/modules/es.reflect.define-property.js +1 -1
- package/modules/es.reflect.delete-property.js +1 -1
- package/modules/es.reflect.get-own-property-descriptor.js +1 -1
- package/modules/es.reflect.get-prototype-of.js +1 -1
- package/modules/es.reflect.get.js +1 -1
- package/modules/es.reflect.has.js +1 -1
- package/modules/es.reflect.is-extensible.js +1 -1
- package/modules/es.reflect.own-keys.js +1 -1
- package/modules/es.reflect.prevent-extensions.js +1 -1
- package/modules/es.reflect.set-prototype-of.js +1 -1
- package/modules/es.reflect.set.js +4 -3
- package/modules/es.reflect.to-string-tag.js +9 -0
- package/modules/es.regexp.constructor.js +2 -2
- package/modules/es.regexp.exec.js +2 -0
- package/modules/es.regexp.flags.js +1 -1
- package/modules/es.regexp.sticky.js +1 -0
- package/modules/es.regexp.test.js +2 -0
- package/modules/es.regexp.to-string.js +1 -1
- package/modules/es.set.js +1 -1
- package/modules/es.string.anchor.js +1 -1
- package/modules/es.string.big.js +1 -1
- package/modules/es.string.blink.js +1 -1
- package/modules/es.string.bold.js +1 -1
- package/modules/es.string.code-point-at.js +1 -1
- package/modules/es.string.ends-with.js +1 -1
- package/modules/es.string.fixed.js +1 -1
- package/modules/es.string.fontcolor.js +1 -1
- package/modules/es.string.fontsize.js +1 -1
- package/modules/es.string.from-code-point.js +1 -1
- package/modules/es.string.includes.js +1 -1
- package/modules/es.string.italics.js +1 -1
- package/modules/es.string.iterator.js +2 -2
- package/modules/es.string.link.js +1 -1
- package/modules/es.string.match-all.js +1 -1
- package/modules/es.string.match.js +2 -2
- package/modules/es.string.pad-end.js +1 -1
- package/modules/es.string.pad-start.js +1 -1
- package/modules/es.string.raw.js +1 -1
- package/modules/es.string.repeat.js +1 -1
- package/modules/es.string.replace-all.js +67 -0
- package/modules/es.string.replace.js +3 -40
- package/modules/es.string.search.js +2 -2
- package/modules/es.string.small.js +1 -1
- package/modules/es.string.split.js +2 -2
- package/modules/es.string.starts-with.js +1 -1
- package/modules/es.string.strike.js +1 -1
- package/modules/es.string.sub.js +1 -1
- package/modules/es.string.sup.js +1 -1
- package/modules/es.string.trim-end.js +2 -1
- package/modules/es.string.trim-start.js +2 -1
- package/modules/es.string.trim.js +1 -1
- package/modules/es.symbol.async-iterator.js +1 -1
- package/modules/es.symbol.description.js +1 -1
- package/modules/es.symbol.has-instance.js +1 -1
- package/modules/es.symbol.is-concat-spreadable.js +1 -1
- package/modules/es.symbol.iterator.js +1 -1
- package/modules/es.symbol.js +12 -12
- package/modules/es.symbol.match-all.js +1 -0
- package/modules/es.symbol.match.js +1 -1
- package/modules/es.symbol.replace.js +1 -1
- package/modules/es.symbol.search.js +1 -1
- package/modules/es.symbol.species.js +1 -1
- package/modules/es.symbol.split.js +1 -1
- package/modules/es.symbol.to-primitive.js +1 -1
- package/modules/es.symbol.to-string-tag.js +1 -1
- package/modules/es.symbol.unscopables.js +1 -1
- package/modules/es.typed-array.copy-within.js +1 -1
- package/modules/es.typed-array.every.js +1 -1
- package/modules/es.typed-array.fill.js +1 -1
- package/modules/es.typed-array.filter.js +1 -1
- package/modules/es.typed-array.find-index.js +1 -1
- package/modules/es.typed-array.find.js +1 -1
- package/modules/es.typed-array.float32-array.js +1 -1
- package/modules/es.typed-array.float64-array.js +1 -1
- package/modules/es.typed-array.for-each.js +1 -1
- package/modules/es.typed-array.from.js +1 -1
- package/modules/es.typed-array.includes.js +1 -1
- package/modules/es.typed-array.index-of.js +1 -1
- package/modules/es.typed-array.int16-array.js +1 -1
- package/modules/es.typed-array.int32-array.js +1 -1
- package/modules/es.typed-array.int8-array.js +1 -1
- package/modules/es.typed-array.iterator.js +4 -4
- package/modules/es.typed-array.join.js +1 -1
- package/modules/es.typed-array.last-index-of.js +1 -1
- package/modules/es.typed-array.map.js +1 -1
- package/modules/es.typed-array.of.js +1 -1
- package/modules/es.typed-array.reduce-right.js +1 -1
- package/modules/es.typed-array.reduce.js +1 -1
- package/modules/es.typed-array.reverse.js +1 -1
- package/modules/es.typed-array.set.js +1 -1
- package/modules/es.typed-array.slice.js +1 -1
- package/modules/es.typed-array.some.js +1 -1
- package/modules/es.typed-array.sort.js +1 -1
- package/modules/es.typed-array.subarray.js +1 -1
- package/modules/es.typed-array.to-locale-string.js +1 -1
- package/modules/es.typed-array.to-string.js +1 -1
- package/modules/es.typed-array.uint16-array.js +1 -1
- package/modules/es.typed-array.uint32-array.js +1 -1
- package/modules/es.typed-array.uint8-array.js +1 -1
- package/modules/es.typed-array.uint8-clamped-array.js +1 -1
- package/modules/es.weak-map.js +1 -1
- package/modules/es.weak-set.js +1 -1
- package/modules/esnext.aggregate-error.js +2 -45
- package/modules/esnext.array.at.js +20 -0
- package/modules/esnext.array.filter-out.js +14 -0
- package/modules/esnext.array.unique-by.js +38 -0
- package/modules/esnext.async-iterator.take.js +12 -3
- package/modules/esnext.bigint.range.js +14 -0
- package/modules/esnext.iterator.every.js +3 -3
- package/modules/esnext.iterator.find.js +3 -3
- package/modules/esnext.iterator.flat-map.js +21 -15
- package/modules/esnext.iterator.for-each.js +1 -1
- package/modules/esnext.iterator.reduce.js +1 -1
- package/modules/esnext.iterator.some.js +3 -3
- package/modules/esnext.iterator.take.js +4 -2
- package/modules/esnext.iterator.to-array.js +1 -1
- package/modules/esnext.map.emplace.js +10 -0
- package/modules/esnext.map.every.js +3 -3
- package/modules/esnext.map.filter.js +1 -1
- package/modules/esnext.map.find-key.js +3 -3
- package/modules/esnext.map.find.js +3 -3
- package/modules/esnext.map.includes.js +3 -3
- package/modules/esnext.map.key-of.js +3 -3
- package/modules/esnext.map.map-keys.js +1 -1
- package/modules/esnext.map.map-values.js +1 -1
- package/modules/esnext.map.merge.js +1 -1
- package/modules/esnext.map.reduce.js +1 -1
- package/modules/esnext.map.some.js +3 -3
- package/modules/esnext.map.update-or-insert.js +1 -1
- package/modules/esnext.map.upsert.js +2 -1
- package/modules/esnext.number.range.js +11 -0
- package/modules/esnext.observable.js +3 -3
- package/modules/esnext.promise.any.js +2 -46
- package/modules/esnext.reflect.get-metadata-keys.js +1 -1
- package/modules/esnext.set.every.js +3 -3
- package/modules/esnext.set.filter.js +1 -1
- package/modules/esnext.set.find.js +3 -3
- package/modules/esnext.set.is-disjoint-from.js +3 -3
- package/modules/esnext.set.is-subset-of.js +3 -3
- package/modules/esnext.set.is-superset-of.js +3 -3
- package/modules/esnext.set.join.js +1 -1
- package/modules/esnext.set.map.js +1 -1
- package/modules/esnext.set.reduce.js +1 -1
- package/modules/esnext.set.some.js +3 -3
- package/modules/esnext.set.union.js +1 -1
- package/modules/esnext.string.at-alternative.js +23 -0
- package/modules/esnext.string.at.js +6 -1
- package/modules/esnext.string.replace-all.js +2 -50
- package/modules/esnext.typed-array.at.js +17 -0
- package/modules/esnext.typed-array.filter-out.js +20 -0
- package/modules/esnext.weak-map.emplace.js +10 -0
- package/modules/esnext.weak-map.upsert.js +3 -2
- package/modules/web.queue-microtask.js +2 -3
- package/modules/web.url-search-params.js +1 -1
- package/package.json +1 -1
- package/proposals/array-filtering.js +3 -0
- package/proposals/array-unique.js +3 -0
- package/proposals/efficient-64-bit-arithmetic.js +1 -0
- package/proposals/map-upsert.js +4 -0
- package/proposals/number-range.js +3 -0
- package/proposals/object-iteration.js +1 -0
- package/proposals/relative-indexing-method.js +5 -0
- package/stable/aggregate-error.js +6 -0
- package/stable/instance/replace-all.js +3 -0
- package/stable/promise/any.js +3 -0
- package/stable/reflect/to-string-tag.js +3 -0
- package/stable/string/replace-all.js +3 -0
- package/stable/string/virtual/replace-all.js +3 -0
- package/stage/1.js +3 -0
- package/stage/3.js +1 -2
- package/stage/4.js +2 -0
|
@@ -7,7 +7,7 @@ var STRICT_METHOD = arrayMethodIsStrict('forEach');
|
|
|
7
7
|
var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
|
|
8
8
|
|
|
9
9
|
// `Array.prototype.forEach` method implementation
|
|
10
|
-
// https://tc39.
|
|
10
|
+
// https://tc39.es/ecma262/#sec-array.prototype.foreach
|
|
11
11
|
module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
|
|
12
12
|
return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
|
|
13
13
|
} : [].forEach;
|
package/internals/array-from.js
CHANGED
|
@@ -8,7 +8,7 @@ var createProperty = require('../internals/create-property');
|
|
|
8
8
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
9
9
|
|
|
10
10
|
// `Array.from` method implementation
|
|
11
|
-
// https://tc39.
|
|
11
|
+
// https://tc39.es/ecma262/#sec-array.from
|
|
12
12
|
module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
|
|
13
13
|
var O = toObject(arrayLike);
|
|
14
14
|
var C = typeof this == 'function' ? this : Array;
|
|
@@ -24,9 +24,9 @@ var createMethod = function (IS_INCLUDES) {
|
|
|
24
24
|
|
|
25
25
|
module.exports = {
|
|
26
26
|
// `Array.prototype.includes` method
|
|
27
|
-
// https://tc39.
|
|
27
|
+
// https://tc39.es/ecma262/#sec-array.prototype.includes
|
|
28
28
|
includes: createMethod(true),
|
|
29
29
|
// `Array.prototype.indexOf` method
|
|
30
|
-
// https://tc39.
|
|
30
|
+
// https://tc39.es/ecma262/#sec-array.prototype.indexof
|
|
31
31
|
indexOf: createMethod(false)
|
|
32
32
|
};
|
|
@@ -6,13 +6,14 @@ var arraySpeciesCreate = require('../internals/array-species-create');
|
|
|
6
6
|
|
|
7
7
|
var push = [].push;
|
|
8
8
|
|
|
9
|
-
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
|
|
9
|
+
// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
|
|
10
10
|
var createMethod = function (TYPE) {
|
|
11
11
|
var IS_MAP = TYPE == 1;
|
|
12
12
|
var IS_FILTER = TYPE == 2;
|
|
13
13
|
var IS_SOME = TYPE == 3;
|
|
14
14
|
var IS_EVERY = TYPE == 4;
|
|
15
15
|
var IS_FIND_INDEX = TYPE == 6;
|
|
16
|
+
var IS_FILTER_OUT = TYPE == 7;
|
|
16
17
|
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
|
|
17
18
|
return function ($this, callbackfn, that, specificCreate) {
|
|
18
19
|
var O = toObject($this);
|
|
@@ -21,7 +22,7 @@ var createMethod = function (TYPE) {
|
|
|
21
22
|
var length = toLength(self.length);
|
|
22
23
|
var index = 0;
|
|
23
24
|
var create = specificCreate || arraySpeciesCreate;
|
|
24
|
-
var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
|
|
25
|
+
var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
|
|
25
26
|
var value, result;
|
|
26
27
|
for (;length > index; index++) if (NO_HOLES || index in self) {
|
|
27
28
|
value = self[index];
|
|
@@ -33,7 +34,10 @@ var createMethod = function (TYPE) {
|
|
|
33
34
|
case 5: return value; // find
|
|
34
35
|
case 6: return index; // findIndex
|
|
35
36
|
case 2: push.call(target, value); // filter
|
|
36
|
-
} else
|
|
37
|
+
} else switch (TYPE) {
|
|
38
|
+
case 4: return false; // every
|
|
39
|
+
case 7: push.call(target, value); // filterOut
|
|
40
|
+
}
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
43
|
return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
|
|
@@ -42,24 +46,27 @@ var createMethod = function (TYPE) {
|
|
|
42
46
|
|
|
43
47
|
module.exports = {
|
|
44
48
|
// `Array.prototype.forEach` method
|
|
45
|
-
// https://tc39.
|
|
49
|
+
// https://tc39.es/ecma262/#sec-array.prototype.foreach
|
|
46
50
|
forEach: createMethod(0),
|
|
47
51
|
// `Array.prototype.map` method
|
|
48
|
-
// https://tc39.
|
|
52
|
+
// https://tc39.es/ecma262/#sec-array.prototype.map
|
|
49
53
|
map: createMethod(1),
|
|
50
54
|
// `Array.prototype.filter` method
|
|
51
|
-
// https://tc39.
|
|
55
|
+
// https://tc39.es/ecma262/#sec-array.prototype.filter
|
|
52
56
|
filter: createMethod(2),
|
|
53
57
|
// `Array.prototype.some` method
|
|
54
|
-
// https://tc39.
|
|
58
|
+
// https://tc39.es/ecma262/#sec-array.prototype.some
|
|
55
59
|
some: createMethod(3),
|
|
56
60
|
// `Array.prototype.every` method
|
|
57
|
-
// https://tc39.
|
|
61
|
+
// https://tc39.es/ecma262/#sec-array.prototype.every
|
|
58
62
|
every: createMethod(4),
|
|
59
63
|
// `Array.prototype.find` method
|
|
60
|
-
// https://tc39.
|
|
64
|
+
// https://tc39.es/ecma262/#sec-array.prototype.find
|
|
61
65
|
find: createMethod(5),
|
|
62
66
|
// `Array.prototype.findIndex` method
|
|
63
|
-
// https://tc39.
|
|
64
|
-
findIndex: createMethod(6)
|
|
67
|
+
// https://tc39.es/ecma262/#sec-array.prototype.findIndex
|
|
68
|
+
findIndex: createMethod(6),
|
|
69
|
+
// `Array.prototype.filterOut` method
|
|
70
|
+
// https://github.com/tc39/proposal-array-filtering
|
|
71
|
+
filterOut: createMethod(7)
|
|
65
72
|
};
|
|
@@ -14,7 +14,7 @@ var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0
|
|
|
14
14
|
var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
|
|
15
15
|
|
|
16
16
|
// `Array.prototype.lastIndexOf` method implementation
|
|
17
|
-
// https://tc39.
|
|
17
|
+
// https://tc39.es/ecma262/#sec-array.prototype.lastindexof
|
|
18
18
|
module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
|
|
19
19
|
// convert -0 to +0
|
|
20
20
|
if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
|
|
@@ -32,9 +32,9 @@ var createMethod = function (IS_RIGHT) {
|
|
|
32
32
|
|
|
33
33
|
module.exports = {
|
|
34
34
|
// `Array.prototype.reduce` method
|
|
35
|
-
// https://tc39.
|
|
35
|
+
// https://tc39.es/ecma262/#sec-array.prototype.reduce
|
|
36
36
|
left: createMethod(false),
|
|
37
37
|
// `Array.prototype.reduceRight` method
|
|
38
|
-
// https://tc39.
|
|
38
|
+
// https://tc39.es/ecma262/#sec-array.prototype.reduceright
|
|
39
39
|
right: createMethod(true)
|
|
40
40
|
};
|
|
@@ -5,7 +5,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
|
5
5
|
var SPECIES = wellKnownSymbol('species');
|
|
6
6
|
|
|
7
7
|
// `ArraySpeciesCreate` abstract operation
|
|
8
|
-
// https://tc39.
|
|
8
|
+
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
9
9
|
module.exports = function (originalArray, length) {
|
|
10
10
|
var C;
|
|
11
11
|
if (isArray(originalArray)) {
|
|
@@ -19,6 +19,25 @@ var createMethod = function (TYPE) {
|
|
|
19
19
|
if (!IS_TO_ARRAY) aFunction(fn);
|
|
20
20
|
|
|
21
21
|
return new Promise(function (resolve, reject) {
|
|
22
|
+
var closeIteration = function (method, argument) {
|
|
23
|
+
try {
|
|
24
|
+
var returnMethod = iterator['return'];
|
|
25
|
+
if (returnMethod !== undefined) {
|
|
26
|
+
return Promise.resolve(returnMethod.call(iterator)).then(function () {
|
|
27
|
+
method(argument);
|
|
28
|
+
}, function (error) {
|
|
29
|
+
reject(error);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
} catch (error2) {
|
|
33
|
+
return reject(error2);
|
|
34
|
+
} method(argument);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var onError = function (error) {
|
|
38
|
+
closeIteration(reject, error);
|
|
39
|
+
};
|
|
40
|
+
|
|
22
41
|
var loop = function () {
|
|
23
42
|
try {
|
|
24
43
|
Promise.resolve(anObject(next.call(iterator))).then(function (step) {
|
|
@@ -35,16 +54,16 @@ var createMethod = function (TYPE) {
|
|
|
35
54
|
if (IS_FOR_EACH) {
|
|
36
55
|
loop();
|
|
37
56
|
} else if (IS_EVERY) {
|
|
38
|
-
result ? loop() : resolve
|
|
57
|
+
result ? loop() : closeIteration(resolve, false);
|
|
39
58
|
} else {
|
|
40
|
-
result ? resolve
|
|
59
|
+
result ? closeIteration(resolve, IS_SOME || value) : loop();
|
|
41
60
|
}
|
|
42
|
-
},
|
|
61
|
+
}, onError);
|
|
43
62
|
}
|
|
44
63
|
}
|
|
45
|
-
} catch (
|
|
46
|
-
},
|
|
47
|
-
} catch (
|
|
64
|
+
} catch (error) { onError(error); }
|
|
65
|
+
}, onError);
|
|
66
|
+
} catch (error2) { onError(error2); }
|
|
48
67
|
};
|
|
49
68
|
|
|
50
69
|
loop();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var anObject = require('../internals/an-object');
|
|
2
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
2
3
|
|
|
3
4
|
// call something on iterator step with safe closing on error
|
|
4
5
|
module.exports = function (iterator, fn, value, ENTRIES) {
|
|
@@ -6,8 +7,7 @@ module.exports = function (iterator, fn, value, ENTRIES) {
|
|
|
6
7
|
return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
|
|
7
8
|
// 7.4.6 IteratorClose(iterator, completion)
|
|
8
9
|
} catch (error) {
|
|
9
|
-
|
|
10
|
-
if (returnMethod !== undefined) anObject(returnMethod.call(iterator));
|
|
10
|
+
iteratorClose(iterator);
|
|
11
11
|
throw error;
|
|
12
12
|
}
|
|
13
13
|
};
|
|
@@ -7,20 +7,20 @@ var iterate = require('../internals/iterate');
|
|
|
7
7
|
module.exports = function from(source /* , mapFn, thisArg */) {
|
|
8
8
|
var length = arguments.length;
|
|
9
9
|
var mapFn = length > 1 ? arguments[1] : undefined;
|
|
10
|
-
var mapping,
|
|
10
|
+
var mapping, array, n, boundFunction;
|
|
11
11
|
aFunction(this);
|
|
12
12
|
mapping = mapFn !== undefined;
|
|
13
13
|
if (mapping) aFunction(mapFn);
|
|
14
14
|
if (source == undefined) return new this();
|
|
15
|
-
|
|
15
|
+
array = [];
|
|
16
16
|
if (mapping) {
|
|
17
17
|
n = 0;
|
|
18
18
|
boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);
|
|
19
19
|
iterate(source, function (nextItem) {
|
|
20
|
-
|
|
20
|
+
array.push(boundFunction(nextItem, n++));
|
|
21
21
|
});
|
|
22
22
|
} else {
|
|
23
|
-
iterate(source,
|
|
23
|
+
iterate(source, array.push, { that: array });
|
|
24
24
|
}
|
|
25
|
-
return new this(
|
|
25
|
+
return new this(array);
|
|
26
26
|
};
|
|
@@ -26,7 +26,7 @@ module.exports = {
|
|
|
26
26
|
size: 0
|
|
27
27
|
});
|
|
28
28
|
if (!DESCRIPTORS) that.size = 0;
|
|
29
|
-
if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
|
|
29
|
+
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
|
|
@@ -61,7 +61,7 @@ module.exports = {
|
|
|
61
61
|
id: id++,
|
|
62
62
|
frozen: undefined
|
|
63
63
|
});
|
|
64
|
-
if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
|
|
64
|
+
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
|
|
65
65
|
});
|
|
66
66
|
|
|
67
67
|
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
|
package/internals/collection.js
CHANGED
|
@@ -69,7 +69,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
|
|
|
69
69
|
Constructor = wrapper(function (dummy, iterable) {
|
|
70
70
|
anInstance(dummy, Constructor, CONSTRUCTOR_NAME);
|
|
71
71
|
var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);
|
|
72
|
-
if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
|
|
72
|
+
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
|
|
73
73
|
return that;
|
|
74
74
|
});
|
|
75
75
|
Constructor.prototype = NativePrototype;
|
|
@@ -6,10 +6,10 @@ module.exports = function (METHOD_NAME) {
|
|
|
6
6
|
var regexp = /./;
|
|
7
7
|
try {
|
|
8
8
|
'/./'[METHOD_NAME](regexp);
|
|
9
|
-
} catch (
|
|
9
|
+
} catch (error1) {
|
|
10
10
|
try {
|
|
11
11
|
regexp[MATCH] = false;
|
|
12
12
|
return '/./'[METHOD_NAME](regexp);
|
|
13
|
-
} catch (
|
|
13
|
+
} catch (error2) { /* empty */ }
|
|
14
14
|
} return false;
|
|
15
15
|
};
|
package/internals/create-html.js
CHANGED
|
@@ -3,7 +3,7 @@ var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
|
3
3
|
var quot = /"/g;
|
|
4
4
|
|
|
5
5
|
// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
|
|
6
|
-
// https://tc39.
|
|
6
|
+
// https://tc39.es/ecma262/#sec-createhtml
|
|
7
7
|
module.exports = function (string, tag, attribute, value) {
|
|
8
8
|
var S = String(requireObjectCoercible(string));
|
|
9
9
|
var p1 = '<' + tag;
|
|
@@ -8,7 +8,7 @@ var getTime = DatePrototype.getTime;
|
|
|
8
8
|
var nativeDateToISOString = DatePrototype.toISOString;
|
|
9
9
|
|
|
10
10
|
// `Date.prototype.toISOString` method implementation
|
|
11
|
-
// https://tc39.
|
|
11
|
+
// https://tc39.es/ecma262/#sec-date.prototype.toisostring
|
|
12
12
|
// PhantomJS / old WebKit fails here:
|
|
13
13
|
module.exports = (fails(function () {
|
|
14
14
|
return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
|
package/internals/descriptors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var fails = require('../internals/fails');
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// Detect IE8's incomplete defineProperty implementation
|
|
4
4
|
module.exports = !fails(function () {
|
|
5
5
|
return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
|
|
6
6
|
});
|
|
@@ -14,7 +14,7 @@ var construct = function (C, argsLength, args) {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
// `Function.prototype.bind` method implementation
|
|
17
|
-
// https://tc39.
|
|
17
|
+
// https://tc39.es/ecma262/#sec-function.prototype.bind
|
|
18
18
|
module.exports = Function.bind || function bind(that /* , ...args */) {
|
|
19
19
|
var fn = aFunction(this);
|
|
20
20
|
var partArgs = slice.call(arguments, 1);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var toObject = require('../internals/to-object');
|
|
2
|
+
|
|
3
|
+
var floor = Math.floor;
|
|
4
|
+
var replace = ''.replace;
|
|
5
|
+
var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
|
|
6
|
+
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
|
|
7
|
+
|
|
8
|
+
// https://tc39.es/ecma262/#sec-getsubstitution
|
|
9
|
+
module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
|
|
10
|
+
var tailPos = position + matched.length;
|
|
11
|
+
var m = captures.length;
|
|
12
|
+
var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
|
|
13
|
+
if (namedCaptures !== undefined) {
|
|
14
|
+
namedCaptures = toObject(namedCaptures);
|
|
15
|
+
symbols = SUBSTITUTION_SYMBOLS;
|
|
16
|
+
}
|
|
17
|
+
return replace.call(replacement, symbols, function (match, ch) {
|
|
18
|
+
var capture;
|
|
19
|
+
switch (ch.charAt(0)) {
|
|
20
|
+
case '$': return '$';
|
|
21
|
+
case '&': return matched;
|
|
22
|
+
case '`': return str.slice(0, position);
|
|
23
|
+
case "'": return str.slice(tailPos);
|
|
24
|
+
case '<':
|
|
25
|
+
capture = namedCaptures[ch.slice(1, -1)];
|
|
26
|
+
break;
|
|
27
|
+
default: // \d\d?
|
|
28
|
+
var n = +ch;
|
|
29
|
+
if (n === 0) return match;
|
|
30
|
+
if (n > m) {
|
|
31
|
+
var f = floor(n / 10);
|
|
32
|
+
if (f === 0) return match;
|
|
33
|
+
if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
|
|
34
|
+
return match;
|
|
35
|
+
}
|
|
36
|
+
capture = captures[n - 1];
|
|
37
|
+
}
|
|
38
|
+
return capture === undefined ? '' : capture;
|
|
39
|
+
});
|
|
40
|
+
};
|
package/internals/global.js
CHANGED
|
@@ -3,6 +3,7 @@ var global = require('../internals/global');
|
|
|
3
3
|
var isObject = require('../internals/is-object');
|
|
4
4
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
5
5
|
var objectHas = require('../internals/has');
|
|
6
|
+
var shared = require('../internals/shared-store');
|
|
6
7
|
var sharedKey = require('../internals/shared-key');
|
|
7
8
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
8
9
|
|
|
@@ -23,11 +24,12 @@ var getterFor = function (TYPE) {
|
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
if (NATIVE_WEAK_MAP) {
|
|
26
|
-
var store = new WeakMap();
|
|
27
|
+
var store = shared.state || (shared.state = new WeakMap());
|
|
27
28
|
var wmget = store.get;
|
|
28
29
|
var wmhas = store.has;
|
|
29
30
|
var wmset = store.set;
|
|
30
31
|
set = function (it, metadata) {
|
|
32
|
+
metadata.facade = it;
|
|
31
33
|
wmset.call(store, it, metadata);
|
|
32
34
|
return metadata;
|
|
33
35
|
};
|
|
@@ -41,6 +43,7 @@ if (NATIVE_WEAK_MAP) {
|
|
|
41
43
|
var STATE = sharedKey('state');
|
|
42
44
|
hiddenKeys[STATE] = true;
|
|
43
45
|
set = function (it, metadata) {
|
|
46
|
+
metadata.facade = it;
|
|
44
47
|
createNonEnumerableProperty(it, STATE, metadata);
|
|
45
48
|
return metadata;
|
|
46
49
|
};
|
package/internals/is-array.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var classof = require('../internals/classof-raw');
|
|
2
2
|
|
|
3
3
|
// `IsArray` abstract operation
|
|
4
|
-
// https://tc39.
|
|
4
|
+
// https://tc39.es/ecma262/#sec-isarray
|
|
5
5
|
module.exports = Array.isArray || function isArray(arg) {
|
|
6
6
|
return classof(arg) == 'Array';
|
|
7
7
|
};
|
package/internals/is-integer.js
CHANGED
|
@@ -3,7 +3,7 @@ var isObject = require('../internals/is-object');
|
|
|
3
3
|
var floor = Math.floor;
|
|
4
4
|
|
|
5
5
|
// `Number.isInteger` method implementation
|
|
6
|
-
// https://tc39.
|
|
6
|
+
// https://tc39.es/ecma262/#sec-number.isinteger
|
|
7
7
|
module.exports = function isInteger(it) {
|
|
8
8
|
return !isObject(it) && isFinite(it) && floor(it) === it;
|
|
9
9
|
};
|
package/internals/is-regexp.js
CHANGED
|
@@ -5,7 +5,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
|
5
5
|
var MATCH = wellKnownSymbol('match');
|
|
6
6
|
|
|
7
7
|
// `IsRegExp` abstract operation
|
|
8
|
-
// https://tc39.
|
|
8
|
+
// https://tc39.es/ecma262/#sec-isregexp
|
|
9
9
|
module.exports = function (it) {
|
|
10
10
|
var isRegExp;
|
|
11
11
|
return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
|
package/internals/iterate.js
CHANGED
|
@@ -3,17 +3,33 @@ var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
|
|
|
3
3
|
var toLength = require('../internals/to-length');
|
|
4
4
|
var bind = require('../internals/function-bind-context');
|
|
5
5
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
6
|
-
var
|
|
6
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
7
7
|
|
|
8
8
|
var Result = function (stopped, result) {
|
|
9
9
|
this.stopped = stopped;
|
|
10
10
|
this.result = result;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
var
|
|
13
|
+
module.exports = function (iterable, unboundFunction, options) {
|
|
14
|
+
var that = options && options.that;
|
|
15
|
+
var AS_ENTRIES = !!(options && options.AS_ENTRIES);
|
|
16
|
+
var IS_ITERATOR = !!(options && options.IS_ITERATOR);
|
|
17
|
+
var INTERRUPTED = !!(options && options.INTERRUPTED);
|
|
18
|
+
var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
|
|
15
19
|
var iterator, iterFn, index, length, result, next, step;
|
|
16
20
|
|
|
21
|
+
var stop = function (condition) {
|
|
22
|
+
if (iterator) iteratorClose(iterator);
|
|
23
|
+
return new Result(true, condition);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var callFn = function (value) {
|
|
27
|
+
if (AS_ENTRIES) {
|
|
28
|
+
anObject(value);
|
|
29
|
+
return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
|
|
30
|
+
} return INTERRUPTED ? fn(value, stop) : fn(value);
|
|
31
|
+
};
|
|
32
|
+
|
|
17
33
|
if (IS_ITERATOR) {
|
|
18
34
|
iterator = iterable;
|
|
19
35
|
} else {
|
|
@@ -22,9 +38,7 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
|
|
|
22
38
|
// optimisation for array iterators
|
|
23
39
|
if (isArrayIteratorMethod(iterFn)) {
|
|
24
40
|
for (index = 0, length = toLength(iterable.length); length > index; index++) {
|
|
25
|
-
result =
|
|
26
|
-
? boundFunction(anObject(step = iterable[index])[0], step[1])
|
|
27
|
-
: boundFunction(iterable[index]);
|
|
41
|
+
result = callFn(iterable[index]);
|
|
28
42
|
if (result && result instanceof Result) return result;
|
|
29
43
|
} return new Result(false);
|
|
30
44
|
}
|
|
@@ -33,11 +47,12 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
|
|
|
33
47
|
|
|
34
48
|
next = iterator.next;
|
|
35
49
|
while (!(step = next.call(iterator)).done) {
|
|
36
|
-
|
|
50
|
+
try {
|
|
51
|
+
result = callFn(step.value);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
iteratorClose(iterator);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
37
56
|
if (typeof result == 'object' && result && result instanceof Result) return result;
|
|
38
57
|
} return new Result(false);
|
|
39
58
|
};
|
|
40
|
-
|
|
41
|
-
iterate.stop = function (result) {
|
|
42
|
-
return new Result(true, result);
|
|
43
|
-
};
|
|
@@ -11,7 +11,7 @@ var BUGGY_SAFARI_ITERATORS = false;
|
|
|
11
11
|
var returnThis = function () { return this; };
|
|
12
12
|
|
|
13
13
|
// `%IteratorPrototype%` object
|
|
14
|
-
// https://tc39.
|
|
14
|
+
// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
|
|
15
15
|
var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
|
|
16
16
|
|
|
17
17
|
if ([].keys) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var anObject = require('../internals/an-object');
|
|
3
|
+
|
|
4
|
+
// `Map.prototype.emplace` method
|
|
5
|
+
// https://github.com/thumbsupep/proposal-upsert
|
|
6
|
+
module.exports = function emplace(key, handler) {
|
|
7
|
+
var map = anObject(this);
|
|
8
|
+
var value = (map.has(key) && 'update' in handler)
|
|
9
|
+
? handler.update(map.get(key), key, map)
|
|
10
|
+
: handler.insert(key, map);
|
|
11
|
+
map.set(key, value);
|
|
12
|
+
return value;
|
|
13
|
+
};
|
package/internals/math-expm1.js
CHANGED
|
@@ -2,7 +2,7 @@ var nativeExpm1 = Math.expm1;
|
|
|
2
2
|
var exp = Math.exp;
|
|
3
3
|
|
|
4
4
|
// `Math.expm1` method implementation
|
|
5
|
-
// https://tc39.
|
|
5
|
+
// https://tc39.es/ecma262/#sec-math.expm1
|
|
6
6
|
module.exports = (!nativeExpm1
|
|
7
7
|
// Old FF bug
|
|
8
8
|
|| nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168
|
package/internals/math-fround.js
CHANGED
|
@@ -12,7 +12,7 @@ var roundTiesToEven = function (n) {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
// `Math.fround` method implementation
|
|
15
|
-
// https://tc39.
|
|
15
|
+
// https://tc39.es/ecma262/#sec-math.fround
|
|
16
16
|
module.exports = Math.fround || function fround(x) {
|
|
17
17
|
var $abs = abs(x);
|
|
18
18
|
var $sign = sign(x);
|
package/internals/math-log1p.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var log = Math.log;
|
|
2
2
|
|
|
3
3
|
// `Math.log1p` method implementation
|
|
4
|
-
// https://tc39.
|
|
4
|
+
// https://tc39.es/ecma262/#sec-math.log1p
|
|
5
5
|
module.exports = Math.log1p || function log1p(x) {
|
|
6
6
|
return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
|
|
7
7
|
};
|
package/internals/math-sign.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// `Math.sign` method implementation
|
|
2
|
-
// https://tc39.
|
|
2
|
+
// https://tc39.es/ecma262/#sec-math.sign
|
|
3
3
|
module.exports = Math.sign || function sign(x) {
|
|
4
4
|
// eslint-disable-next-line no-self-compare
|
|
5
5
|
return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
|
package/internals/microtask.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
|
|
3
|
-
var classof = require('../internals/classof-raw');
|
|
4
3
|
var macrotask = require('../internals/task').set;
|
|
5
4
|
var IS_IOS = require('../internals/engine-is-ios');
|
|
5
|
+
var IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');
|
|
6
|
+
var IS_NODE = require('../internals/engine-is-node');
|
|
6
7
|
|
|
7
8
|
var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
|
|
9
|
+
var document = global.document;
|
|
8
10
|
var process = global.process;
|
|
9
11
|
var Promise = global.Promise;
|
|
10
|
-
var IS_NODE = classof(process) == 'process';
|
|
11
12
|
// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
|
|
12
13
|
var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
|
|
13
14
|
var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
|
|
@@ -33,13 +34,9 @@ if (!queueMicrotask) {
|
|
|
33
34
|
if (parent) parent.enter();
|
|
34
35
|
};
|
|
35
36
|
|
|
36
|
-
// Node.js
|
|
37
|
-
if (IS_NODE) {
|
|
38
|
-
notify = function () {
|
|
39
|
-
process.nextTick(flush);
|
|
40
|
-
};
|
|
41
37
|
// browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
|
|
42
|
-
|
|
38
|
+
// also except WebOS Webkit https://github.com/zloirock/core-js/issues/898
|
|
39
|
+
if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {
|
|
43
40
|
toggle = true;
|
|
44
41
|
node = document.createTextNode('');
|
|
45
42
|
new MutationObserver(flush).observe(node, { characterData: true });
|
|
@@ -54,6 +51,11 @@ if (!queueMicrotask) {
|
|
|
54
51
|
notify = function () {
|
|
55
52
|
then.call(promise, flush);
|
|
56
53
|
};
|
|
54
|
+
// Node.js without promises
|
|
55
|
+
} else if (IS_NODE) {
|
|
56
|
+
notify = function () {
|
|
57
|
+
process.nextTick(flush);
|
|
58
|
+
};
|
|
57
59
|
// for other environments - macrotask based on:
|
|
58
60
|
// - setImmediate
|
|
59
61
|
// - MessageChannel
|
|
@@ -3,7 +3,7 @@ var global = require('../internals/global');
|
|
|
3
3
|
var globalIsFinite = global.isFinite;
|
|
4
4
|
|
|
5
5
|
// `Number.isFinite` method
|
|
6
|
-
// https://tc39.
|
|
6
|
+
// https://tc39.es/ecma262/#sec-number.isfinite
|
|
7
7
|
module.exports = Number.isFinite || function isFinite(it) {
|
|
8
8
|
return typeof it == 'number' && globalIsFinite(it);
|
|
9
9
|
};
|
|
@@ -6,7 +6,7 @@ var $parseFloat = global.parseFloat;
|
|
|
6
6
|
var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
|
|
7
7
|
|
|
8
8
|
// `parseFloat` method
|
|
9
|
-
// https://tc39.
|
|
9
|
+
// https://tc39.es/ecma262/#sec-parsefloat-string
|
|
10
10
|
module.exports = FORCED ? function parseFloat(string) {
|
|
11
11
|
var trimmedString = trim(String(string));
|
|
12
12
|
var result = $parseFloat(trimmedString);
|