core-js 3.0.0 → 3.1.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.
Files changed (110) hide show
  1. package/README.md +7 -5
  2. package/es/index.js +2 -0
  3. package/es/instance/match-all.js +8 -0
  4. package/es/number/max-safe-integer.js +1 -1
  5. package/es/number/min-safe-integer.js +1 -1
  6. package/es/string/index.js +1 -0
  7. package/es/string/match-all.js +3 -0
  8. package/es/string/virtual/index.js +1 -0
  9. package/es/string/virtual/match-all.js +3 -0
  10. package/es/symbol/index.js +1 -0
  11. package/es/symbol/match-all.js +4 -0
  12. package/features/array/flat-map.js +1 -1
  13. package/features/array/flat.js +1 -1
  14. package/features/index.js +1 -1
  15. package/features/instance/match-all.js +1 -8
  16. package/features/object/index.js +1 -1
  17. package/features/string/index.js +1 -0
  18. package/features/string/match-all.js +2 -1
  19. package/features/string/virtual/index.js +1 -0
  20. package/features/string/virtual/match-all.js +2 -1
  21. package/features/symbol/index.js +1 -0
  22. package/features/symbol/match-all.js +1 -0
  23. package/features/symbol/replace-all.js +3 -0
  24. package/internals/array-buffer-view-core.js +1 -1
  25. package/internals/array-buffer.js +3 -3
  26. package/internals/call-with-safe-iteration-closing.js +2 -2
  27. package/internals/check-correctness-of-iteration.js +2 -2
  28. package/internals/classof.js +1 -1
  29. package/internals/fails.js +1 -1
  30. package/internals/flatten-into-array.js +1 -1
  31. package/internals/forced-object-prototype-accessors-methods.js +6 -2
  32. package/internals/forced-string-trim-method.js +1 -1
  33. package/internals/global.js +12 -3
  34. package/internals/hide.js +2 -1
  35. package/internals/ie8-dom-define.js +6 -2
  36. package/internals/internal-metadata.js +2 -1
  37. package/internals/microtask.js +3 -3
  38. package/internals/native-symbol.js +5 -3
  39. package/internals/native-url.js +2 -1
  40. package/internals/object-assign.js +7 -2
  41. package/internals/object-create.js +2 -1
  42. package/internals/object-define-property.js +1 -1
  43. package/internals/object-get-own-property-descriptor.js +1 -1
  44. package/internals/object-get-own-property-names-external.js +1 -1
  45. package/internals/object-set-prototype-of.js +2 -2
  46. package/internals/object-to-array.js +8 -3
  47. package/internals/parse-int.js +1 -1
  48. package/internals/perform.js +3 -3
  49. package/internals/punycode-to-ascii.js +3 -3
  50. package/internals/redefine.js +2 -1
  51. package/internals/set-global.js +1 -1
  52. package/internals/shared.js +3 -2
  53. package/internals/sloppy-array-method.js +2 -2
  54. package/internals/string-at.js +3 -3
  55. package/internals/task.js +21 -11
  56. package/internals/to-length.js +1 -1
  57. package/internals/typed-array-constructor.js +1 -1
  58. package/internals/webkit-string-pad-bug.js +5 -0
  59. package/internals/whitespaces.js +1 -1
  60. package/modules/es.array.concat.js +1 -1
  61. package/modules/es.array.splice.js +1 -1
  62. package/modules/es.function.name.js +1 -1
  63. package/modules/es.math.imul.js +2 -2
  64. package/modules/es.number.is-safe-integer.js +1 -1
  65. package/modules/es.number.max-safe-integer.js +1 -1
  66. package/modules/es.number.min-safe-integer.js +1 -1
  67. package/modules/es.object.get-own-property-names.js +1 -1
  68. package/modules/es.promise.js +15 -13
  69. package/modules/es.reflect.define-property.js +1 -1
  70. package/modules/es.reflect.prevent-extensions.js +1 -1
  71. package/modules/es.reflect.set-prototype-of.js +1 -1
  72. package/modules/es.regexp.to-string.js +5 -3
  73. package/modules/es.string.from-code-point.js +2 -2
  74. package/modules/es.string.match-all.js +91 -0
  75. package/modules/es.string.pad-end.js +1 -4
  76. package/modules/es.string.pad-start.js +1 -4
  77. package/modules/es.string.replace.js +2 -2
  78. package/modules/es.string.split.js +1 -1
  79. package/modules/es.symbol.js +11 -1
  80. package/modules/es.symbol.match-all.js +2 -0
  81. package/modules/esnext.math.imulh.js +1 -1
  82. package/modules/esnext.math.umulh.js +1 -1
  83. package/modules/esnext.number.from-string.js +1 -1
  84. package/modules/esnext.observable.js +12 -12
  85. package/modules/esnext.promise.all-settled.js +4 -2
  86. package/modules/esnext.promise.any.js +4 -2
  87. package/modules/esnext.promise.try.js +8 -6
  88. package/modules/esnext.string.match-all.js +3 -87
  89. package/modules/esnext.string.replace-all.js +37 -8
  90. package/modules/esnext.symbol.replace-all.js +3 -0
  91. package/modules/web.dom-collections.for-each.js +1 -1
  92. package/modules/web.dom-collections.iterator.js +2 -2
  93. package/modules/web.url-search-params.js +19 -1
  94. package/modules/web.url.js +32 -36
  95. package/package.json +5 -2
  96. package/proposals/string-match-all.js +3 -0
  97. package/proposals/string-replace-all.js +1 -0
  98. package/scripts/postinstall.js +12 -0
  99. package/stable/array/flat-map.js +1 -1
  100. package/stable/array/flat.js +1 -1
  101. package/stable/instance/match-all.js +1 -0
  102. package/stable/object/index.js +1 -1
  103. package/stable/string/match-all.js +1 -0
  104. package/stable/string/virtual/match-all.js +1 -0
  105. package/stable/symbol/match-all.js +1 -0
  106. package/stage/0.js +0 -1
  107. package/stage/1.js +1 -1
  108. package/stage/2.js +1 -1
  109. package/stage/3.js +1 -1
  110. package/stage/4.js +2 -0
