core-js 3.10.1 → 3.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/features/index.js CHANGED
@@ -285,6 +285,7 @@ require('../modules/esnext.math.signbit');
285
285
  require('../modules/esnext.math.umulh');
286
286
  require('../modules/esnext.number.from-string');
287
287
  require('../modules/esnext.number.range');
288
+ require('../modules/esnext.object.has-own');
288
289
  require('../modules/esnext.object.iterate-entries');
289
290
  require('../modules/esnext.object.iterate-keys');
290
291
  require('../modules/esnext.object.iterate-values');
@@ -0,0 +1,4 @@
1
+ require('../../modules/esnext.object.has-own');
2
+ var path = require('../../internals/path');
3
+
4
+ module.exports = path.Object.hasOwn;
@@ -1,4 +1,5 @@
1
1
  var parent = require('../../es/object');
2
+ require('../../modules/esnext.object.has-own');
2
3
  require('../../modules/esnext.object.iterate-entries');
3
4
  require('../../modules/esnext.object.iterate-keys');
4
5
  require('../../modules/esnext.object.iterate-values');
@@ -81,9 +81,9 @@ var exportTypedArrayMethod = function (KEY, property, forced) {
81
81
  if (!DESCRIPTORS) return;
82
82
  if (forced) for (var ARRAY in TypedArrayConstructorsList) {
83
83
  var TypedArrayConstructor = global[ARRAY];
84
- if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {
84
+ if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) try {
85
85
  delete TypedArrayConstructor.prototype[KEY];
86
- }
86
+ } catch (error) { /* empty */ }
87
87
  }
88
88
  if (!TypedArrayPrototype[KEY] || forced) {
89
89
  redefine(TypedArrayPrototype, KEY, forced ? property
@@ -97,14 +97,14 @@ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
97
97
  if (setPrototypeOf) {
98
98
  if (forced) for (ARRAY in TypedArrayConstructorsList) {
99
99
  TypedArrayConstructor = global[ARRAY];
100
- if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {
100
+ if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) try {
101
101
  delete TypedArrayConstructor[KEY];
102
- }
102
+ } catch (error) { /* empty */ }
103
103
  }
104
104
  if (!TypedArray[KEY] || forced) {
105
105
  // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
106
106
  try {
107
- return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);
107
+ return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);
108
108
  } catch (error) { /* empty */ }
109
109
  } else return;
110
110
  }
@@ -0,0 +1 @@
1
+ module.exports = typeof window == 'object';
package/internals/has.js CHANGED
@@ -1,5 +1,7 @@
1
+ var toObject = require('../internals/to-object');
2
+
1
3
  var hasOwnProperty = {}.hasOwnProperty;
2
4
 
