core-js 3.11.3 → 3.13.1

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
 
@@ -5,7 +5,6 @@ var iteratorClose = require('../internals/iterator-close');
5
5
  module.exports = function (iterator, fn, value, ENTRIES) {
6
6
  try {
7
7
  return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
8
- // 7.4.6 IteratorClose(iterator, completion)
9
8
  } catch (error) {
10
9
  iteratorClose(iterator);
11
10
  throw error;
@@ -70,8 +70,9 @@ module.exports = {
70
70
  };
71
71
 
72
72
  redefineAll(C.prototype, {
73
- // 23.1.3.1 Map.prototype.clear()
74
- // 23.2.3.2 Set.prototype.clear()
73
+ // `{ Map, Set }.prototype.clear()` methods
74
+ // https://tc39.es/ecma262/#sec-map.prototype.clear
75
+ // https://tc39.es/ecma262/#sec-set.prototype.clear
75
76
  clear: function clear() {
76
77
  var that = this;
77
78
  var state = getInternalState(that);
@@ -87,8 +88,9 @@ module.exports = {
87
88
  if (DESCRIPTORS) state.size = 0;
88
89
  else that.size = 0;
89
90
  },
90
- // 23.1.3.3 Map.prototype.delete(key)
91
- // 23.2.3.4 Set.prototype.delete(value)
91
+ // `{ Map, Set }.prototype.delete(key)` methods
92
+ // https://tc39.es/ecma262/#sec-map.prototype.delete
93
+ // https://tc39.es/ecma262/#sec-set.prototype.delete
92
94
  'delete': function (key) {
93
95
  var that = this;
94
96
  var state = getInternalState(that);
@@ -106,8 +108,9 @@ module.exports = {
106
108
  else that.size--;
107
109
  } return !!entry;
108
110
  },
109
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
110
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
111
+ // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods
112
+ // https://tc39.es/ecma262/#sec-map.prototype.foreach
113
+ // https://tc39.es/ecma262/#sec-set.prototype.foreach
111
114
  forEach: function forEach(callbackfn /* , that = undefined */) {
112
115
  var state = getInternalState(this);
113
116
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
@@ -118,25 +121,29 @@ module.exports = {
118
121
  while (entry && entry.removed) entry = entry.previous;
119
122
  }
120
123
  },
121
- // 23.1.3.7 Map.prototype.has(key)
122
- // 23.2.3.7 Set.prototype.has(value)
124
+ // `{ Map, Set}.prototype.has(key)` methods
125
+ // https://tc39.es/ecma262/#sec-map.prototype.has
126
+ // https://tc39.es/ecma262/#sec-set.prototype.has
123
127
  has: function has(key) {
124
128
  return !!getEntry(this, key);
125
129
  }
126
130
  });
127
131
 
128
132
  redefineAll(C.prototype, IS_MAP ? {
129
- // 23.1.3.6 Map.prototype.get(key)
133
+ // `Map.prototype.get(key)` method
134
+ // https://tc39.es/ecma262/#sec-map.prototype.get
130
135
  get: function get(key) {
131
136
  var entry = getEntry(this, key);
132
137
  return entry && entry.value;
133
138
  },
134
- // 23.1.3.9 Map.prototype.set(key, value)
139
+ // `Map.prototype.set(key, value)` method
140
+ // https://tc39.es/ecma262/#sec-map.prototype.set
135
141
  set: function set(key, value) {
136
142
  return define(this, key === 0 ? 0 : key, value);
137
143
  }
138
144
  } : {
139
- // 23.2.3.1 Set.prototype.add(value)
145
+ // `Set.prototype.add(value)` method
146
+ // https://tc39.es/ecma262/#sec-set.prototype.add
140
147
  add: function add(value) {
141
148
  return define(this, value = value === 0 ? 0 : value, value);
142
149
  }
@@ -152,8 +159,15 @@ module.exports = {
152
159
  var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';
153
160
  var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);
154
161
  var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);
155
- // add .keys, .values, .entries, [@@iterator]
156
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
162
+ // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods
163
+ // https://tc39.es/ecma262/#sec-map.prototype.entries
164
+ // https://tc39.es/ecma262/#sec-map.prototype.keys
165
+ // https://tc39.es/ecma262/#sec-map.prototype.values
166
+ // https://tc39.es/ecma262/#sec-map.prototype-@@iterator
167
+ // https://tc39.es/ecma262/#sec-set.prototype.entries
168
+ // https://tc39.es/ecma262/#sec-set.prototype.keys
169
+ // https://tc39.es/ecma262/#sec-set.prototype.values
170
+ // https://tc39.es/ecma262/#sec-set.prototype-@@iterator
157
171
  defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {
158
172
  setInternalState(this, {
159
173
  type: ITERATOR_NAME,
@@ -180,7 +194,9 @@ module.exports = {
180
194
  return { value: [entry.key, entry.value], done: false };
181
195
  }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
182
196
 
183
- // add [@@species], 23.1.2.2, 23.2.2.2
197
+ // `{ Map, Set }.prototype[@@species]` accessors
198
+ // https://tc39.es/ecma262/#sec-get-map-@@species
199
+ // https://tc39.es/ecma262/#sec-get-set-@@species
184
200
  setSpecies(CONSTRUCTOR_NAME);
185
201
  }
186
202
  };
@@ -75,8 +75,9 @@ module.exports = {
75
75
  };
76
76
 
77
77
  redefineAll(C.prototype, {
78
- // 23.3.3.2 WeakMap.prototype.delete(key)
79
- // 23.4.3.3 WeakSet.prototype.delete(value)
78
+ // `{ WeakMap, WeakSet }.prototype.delete(key)` methods
79
+ // https://tc39.es/ecma262/#sec-weakmap.prototype.delete
80
+ // https://tc39.es/ecma262/#sec-weakset.prototype.delete
80
81
  'delete': function (key) {
81
82
  var state = getInternalState(this);
82
83
  if (!isObject(key)) return false;
@@ -84,8 +85,9 @@ module.exports = {
84
85
  if (data === true) return uncaughtFrozenStore(state)['delete'](key);
85
86
  return data && $has(data, state.id) && delete data[state.id];
86
87
  },
87
- // 23.3.3.4 WeakMap.prototype.has(key)
88
- // 23.4.3.4 WeakSet.prototype.has(value)
88
+ // `{ WeakMap, WeakSet }.prototype.has(key)` methods
89
+ // https://tc39.es/ecma262/#sec-weakmap.prototype.has
90
+ // https://tc39.es/ecma262/#sec-weakset.prototype.has
89
91
  has: function has(key) {
90
92
  var state = getInternalState(this);
91
93
  if (!isObject(key)) return false;
@@ -96,7 +98,8 @@ module.exports = {
96
98
  });
97
99
 
98
100
  redefineAll(C.prototype, IS_MAP ? {
99
- // 23.3.3.3 WeakMap.prototype.get(key)
101
+ // `WeakMap.prototype.get(key)` method
102
+ // https://tc39.es/ecma262/#sec-weakmap.prototype.get
100
103
  get: function get(key) {
101
104
  var state = getInternalState(this);
102
105
  if (isObject(key)) {
@@ -105,12 +108,14 @@ module.exports = {
105
108
  return data ? data[state.id] : undefined;
106
109
  }
107
110
  },
108
- // 23.3.3.5 WeakMap.prototype.set(key, value)
111
+ // `WeakMap.prototype.set(key, value)` method
112
+ // https://tc39.es/ecma262/#sec-weakmap.prototype.set
109
113
  set: function set(key, value) {
110
114
  return define(this, key, value);
111
115
  }
112
116
  } : {
113
- // 23.4.3.1 WeakSet.prototype.add(value)
117
+ // `WeakSet.prototype.add(value)` method
118
+ // https://tc39.es/ecma262/#sec-weakset.prototype.add
114
119
  add: function add(value) {
115
120
  return define(this, value, true);
116
121
  }
@@ -2,7 +2,7 @@ var requireObjectCoercible = require('../internals/require-object-coercible');
2
2
 
3
3
  var quot = /"/g;
4
4
 
5
- // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
5
+ // `CreateHTML` abstract operation
6
6
  // https://tc39.es/ecma262/#sec-createhtml
7
7
  module.exports = function (string, tag, attribute, value) {
8
8
  var S = String(requireObjectCoercible(string));
@@ -2,6 +2,8 @@
2
2
  var anObject = require('../internals/an-object');
3
3
  var toPrimitive = require('../internals/to-primitive');
4
4
 
5
+ // `Date.prototype[@@toPrimitive](hint)` method implementation
6
+ // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
5
7
  module.exports = function (hint) {
6
8
  if (hint !== 'string' && hint !== 'number' && hint !== 'default') {
7
9
  throw TypeError('Incorrect hint');
@@ -60,7 +60,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I
60
60
  }
61
61
  }
62
62
 
63
- // fix Array#{values, @@iterator}.name in V8 / FF
63
+ // fix Array.prototype.{ values, @@iterator }.name in V8 / FF
64
64
  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
65
65
  INCORRECT_VALUES_NAME = true;
66
66
  defaultIterator = function values() { return nativeIterator.call(this); };
@@ -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) {
@@ -2,11 +2,13 @@
2
2
  // TODO: Remove from `core-js@4` since it's moved to entry points
3
3
  require('../modules/es.regexp.exec');
4
4
  var redefine = require('../internals/redefine');
5
+ var regexpExec = require('../internals/regexp-exec');
5
6
  var fails = require('../internals/fails');
6
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
7
8
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
8
9
 
9
10
  var SPECIES = wellKnownSymbol('species');
11
+ var RegExpPrototype = RegExp.prototype;
10
12
 
11
13
  var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
12
14
  // #replace needs built-in support for named groups.
@@ -94,7 +96,8 @@ module.exports = function (KEY, length, exec, sham) {
94
96
  ) {
95
97
  var nativeRegExpMethod = /./[SYMBOL];
96
98
  var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
97
- if (regexp.exec === RegExp.prototype.exec) {
99
+ var $exec = regexp.exec;
100
+ if ($exec === regexpExec || $exec === RegExpPrototype.exec) {
98
101
  if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
99
102
  // The native String method already delegates to @@method (this
100
103
  // polyfilled function), leasing to infinite recursion.
@@ -112,7 +115,7 @@ module.exports = function (KEY, length, exec, sham) {
112
115
  var regexMethod = methods[1];
113
116
 
114
117
  redefine(String.prototype, KEY, stringMethod);
115
- redefine(RegExp.prototype, SYMBOL, length == 2
118
+ redefine(RegExpPrototype, SYMBOL, length == 2
116
119
  // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
117
120
  // 21.2.5.11 RegExp.prototype[@@split](string, limit)
118
121
  ? function (string, arg) { return regexMethod.call(string, this, arg); }
@@ -122,5 +125,5 @@ module.exports = function (KEY, length, exec, sham) {
122
125
  );
123
126
  }
124
127
 
125
- if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
128
+ if (sham) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
126
129
  };
@@ -5,6 +5,7 @@ var replace = ''.replace;
5
5
  var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
6
6
  var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
7
7
 
8
+ // `GetSubstitution` abstract operation
8
9
  // https://tc39.es/ecma262/#sec-getsubstitution
9
10
  module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
10
11
  var tailPos = position + matched.length;
package/internals/has.js CHANGED
@@ -2,6 +2,6 @@ var toObject = require('../internals/to-object');
2
2
 
3
3
  var hasOwnProperty = {}.hasOwnProperty;
4
4
 
5
- module.exports = function hasOwn(it, key) {
5
+ module.exports = Object.hasOwn || function hasOwn(it, key) {
6
6
  return hasOwnProperty.call(toObject(it), key);
7
7
  };
@@ -2,7 +2,7 @@ var store = require('../internals/shared-store');
2
2
 
3
3
  var functionToString = Function.toString;
4
4
 
5
- // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
5
+ // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
6
6
  if (typeof store.inspectSource != 'function') {
7
7
  store.inspectSource = function (it) {
8
8
  return functionToString.call(it);
@@ -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;
@@ -34,7 +34,8 @@ var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function ()
34
34
 
35
35
  if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
36
36
 
37
- // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
37
+ // `%IteratorPrototype%[@@iterator]()` method
38
+ // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
38
39
  if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {
39
40
  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
40
41
  }
@@ -1,12 +1,13 @@
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 &&
9
- // Chrome 38 Symbol has incorrect toString conversion
7
+ var symbol = Symbol();
8
+ // Chrome 38 Symbol has incorrect toString conversion
9
+ // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
10
+ return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
10
11
  // 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);
12
+ !Symbol.sham && V8_VERSION && V8_VERSION < 41;
12
13
  });
@@ -12,7 +12,8 @@ var PromiseCapability = function (C) {
12
12
  this.reject = aFunction(reject);
13
13
  };
14
14
 
15
- // 25.4.1.5 NewPromiseCapability(C)
15
+ // `NewPromiseCapability` abstract operation
16
+ // https://tc39.es/ecma262/#sec-newpromisecapability
16
17
  module.exports.f = function (C) {
17
18
  return new PromiseCapability(C);
18
19
  };
@@ -2,9 +2,14 @@
2
2
  var IS_PURE = require('../internals/is-pure');
3
3
  var global = require('../internals/global');
4
4
  var fails = require('../internals/fails');
5
+ var userAgent = require('../internals/engine-user-agent');
5
6
 
6
7
  // Forced replacement object prototype accessors methods
7
8
  module.exports = IS_PURE || !fails(function () {
9
+ // This feature detection crashes old WebKit
10
+ // https://github.com/zloirock/core-js/issues/232
11
+ var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
12
+ if (webkit && +webkit[1] < 535) return;
8
13
  var key = Math.random();
9
14
  // In FF throws only define methods
10
15
  // eslint-disable-next-line no-undef, no-useless-call -- required for testing
@@ -1,4 +1,6 @@
1
1
  'use strict';
2
+ /* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
3
+ /* eslint-disable regexp/no-useless-quantifier -- testing */
2
4
  var regexpFlags = require('./regexp-flags');
3
5
  var stickyHelpers = require('./regexp-sticky-helpers');
4
6
  var shared = require('./shared');
@@ -19,7 +21,6 @@ var UPDATES_LAST_INDEX_WRONG = (function () {
19
21
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;
20
22
 
21
23
  // 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, regexp/no-lazy-ends -- testing
23
24
  var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
24
25
 
25
26
  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.11.3',
7
+ version: '3.13.1',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -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",
3
3
  "description": "Standard library",
4
- "version": "3.11.3",
4
+ "version": "3.13.1",
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": "bfe345ad3db933bdf1d5fd934c57959f83d30a91"
58
+ "gitHead": "a05c21cbf99ccb39b75746f3f65cbb91ef80d697"
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