@@ -27,8 +27,8 @@ var cleanupSubscription = function (subscriptionState) {
27
27
  subscriptionState.cleanup = undefined;
28
28
  try {
29
29
  cleanup();
30
- } catch (e) {
31
- hostReportErrors(e);
30
+ } catch (error) {
31
+ hostReportErrors(error);
32
32
  }
33
33
  }
34
34
  };
@@ -55,8 +55,8 @@ var Subscription = function (observer, subscriber) {
55
55
  if (!DESCRIPTORS) this.closed = false;
56
56
  try {
57
57
  if (start = getMethod(observer.start)) start.call(observer, this);
58
- } catch (e) {
59
- hostReportErrors(e);
58
+ } catch (error) {
59
+ hostReportErrors(error);
60
60
  }
61
61
  if (subscriptionClosed(subscriptionState)) return;
62
62
  var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(this);
@@ -66,8 +66,8 @@ var Subscription = function (observer, subscriber) {
66
66
  if (cleanup != null) subscriptionState.cleanup = typeof cleanup.unsubscribe === 'function'
67
67
  ? function () { subscription.unsubscribe(); }
68
68
  : aFunction(cleanup);
69
- } catch (e) {
70
- subscriptionObserver.error(e);
69
+ } catch (error) {
70
+ subscriptionObserver.error(error);
71
71
  return;
72
72
  } if (subscriptionClosed(subscriptionState)) cleanupSubscription(subscriptionState);
73
73
  };
@@ -102,8 +102,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
102
102
  try {
103
103
  var m = getMethod(observer.next);
104
104
  if (m) m.call(observer, value);
105
- } catch (e) {
106
- hostReportErrors(e);
105
+ } catch (error) {
106
+ hostReportErrors(error);
107
107
  }
108
108
  }
