core-js 3.42.0 → 3.46.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/LICENSE +1 -1
- package/README.md +8 -8
- package/actual/array/from-async.js +2 -6
- package/actual/array/index.js +0 -2
- package/actual/async-disposable-stack/constructor.js +2 -6
- package/actual/async-disposable-stack/index.js +2 -6
- package/actual/async-iterator/async-dispose.js +1 -2
- package/actual/async-iterator/index.js +1 -2
- package/actual/disposable-stack/constructor.js +2 -5
- package/actual/disposable-stack/index.js +2 -5
- package/actual/error/is-error.js +2 -3
- package/actual/iterator/concat.js +21 -0
- package/actual/iterator/index.js +1 -0
- package/actual/map/get-or-insert-computed.js +6 -0
- package/actual/map/get-or-insert.js +6 -0
- package/actual/map/index.js +2 -0
- package/actual/math/index.js +0 -1
- package/actual/math/sum-precise.js +2 -3
- package/actual/suppressed-error.js +2 -4
- package/actual/symbol/async-dispose.js +2 -2
- package/actual/symbol/dispose.js +2 -2
- package/actual/typed-array/from-base64.js +3 -0
- package/actual/typed-array/from-hex.js +3 -0
- package/actual/typed-array/index.js +1 -1
- package/actual/typed-array/set-from-base64.js +3 -0
- package/actual/typed-array/set-from-hex.js +3 -0
- package/actual/typed-array/to-base64.js +3 -0
- package/actual/typed-array/to-hex.js +3 -0
- package/actual/weak-map/get-or-insert-computed.js +6 -0
- package/actual/weak-map/get-or-insert.js +6 -0
- package/actual/weak-map/index.js +2 -0
- package/es/array/from-async.js +9 -0
- package/es/array/index.js +2 -0
- package/es/async-disposable-stack/constructor.js +12 -0
- package/es/async-disposable-stack/index.js +12 -0
- package/es/async-iterator/async-dispose.js +4 -0
- package/es/async-iterator/index.js +4 -0
- package/es/disposable-stack/constructor.js +10 -0
- package/es/disposable-stack/index.js +10 -0
- package/es/error/index.js +1 -0
- package/es/error/is-error.js +6 -0
- package/es/index.js +16 -0
- package/es/iterator/dispose.js +2 -0
- package/es/iterator/flat-map.js +1 -0
- package/es/iterator/index.js +1 -0
- package/es/math/index.js +2 -0
- package/es/math/sum-precise.js +6 -0
- package/es/suppressed-error.js +7 -0
- package/es/symbol/async-dispose.js +5 -0
- package/es/symbol/dispose.js +5 -0
- package/es/symbol/index.js +2 -0
- package/es/typed-array/from-base64.js +2 -0
- package/es/typed-array/from-hex.js +2 -0
- package/es/typed-array/methods.js +6 -0
- package/es/typed-array/set-from-base64.js +2 -0
- package/es/typed-array/set-from-hex.js +2 -0
- package/es/typed-array/to-base64.js +2 -0
- package/es/typed-array/to-hex.js +2 -0
- package/features/instance/clamp.js +2 -0
- package/features/iterator/chunks.js +2 -0
- package/features/iterator/sliding.js +2 -0
- package/features/iterator/windows.js +2 -0
- package/features/iterator/zip-keyed.js +2 -0
- package/features/iterator/zip.js +2 -0
- package/features/number/clamp.js +2 -0
- package/features/number/virtual/clamp.js +2 -0
- package/full/index.js +22 -0
- package/full/instance/clamp.js +14 -0
- package/full/iterator/chunks.js +8 -0
- package/full/iterator/concat.js +5 -18
- package/full/iterator/from.js +3 -0
- package/full/iterator/index.js +5 -1
- package/full/iterator/range.js +19 -0
- package/full/iterator/sliding.js +8 -0
- package/full/iterator/windows.js +8 -0
- package/full/iterator/zip-keyed.js +27 -0
- package/full/iterator/zip.js +25 -0
- package/full/map/get-or-insert-computed.js +2 -4
- package/full/map/get-or-insert.js +2 -4
- package/full/math/clamp.js +1 -0
- package/full/math/index.js +1 -0
- package/full/number/clamp.js +5 -0
- package/full/number/index.js +1 -0
- package/full/number/virtual/clamp.js +5 -0
- package/full/weak-map/get-or-insert-computed.js +2 -4
- package/full/weak-map/get-or-insert.js +2 -4
- package/internals/array-to-reversed.js +2 -2
- package/internals/array-with.js +2 -2
- package/internals/async-iterator-iteration.js +6 -1
- package/internals/async-iterator-map.js +1 -1
- package/internals/error-stack-install.js +1 -0
- package/internals/flatten-into-array.js +1 -1
- package/internals/get-iterator-direct.js +1 -1
- package/internals/get-iterator-record.js +7 -0
- package/internals/get-mode-option.js +8 -0
- package/internals/install-error-cause.js +1 -1
- package/internals/iterate.js +1 -1
- package/internals/iterator-close-all.js +16 -0
- package/internals/iterator-create-proxy.js +11 -3
- package/internals/iterator-helper-throws-on-invalid-iterator.js +12 -0
- package/internals/iterator-window.js +50 -0
- package/internals/iterator-zip.js +100 -0
- package/internals/math-clamp.js +9 -0
- package/internals/regexp-flags-detection.js +47 -0
- package/internals/regexp-get-flags.js +8 -5
- package/internals/set-difference.js +2 -2
- package/internals/set-intersection.js +1 -1
- package/internals/set-is-disjoint-from.js +1 -1
- package/internals/set-is-subset-of.js +1 -1
- package/internals/set-is-superset-of.js +1 -1
- package/internals/set-method-get-keys-before-cloning-detection.js +30 -0
- package/internals/set-symmetric-difference.js +1 -1
- package/internals/set-union.js +1 -1
- package/internals/shared-store.js +3 -3
- package/internals/string-pad.js +0 -1
- package/internals/this-number-value.js +1 -1
- package/internals/uid.js +1 -1
- package/internals/uint8-from-base64.js +6 -5
- package/modules/es.array-buffer.transfer-to-fixed-length.js +1 -1
- package/modules/es.array-buffer.transfer.js +1 -1
- package/modules/es.array.from-async.js +22 -0
- package/modules/es.array.with.js +11 -1
- package/modules/es.async-disposable-stack.constructor.js +135 -0
- package/modules/es.async-iterator.async-dispose.js +26 -0
- package/modules/es.data-view.get-float16.js +1 -2
- package/modules/es.data-view.set-float16.js +6 -4
- package/modules/es.disposable-stack.constructor.js +114 -0
- package/modules/es.error.is-error.js +37 -0
- package/modules/es.escape.js +1 -1
- package/modules/es.iterator.dispose.js +17 -0
- package/modules/es.iterator.drop.js +7 -2
- package/modules/es.iterator.filter.js +7 -2
- package/modules/es.iterator.flat-map.js +8 -2
- package/modules/es.iterator.from.js +12 -1
- package/modules/es.iterator.map.js +7 -2
- package/modules/es.json.stringify.js +1 -1
- package/modules/es.math.sum-precise.js +151 -0
- package/modules/es.number.to-exponential.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.group-by.js +2 -1
- package/modules/es.promise.constructor.js +3 -0
- package/modules/es.regexp.flags.js +10 -50
- package/modules/es.set.difference.v2.js +25 -2
- package/modules/es.set.symmetric-difference.v2.js +4 -1
- package/modules/es.set.union.v2.js +4 -1
- package/modules/es.string.match.js +8 -2
- package/modules/es.string.replace.js +4 -2
- package/modules/es.suppressed-error.constructor.js +64 -0
- package/modules/es.symbol.async-dispose.js +21 -0
- package/modules/es.symbol.constructor.js +1 -1
- package/modules/es.symbol.dispose.js +21 -0
- package/modules/es.typed-array.with.js +12 -2
- package/modules/es.uint8-array.from-base64.js +29 -0
- package/modules/es.uint8-array.from-hex.js +13 -0
- package/modules/es.uint8-array.set-from-base64.js +37 -0
- package/modules/es.uint8-array.set-from-hex.js +19 -0
- package/modules/es.uint8-array.to-base64.js +60 -0
- package/modules/es.uint8-array.to-hex.js +34 -0
- package/modules/esnext.array.from-async.js +2 -21
- package/modules/esnext.array.last-index.js +1 -1
- package/modules/esnext.array.last-item.js +1 -1
- package/modules/esnext.async-disposable-stack.constructor.js +2 -134
- package/modules/esnext.async-iterator.async-dispose.js +2 -25
- package/modules/esnext.data-view.set-uint8-clamped.js +5 -3
- package/modules/esnext.disposable-stack.constructor.js +2 -113
- package/modules/esnext.error.is-error.js +2 -35
- package/modules/esnext.iterator.chunks.js +44 -0
- package/modules/esnext.iterator.concat.js +4 -5
- package/modules/esnext.iterator.dispose.js +2 -16
- package/modules/esnext.iterator.sliding.js +11 -0
- package/modules/esnext.iterator.windows.js +11 -0
- package/modules/esnext.iterator.zip-keyed.js +71 -0
- package/modules/esnext.iterator.zip.js +91 -0
- package/modules/esnext.map.get-or-insert-computed.js +2 -1
- package/modules/esnext.map.get-or-insert.js +2 -1
- package/modules/esnext.math.clamp.js +3 -14
- package/modules/esnext.math.sum-precise.js +2 -150
- package/modules/esnext.number.clamp.js +12 -0
- package/modules/esnext.number.from-string.js +1 -1
- package/modules/esnext.suppressed-error.constructor.js +2 -63
- package/modules/esnext.symbol.async-dispose.js +2 -20
- package/modules/esnext.symbol.dispose.js +2 -20
- package/modules/esnext.uint8-array.from-base64.js +2 -15
- package/modules/esnext.uint8-array.from-hex.js +2 -12
- package/modules/esnext.uint8-array.set-from-base64.js +2 -27
- package/modules/esnext.uint8-array.set-from-hex.js +2 -18
- package/modules/esnext.uint8-array.to-base64.js +2 -48
- package/modules/esnext.uint8-array.to-hex.js +2 -22
- package/modules/esnext.weak-map.get-or-insert-computed.js +13 -1
- package/modules/esnext.weak-map.get-or-insert.js +2 -1
- package/modules/web.structured-clone.js +1 -1
- package/modules/web.url.constructor.js +2 -1
- package/package.json +5 -1
- package/proposals/function-un-this.js +1 -1
- package/proposals/iterator-chunking-v2.js +4 -0
- package/proposals/iterator-chunking.js +5 -0
- package/proposals/joint-iteration.js +4 -0
- package/proposals/math-clamp-v2.js +3 -0
- package/proposals/math-clamp.js +1 -1
- package/proposals/string-cooked.js +1 -1
- package/stable/array/from-async.js +4 -0
- package/stable/async-disposable-stack/constructor.js +4 -0
- package/stable/async-disposable-stack/index.js +4 -0
- package/stable/async-iterator/async-dispose.js +2 -0
- package/stable/async-iterator/index.js +2 -0
- package/stable/disposable-stack/constructor.js +4 -0
- package/stable/disposable-stack/index.js +4 -0
- package/stable/error/is-error.js +4 -0
- package/stable/index.js +16 -0
- package/stable/iterator/dispose.js +4 -0
- package/stable/iterator/flat-map.js +1 -0
- package/stable/math/sum-precise.js +4 -0
- package/stable/suppressed-error.js +4 -0
- package/stable/symbol/async-dispose.js +4 -0
- package/stable/symbol/dispose.js +4 -0
- package/stable/typed-array/from-base64.js +4 -0
- package/stable/typed-array/from-hex.js +4 -0
- package/stable/typed-array/set-from-base64.js +4 -0
- package/stable/typed-array/set-from-hex.js +4 -0
- package/stable/typed-array/to-base64.js +4 -0
- package/stable/typed-array/to-hex.js +4 -0
- package/stage/1.js +2 -1
- package/stage/2.7.js +2 -2
- package/stage/2.js +1 -0
- package/stage/3.js +2 -5
- package/stage/4.js +5 -0
|
@@ -1,26 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
var defineBuiltIn = require('../internals/define-built-in');
|
|
5
|
-
var getBuiltIn = require('../internals/get-built-in');
|
|
6
|
-
var getMethod = require('../internals/get-method');
|
|
7
|
-
var hasOwn = require('../internals/has-own-property');
|
|
8
|
-
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
9
|
-
var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
|
|
10
|
-
|
|
11
|
-
var ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');
|
|
12
|
-
var Promise = getBuiltIn('Promise');
|
|
13
|
-
|
|
14
|
-
if (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {
|
|
15
|
-
defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {
|
|
16
|
-
var O = this;
|
|
17
|
-
return new Promise(function (resolve, reject) {
|
|
18
|
-
var $return = getMethod(O, 'return');
|
|
19
|
-
if ($return) {
|
|
20
|
-
Promise.resolve(call($return, O)).then(function () {
|
|
21
|
-
resolve(undefined);
|
|
22
|
-
}, reject);
|
|
23
|
-
} else resolve(undefined);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
}
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.async-iterator.async-dispose');
|
|
@@ -12,8 +12,10 @@ var setUint8 = uncurryThis(DataView.prototype.setUint8);
|
|
|
12
12
|
// https://github.com/tc39/proposal-dataview-get-set-uint8clamped
|
|
13
13
|
$({ target: 'DataView', proto: true, forced: true }, {
|
|
14
14
|
setUint8Clamped: function setUint8Clamped(byteOffset, value) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
setUint8(
|
|
16
|
+
aDataView(this),
|
|
17
|
+
toIndex(byteOffset),
|
|
18
|
+
toUint8Clamped(value)
|
|
19
|
+
);
|
|
18
20
|
}
|
|
19
21
|
});
|
|
@@ -1,114 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
var DESCRIPTORS = require('../internals/descriptors');
|
|
5
|
-
var getBuiltIn = require('../internals/get-built-in');
|
|
6
|
-
var aCallable = require('../internals/a-callable');
|
|
7
|
-
var anInstance = require('../internals/an-instance');
|
|
8
|
-
var defineBuiltIn = require('../internals/define-built-in');
|
|
9
|
-
var defineBuiltIns = require('../internals/define-built-ins');
|
|
10
|
-
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
11
|
-
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
12
|
-
var InternalStateModule = require('../internals/internal-state');
|
|
13
|
-
var addDisposableResource = require('../internals/add-disposable-resource');
|
|
14
|
-
|
|
15
|
-
var SuppressedError = getBuiltIn('SuppressedError');
|
|
16
|
-
var $ReferenceError = ReferenceError;
|
|
17
|
-
|
|
18
|
-
var DISPOSE = wellKnownSymbol('dispose');
|
|
19
|
-
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
20
|
-
|
|
21
|
-
var DISPOSABLE_STACK = 'DisposableStack';
|
|
22
|
-
var setInternalState = InternalStateModule.set;
|
|
23
|
-
var getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);
|
|
24
|
-
|
|
25
|
-
var HINT = 'sync-dispose';
|
|
26
|
-
var DISPOSED = 'disposed';
|
|
27
|
-
var PENDING = 'pending';
|
|
28
|
-
|
|
29
|
-
var getPendingDisposableStackInternalState = function (stack) {
|
|
30
|
-
var internalState = getDisposableStackInternalState(stack);
|
|
31
|
-
if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed');
|
|
32
|
-
return internalState;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
var $DisposableStack = function DisposableStack() {
|
|
36
|
-
setInternalState(anInstance(this, DisposableStackPrototype), {
|
|
37
|
-
type: DISPOSABLE_STACK,
|
|
38
|
-
state: PENDING,
|
|
39
|
-
stack: []
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
if (!DESCRIPTORS) this.disposed = false;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
var DisposableStackPrototype = $DisposableStack.prototype;
|
|
46
|
-
|
|
47
|
-
defineBuiltIns(DisposableStackPrototype, {
|
|
48
|
-
dispose: function dispose() {
|
|
49
|
-
var internalState = getDisposableStackInternalState(this);
|
|
50
|
-
if (internalState.state === DISPOSED) return;
|
|
51
|
-
internalState.state = DISPOSED;
|
|
52
|
-
if (!DESCRIPTORS) this.disposed = true;
|
|
53
|
-
var stack = internalState.stack;
|
|
54
|
-
var i = stack.length;
|
|
55
|
-
var thrown = false;
|
|
56
|
-
var suppressed;
|
|
57
|
-
while (i) {
|
|
58
|
-
var disposeMethod = stack[--i];
|
|
59
|
-
stack[i] = null;
|
|
60
|
-
try {
|
|
61
|
-
disposeMethod();
|
|
62
|
-
} catch (errorResult) {
|
|
63
|
-
if (thrown) {
|
|
64
|
-
suppressed = new SuppressedError(errorResult, suppressed);
|
|
65
|
-
} else {
|
|
66
|
-
thrown = true;
|
|
67
|
-
suppressed = errorResult;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
internalState.stack = null;
|
|
72
|
-
if (thrown) throw suppressed;
|
|
73
|
-
},
|
|
74
|
-
use: function use(value) {
|
|
75
|
-
addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);
|
|
76
|
-
return value;
|
|
77
|
-
},
|
|
78
|
-
adopt: function adopt(value, onDispose) {
|
|
79
|
-
var internalState = getPendingDisposableStackInternalState(this);
|
|
80
|
-
aCallable(onDispose);
|
|
81
|
-
addDisposableResource(internalState, undefined, HINT, function () {
|
|
82
|
-
onDispose(value);
|
|
83
|
-
});
|
|
84
|
-
return value;
|
|
85
|
-
},
|
|
86
|
-
defer: function defer(onDispose) {
|
|
87
|
-
var internalState = getPendingDisposableStackInternalState(this);
|
|
88
|
-
aCallable(onDispose);
|
|
89
|
-
addDisposableResource(internalState, undefined, HINT, onDispose);
|
|
90
|
-
},
|
|
91
|
-
move: function move() {
|
|
92
|
-
var internalState = getPendingDisposableStackInternalState(this);
|
|
93
|
-
var newDisposableStack = new $DisposableStack();
|
|
94
|
-
getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;
|
|
95
|
-
internalState.stack = [];
|
|
96
|
-
internalState.state = DISPOSED;
|
|
97
|
-
if (!DESCRIPTORS) this.disposed = true;
|
|
98
|
-
return newDisposableStack;
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
if (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {
|
|
103
|
-
configurable: true,
|
|
104
|
-
get: function disposed() {
|
|
105
|
-
return getDisposableStackInternalState(this).state === DISPOSED;
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
defineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });
|
|
110
|
-
defineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });
|
|
111
|
-
|
|
112
|
-
$({ global: true, constructor: true }, {
|
|
113
|
-
DisposableStack: $DisposableStack
|
|
114
|
-
});
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.disposable-stack.constructor');
|
|
@@ -1,36 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var isObject = require('../internals/is-object');
|
|
5
|
-
var classof = require('../internals/classof');
|
|
6
|
-
var fails = require('../internals/fails');
|
|
7
|
-
|
|
8
|
-
var ERROR = 'Error';
|
|
9
|
-
var DOM_EXCEPTION = 'DOMException';
|
|
10
|
-
// eslint-disable-next-line es/no-object-setprototypeof, no-proto -- safe
|
|
11
|
-
var PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || ({}).__proto__;
|
|
12
|
-
|
|
13
|
-
var DOMException = getBuiltIn(DOM_EXCEPTION);
|
|
14
|
-
var $Error = Error;
|
|
15
|
-
var $isError = $Error.isError;
|
|
16
|
-
|
|
17
|
-
var FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () {
|
|
18
|
-
// Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc.
|
|
19
|
-
// https://github.com/oven-sh/bun/issues/15821
|
|
20
|
-
return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) ||
|
|
21
|
-
// structuredClone-based implementations
|
|
22
|
-
// eslint-disable-next-line es/no-error-cause -- detection
|
|
23
|
-
!$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) ||
|
|
24
|
-
// instanceof-based and FF Error#stack-based implementations
|
|
25
|
-
$isError(getBuiltIn('Object', 'create')($Error.prototype));
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
// `Error.isError` method
|
|
29
|
-
// https://github.com/tc39/proposal-is-error
|
|
30
|
-
$({ target: 'Error', stat: true, sham: true, forced: FORCED }, {
|
|
31
|
-
isError: function isError(arg) {
|
|
32
|
-
if (!isObject(arg)) return false;
|
|
33
|
-
var tag = classof(arg);
|
|
34
|
-
return tag === ERROR || tag === DOM_EXCEPTION;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.error.is-error');
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var call = require('../internals/function-call');
|
|
5
|
+
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
8
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
9
|
+
|
|
10
|
+
var $RangeError = RangeError;
|
|
11
|
+
var push = uncurryThis([].push);
|
|
12
|
+
|
|
13
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
14
|
+
var iterator = this.iterator;
|
|
15
|
+
var next = this.next;
|
|
16
|
+
var chunkSize = this.chunkSize;
|
|
17
|
+
var buffer = [];
|
|
18
|
+
var result, done;
|
|
19
|
+
while (true) {
|
|
20
|
+
result = anObject(call(next, iterator));
|
|
21
|
+
done = !!result.done;
|
|
22
|
+
if (done) {
|
|
23
|
+
if (buffer.length) return buffer;
|
|
24
|
+
this.done = true;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
push(buffer, result.value);
|
|
28
|
+
if (buffer.length === chunkSize) return buffer;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// `Iterator.prototype.chunks` method
|
|
33
|
+
// https://github.com/tc39/proposal-iterator-chunking
|
|
34
|
+
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
35
|
+
chunks: function chunks(chunkSize) {
|
|
36
|
+
var O = anObject(this);
|
|
37
|
+
if (typeof chunkSize != 'number' || !chunkSize || chunkSize >>> 0 !== chunkSize) {
|
|
38
|
+
return iteratorClose(O, 'throw', new $RangeError('chunkSize must be integer in [1, 2^32-1]'));
|
|
39
|
+
}
|
|
40
|
+
return new IteratorProxy(getIteratorDirect(O), {
|
|
41
|
+
chunkSize: chunkSize
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
@@ -5,7 +5,6 @@ var aCallable = require('../internals/a-callable');
|
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
6
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
7
7
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
8
|
-
var createIterResultObject = require('../internals/create-iter-result-object');
|
|
9
8
|
|
|
10
9
|
var $Array = Array;
|
|
11
10
|
|
|
@@ -17,7 +16,7 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
17
16
|
var iterables = this.iterables;
|
|
18
17
|
if (iterableIndex >= iterables.length) {
|
|
19
18
|
this.done = true;
|
|
20
|
-
return
|
|
19
|
+
return;
|
|
21
20
|
}
|
|
22
21
|
var entry = iterables[iterableIndex];
|
|
23
22
|
this.iterables[iterableIndex] = null;
|
|
@@ -30,13 +29,13 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
30
29
|
this.next = null;
|
|
31
30
|
continue;
|
|
32
31
|
}
|
|
33
|
-
return result;
|
|
32
|
+
return result.value;
|
|
34
33
|
}
|
|
35
|
-
}
|
|
34
|
+
});
|
|
36
35
|
|
|
37
36
|
// `Iterator.concat` method
|
|
38
37
|
// https://github.com/tc39/proposal-iterator-sequencing
|
|
39
|
-
$({ target: 'Iterator', stat: true
|
|
38
|
+
$({ target: 'Iterator', stat: true }, {
|
|
40
39
|
concat: function concat() {
|
|
41
40
|
var length = arguments.length;
|
|
42
41
|
var iterables = $Array(length);
|
|
@@ -1,17 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
var defineBuiltIn = require('../internals/define-built-in');
|
|
5
|
-
var getMethod = require('../internals/get-method');
|
|
6
|
-
var hasOwn = require('../internals/has-own-property');
|
|
7
|
-
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
8
|
-
var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
|
|
9
|
-
|
|
10
|
-
var DISPOSE = wellKnownSymbol('dispose');
|
|
11
|
-
|
|
12
|
-
if (!hasOwn(IteratorPrototype, DISPOSE)) {
|
|
13
|
-
defineBuiltIn(IteratorPrototype, DISPOSE, function () {
|
|
14
|
-
var $return = getMethod(this, 'return');
|
|
15
|
-
if ($return) call($return, this);
|
|
16
|
-
});
|
|
17
|
-
}
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.iterator.dispose');
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var iteratorWindow = require('../internals/iterator-window');
|
|
4
|
+
|
|
5
|
+
// `Iterator.prototype.sliding` method
|
|
6
|
+
// https://github.com/tc39/proposal-iterator-chunking
|
|
7
|
+
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
8
|
+
sliding: function sliding(windowSize) {
|
|
9
|
+
return iteratorWindow(this, windowSize, 'allow-partial');
|
|
10
|
+
}
|
|
11
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var iteratorWindow = require('../internals/iterator-window');
|
|
4
|
+
|
|
5
|
+
// `Iterator.prototype.windows` method
|
|
6
|
+
// https://github.com/tc39/proposal-iterator-chunking
|
|
7
|
+
$({ target: 'Iterator', proto: true, real: true, forced: true }, {
|
|
8
|
+
windows: function windows(windowSize /* , undersized */) {
|
|
9
|
+
return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var anObjectOrUndefined = require('../internals/an-object-or-undefined');
|
|
5
|
+
var createProperty = require('../internals/create-property');
|
|
6
|
+
var call = require('../internals/function-call');
|
|
7
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
8
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
9
|
+
var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
|
|
10
|
+
var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
|
|
11
|
+
var getModeOption = require('../internals/get-mode-option');
|
|
12
|
+
var iteratorCloseAll = require('../internals/iterator-close-all');
|
|
13
|
+
var iteratorZip = require('../internals/iterator-zip');
|
|
14
|
+
|
|
15
|
+
var create = getBuiltIn('Object', 'create');
|
|
16
|
+
var ownKeys = getBuiltIn('Reflect', 'ownKeys');
|
|
17
|
+
var push = uncurryThis([].push);
|
|
18
|
+
var THROW = 'throw';
|
|
19
|
+
|
|
20
|
+
// `Iterator.zipKeyed` method
|
|
21
|
+
// https://github.com/tc39/proposal-joint-iteration
|
|
22
|
+
$({ target: 'Iterator', stat: true, forced: true }, {
|
|
23
|
+
zipKeyed: function zipKeyed(iterables /* , options */) {
|
|
24
|
+
anObject(iterables);
|
|
25
|
+
var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
|
|
26
|
+
var mode = getModeOption(options);
|
|
27
|
+
var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
|
|
28
|
+
|
|
29
|
+
var iters = [];
|
|
30
|
+
var padding = [];
|
|
31
|
+
var allKeys = ownKeys(iterables);
|
|
32
|
+
var keys = [];
|
|
33
|
+
var propertyIsEnumerable = propertyIsEnumerableModule.f;
|
|
34
|
+
var i, key, value;
|
|
35
|
+
for (i = 0; i < allKeys.length; i++) try {
|
|
36
|
+
key = allKeys[i];
|
|
37
|
+
if (!call(propertyIsEnumerable, iterables, key)) continue;
|
|
38
|
+
value = iterables[key];
|
|
39
|
+
if (value !== undefined) {
|
|
40
|
+
push(keys, key);
|
|
41
|
+
push(iters, getIteratorFlattenable(value, true));
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var iterCount = iters.length;
|
|
48
|
+
if (mode === 'longest') {
|
|
49
|
+
if (paddingOption === undefined) {
|
|
50
|
+
for (i = 0; i < iterCount; i++) push(padding, undefined);
|
|
51
|
+
} else {
|
|
52
|
+
for (i = 0; i < keys.length; i++) {
|
|
53
|
+
try {
|
|
54
|
+
value = paddingOption[keys[i]];
|
|
55
|
+
} catch (error) {
|
|
56
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
57
|
+
}
|
|
58
|
+
push(padding, value);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return iteratorZip(iters, mode, padding, function (results) {
|
|
64
|
+
var obj = create(null);
|
|
65
|
+
for (var j = 0; j < iterCount; j++) {
|
|
66
|
+
createProperty(obj, keys[j], results[j]);
|
|
67
|
+
}
|
|
68
|
+
return obj;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
});
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var anObjectOrUndefined = require('../internals/an-object-or-undefined');
|
|
5
|
+
var call = require('../internals/function-call');
|
|
6
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
7
|
+
var getIteratorRecord = require('../internals/get-iterator-record');
|
|
8
|
+
var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
|
|
9
|
+
var getModeOption = require('../internals/get-mode-option');
|
|
10
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
11
|
+
var iteratorCloseAll = require('../internals/iterator-close-all');
|
|
12
|
+
var iteratorZip = require('../internals/iterator-zip');
|
|
13
|
+
|
|
14
|
+
var concat = uncurryThis([].concat);
|
|
15
|
+
var push = uncurryThis([].push);
|
|
16
|
+
var THROW = 'throw';
|
|
17
|
+
|
|
18
|
+
// `Iterator.zip` method
|
|
19
|
+
// https://github.com/tc39/proposal-joint-iteration
|
|
20
|
+
$({ target: 'Iterator', stat: true, forced: true }, {
|
|
21
|
+
zip: function zip(iterables /* , options */) {
|
|
22
|
+
anObject(iterables);
|
|
23
|
+
var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
|
|
24
|
+
var mode = getModeOption(options);
|
|
25
|
+
var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
|
|
26
|
+
|
|
27
|
+
var iters = [];
|
|
28
|
+
var padding = [];
|
|
29
|
+
var inputIter = getIteratorRecord(iterables);
|
|
30
|
+
var iter, done, next;
|
|
31
|
+
while (!done) {
|
|
32
|
+
try {
|
|
33
|
+
next = anObject(call(inputIter.next, inputIter.iterator));
|
|
34
|
+
done = next.done;
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
37
|
+
}
|
|
38
|
+
if (!done) {
|
|
39
|
+
try {
|
|
40
|
+
iter = getIteratorFlattenable(next.value, true);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
return iteratorCloseAll(concat([inputIter.iterator], iters), THROW, error);
|
|
43
|
+
}
|
|
44
|
+
push(iters, iter);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
var iterCount = iters.length;
|
|
49
|
+
var i, paddingDone, paddingIter;
|
|
50
|
+
if (mode === 'longest') {
|
|
51
|
+
if (paddingOption === undefined) {
|
|
52
|
+
for (i = 0; i < iterCount; i++) push(padding, undefined);
|
|
53
|
+
} else {
|
|
54
|
+
try {
|
|
55
|
+
paddingIter = getIteratorRecord(paddingOption);
|
|
56
|
+
} catch (error) {
|
|
57
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
58
|
+
}
|
|
59
|
+
var usingIterator = true;
|
|
60
|
+
for (i = 0; i < iterCount; i++) {
|
|
61
|
+
if (usingIterator) {
|
|
62
|
+
try {
|
|
63
|
+
next = anObject(call(paddingIter.next, paddingIter.iterator));
|
|
64
|
+
paddingDone = next.done;
|
|
65
|
+
next = next.value;
|
|
66
|
+
} catch (error) {
|
|
67
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
68
|
+
}
|
|
69
|
+
if (paddingDone) {
|
|
70
|
+
usingIterator = false;
|
|
71
|
+
} else {
|
|
72
|
+
push(padding, next);
|
|
73
|
+
}
|
|
74
|
+
} else {
|
|
75
|
+
push(padding, undefined);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (usingIterator) {
|
|
80
|
+
try {
|
|
81
|
+
iteratorClose(paddingIter.iterator, 'normal');
|
|
82
|
+
} catch (error) {
|
|
83
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return iteratorZip(iters, mode, padding);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
@@ -3,6 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var aMap = require('../internals/a-map');
|
|
5
5
|
var MapHelpers = require('../internals/map-helpers');
|
|
6
|
+
var IS_PURE = require('../internals/is-pure');
|
|
6
7
|
|
|
7
8
|
var get = MapHelpers.get;
|
|
8
9
|
var has = MapHelpers.has;
|
|
@@ -10,7 +11,7 @@ var set = MapHelpers.set;
|
|
|
10
11
|
|
|
11
12
|
// `Map.prototype.getOrInsertComputed` method
|
|
12
13
|
// https://github.com/tc39/proposal-upsert
|
|
13
|
-
$({ target: 'Map', proto: true, real: true, forced:
|
|
14
|
+
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
14
15
|
getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {
|
|
15
16
|
aMap(this);
|
|
16
17
|
aCallable(callbackfn);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var aMap = require('../internals/a-map');
|
|
4
4
|
var MapHelpers = require('../internals/map-helpers');
|
|
5
|
+
var IS_PURE = require('../internals/is-pure');
|
|
5
6
|
|
|
6
7
|
var get = MapHelpers.get;
|
|
7
8
|
var has = MapHelpers.has;
|
|
@@ -9,7 +10,7 @@ var set = MapHelpers.set;
|
|
|
9
10
|
|
|
10
11
|
// `Map.prototype.getOrInsert` method
|
|
11
12
|
// https://github.com/tc39/proposal-upsert
|
|
12
|
-
$({ target: 'Map', proto: true, real: true, forced:
|
|
13
|
+
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
|
|
13
14
|
getOrInsert: function getOrInsert(key, value) {
|
|
14
15
|
if (has(aMap(this), key)) return get(this, key);
|
|
15
16
|
set(this, key, value);
|
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
4
|
-
var notANaN = require('../internals/not-a-nan');
|
|
5
|
-
var sameValue = require('../internals/same-value');
|
|
6
|
-
|
|
7
|
-
var $RangeError = RangeError;
|
|
8
|
-
var $min = Math.min;
|
|
9
|
-
var $max = Math.max;
|
|
3
|
+
var clamp = require('../internals/math-clamp');
|
|
10
4
|
|
|
5
|
+
// TODO: Remove from `core-js@4`
|
|
11
6
|
// `Math.clamp` method
|
|
12
7
|
// https://github.com/tc39/proposal-math-clamp
|
|
13
8
|
$({ target: 'Math', stat: true, forced: true }, {
|
|
14
|
-
clamp:
|
|
15
|
-
aNumber(value);
|
|
16
|
-
notANaN(aNumber(min));
|
|
17
|
-
notANaN(aNumber(max));
|
|
18
|
-
if ((sameValue(min, 0) && sameValue(max, -0)) || min > max) throw new $RangeError('`min` should be smaller than `max`');
|
|
19
|
-
return $min(max, $max(min, value));
|
|
20
|
-
}
|
|
9
|
+
clamp: clamp
|
|
21
10
|
});
|