core-js-pure 3.11.2 → 3.13.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/features/index.js +2 -0
- package/features/symbol/index.js +3 -0
- package/features/symbol/matcher.js +4 -0
- package/features/symbol/metadata.js +4 -0
- package/features/symbol/pattern-match.js +1 -0
- package/internals/engine-v8-version.js +1 -1
- package/internals/internal-state.js +1 -1
- package/internals/native-symbol.js +3 -4
- package/internals/shared.js +1 -1
- package/modules/es.promise.finally.js +6 -3
- package/modules/es.promise.js +18 -11
- package/modules/esnext.symbol.matcher.js +5 -0
- package/modules/esnext.symbol.metadata.js +5 -0
- package/modules/esnext.symbol.pattern-match.js +1 -0
- package/package.json +2 -2
- package/proposals/decorators.js +2 -0
- package/proposals/pattern-matching.js +3 -0
- package/stage/2.js +1 -1
- package/stage/3.js +1 -0
package/features/index.js
CHANGED
|
@@ -326,6 +326,8 @@ require('../modules/esnext.string.match-all');
|
|
|
326
326
|
require('../modules/esnext.string.replace-all');
|
|
327
327
|
require('../modules/esnext.symbol.async-dispose');
|
|
328
328
|
require('../modules/esnext.symbol.dispose');
|
|
329
|
+
require('../modules/esnext.symbol.matcher');
|
|
330
|
+
require('../modules/esnext.symbol.metadata');
|
|
329
331
|
require('../modules/esnext.symbol.observable');
|
|
330
332
|
require('../modules/esnext.symbol.pattern-match');
|
|
331
333
|
require('../modules/esnext.symbol.replace-all');
|
package/features/symbol/index.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
var parent = require('../../es/symbol');
|
|
2
2
|
require('../../modules/esnext.symbol.async-dispose');
|
|
3
3
|
require('../../modules/esnext.symbol.dispose');
|
|
4
|
+
require('../../modules/esnext.symbol.matcher');
|
|
5
|
+
require('../../modules/esnext.symbol.metadata');
|
|
4
6
|
require('../../modules/esnext.symbol.observable');
|
|
7
|
+
// TODO: Remove from `core-js@4`
|
|
5
8
|
require('../../modules/esnext.symbol.pattern-match');
|
|
6
9
|
// TODO: Remove from `core-js@4`
|
|
7
10
|
require('../../modules/esnext.symbol.replace-all');
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable es/no-symbol -- required for testing */
|
|
2
2
|
var V8_VERSION = require('../internals/engine-v8-version');
|
|
3
3
|
var fails = require('../internals/fails');
|
|
4
4
|
|
|
5
5
|
// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
|
|
6
6
|
module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
|
|
7
|
-
|
|
8
|
-
return !Symbol.sham &&
|
|
7
|
+
return !String(Symbol()) ||
|
|
9
8
|
// Chrome 38 Symbol has incorrect toString conversion
|
|
10
9
|
// Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
|
|
11
|
-
|
|
10
|
+
!Symbol.sham && V8_VERSION && V8_VERSION < 41;
|
|
12
11
|
});
|
package/internals/shared.js
CHANGED
|
@@ -4,7 +4,7 @@ var store = require('../internals/shared-store');
|
|
|
4
4
|
(module.exports = function (key, value) {
|
|
5
5
|
return store[key] || (store[key] = value !== undefined ? value : {});
|
|
6
6
|
})('versions', []).push({
|
|
7
|
-
version: '3.
|
|
7
|
+
version: '3.13.0',
|
|
8
8
|
mode: IS_PURE ? 'pure' : 'global',
|
|
9
9
|
copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
|
|
10
10
|
});
|
|
@@ -30,7 +30,10 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
|
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
//
|
|
34
|
-
if (!IS_PURE && typeof NativePromise == 'function'
|
|
35
|
-
|
|
33
|
+
// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
|
|
34
|
+
if (!IS_PURE && typeof NativePromise == 'function') {
|
|
35
|
+
var method = getBuiltIn('Promise').prototype['finally'];
|
|
36
|
+
if (NativePromise.prototype['finally'] !== method) {
|
|
37
|
+
redefine(NativePromise.prototype, 'finally', method, { unsafe: true });
|
|
38
|
+
}
|
|
36
39
|
}
|
package/modules/es.promise.js
CHANGED
|
@@ -36,6 +36,7 @@ var setInternalState = InternalStateModule.set;
|
|
|
36
36
|
var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
|
|
37
37
|
var NativePromisePrototype = NativePromise && NativePromise.prototype;
|
|
38
38
|
var PromiseConstructor = NativePromise;
|
|
39
|
+
var PromiseConstructorPrototype = NativePromisePrototype;
|
|
39
40
|
var TypeError = global.TypeError;
|
|
40
41
|
var document = global.document;
|
|
41
42
|
var process = global.process;
|
|
@@ -60,7 +61,7 @@ var FORCED = isForced(PROMISE, function () {
|
|
|
60
61
|
// We can't detect it synchronously, so just check versions
|
|
61
62
|
if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;
|
|
62
63
|
// We need Promise#finally in the pure version for preventing prototype pollution
|
|
63
|
-
if (IS_PURE && !
|
|
64
|
+
if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;
|
|
64
65
|
// We can't use @@species feature detection in V8 since it causes
|
|
65
66
|
// deoptimization and performance degradation
|
|
66
67
|
// https://github.com/zloirock/core-js/issues/679
|
|
@@ -239,6 +240,7 @@ if (FORCED) {
|
|
|
239
240
|
internalReject(state, error);
|
|
240
241
|
}
|
|
241
242
|
};
|
|
243
|
+
PromiseConstructorPrototype = PromiseConstructor.prototype;
|
|
242
244
|
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
243
245
|
Internal = function Promise(executor) {
|
|
244
246
|
setInternalState(this, {
|
|
@@ -252,7 +254,7 @@ if (FORCED) {
|
|
|
252
254
|
value: undefined
|
|
253
255
|
});
|
|
254
256
|
};
|
|
255
|
-
Internal.prototype = redefineAll(
|
|
257
|
+
Internal.prototype = redefineAll(PromiseConstructorPrototype, {
|
|
256
258
|
// `Promise.prototype.then` method
|
|
257
259
|
// https://tc39.es/ecma262/#sec-promise.prototype.then
|
|
258
260
|
then: function then(onFulfilled, onRejected) {
|
|
@@ -288,14 +290,19 @@ if (FORCED) {
|
|
|
288
290
|
if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {
|
|
289
291
|
nativeThen = NativePromisePrototype.then;
|
|
290
292
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
293
|
+
if (!SUBCLASSING) {
|
|
294
|
+
// make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
|
|
295
|
+
redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
|
|
296
|
+
var that = this;
|
|
297
|
+
return new PromiseConstructor(function (resolve, reject) {
|
|
298
|
+
nativeThen.call(that, resolve, reject);
|
|
299
|
+
}).then(onFulfilled, onRejected);
|
|
300
|
+
// https://github.com/zloirock/core-js/issues/640
|
|
301
|
+
}, { unsafe: true });
|
|
302
|
+
|
|
303
|
+
// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`
|
|
304
|
+
redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });
|
|
305
|
+
}
|
|
299
306
|
|
|
300
307
|
// make `.constructor === Promise` work for native promise-based APIs
|
|
301
308
|
try {
|
|
@@ -304,7 +311,7 @@ if (FORCED) {
|
|
|
304
311
|
|
|
305
312
|
// make `instanceof Promise` work for native promise-based APIs
|
|
306
313
|
if (setPrototypeOf) {
|
|
307
|
-
setPrototypeOf(NativePromisePrototype,
|
|
314
|
+
setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);
|
|
308
315
|
}
|
|
309
316
|
}
|
|
310
317
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "core-js-pure",
|
|
3
3
|
"description": "Standard library",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.13.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/zloirock/core-js.git",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"scripts": {
|
|
56
56
|
"postinstall": "node -e \"try{require('./postinstall')}catch(e){}\""
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "f4307bc98ea7e1ca10b1c6e27847f9faad4a76d3"
|
|
59
59
|
}
|
package/stage/2.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
require('../proposals/accessible-object-hasownproperty');
|
|
2
1
|
require('../proposals/array-find-from-last');
|
|
3
2
|
require('../proposals/array-is-template-object');
|
|
3
|
+
require('../proposals/decorators');
|
|
4
4
|
require('../proposals/iterator-helpers');
|
|
5
5
|
require('../proposals/map-upsert');
|
|
6
6
|
require('../proposals/set-methods');
|
package/stage/3.js
CHANGED