109
109
  },
@@ -117,8 +117,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
117
117
  var m = getMethod(observer.error);
118
118
  if (m) m.call(observer, value);
119
119
  else hostReportErrors(value);
120
- } catch (e) {
121
- hostReportErrors(e);
120
+ } catch (err) {
121
+ hostReportErrors(err);
122
122
  } cleanupSubscription(subscriptionState);
123
123
  }
124
124
  },
@@ -131,8 +131,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
131
131
  try {
132
132
  var m = getMethod(observer.complete);
133
133
  if (m) m.call(observer);
134
- } catch (e) {
135
- hostReportErrors(e);
134
+ } catch (error) {
135
+ hostReportErrors(error);
136
136
  } cleanupSubscription(subscriptionState);
137
137
  }
138
138
  }
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // `Promise.allSettled` method
3
3
  // https://github.com/tc39/proposal-promise-allSettled
4
+ var aFunction = require('../internals/a-function');
4
5
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
5
6
  var perform = require('../internals/perform');
6
7
  var iterate = require('../internals/iterate');
@@ -12,6 +13,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
12
13
  var resolve = capability.resolve;
13
14
  var reject = capability.reject;
14
15
  var result = perform(function () {
16
+ var promiseResolve = aFunction(C.resolve);
15
17
  var values = [];
16
18
  var counter = 0;
17
19
  var remaining = 1;
@@ -20,7 +22,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
20
22
  var alreadyCalled = false;
21
23
  values.push(undefined);
22
24
  remaining++;
23
- C.resolve(promise).then(function (value) {
25
+ promiseResolve.call(C, promise).then(function (value) {
24
26
  if (alreadyCalled) return;
25
27
  alreadyCalled = true;
26
28
  values[index] = { status: 'fulfilled', value: value };
@@ -34,7 +36,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
34
36
  });
35
37
  --remaining || resolve(values);
36
38
  });
37
- if (result.e) reject(result.v);
39
+ if (result.error) reject(result.value);
38
40
  return capability.promise;
39
41
  }
40
42
  });
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // `Promise.any` method
3
3
  // https://github.com/tc39/proposal-promise-any
4
+ var aFunction = require('../internals/a-function');
4
5
  var getBuiltIn = require('../internals/get-built-in');
5
6
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
6
7
  var perform = require('../internals/perform');
@@ -14,6 +15,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
14
15
  var resolve = capability.resolve;
15
16
  var reject = capability.reject;
