core-js 3.1.3 → 3.3.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.
- package/README.md +1 -1
- package/configurator.js +7 -0
- package/es/global-this.js +3 -0
- package/es/index.js +2 -0
- package/es/promise/all-settled.js +11 -0
- package/es/promise/index.js +1 -0
- package/features/array/index.js +1 -0
- package/features/array/is-template-object.js +4 -0
- package/features/async-iterator/as-indexed-pairs.js +10 -0
- package/features/async-iterator/drop.js +10 -0
- package/features/async-iterator/every.js +10 -0
- package/features/async-iterator/filter.js +10 -0
- package/features/async-iterator/find.js +10 -0
- package/features/async-iterator/flat-map.js +10 -0
- package/features/async-iterator/for-each.js +10 -0
- package/features/async-iterator/from.js +10 -0
- package/features/async-iterator/index.js +22 -0
- package/features/async-iterator/map.js +10 -0
- package/features/async-iterator/reduce.js +10 -0
- package/features/async-iterator/some.js +10 -0
- package/features/async-iterator/take.js +10 -0
- package/features/async-iterator/to-array.js +10 -0
- package/features/global-this.js +1 -3
- package/features/iterator/as-indexed-pairs.js +10 -0
- package/features/iterator/drop.js +9 -0
- package/features/iterator/every.js +9 -0
- package/features/iterator/filter.js +9 -0
- package/features/iterator/find.js +9 -0
- package/features/iterator/flat-map.js +9 -0
- package/features/iterator/for-each.js +9 -0
- package/features/iterator/from.js +9 -0
- package/features/iterator/index.js +21 -0
- package/features/iterator/map.js +9 -0
- package/features/iterator/reduce.js +9 -0
- package/features/iterator/some.js +9 -0
- package/features/iterator/take.js +9 -0
- package/features/iterator/to-array.js +9 -0
- package/features/map/from.js +2 -0
- package/features/map/index.js +3 -0
- package/features/map/of.js +2 -0
- package/features/map/update-or-insert.js +6 -0
- package/features/map/upsert.js +5 -0
- package/features/promise/all-settled.js +2 -9
- package/features/promise/index.js +1 -0
- package/features/set/difference.js +2 -0
- package/features/set/from.js +2 -0
- package/features/set/is-subset-of.js +2 -0
- package/features/set/of.js +2 -0
- package/features/set/symmetric-difference.js +2 -0
- package/features/set/union.js +2 -0
- package/features/symbol/async-dispose.js +4 -0
- package/features/symbol/index.js +1 -0
- package/features/weak-map/from.js +2 -0
- package/features/weak-map/index.js +1 -0
- package/features/weak-map/of.js +2 -0
- package/features/weak-map/upsert.js +5 -0
- package/features/weak-set/from.js +2 -0
- package/features/weak-set/of.js +2 -0
- package/internals/a-possible-prototype.js +7 -0
- package/internals/add-to-unscopables.js +2 -2
- package/internals/advance-string-index.js +2 -2
- package/internals/array-buffer-view-core.js +5 -4
- package/internals/array-buffer.js +21 -16
- package/internals/array-copy-within.js +3 -1
- package/internals/array-for-each.js +3 -6
- package/internals/array-from.js +4 -3
- package/internals/array-includes.js +12 -7
- package/internals/{array-methods.js → array-iteration.js} +30 -18
- package/internals/array-last-index-of.js +3 -2
- package/internals/array-reduce.js +30 -21
- package/internals/async-iterator-iteration.js +61 -0
- package/internals/async-iterator-prototype.js +37 -0
- package/internals/collection-delete-all.js +3 -1
- package/internals/collection-from.js +3 -2
- package/internals/collection-weak.js +5 -5
- package/internals/collection.js +14 -14
- package/internals/composite-key.js +1 -0
- package/internals/create-async-iterator-proxy.js +61 -0
- package/internals/create-iterator-proxy.js +51 -0
- package/internals/{hide.js → create-non-enumerable-property.js} +0 -0
- package/internals/date-to-iso-string.js +12 -14
- package/internals/define-iterator.js +3 -3
- package/internals/document-create-element.js +2 -2
- package/internals/export.js +2 -2
- package/internals/fix-regexp-well-known-symbol-logic.js +2 -2
- package/internals/function-bind.js +3 -3
- package/internals/get-async-iterator-method.js +9 -0
- package/internals/global.js +4 -5
- package/internals/html.js +2 -4
- package/internals/indexed-object.js +1 -1
- package/internals/inherit-if-required.js +13 -6
- package/internals/internal-state.js +2 -2
- package/internals/iterate.js +21 -12
- package/internals/iterators-core.js +4 -2
- package/internals/map-upsert.js +23 -0
- package/internals/math-expm1.js +2 -1
- package/internals/math-fround.js +2 -1
- package/internals/math-log1p.js +3 -1
- package/internals/microtask.js +4 -3
- package/internals/native-promise-constructor.js +3 -0
- package/internals/native-url.js +13 -4
- package/internals/not-a-regexp.js +7 -0
- package/internals/object-assign.js +2 -1
- package/internals/object-create.js +2 -1
- package/internals/object-define-properties.js +4 -2
- package/internals/object-define-property.js +2 -0
- package/internals/object-get-own-property-descriptor.js +2 -0
- package/internals/object-get-own-property-names.js +2 -1
- package/internals/object-get-prototype-of.js +2 -1
- package/internals/object-keys-internal.js +2 -4
- package/internals/object-keys.js +2 -1
- package/internals/object-property-is-enumerable.js +2 -0
- package/internals/object-set-prototype-of.js +9 -5
- package/internals/object-to-array.js +25 -15
- package/internals/own-keys.js +2 -4
- package/internals/parse-float.js +7 -5
- package/internals/parse-int.js +6 -4
- package/internals/punycode-to-ascii.js +2 -4
- package/internals/redefine.js +3 -3
- package/internals/reflect-metadata.js +1 -0
- package/internals/regexp-flags.js +1 -0
- package/internals/set-global.js +2 -2
- package/internals/set-species.js +8 -5
- package/internals/shared-store.js +7 -0
- package/internals/shared.js +2 -6
- package/internals/string-multibyte.js +27 -0
- package/internals/string-pad.js +25 -11
- package/internals/string-trim.js +20 -8
- package/internals/task.js +3 -1
- package/internals/to-offset.js +3 -3
- package/internals/to-positive-integer.js +7 -0
- package/internals/to-primitive.js +7 -6
- package/internals/typed-array-constructor.js +15 -12
- package/internals/typed-array-from.js +3 -2
- package/internals/uid.js +1 -1
- package/internals/user-agent.js +2 -4
- package/modules/es.array.every.js +3 -6
- package/modules/es.array.fill.js +3 -1
- package/modules/es.array.filter.js +3 -6
- package/modules/es.array.find-index.js +2 -3
- package/modules/es.array.find.js +2 -3
- package/modules/es.array.flat-map.js +1 -1
- package/modules/es.array.flat.js +1 -1
- package/modules/es.array.includes.js +2 -4
- package/modules/es.array.index-of.js +2 -3
- package/modules/es.array.is-array.js +3 -1
- package/modules/es.array.map.js +3 -6
- package/modules/es.array.reduce-right.js +3 -4
- package/modules/es.array.reduce.js +3 -5
- package/modules/es.array.slice.js +1 -3
- package/modules/es.array.some.js +3 -6
- package/modules/es.array.splice.js +1 -3
- package/modules/es.date.to-primitive.js +4 -2
- package/modules/es.global-this.js +8 -0
- package/modules/es.map.js +1 -1
- package/modules/es.math.hypot.js +6 -1
- package/modules/es.number.constructor.js +9 -10
- package/modules/es.number.to-fixed.js +57 -53
- package/modules/es.object.entries.js +2 -2
- package/modules/es.object.get-own-property-descriptors.js +3 -3
- package/modules/es.object.get-prototype-of.js +1 -0
- package/modules/es.object.values.js +2 -2
- package/modules/es.promise.all-settled.js +43 -0
- package/modules/es.promise.finally.js +8 -0
- package/modules/es.promise.js +30 -14
- package/modules/es.reflect.apply.js +2 -2
- package/modules/es.reflect.construct.js +4 -4
- package/modules/es.reflect.define-property.js +5 -5
- package/modules/es.reflect.delete-property.js +1 -1
- package/modules/es.reflect.get-own-property-descriptor.js +2 -2
- package/modules/es.reflect.get-prototype-of.js +1 -1
- package/modules/es.reflect.get.js +3 -3
- package/modules/es.reflect.set-prototype-of.js +4 -2
- package/modules/es.reflect.set.js +3 -3
- package/modules/es.regexp.constructor.js +3 -3
- package/modules/es.regexp.to-string.js +1 -1
- package/modules/es.set.js +1 -1
- package/modules/es.string.code-point-at.js +2 -2
- package/modules/es.string.ends-with.js +6 -5
- package/modules/es.string.includes.js +4 -3
- package/modules/es.string.iterator.js +2 -2
- package/modules/es.string.match-all.js +22 -7
- package/modules/es.string.pad-end.js +2 -2
- package/modules/es.string.pad-start.js +2 -2
- package/modules/es.string.starts-with.js +8 -6
- package/modules/es.string.trim-end.js +2 -2
- package/modules/es.string.trim-start.js +2 -2
- package/modules/es.string.trim.js +3 -5
- package/modules/es.symbol.js +97 -87
- package/modules/es.typed-array.copy-within.js +2 -2
- package/modules/es.typed-array.every.js +2 -3
- package/modules/es.typed-array.fill.js +2 -2
- package/modules/es.typed-array.filter.js +3 -4
- package/modules/es.typed-array.find-index.js +2 -3
- package/modules/es.typed-array.find.js +2 -3
- package/modules/es.typed-array.for-each.js +2 -3
- package/modules/es.typed-array.includes.js +2 -3
- package/modules/es.typed-array.index-of.js +2 -3
- package/modules/es.typed-array.iterator.js +1 -1
- package/modules/es.typed-array.join.js +2 -2
- package/modules/es.typed-array.last-index-of.js +2 -2
- package/modules/es.typed-array.map.js +5 -7
- package/modules/es.typed-array.of.js +1 -1
- package/modules/es.typed-array.reduce-right.js +2 -2
- package/modules/es.typed-array.reduce.js +2 -2
- package/modules/es.typed-array.reverse.js +2 -1
- package/modules/es.typed-array.set.js +2 -2
- package/modules/es.typed-array.slice.js +3 -3
- package/modules/es.typed-array.some.js +2 -3
- package/modules/es.typed-array.sort.js +2 -2
- package/modules/es.typed-array.subarray.js +1 -1
- package/modules/es.typed-array.to-locale-string.js +7 -6
- package/modules/es.weak-map.js +1 -1
- package/modules/es.weak-set.js +1 -1
- package/modules/esnext.aggregate-error.js +28 -4
- package/modules/esnext.array.is-template-object.js +28 -0
- package/modules/esnext.async-iterator.as-indexed-pairs.js +27 -0
- package/modules/esnext.async-iterator.constructor.js +25 -0
- package/modules/esnext.async-iterator.drop.js +41 -0
- package/modules/esnext.async-iterator.every.js +10 -0
- package/modules/esnext.async-iterator.filter.js +42 -0
- package/modules/esnext.async-iterator.find.js +10 -0
- package/modules/esnext.async-iterator.flat-map.js +67 -0
- package/modules/esnext.async-iterator.for-each.js +10 -0
- package/modules/esnext.async-iterator.from.js +30 -0
- package/modules/esnext.async-iterator.map.js +30 -0
- package/modules/esnext.async-iterator.reduce.js +46 -0
- package/modules/esnext.async-iterator.some.js +10 -0
- package/modules/esnext.async-iterator.take.js +22 -0
- package/modules/esnext.async-iterator.to-array.js +10 -0
- package/modules/esnext.global-this.js +2 -6
- package/modules/esnext.iterator.as-indexed-pairs.js +20 -0
- package/modules/esnext.iterator.constructor.js +39 -0
- package/modules/esnext.iterator.drop.js +30 -0
- package/modules/esnext.iterator.every.js +16 -0
- package/modules/esnext.iterator.filter.js +30 -0
- package/modules/esnext.iterator.find.js +16 -0
- package/modules/esnext.iterator.flat-map.js +45 -0
- package/modules/esnext.iterator.for-each.js +11 -0
- package/modules/esnext.iterator.from.js +32 -0
- package/modules/esnext.iterator.map.js +23 -0
- package/modules/esnext.iterator.reduce.js +25 -0
- package/modules/esnext.iterator.some.js +16 -0
- package/modules/esnext.iterator.take.js +25 -0
- package/modules/esnext.iterator.to-array.js +15 -0
- package/modules/esnext.map.every.js +4 -5
- package/modules/esnext.map.filter.js +4 -5
- package/modules/esnext.map.find-key.js +4 -5
- package/modules/esnext.map.find.js +4 -5
- package/modules/esnext.map.includes.js +4 -7
- package/modules/esnext.map.key-of.js +4 -7
- package/modules/esnext.map.map-keys.js +4 -5
- package/modules/esnext.map.map-values.js +4 -5
- package/modules/esnext.map.reduce.js +12 -11
- package/modules/esnext.map.some.js +4 -5
- package/modules/esnext.map.update-or-insert.js +11 -0
- package/modules/esnext.map.update.js +3 -2
- package/modules/esnext.map.upsert.js +10 -0
- package/modules/esnext.math.signbit.js +0 -1
- package/modules/esnext.observable.js +26 -25
- package/modules/esnext.promise.all-settled.js +2 -43
- package/modules/esnext.reflect.get-metadata-keys.js +1 -0
- package/modules/esnext.set.every.js +4 -4
- package/modules/esnext.set.filter.js +4 -4
- package/modules/esnext.set.find.js +4 -4
- package/modules/esnext.set.is-disjoint-from.js +3 -5
- package/modules/esnext.set.is-subset-of.js +3 -5
- package/modules/esnext.set.is-superset-of.js +3 -5
- package/modules/esnext.set.join.js +2 -2
- package/modules/esnext.set.map.js +4 -4
- package/modules/esnext.set.reduce.js +12 -10
- package/modules/esnext.set.some.js +4 -4
- package/modules/esnext.string.at.js +2 -2
- package/modules/esnext.string.code-points.js +5 -3
- package/modules/esnext.string.match-all.js +0 -1
- package/modules/esnext.string.replace-all.js +16 -22
- package/modules/esnext.symbol.async-dispose.js +5 -0
- package/modules/esnext.symbol.dispose.js +1 -1
- package/modules/esnext.symbol.replace-all.js +1 -2
- package/modules/esnext.weak-map.upsert.js +10 -0
- package/modules/web.dom-collections.for-each.js +2 -2
- package/modules/web.dom-collections.iterator.js +6 -4
- package/modules/web.immediate.js +5 -0
- package/modules/web.timers.js +12 -7
- package/modules/web.url-search-params.js +52 -41
- package/modules/web.url.js +45 -43
- package/package.json +2 -2
- package/postinstall.js +49 -0
- package/proposals/array-is-template-object.js +1 -0
- package/proposals/iterator-helpers.js +20 -0
- package/proposals/map-update-or-insert.js +2 -0
- package/proposals/map-upsert.js +5 -0
- package/proposals/promise-all-settled.js +1 -0
- package/proposals/string-match-all.js +0 -2
- package/proposals/using-statement.js +1 -0
- package/stable/global-this.js +1 -3
- package/stable/promise/all-settled.js +1 -0
- package/stage/1.js +1 -3
- package/stage/2.js +4 -1
- package/stage/3.js +2 -2
- package/stage/4.js +2 -0
- package/LICENSE +0 -19
- package/internals/enum-keys.js +0 -16
- package/internals/string-at.js +0 -17
- package/internals/validate-set-prototype-of-arguments.js +0 -9
- package/internals/validate-string-method-arguments.js +0 -9
- package/scripts/postinstall.js +0 -23
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var IS_PURE = require('../internals/is-pure');
|
|
4
|
+
var NativePromise = require('../internals/native-promise-constructor');
|
|
3
5
|
var getBuiltIn = require('../internals/get-built-in');
|
|
4
6
|
var speciesConstructor = require('../internals/species-constructor');
|
|
5
7
|
var promiseResolve = require('../internals/promise-resolve');
|
|
8
|
+
var redefine = require('../internals/redefine');
|
|
6
9
|
|
|
7
10
|
// `Promise.prototype.finally` method
|
|
8
11
|
// https://tc39.github.io/ecma262/#sec-promise.prototype.finally
|
|
@@ -20,3 +23,8 @@ $({ target: 'Promise', proto: true, real: true }, {
|
|
|
20
23
|
);
|
|
21
24
|
}
|
|
22
25
|
});
|
|
26
|
+
|
|
27
|
+
// patch native Promise.prototype for native async functions
|
|
28
|
+
if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {
|
|
29
|
+
redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);
|
|
30
|
+
}
|
package/modules/es.promise.js
CHANGED
|
@@ -3,6 +3,8 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var IS_PURE = require('../internals/is-pure');
|
|
4
4
|
var global = require('../internals/global');
|
|
5
5
|
var path = require('../internals/path');
|
|
6
|
+
var NativePromise = require('../internals/native-promise-constructor');
|
|
7
|
+
var redefine = require('../internals/redefine');
|
|
6
8
|
var redefineAll = require('../internals/redefine-all');
|
|
7
9
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
8
10
|
var setSpecies = require('../internals/set-species');
|
|
@@ -29,7 +31,7 @@ var PROMISE = 'Promise';
|
|
|
29
31
|
var getInternalState = InternalStateModule.get;
|
|
30
32
|
var setInternalState = InternalStateModule.set;
|
|
31
33
|
var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
|
|
32
|
-
var PromiseConstructor =
|
|
34
|
+
var PromiseConstructor = NativePromise;
|
|
33
35
|
var TypeError = global.TypeError;
|
|
34
36
|
var document = global.document;
|
|
35
37
|
var process = global.process;
|
|
@@ -47,7 +49,7 @@ var FULFILLED = 1;
|
|
|
47
49
|
var REJECTED = 2;
|
|
48
50
|
var HANDLED = 1;
|
|
49
51
|
var UNHANDLED = 2;
|
|
50
|
-
var Internal, OwnPromiseCapability, PromiseWrapper;
|
|
52
|
+
var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
|
|
51
53
|
|
|
52
54
|
var FORCED = isForced(PROMISE, function () {
|
|
53
55
|
// correct subclassing with @@species support
|
|
@@ -84,8 +86,10 @@ var notify = function (promise, state, isReject) {
|
|
|
84
86
|
microtask(function () {
|
|
85
87
|
var value = state.value;
|
|
86
88
|
var ok = state.state == FULFILLED;
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
+
var index = 0;
|
|
90
|
+
// variable length - can't use forEach
|
|
91
|
+
while (chain.length > index) {
|
|
92
|
+
var reaction = chain[index++];
|
|
89
93
|
var handler = ok ? reaction.ok : reaction.fail;
|
|
90
94
|
var resolve = reaction.resolve;
|
|
91
95
|
var reject = reaction.reject;
|
|
@@ -100,7 +104,7 @@ var notify = function (promise, state, isReject) {
|
|
|
100
104
|
if (handler === true) result = value;
|
|
101
105
|
else {
|
|
102
106
|
if (domain) domain.enter();
|
|
103
|
-
result = handler(value); //
|
|
107
|
+
result = handler(value); // can throw
|
|
104
108
|
if (domain) {
|
|
105
109
|
domain.exit();
|
|
106
110
|
exited = true;
|
|
@@ -116,8 +120,7 @@ var notify = function (promise, state, isReject) {
|
|
|
116
120
|
if (domain && !exited) domain.exit();
|
|
117
121
|
reject(error);
|
|
118
122
|
}
|
|
119
|
-
}
|
|
120
|
-
while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
|
|
123
|
+
}
|
|
121
124
|
state.reactions = [];
|
|
122
125
|
state.notified = false;
|
|
123
126
|
if (isReject && !state.rejection) onUnhandled(promise, state);
|
|
@@ -271,13 +274,26 @@ if (FORCED) {
|
|
|
271
274
|
: newGenericPromiseCapability(C);
|
|
272
275
|
};
|
|
273
276
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
277
|
+
if (!IS_PURE && typeof NativePromise == 'function') {
|
|
278
|
+
nativeThen = NativePromise.prototype.then;
|
|
279
|
+
|
|
280
|
+
// wrap native Promise#then for native async functions
|
|
281
|
+
redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {
|
|
282
|
+
var that = this;
|
|
283
|
+
return new PromiseConstructor(function (resolve, reject) {
|
|
284
|
+
nativeThen.call(that, resolve, reject);
|
|
285
|
+
}).then(onFulfilled, onRejected);
|
|
286
|
+
// https://github.com/zloirock/core-js/issues/640
|
|
287
|
+
}, { unsafe: true });
|
|
288
|
+
|
|
289
|
+
// wrap fetch result
|
|
290
|
+
if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {
|
|
291
|
+
// eslint-disable-next-line no-unused-vars
|
|
292
|
+
fetch: function fetch(input) {
|
|
293
|
+
return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
}
|
|
281
297
|
}
|
|
282
298
|
|
|
283
299
|
$({ global: true, wrap: true, forced: FORCED }, {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
2
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
3
3
|
var aFunction = require('../internals/a-function');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var fails = require('../internals/fails');
|
|
6
6
|
|
|
7
|
-
var nativeApply = (
|
|
7
|
+
var nativeApply = getBuiltIn('Reflect', 'apply');
|
|
8
8
|
var functionApply = Function.apply;
|
|
9
9
|
|
|
10
10
|
// MS Edge argumentsList argument is optional
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
3
|
-
var create = require('../internals/object-create');
|
|
2
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
4
3
|
var aFunction = require('../internals/a-function');
|
|
5
4
|
var anObject = require('../internals/an-object');
|
|
6
5
|
var isObject = require('../internals/is-object');
|
|
7
|
-
var
|
|
6
|
+
var create = require('../internals/object-create');
|
|
8
7
|
var bind = require('../internals/function-bind');
|
|
8
|
+
var fails = require('../internals/fails');
|
|
9
9
|
|
|
10
|
-
var nativeConstruct = (
|
|
10
|
+
var nativeConstruct = getBuiltIn('Reflect', 'construct');
|
|
11
11
|
|
|
12
12
|
// `Reflect.construct` method
|
|
13
13
|
// https://tc39.github.io/ecma262/#sec-reflect.construct
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
3
|
-
var definePropertyModule = require('../internals/object-define-property');
|
|
2
|
+
var DESCRIPTORS = require('../internals/descriptors');
|
|
4
3
|
var anObject = require('../internals/an-object');
|
|
5
4
|
var toPrimitive = require('../internals/to-primitive');
|
|
6
|
-
var
|
|
5
|
+
var definePropertyModule = require('../internals/object-define-property');
|
|
6
|
+
var fails = require('../internals/fails');
|
|
7
7
|
|
|
8
8
|
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
|
|
9
9
|
var ERROR_INSTEAD_OF_FALSE = fails(function () {
|
|
@@ -16,10 +16,10 @@ var ERROR_INSTEAD_OF_FALSE = fails(function () {
|
|
|
16
16
|
$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {
|
|
17
17
|
defineProperty: function defineProperty(target, propertyKey, attributes) {
|
|
18
18
|
anObject(target);
|
|
19
|
-
|
|
19
|
+
var key = toPrimitive(propertyKey, true);
|
|
20
20
|
anObject(attributes);
|
|
21
21
|
try {
|
|
22
|
-
definePropertyModule.f(target,
|
|
22
|
+
definePropertyModule.f(target, key, attributes);
|
|
23
23
|
return true;
|
|
24
24
|
} catch (error) {
|
|
25
25
|
return false;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
|
|
3
2
|
var anObject = require('../internals/an-object');
|
|
3
|
+
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
|
|
4
4
|
|
|
5
5
|
// `Reflect.deleteProperty` method
|
|
6
6
|
// https://tc39.github.io/ecma262/#sec-reflect.deleteproperty
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
3
|
-
var anObject = require('../internals/an-object');
|
|
4
2
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
5
5
|
|
|
6
6
|
// `Reflect.getOwnPropertyDescriptor` method
|
|
7
7
|
// https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var objectGetPrototypeOf = require('../internals/object-get-prototype-of');
|
|
3
2
|
var anObject = require('../internals/an-object');
|
|
3
|
+
var objectGetPrototypeOf = require('../internals/object-get-prototype-of');
|
|
4
4
|
var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
|
|
5
5
|
|
|
6
6
|
// `Reflect.getPrototypeOf` method
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
3
|
-
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
4
|
-
var has = require('../internals/has');
|
|
5
2
|
var isObject = require('../internals/is-object');
|
|
6
3
|
var anObject = require('../internals/an-object');
|
|
4
|
+
var has = require('../internals/has');
|
|
5
|
+
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
6
|
+
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
7
7
|
|
|
8
8
|
// `Reflect.get` method
|
|
9
9
|
// https://tc39.github.io/ecma262/#sec-reflect.get
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
+
var anObject = require('../internals/an-object');
|
|
3
|
+
var aPossiblePrototype = require('../internals/a-possible-prototype');
|
|
2
4
|
var objectSetPrototypeOf = require('../internals/object-set-prototype-of');
|
|
3
|
-
var validateSetPrototypeOfArguments = require('../internals/validate-set-prototype-of-arguments');
|
|
4
5
|
|
|
5
6
|
// `Reflect.setPrototypeOf` method
|
|
6
7
|
// https://tc39.github.io/ecma262/#sec-reflect.setprototypeof
|
|
7
8
|
if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {
|
|
8
9
|
setPrototypeOf: function setPrototypeOf(target, proto) {
|
|
9
|
-
|
|
10
|
+
anObject(target);
|
|
11
|
+
aPossiblePrototype(proto);
|
|
10
12
|
try {
|
|
11
13
|
objectSetPrototypeOf(target, proto);
|
|
12
14
|
return true;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
+
var anObject = require('../internals/an-object');
|
|
3
|
+
var isObject = require('../internals/is-object');
|
|
4
|
+
var has = require('../internals/has');
|
|
2
5
|
var definePropertyModule = require('../internals/object-define-property');
|
|
3
6
|
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
4
7
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
5
|
-
var has = require('../internals/has');
|
|
6
8
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
7
|
-
var anObject = require('../internals/an-object');
|
|
8
|
-
var isObject = require('../internals/is-object');
|
|
9
9
|
|
|
10
10
|
// `Reflect.set` method
|
|
11
11
|
// https://tc39.github.io/ecma262/#sec-reflect.set
|
|
@@ -20,7 +20,7 @@ var re2 = /a/g;
|
|
|
20
20
|
// "new" should create a new object, old webkit bug
|
|
21
21
|
var CORRECT_NEW = new NativeRegExp(re1) !== re1;
|
|
22
22
|
|
|
23
|
-
var FORCED = isForced('RegExp',
|
|
23
|
+
var FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || fails(function () {
|
|
24
24
|
re2[MATCH] = false;
|
|
25
25
|
// RegExp constructor can alter flags and IsRegExp works correct with @@match
|
|
26
26
|
return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
|
|
@@ -49,8 +49,8 @@ if (FORCED) {
|
|
|
49
49
|
});
|
|
50
50
|
};
|
|
51
51
|
var keys = getOwnPropertyNames(NativeRegExp);
|
|
52
|
-
var
|
|
53
|
-
while (
|
|
52
|
+
var index = 0;
|
|
53
|
+
while (keys.length > index) proxy(keys[index++]);
|
|
54
54
|
RegExpPrototype.constructor = RegExpWrapper;
|
|
55
55
|
RegExpWrapper.prototype = RegExpPrototype;
|
|
56
56
|
redefine(global, 'RegExp', RegExpWrapper);
|
|
@@ -5,8 +5,8 @@ var fails = require('../internals/fails');
|
|
|
5
5
|
var flags = require('../internals/regexp-flags');
|
|
6
6
|
|
|
7
7
|
var TO_STRING = 'toString';
|
|
8
|
-
var nativeToString = /./[TO_STRING];
|
|
9
8
|
var RegExpPrototype = RegExp.prototype;
|
|
9
|
+
var nativeToString = RegExpPrototype[TO_STRING];
|
|
10
10
|
|
|
11
11
|
var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
|
|
12
12
|
// FF44- RegExp#toString has a wrong name
|
package/modules/es.set.js
CHANGED
|
@@ -5,5 +5,5 @@ var collectionStrong = require('../internals/collection-strong');
|
|
|
5
5
|
// `Set` constructor
|
|
6
6
|
// https://tc39.github.io/ecma262/#sec-set-objects
|
|
7
7
|
module.exports = collection('Set', function (get) {
|
|
8
|
-
return function Set() { return get(this, arguments.length
|
|
8
|
+
return function Set() { return get(this, arguments.length ? arguments[0] : undefined); };
|
|
9
9
|
}, collectionStrong);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var codeAt = require('../internals/string-multibyte').codeAt;
|
|
4
4
|
|
|
5
5
|
// `String.prototype.codePointAt` method
|
|
6
6
|
// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
|
|
7
7
|
$({ target: 'String', proto: true }, {
|
|
8
8
|
codePointAt: function codePointAt(pos) {
|
|
9
|
-
return
|
|
9
|
+
return codeAt(this, pos);
|
|
10
10
|
}
|
|
11
11
|
});
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var toLength = require('../internals/to-length');
|
|
4
|
-
var
|
|
4
|
+
var notARegExp = require('../internals/not-a-regexp');
|
|
5
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
5
6
|
var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
|
|
6
7
|
|
|
7
|
-
var
|
|
8
|
-
var nativeEndsWith = ''[ENDS_WITH];
|
|
8
|
+
var nativeEndsWith = ''.endsWith;
|
|
9
9
|
var min = Math.min;
|
|
10
10
|
|
|
11
11
|
// `String.prototype.endsWith` method
|
|
12
12
|
// https://tc39.github.io/ecma262/#sec-string.prototype.endswith
|
|
13
|
-
$({ target: 'String', proto: true, forced: !correctIsRegExpLogic(
|
|
13
|
+
$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('endsWith') }, {
|
|
14
14
|
endsWith: function endsWith(searchString /* , endPosition = @length */) {
|
|
15
|
-
var that =
|
|
15
|
+
var that = String(requireObjectCoercible(this));
|
|
16
|
+
notARegExp(searchString);
|
|
16
17
|
var endPosition = arguments.length > 1 ? arguments[1] : undefined;
|
|
17
18
|
var len = toLength(that.length);
|
|
18
19
|
var end = endPosition === undefined ? len : min(toLength(endPosition), len);
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var notARegExp = require('../internals/not-a-regexp');
|
|
4
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
4
5
|
var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
|
|
5
6
|
|
|
6
7
|
// `String.prototype.includes` method
|
|
7
8
|
// https://tc39.github.io/ecma262/#sec-string.prototype.includes
|
|
8
9
|
$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
|
|
9
10
|
includes: function includes(searchString /* , position = 0 */) {
|
|
10
|
-
return !!~
|
|
11
|
-
.indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
|
+
return !!~String(requireObjectCoercible(this))
|
|
12
|
+
.indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
|
|
12
13
|
}
|
|
13
14
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
2
|
+
var charAt = require('../internals/string-multibyte').charAt;
|
|
3
3
|
var InternalStateModule = require('../internals/internal-state');
|
|
4
4
|
var defineIterator = require('../internals/define-iterator');
|
|
5
5
|
|
|
@@ -23,7 +23,7 @@ defineIterator(String, 'String', function (iterated) {
|
|
|
23
23
|
var index = state.index;
|
|
24
24
|
var point;
|
|
25
25
|
if (index >= string.length) return { value: undefined, done: true };
|
|
26
|
-
point =
|
|
26
|
+
point = charAt(string, index);
|
|
27
27
|
state.index += point.length;
|
|
28
28
|
return { value: point, done: false };
|
|
29
29
|
});
|
|
@@ -6,8 +6,10 @@ var toLength = require('../internals/to-length');
|
|
|
6
6
|
var aFunction = require('../internals/a-function');
|
|
7
7
|
var anObject = require('../internals/an-object');
|
|
8
8
|
var classof = require('../internals/classof');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var isRegExp = require('../internals/is-regexp');
|
|
10
|
+
var getRegExpFlags = require('../internals/regexp-flags');
|
|
11
|
+
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
12
|
+
var fails = require('../internals/fails');
|
|
11
13
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
12
14
|
var speciesConstructor = require('../internals/species-constructor');
|
|
13
15
|
var advanceStringIndex = require('../internals/advance-string-index');
|
|
@@ -21,6 +23,11 @@ var setInternalState = InternalStateModule.set;
|
|
|
21
23
|
var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
|
|
22
24
|
var RegExpPrototype = RegExp.prototype;
|
|
23
25
|
var regExpBuiltinExec = RegExpPrototype.exec;
|
|
26
|
+
var nativeMatchAll = ''.matchAll;
|
|
27
|
+
|
|
28
|
+
var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
|
|
29
|
+
'a'.matchAll(/./);
|
|
30
|
+
});
|
|
24
31
|
|
|
25
32
|
var regExpExec = function (R, S) {
|
|
26
33
|
var exec = R.exec;
|
|
@@ -64,7 +71,7 @@ var $matchAll = function (string) {
|
|
|
64
71
|
C = speciesConstructor(R, RegExp);
|
|
65
72
|
flagsValue = R.flags;
|
|
66
73
|
if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {
|
|
67
|
-
flagsValue =
|
|
74
|
+
flagsValue = getRegExpFlags.call(R);
|
|
68
75
|
}
|
|
69
76
|
flags = flagsValue === undefined ? '' : String(flagsValue);
|
|
70
77
|
matcher = new C(C === RegExp ? R.source : R, flags);
|
|
@@ -76,19 +83,27 @@ var $matchAll = function (string) {
|
|
|
76
83
|
|
|
77
84
|
// `String.prototype.matchAll` method
|
|
78
85
|
// https://github.com/tc39/proposal-string-matchall
|
|
79
|
-
$({ target: 'String', proto: true }, {
|
|
86
|
+
$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
80
87
|
matchAll: function matchAll(regexp) {
|
|
81
88
|
var O = requireObjectCoercible(this);
|
|
82
|
-
var S, matcher, rx;
|
|
89
|
+
var flags, S, matcher, rx;
|
|
83
90
|
if (regexp != null) {
|
|
91
|
+
if (isRegExp(regexp)) {
|
|
92
|
+
flags = String(requireObjectCoercible('flags' in RegExpPrototype
|
|
93
|
+
? regexp.flags
|
|
94
|
+
: getRegExpFlags.call(regexp)
|
|
95
|
+
));
|
|
96
|
+
if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');
|
|
97
|
+
}
|
|
98
|
+
if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
|
|
84
99
|
matcher = regexp[MATCH_ALL];
|
|
85
100
|
if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
|
|
86
101
|
if (matcher != null) return aFunction(matcher).call(regexp, O);
|
|
87
|
-
}
|
|
102
|
+
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
|
|
88
103
|
S = String(O);
|
|
89
104
|
rx = new RegExp(regexp, 'g');
|
|
90
105
|
return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);
|
|
91
106
|
}
|
|
92
107
|
});
|
|
93
108
|
|
|
94
|
-
IS_PURE || MATCH_ALL in RegExpPrototype ||
|
|
109
|
+
IS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $padEnd = require('../internals/string-pad').end;
|
|
4
4
|
var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
|
|
5
5
|
|
|
6
6
|
// `String.prototype.padEnd` method
|
|
7
7
|
// https://tc39.github.io/ecma262/#sec-string.prototype.padend
|
|
8
8
|
$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
|
|
9
9
|
padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
|
|
10
|
-
return
|
|
10
|
+
return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
11
|
}
|
|
12
12
|
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $padStart = require('../internals/string-pad').start;
|
|
4
4
|
var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
|
|
5
5
|
|
|
6
6
|
// `String.prototype.padStart` method
|
|
7
7
|
// https://tc39.github.io/ecma262/#sec-string.prototype.padstart
|
|
8
8
|
$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
|
|
9
9
|
padStart: function padStart(maxLength /* , fillString = ' ' */) {
|
|
10
|
-
return
|
|
10
|
+
return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
|
|
11
11
|
}
|
|
12
12
|
});
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var toLength = require('../internals/to-length');
|
|
4
|
-
var
|
|
4
|
+
var notARegExp = require('../internals/not-a-regexp');
|
|
5
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
5
6
|
var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
|
|
6
7
|
|
|
7
|
-
var
|
|
8
|
-
var
|
|
8
|
+
var nativeStartsWith = ''.startsWith;
|
|
9
|
+
var min = Math.min;
|
|
9
10
|
|
|
10
11
|
// `String.prototype.startsWith` method
|
|
11
12
|
// https://tc39.github.io/ecma262/#sec-string.prototype.startswith
|
|
12
|
-
$({ target: 'String', proto: true, forced: !correctIsRegExpLogic(
|
|
13
|
+
$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('startsWith') }, {
|
|
13
14
|
startsWith: function startsWith(searchString /* , position = 0 */) {
|
|
14
|
-
var that =
|
|
15
|
-
|
|
15
|
+
var that = String(requireObjectCoercible(this));
|
|
16
|
+
notARegExp(searchString);
|
|
17
|
+
var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
|
|
16
18
|
var search = String(searchString);
|
|
17
19
|
return nativeStartsWith
|
|
18
20
|
? nativeStartsWith.call(that, search, index)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $trimEnd = require('../internals/string-trim').end;
|
|
4
4
|
var forcedStringTrimMethod = require('../internals/forced-string-trim-method');
|
|
5
5
|
|
|
6
6
|
var FORCED = forcedStringTrimMethod('trimEnd');
|
|
7
7
|
|
|
8
8
|
var trimEnd = FORCED ? function trimEnd() {
|
|
9
|
-
return
|
|
9
|
+
return $trimEnd(this);
|
|
10
10
|
} : ''.trimEnd;
|
|
11
11
|
|
|
12
12
|
// `String.prototype.{ trimEnd, trimRight }` methods
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $trimStart = require('../internals/string-trim').start;
|
|
4
4
|
var forcedStringTrimMethod = require('../internals/forced-string-trim-method');
|
|
5
5
|
|
|
6
6
|
var FORCED = forcedStringTrimMethod('trimStart');
|
|
7
7
|
|
|
8
8
|
var trimStart = FORCED ? function trimStart() {
|
|
9
|
-
return
|
|
9
|
+
return $trimStart(this);
|
|
10
10
|
} : ''.trimStart;
|
|
11
11
|
|
|
12
12
|
// `String.prototype.{ trimStart, trimLeft }` methods
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var $trim = require('../internals/string-trim').trim;
|
|
4
4
|
var forcedStringTrimMethod = require('../internals/forced-string-trim-method');
|
|
5
5
|
|
|
6
|
-
var FORCED = forcedStringTrimMethod('trim');
|
|
7
|
-
|
|
8
6
|
// `String.prototype.trim` method
|
|
9
7
|
// https://tc39.github.io/ecma262/#sec-string.prototype.trim
|
|
10
|
-
$({ target: 'String', proto: true, forced:
|
|
8
|
+
$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
|
|
11
9
|
trim: function trim() {
|
|
12
|
-
return
|
|
10
|
+
return $trim(this);
|
|
13
11
|
}
|
|
14
12
|
});
|