3
- module.exports = function (it, key) {
4
- return hasOwnProperty.call(it, key);
5
+ module.exports = function hasOwn(it, key) {
6
+ return hasOwnProperty.call(toObject(it), key);
5
7
  };
@@ -7,6 +7,7 @@ var shared = require('../internals/shared-store');
7
7
  var sharedKey = require('../internals/shared-key');
8
8
  var hiddenKeys = require('../internals/hidden-keys');
9
9
 
10
+ var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
10
11
  var WeakMap = global.WeakMap;
11
12
  var set, get, has;
12
13
 
@@ -29,6 +30,7 @@ if (NATIVE_WEAK_MAP) {
29
30
  var wmhas = store.has;
30
31
  var wmset = store.set;
31
32
  set = function (it, metadata) {
33
+ if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
32
34
  metadata.facade = it;
33
35
  wmset.call(store, it, metadata);
34
36
  return metadata;
@@ -43,6 +45,7 @@ if (NATIVE_WEAK_MAP) {
43
45
  var STATE = sharedKey('state');
44
46
  hiddenKeys[STATE] = true;
45
47
  set = function (it, metadata) {
48
+ if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
46
49
  metadata.facade = it;
47
50
  createNonEnumerableProperty(it, STATE, metadata);
48
51
  return metadata;
@@ -47,6 +47,8 @@ if (!queueMicrotask) {
47
47
  } else if (Promise && Promise.resolve) {
48
48
  // Promise.resolve without an argument throws an error in LG WebOS 2
49
49
  promise = Promise.resolve(undefined);
50
+ // workaround of WebKit ~ iOS Safari 10.1 bug
51
+ promise.constructor = Promise;
50
52
  then = promise.then;
51
53
  notify = function () {
52
54
  then.call(promise, flush);
@@ -19,7 +19,7 @@ var UPDATES_LAST_INDEX_WRONG = (function () {
19
19
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;
20
20
 
21
21
  // nonparticipating capturing group, copied from es5-shim's String#split patch.
22
- // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing
22
+ // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing
23
23
  var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
24
24
 
25
25
  var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;
@@ -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.10.1',
7
+ version: '3.11.2',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -6,6 +6,7 @@ var getBuiltIn = require('../internals/get-built-in');
6
6
  var NativePromise = require('../internals/native-promise-constructor');
7
7
  var redefine = require('../internals/redefine');
8
8
  var redefineAll = require('../internals/redefine-all');
9
+ var setPrototypeOf = require('../internals/object-set-prototype-of');
9
10
  var setToStringTag = require('../internals/set-to-string-tag');
10
11
  var setSpecies = require('../internals/set-species');
11
12
  var isObject = require('../internals/is-object');
@@ -24,6 +25,7 @@ var perform = require('../internals/perform');
24
25
  var InternalStateModule = require('../internals/internal-state');
25
26
  var isForced = require('../internals/is-forced');
26
27
  var wellKnownSymbol = require('../internals/well-known-symbol');
28
+ var IS_BROWSER = require('../internals/engine-is-browser');
27
29
  var IS_NODE = require('../internals/engine-is-node');
28
30
  var V8_VERSION = require('../internals/engine-v8-version');
29
31
 
@@ -32,11 +34,11 @@ var PROMISE = 'Promise';
32
34
  var getInternalState = InternalStateModule.get;
33
35
  var setInternalState = InternalStateModule.set;
34
36
  var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
37
+ var NativePromisePrototype = NativePromise && NativePromise.prototype;
35
38
  var PromiseConstructor = NativePromise;
36
39
  var TypeError = global.TypeError;
37
40
  var document = global.document;
38
41
  var process = global.process;
39
- var $fetch = getBuiltIn('fetch');
40
42
  var newPromiseCapability = newPromiseCapabilityModule.f;
41
43
  var newGenericPromiseCapability = newPromiseCapability;
42
44
  var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
@@ -48,18 +50,15 @@ var FULFILLED = 1;
48
50
  var REJECTED = 2;
49
51
  var HANDLED = 1;
50
52
  var UNHANDLED = 2;
53
+ var SUBCLASSING = false;
51
54
  var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
52
55
 
53
56
  var FORCED = isForced(PROMISE, function () {
54
57
  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);
55
- if (!GLOBAL_CORE_JS_PROMISE) {
56
- // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
57
- // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
58
- // We can't detect it synchronously, so just check versions
59
- if (V8_VERSION === 66) return true;
60
- // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
61
- if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;
62
- }
58
+ // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
59
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
60
+ // We can't detect it synchronously, so just check versions
61
+ if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;
63
62
  // We need Promise#finally in the pure version for preventing prototype pollution
64
63
  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;
65
64
  // We can't use @@species feature detection in V8 since it causes
@@ -67,13 +66,16 @@ var FORCED = isForced(PROMISE, function () {
67
66
  // https://github.com/zloirock/core-js/issues/679
68
67
  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;
69
68
  // Detect correctness of subclassing with @@species support
70
- var promise = PromiseConstructor.resolve(1);
69
+ var promise = new PromiseConstructor(function (resolve) { resolve(1); });
71
70
  var FakePromise = function (exec) {
72
71
  exec(function () { /* empty */ }, function () { /* empty */ });
73
72
  };
74
73
  var constructor = promise.constructor = {};
75
74
  constructor[SPECIES] = FakePromise;
76
- return !(promise.then(function () { /* empty */ }) instanceof FakePromise);
75
+ SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;
76
+ if (!SUBCLASSING) return true;
77
+ // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
78
+ return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;
77
79
  });
78
80
 
79
81
  var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
@@ -283,11 +285,11 @@ if (FORCED) {
283
285
  : newGenericPromiseCapability(C);
284
286
  };
285
287
 
286
- if (!IS_PURE && typeof NativePromise == 'function') {
287
- nativeThen = NativePromise.prototype.then;
288
+ if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {
289
+ nativeThen = NativePromisePrototype.then;
288
290
 
289
- // wrap native Promise#then for native async functions
290
- redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {
291
+ // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
292
+ if (!SUBCLASSING) redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
291
293
  var that = this;
292
294
  return new PromiseConstructor(function (resolve, reject) {
293
295
  nativeThen.call(that, resolve, reject);
@@ -295,13 +297,15 @@ if (FORCED) {
295
297
  // https://github.com/zloirock/core-js/issues/640
296
298
  }, { unsafe: true });
297
299
 
298
- // wrap fetch result
299
- if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {
300
- // eslint-disable-next-line no-unused-vars -- required for `.length`
301
- fetch: function fetch(input /* , init */) {
302
- return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));
303
- }
304
- });
300
+ // make `.constructor === Promise` work for native promise-based APIs
301
+ try {
302
+ delete NativePromisePrototype.constructor;
303
+ } catch (error) { /* empty */ }
304
+
305
+ // make `instanceof Promise` work for native promise-based APIs
306
+ if (setPrototypeOf) {
307
+ setPrototypeOf(NativePromisePrototype, PromiseConstructor.prototype);
308
+ }
305
309
  }
306
310
  }
307
311
 
@@ -9,7 +9,7 @@ var getFlags = require('../internals/regexp-flags');
9
9
  var stickyHelpers = require('../internals/regexp-sticky-helpers');
10
10
  var redefine = require('../internals/redefine');
11
11
  var fails = require('../internals/fails');
12
- var setInternalState = require('../internals/internal-state').set;
12
+ var enforceInternalState = require('../internals/internal-state').enforce;
13
13
  var setSpecies = require('../internals/set-species');
14
14
  var wellKnownSymbol = require('../internals/well-known-symbol');
15
15
 
@@ -61,7 +61,10 @@ if (FORCED) {
61
61
  RegExpWrapper
62
62
  );
63
63
 
64
- if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });
64
+ if (UNSUPPORTED_Y && sticky) {
65
+ var state = enforceInternalState(result);
66
+ state.sticky = true;
67
+ }
65
68
 
66
69
  return result;
67
70
  };
@@ -0,0 +1,8 @@
1
+ var $ = require('../internals/export');
2
+ var hasOwn = require('../internals/has');
3
+
4
+ // `Object.hasOwn` method
5
+ // https://github.com/tc39/proposal-accessible-object-hasownproperty
6
+ $({ target: 'Object', stat: true }, {
7
+ hasOwn: hasOwn
8
+ });
@@ -31,6 +31,7 @@ var INVALID_HOST = 'Invalid host';
31
31
  var INVALID_PORT = 'Invalid port';
32
32
 
33
33
  var ALPHA = /[A-Za-z]/;
34
+ // eslint-disable-next-line regexp/no-obscure-range -- safe
34
35
  var ALPHANUMERIC = /[\d+-.A-Za-z]/;
35
36
  var DIGIT = /\d/;
36
37
  var HEX_START = /^(0x|0X)/;
@@ -38,10 +39,10 @@ var OCT = /^[0-7]+$/;
38
39
  var DEC = /^\d+$/;
39
40
  var HEX = /^[\dA-Fa-f]+$/;
40
41
  /* eslint-disable no-control-regex -- safe */
41
- var FORBIDDEN_HOST_CODE_POINT = /[\u0000\t\u000A\u000D #%/:?@[\\]]/;
42
- var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\t\u000A\u000D #/:?@[\\]]/;
42
+ var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:?@[\\]]/;
43
+ var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:?@[\\]]/;
43
44
  var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g;
44
- var TAB_AND_NEW_LINE = /[\t\u000A\u000D]/g;
45
+ var TAB_AND_NEW_LINE = /[\t\n\r]/g;
45
46
  /* eslint-enable no-control-regex -- safe */
46
47
  var EOF;
47
48
 
@@ -800,7 +801,7 @@ var getOrigin = function () {
800
801
  var scheme = url.scheme;
801
802
  var port = url.port;
802
803
  if (scheme == 'blob') try {
803
- return new URL(scheme.path[0]).origin;
804
+ return new URLConstructor(scheme.path[0]).origin;
804
805
  } catch (error) {
805
806
  return 'null';
806
807
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js",
3
3
  "description": "Standard library",
4
- "version": "3.10.1",
4
+ "version": "3.11.2",
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": "dfa44ca9098d22d057f3a516940a0f5e35617830"
58
+ "gitHead": "040f7836ad467dae5a0b849b02442a3ed2607b18"
59
59
  }
@@ -0,0 +1,2 @@
1
+ // https://github.com/tc39/proposal-accessible-object-hasownproperty
2
+ require('../modules/esnext.object.has-own');
package/stage/2.js CHANGED
@@ -1,3 +1,4 @@
1
+ require('../proposals/accessible-object-hasownproperty');
1
2
  require('../proposals/array-find-from-last');
2
3
  require('../proposals/array-is-template-object');
3
4
  require('../proposals/iterator-helpers');