16
17
  var result = perform(function () {
18
+ var promiseResolve = aFunction(C.resolve);
17
19
  var errors = [];
18
20
  var counter = 0;
19
21
  var remaining = 1;
@@ -23,7 +25,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
23
25
  var alreadyRejected = false;
24
26
  errors.push(undefined);
25
27
  remaining++;
26
- C.resolve(promise).then(function (value) {
28
+ promiseResolve.call(C, promise).then(function (value) {
27
29
  if (alreadyRejected || alreadyResolved) return;
28
30
  alreadyResolved = true;
29
31
  resolve(value);
@@ -36,7 +38,7 @@ require('../internals/export')({ target: 'Promise', stat: true }, {
36
38
  });
37
39
  --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
38
40
  });
39
- if (result.e) reject(result.v);
41
+ if (result.error) reject(result.value);
40
42
  return capability.promise;
41
43
  }
42
44
  });
@@ -4,9 +4,11 @@
4
4
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
5
5
  var perform = require('../internals/perform');
6
6
 
7
- require('../internals/export')({ target: 'Promise', stat: true }, { 'try': function (callbackfn) {
8
- var promiseCapability = newPromiseCapabilityModule.f(this);
9
- var result = perform(callbackfn);
10
- (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
11
- return promiseCapability.promise;
12
- } });
7
+ require('../internals/export')({ target: 'Promise', stat: true }, {
8
+ 'try': function (callbackfn) {
9
+ var promiseCapability = newPromiseCapabilityModule.f(this);
10
+ var result = perform(callbackfn);
11
+ (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);
12
+ return promiseCapability.promise;
13
+ }
14
+ });
@@ -1,87 +1,3 @@
1
- 'use strict';
2
- var createIteratorConstructor = require('../internals/create-iterator-constructor');
3
- var requireObjectCoercible = require('../internals/require-object-coercible');
4
- var toLength = require('../internals/to-length');
5
- var aFunction = require('../internals/a-function');
6
- var anObject = require('../internals/an-object');
7
- var classof = require('../internals/classof');
8
- var getFlags = require('../internals/regexp-flags');
9
- var hide = require('../internals/hide');
10
- var speciesConstructor = require('../internals/species-constructor');
11
- var advanceStringIndex = require('../internals/advance-string-index');
12
- var MATCH_ALL = require('../internals/well-known-symbol')('matchAll');
13
- var IS_PURE = require('../internals/is-pure');
14
- var REGEXP_STRING = 'RegExp String';
15
- var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
16
- var InternalStateModule = require('../internals/internal-state');
17
- var setInternalState = InternalStateModule.set;
18
- var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
19
- var RegExpPrototype = RegExp.prototype;
20
- var regExpBuiltinExec = RegExpPrototype.exec;
21
-
22
- var regExpExec = function (R, S) {
23
- var exec = R.exec;
24
- var result;
25
- if (typeof exec == 'function') {
26
- result = exec.call(R, S);
27
- if (typeof result != 'object') throw TypeError('Incorrect exec result');
28
- return result;
29
- } return regExpBuiltinExec.call(R, S);
30
- };
31
-
32
- // eslint-disable-next-line max-len
33
- var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {
34
- setInternalState(this, {
35
- type: REGEXP_STRING_ITERATOR,
36
- regexp: regexp,
37
- string: string,
38
- global: global,
39
- unicode: fullUnicode,
40
- done: false
41
- });
42
- }, REGEXP_STRING, function next() {
43
- var state = getInternalState(this);
44
- if (state.done) return { value: undefined, done: true };
45
- var R = state.regexp;
46
- var S = state.string;
47
- var match = regExpExec(R, S);
48
- if (match === null) return { value: undefined, done: state.done = true };
49
- if (state.global) {
50
- if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);
51
- return { value: match, done: false };
52
- }
53
- state.done = true;
54
- return { value: match, done: false };
55
- });
56
-
57
- var $matchAll = function (string) {
58
- var R = anObject(this);
59
- var S = String(string);
60
- var C, flags, matcher, global, fullUnicode;
61
- C = speciesConstructor(R, RegExp);
62
- flags = 'flags' in RegExpPrototype ? String(R.flags) : getFlags.call(R);
63
- matcher = new C(C === RegExp ? R.source : R, flags);
64
- global = !!~flags.indexOf('g');
65
- fullUnicode = !!~flags.indexOf('u');
66
- matcher.lastIndex = toLength(R.lastIndex);
67
- return new $RegExpStringIterator(matcher, S, global, fullUnicode);
68
- };
69
-
70
- // `String.prototype.matchAll` method
71
- // https://github.com/tc39/proposal-string-matchall
72
- require('../internals/export')({ target: 'String', proto: true }, {
73
- matchAll: function matchAll(regexp) {
74
- var O = requireObjectCoercible(this);
75
- var S, matcher, rx;
76
- if (regexp != null) {
77
- matcher = regexp[MATCH_ALL];
78
- if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
79
- if (matcher != null) return aFunction(matcher).call(regexp, O);
80
- }
81
- S = String(O);
82
- rx = new RegExp(regexp, 'g');
83
- return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);
84
- }
85
- });
86
-
87
- IS_PURE || MATCH_ALL in RegExpPrototype || hide(RegExpPrototype, MATCH_ALL, $matchAll);
1
+ // TODO: Remove from `core-js@4`
2
+ require('./es.symbol.match-all');
3
+ require('./es.string.match-all');
@@ -1,21 +1,50 @@
1
1
  'use strict';
