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 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');
@@ -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');
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.symbol.matcher');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
+
4
+ module.exports = WrappedWellKnownSymbolModule.f('matcher');
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.symbol.metadata');
2
+ var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
+
4
+ module.exports = WrappedWellKnownSymbolModule.f('metadata');
@@ -1,3 +1,4 @@
1
+ // TODO: Remove from `core-js@4`
1
2
  require('../../modules/esnext.symbol.pattern-match');
2
3
  var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
3
4
 
@@ -8,7 +8,7 @@ var match, version;
8
8
 
9
9
  if (v8) {
10
10
  match = v8.split('.');
11
- version = match[0] + match[1];
11
+ version = match[0] < 4 ? 1 : match[0] + match[1];
12
12
  } else if (userAgent) {
13
13
  match = userAgent.match(/Edge\/(\d+)/);
14
14
  if (!match || match[1] >= 74) {
@@ -24,7 +24,7 @@ var getterFor = function (TYPE) {
24
24
  };
25
25
  };
26
26
 
27
- if (NATIVE_WEAK_MAP) {
27
+ if (NATIVE_WEAK_MAP || shared.state) {
28
28
  var store = shared.state || (shared.state = new WeakMap());
29
29
  var wmget = store.get;
30
30
  var wmhas = store.has;
@@ -1,12 +1,11 @@
1
- var IS_NODE = require('../internals/engine-is-node');
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
- // eslint-disable-next-line es/no-symbol -- required for testing
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
- (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41);
10
+ !Symbol.sham && V8_VERSION && V8_VERSION < 41;
12
11
  });
@@ -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.11.2',
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
- // patch native Promise.prototype for native async functions
34
- if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {
35
- redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);
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
  }
@@ -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 && !PromiseConstructor.prototype['finally']) return true;
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(PromiseConstructor.prototype, {
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
- // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
292
- if (!SUBCLASSING) redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
293
- var that = this;
294
- return new PromiseConstructor(function (resolve, reject) {
295
- nativeThen.call(that, resolve, reject);
296
- }).then(onFulfilled, onRejected);
297
- // https://github.com/zloirock/core-js/issues/640
298
- }, { unsafe: true });
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, PromiseConstructor.prototype);
314
+ setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);
308
315
  }
309
316
  }
310
317
  }
@@ -0,0 +1,5 @@
1
+ var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
2
+
3
+ // `Symbol.matcher` well-known symbol
4
+ // https://github.com/tc39/proposal-pattern-matching
5
+ defineWellKnownSymbol('matcher');
@@ -0,0 +1,5 @@
1
+ var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
2
+
3
+ // `Symbol.metadata` well-known symbol
4
+ // https://github.com/tc39/proposal-decorators
5
+ defineWellKnownSymbol('metadata');
@@ -1,3 +1,4 @@
1
+ // TODO: remove from `core-js@4`
1
2
  var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
2
3
 
3
4
  // `Symbol.patternMatch` well-known symbol
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js-pure",
3
3
  "description": "Standard library",
4
- "version": "3.11.2",
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": "040f7836ad467dae5a0b849b02442a3ed2607b18"
58
+ "gitHead": "f4307bc98ea7e1ca10b1c6e27847f9faad4a76d3"
59
59
  }
@@ -0,0 +1,2 @@
1
+ // https://github.com/tc39/proposal-decorators
2
+ require('../modules/esnext.symbol.metadata');
@@ -1 +1,4 @@
1
+ // https://github.com/tc39/proposal-pattern-matching
2
+ require('../modules/esnext.symbol.matcher');
3
+ // TODO: remove from `core-js@4`
1
4
  require('../modules/esnext.symbol.pattern-match');
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
@@ -1,3 +1,4 @@
1
+ require('../proposals/accessible-object-hasownproperty');
1
2
  require('../proposals/relative-indexing-method');
2
3
  var parent = require('./4');
3
4