2
+ var hide = require('../internals/hide');
2
3
  var requireObjectCoercible = require('../internals/require-object-coercible');
4
+ var anObject = require('../internals/an-object');
3
5
  var isRegExp = require('../internals/is-regexp');
4
6
  var getRegExpFlags = require('../internals/regexp-flags');
5
- var ESCAPE_REGEXP = /[\\^$*+?.()|[\]{}]/g;
7
+ var speciesConstructor = require('../internals/species-constructor');
8
+ var REPLACE_ALL = require('../internals/well-known-symbol')('replaceAll');
9
+ var IS_PURE = require('../internals/is-pure');
10
+ var RegExpPrototype = RegExp.prototype;
11
+
12
+ var $replaceAll = function (string, replaceValue) {
13
+ var rx = anObject(this);
14
+ var flags = String('flags' in RegExpPrototype ? rx.flags : getRegExpFlags.call(rx));
15
+ if (!~flags.indexOf('g')) {
16
+ rx = new (speciesConstructor(rx, RegExp))(rx.source, flags + 'g');
17
+ }
18
+ return String(string).replace(rx, replaceValue);
19
+ };
6
20
 
7
21
  // `String.prototype.replaceAll` method
8
22
  // https://github.com/tc39/proposal-string-replace-all
9
23
  require('../internals/export')({ target: 'String', proto: true }, {
10
24
  replaceAll: function replaceAll(searchValue, replaceValue) {
11
25
  var O = requireObjectCoercible(this);
12
- var search, flags;
13
- if (isRegExp(searchValue)) {
14
- flags = getRegExpFlags.call(searchValue);
15
- search = new RegExp(searchValue.source, ~flags.indexOf('g') ? flags : flags + 'g');
16
- } else {
17
- search = new RegExp(String(searchValue).replace(ESCAPE_REGEXP, '\\$&'), 'g');
26
+ var replacer, string, searchString, template, result, i;
27
+ if (searchValue != null) {
28
+ replacer = searchValue[REPLACE_ALL];
29
+ if (replacer !== undefined) {
30
+ return replacer.call(searchValue, O, replaceValue);
31
+ } else if (IS_PURE && isRegExp(searchValue)) {
32
+ return $replaceAll.call(searchValue, O, replaceValue);
33
+ }
34
+ }
35
+ string = String(O);
36
+ searchString = String(searchValue);
37
+ template = string.split(searchString);
38
+ if (typeof replaceValue !== 'function') {
39
+ return template.join(String(replaceValue));
18
40
  }
19
- return String(O).replace(search, replaceValue);
41
+ result = template[0];
42
+ for (i = 1; i < template.length; i++) {
43
+ result += String(replaceValue(searchString, i - 1, string));
44
+ result += template[i];
45
+ }
46
+ return result;
20
47
  }
21
48
  });
49
+
50
+ IS_PURE || REPLACE_ALL in RegExpPrototype || hide(RegExpPrototype, REPLACE_ALL, $replaceAll);
@@ -0,0 +1,3 @@
1
+ // `Symbol.replaceAll` well-known symbol
2
+ // https://tc39.github.io/proposal-string-replaceall/
3
+ require('../internals/define-well-known-symbol')('replaceAll');
@@ -9,7 +9,7 @@ for (var COLLECTION_NAME in DOMIterables) {
9
9
  // some Chrome versions have non-configurable methods on DOMTokenList
10
10
  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {
11
11
  hide(CollectionPrototype, 'forEach', forEach);
12
- } catch (e) {
12
+ } catch (error) {
13
13
  CollectionPrototype.forEach = forEach;
14
14
  }
15
15
  }
@@ -14,7 +14,7 @@ for (var COLLECTION_NAME in DOMIterables) {
14
14
  // some Chrome versions have non-configurable methods on DOMTokenList
15
15
  if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
16
16
  hide(CollectionPrototype, ITERATOR, ArrayValues);
17
- } catch (e) {
17
+ } catch (error) {
18
18
  CollectionPrototype[ITERATOR] = ArrayValues;
19
19
  }
20
20
  if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
@@ -22,7 +22,7 @@ for (var COLLECTION_NAME in DOMIterables) {
22
22
  // some Chrome versions have non-configurable methods on DOMTokenList
23
23
  if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {
24
24
  hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
25
- } catch (e) {
25
+ } catch (error) {
26
26
  CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
27
27
  }
28
28
  }
@@ -20,9 +20,27 @@ var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
20
20
  var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
21
21
 
22
22
  var plus = /\+/g;
23
+ var sequences = Array(4);
24
+
25
+ var percentSequence = function (bytes) {
26
+ return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi'));
27
+ };
28
+
29
+ var percentDecode = function (sequence) {
30
+ try {
31
+ return decodeURIComponent(sequence);
32
+ } catch (error) {
33
+ return sequence;
34
+ }
35
+ };
23
36
 
24
37
  var deserialize = function (it) {
25
- return decodeURIComponent(it.replace(plus, ' '));
38
+ var result = it.replace(plus, ' ');
39
+ var bytes = 4;
40
+ while (bytes) {
41
+ result = result.replace(percentSequence(bytes--), percentDecode);
42
+ }
43
+ return result;
26
44
  };
27
45
 
28
46
  var find = /[!'()~]|%20/g;
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  require('../modules/es.string.iterator');
3
- // var DEBUG = true;
4
3
  var DESCRIPTORS = require('../internals/descriptors');
5
4
  var USE_NATIVE_URL = require('../internals/native-url');
6
5
  var NativeURL = require('../internals/global').URL;
@@ -25,21 +24,21 @@ var INVALID_SCHEME = 'Invalid scheme';
25
24
  var INVALID_HOST = 'Invalid host';
26
25
  var INVALID_PORT = 'Invalid port';
27
26
 
28
- var ALPHA = /[a-zA-Z]/;
29
- var ALPHANUMERIC = /[a-zA-Z0-9+\-.]/;
30
- var DIGIT = /[0-9]/;
27
+ var ALPHA = /[A-Za-z]/;
28
+ var ALPHANUMERIC = /[\d+\-.A-Za-z]/;
29
+ var DIGIT = /\d/;
31
30
  var HEX_START = /^(0x|0X)/;
32
31
  var OCT = /^[0-7]+$/;
33
- var DEC = /^[0-9]+$/;
34
- var HEX = /^[0-9A-Fa-f]+$/;
32
+ var DEC = /^\d+$/;
33
+ var HEX = /^[\dA-Fa-f]+$/;
35
34
  // eslint-disable-next-line no-control-regex
36
- var FORBIDDEN_HOST_CODE_POINT = /\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/;
35
+ var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/;
37
36
  // eslint-disable-next-line no-control-regex
38
- var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/;
37
+ var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/;
39
38
  // eslint-disable-next-line no-control-regex
40
- var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g;
39
+ var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g;
41
40
  // eslint-disable-next-line no-control-regex
42
- var TAB_AND_NEW_LINE = /\u0009|\u000A|\u000D/g;
41
+ var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g;
43
42
  var EOF;
44
43
 
45
44
  var parseHost = function (url, input) {
@@ -304,27 +303,27 @@ var isDoubleDot = function (segment) {
304
303
  };
305
304
 
306
305
  // States:
307
- var SCHEME_START = {}; // 'SCHEME_START';
308
- var SCHEME = {}; // 'SCHEME';
309
- var NO_SCHEME = {}; // 'NO_SCHEME';
310
- var SPECIAL_RELATIVE_OR_AUTHORITY = {}; // 'SPECIAL_RELATIVE_OR_AUTHORITY';
311
- var PATH_OR_AUTHORITY = {}; // 'PATH_OR_AUTHORITY';
312
- var RELATIVE = {}; // 'RELATIVE';
313
- var RELATIVE_SLASH = {}; // 'RELATIVE_SLASH';
314
- var SPECIAL_AUTHORITY_SLASHES = {}; // 'SPECIAL_AUTHORITY_SLASHES';
315
- var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; // 'SPECIAL_AUTHORITY_IGNORE_SLASHES';
316
- var AUTHORITY = {}; // 'AUTHORITY';
317
- var HOST = {}; // 'HOST';
318
- var HOSTNAME = {}; // 'HOSTNAME';
319
- var PORT = {}; // 'PORT';
320
- var FILE = {}; // 'FILE';
321
- var FILE_SLASH = {}; // 'FILE_SLASH';
322
- var FILE_HOST = {}; // 'FILE_HOST';
323
- var PATH_START = {}; // 'PATH_START';
324
- var PATH = {}; // 'PATH';
325
- var CANNOT_BE_A_BASE_URL_PATH = {}; // 'CANNOT_BE_A_BASE_URL_PATH';
326
- var QUERY = {}; // 'QUERY';
327
- var FRAGMENT = {}; // 'FRAGMENT';
306
+ var SCHEME_START = {};
307
+ var SCHEME = {};
308
+ var NO_SCHEME = {};
309
+ var SPECIAL_RELATIVE_OR_AUTHORITY = {};
310
+ var PATH_OR_AUTHORITY = {};
311
+ var RELATIVE = {};
312
+ var RELATIVE_SLASH = {};
313
+ var SPECIAL_AUTHORITY_SLASHES = {};
314
+ var SPECIAL_AUTHORITY_IGNORE_SLASHES = {};
315
+ var AUTHORITY = {};
316
+ var HOST = {};
317
+ var HOSTNAME = {};
318
+ var PORT = {};
319
+ var FILE = {};
320
+ var FILE_SLASH = {};
321
+ var FILE_HOST = {};
322
+ var PATH_START = {};
323
+ var PATH = {};
324
+ var CANNOT_BE_A_BASE_URL_PATH = {};
325
+ var QUERY = {};
326
+ var FRAGMENT = {};
328
327
 
329
328
  // eslint-disable-next-line max-statements
330
329
  var parseURL = function (url, input, stateOverride, base) {
@@ -355,8 +354,6 @@ var parseURL = function (url, input, stateOverride, base) {
355
354
 
356
355
  while (pointer <= codePoints.length) {
357
356
  char = codePoints[pointer];
358
- // eslint-disable-next-line
359
- // if (DEBUG) console.log(pointer, char, state, buffer);
360
357
  switch (state) {
361
358
  case SCHEME_START:
362
359
  if (char && ALPHA.test(char)) {
@@ -571,7 +568,7 @@ var parseURL = function (url, input, stateOverride, base) {
571
568
  ) {
572
569
  if (buffer != '') {
573
570
  var port = parseInt(buffer, 10);
574
- if (port > 0xffff) return INVALID_PORT;
571
+ if (port > 0xFFFF) return INVALID_PORT;
575
572
  url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;
576
573
  buffer = '';
577
574
  }
@@ -737,7 +734,6 @@ var URLConstructor = function URL(url /* , base */) {
737
734
  var urlString = String(url);
738
735
  var state = setInternalState(that, { type: 'URL' });
739
736
  var baseState, failure;
740
- // if (DEBUG) this.state = state;
741
737
  if (base !== undefined) {
742
738
  if (base instanceof URLConstructor) baseState = getInternalURLState(base);
743
739
  else {
@@ -802,7 +798,7 @@ var getOrigin = function () {
802
798
  var port = url.port;
803
799
  if (scheme == 'blob') try {
804
800
  return new URL(scheme.path[0]).origin;
805
- } catch (e) {
801
+ } catch (error) {
806
802
  return 'null';
807
803
  }
808
804
  if (scheme == 'file' || !isSpecial(url)) return 'null';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "core-js",
3
3
  "description": "Standard library",
4
- "version": "3.0.0",
4
+ "version": "3.1.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/zloirock/core-js.git"
@@ -44,5 +44,8 @@
44
44
  "polyfill",
45
45
  "ponyfill",
46
46
  "shim"
47
- ]
47
+ ],
48
+ "scripts": {
49
+ "postinstall": "node -e \"try { require('./scripts/postinstall'); } catch (e) { /* empty */ }\""
50
+ }
48
51
  }
@@ -1 +1,4 @@
1
+ // TODO: Remove from `core-js@4`
2
+ require('../modules/es.string.match-all');
3
+ require('../modules/es.symbol.match-all');
1
4
  require('../modules/esnext.string.match-all');
@@ -1 +1,2 @@
1
1
  require('../modules/esnext.string.replace-all');
2
+ require('../modules/esnext.symbol.replace-all');
@@ -0,0 +1,12 @@
1
+ /* eslint-disable no-console,max-len */
2
+ var env = process.env;
3
+ var CI = !!env.CI && env.CI !== '0' && env.CI !== 'false';
4
+ var SILENT = !!~['silent', 'error', 'warn'].indexOf(env.npm_config_loglevel);
5
+
6
+ if (!CI && !SILENT) {
7
+ console.log('\u001B[96mThank you for using core-js (\u001B[94m https://github.com/zloirock/core-js \u001B[96m)!\u001B[0m\n');
8
+ console.log('\u001B[96mPlease consider supporting of core-js on Open Collective or Patreon: \u001B[0m');
9
+ console.log('\u001B[96m>\u001B[94m https://opencollective.com/core-js \u001B[0m');
10
+ console.log('\u001B[96m>\u001B[94m https://www.patreon.com/zloirock \u001B[0m\n');
11
+ console.log('\u001B[96mAlso, the author of core-js (\u001B[94m https://github.com/zloirock \u001B[96m) is looking for a good job -)\u001B[0m\n');
12
+ }
@@ -1 +1 @@
1
- module.exports = module.exports = require('../../es/array/flat-map');
1
+ module.exports = require('../../es/array/flat-map');
@@ -1 +1 @@
1
- module.exports = module.exports = require('../../es/array/flat');
1
+ module.exports = require('../../es/array/flat');
@@ -0,0 +1 @@
1
+ module.exports = require('../../es/instance/match-all');
@@ -1 +1 @@
1
- module.exports = module.exports = require('../../es/object');
1
+ module.exports = require('../../es/object');
@@ -0,0 +1 @@
1
+ module.exports = require('../../es/string/match-all');
@@ -0,0 +1 @@
1
+ module.exports = require('../../../es/string/virtual/match-all');
@@ -0,0 +1 @@
1
+ module.exports = require('../../es/symbol/match-all');
package/stage/0.js CHANGED
@@ -1,4 +1,3 @@
1
- require('../proposals/promise-any');
2
1
  require('../proposals/efficient-64-bit-arithmetic');
3
2
  require('../proposals/string-at');
4
3
  require('../proposals/url');
package/stage/1.js CHANGED
@@ -10,7 +10,7 @@ require('../proposals/promise-try');
10
10
  require('../proposals/keys-composition');
11
11
  require('../proposals/seeded-random');
12
12
  require('../proposals/string-code-points');
13
- require('../proposals/string-replace-all');
14
13
  require('../proposals/using-statement');
14
+ require('../proposals/promise-any');
15
15
 
16
16
  module.exports = require('./2');
package/stage/2.js CHANGED
@@ -1,4 +1,4 @@
1
1
  require('../proposals/set-methods');
2
- require('../proposals/promise-all-settled');
2
+ require('../proposals/string-replace-all');
3
3
 
4
4
  module.exports = require('./3');
package/stage/3.js CHANGED
@@ -1,4 +1,4 @@
1
1
  require('../proposals/global-this');
2
- require('../proposals/string-match-all');
2
+ require('../proposals/promise-all-settled');
3
3
 
4
4
  module.exports = require('./4');
package/stage/4.js CHANGED
@@ -1 +1,3 @@
1
+ require('../proposals/string-match-all');
2
+
1
3
  module.exports = require('../internals/path');