core-js-pure 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 (100) 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/call-with-safe-iteration-closing.js +2 -2
  25. package/internals/check-correctness-of-iteration.js +2 -2
  26. package/internals/classof.js +1 -1
  27. package/internals/fails.js +1 -1
  28. package/internals/flatten-into-array.js +1 -1
  29. package/internals/forced-object-prototype-accessors-methods.js +6 -2
  30. package/internals/forced-string-trim-method.js +1 -1
  31. package/internals/global.js +12 -3
  32. package/internals/hide.js +2 -1
  33. package/internals/ie8-dom-define.js +6 -2
  34. package/internals/internal-metadata.js +2 -1
  35. package/internals/microtask.js +3 -3
  36. package/internals/native-symbol.js +5 -3
  37. package/internals/native-url.js +2 -1
  38. package/internals/object-assign.js +7 -2
  39. package/internals/object-create.js +2 -1
  40. package/internals/object-define-property.js +1 -1
  41. package/internals/object-get-own-property-descriptor.js +1 -1
  42. package/internals/object-get-own-property-names-external.js +1 -1
  43. package/internals/object-set-prototype-of.js +2 -2
  44. package/internals/object-to-array.js +8 -3
  45. package/internals/parse-int.js +1 -1
  46. package/internals/perform.js +3 -3
  47. package/internals/punycode-to-ascii.js +3 -3
  48. package/internals/set-global.js +1 -1
  49. package/internals/shared.js +3 -2
  50. package/internals/sloppy-array-method.js +2 -2
  51. package/internals/string-at.js +3 -3
  52. package/internals/task.js +21 -11
  53. package/internals/to-length.js +1 -1
  54. package/internals/webkit-string-pad-bug.js +5 -0
  55. package/internals/whitespaces.js +1 -1
  56. package/modules/es.array.concat.js +1 -1
  57. package/modules/es.array.splice.js +1 -1
  58. package/modules/es.math.imul.js +2 -2
  59. package/modules/es.number.is-safe-integer.js +1 -1
  60. package/modules/es.number.max-safe-integer.js +1 -1
  61. package/modules/es.number.min-safe-integer.js +1 -1
  62. package/modules/es.object.get-own-property-names.js +1 -1
  63. package/modules/es.promise.js +15 -13
  64. package/modules/es.reflect.define-property.js +1 -1
  65. package/modules/es.reflect.prevent-extensions.js +1 -1
  66. package/modules/es.reflect.set-prototype-of.js +1 -1
  67. package/modules/es.string.from-code-point.js +2 -2
  68. package/modules/es.string.match-all.js +91 -0
  69. package/modules/es.string.pad-end.js +1 -4
  70. package/modules/es.string.pad-start.js +1 -4
  71. package/modules/es.symbol.js +11 -1
  72. package/modules/es.symbol.match-all.js +2 -0
  73. package/modules/esnext.math.imulh.js +1 -1
  74. package/modules/esnext.math.umulh.js +1 -1
  75. package/modules/esnext.number.from-string.js +1 -1
  76. package/modules/esnext.observable.js +12 -12
  77. package/modules/esnext.promise.all-settled.js +4 -2
  78. package/modules/esnext.promise.any.js +4 -2
  79. package/modules/esnext.promise.try.js +8 -6
  80. package/modules/esnext.string.match-all.js +3 -87
  81. package/modules/esnext.string.replace-all.js +37 -8
  82. package/modules/esnext.symbol.replace-all.js +3 -0
  83. package/modules/web.url-search-params.js +19 -1
  84. package/modules/web.url.js +32 -36
  85. package/package.json +5 -2
  86. package/proposals/string-match-all.js +3 -0
  87. package/proposals/string-replace-all.js +1 -0
  88. package/scripts/postinstall.js +12 -0
  89. package/stable/array/flat-map.js +1 -1
  90. package/stable/array/flat.js +1 -1
  91. package/stable/instance/match-all.js +1 -0
  92. package/stable/object/index.js +1 -1
  93. package/stable/string/match-all.js +1 -0
  94. package/stable/string/virtual/match-all.js +1 -0
  95. package/stable/symbol/match-all.js +1 -0
  96. package/stage/0.js +0 -1
  97. package/stage/1.js +1 -1
  98. package/stage/2.js +1 -1
  99. package/stage/3.js +1 -1
  100. package/stage/4.js +2 -0
package/internals/task.js CHANGED
@@ -1,8 +1,10 @@
1
1
  var global = require('../internals/global');
2
+ var fails = require('../internals/fails');
2
3
  var classof = require('../internals/classof-raw');
3
4
  var bind = require('../internals/bind-context');
4
5
  var html = require('../internals/html');
5
6
  var createElement = require('../internals/document-create-element');
7
+ var location = global.location;
6
8
  var set = global.setImmediate;
7
9
  var clear = global.clearImmediate;
8
10
  var process = global.process;
@@ -13,8 +15,7 @@ var queue = {};
13
15
  var ONREADYSTATECHANGE = 'onreadystatechange';
14
16
  var defer, channel, port;
15
17
 
16
- var run = function () {
17
- var id = +this;
18
+ var run = function (id) {
18
19
  // eslint-disable-next-line no-prototype-builtins
19
20
  if (queue.hasOwnProperty(id)) {
20
21
  var fn = queue[id];
@@ -23,8 +24,19 @@ var run = function () {
23
24
  }
24
25
  };
25
26
 
27
+ var runner = function (id) {
28
+ return function () {
29
+ run(id);
30
+ };
31
+ };
32
+
26
33
  var listener = function (event) {
27
- run.call(event.data);
34
+ run(event.data);
35
+ };
36
+
37
+ var post = function (id) {
38
+ // old engines have not location.origin
39
+ global.postMessage(id + '', location.protocol + '//' + location.host);
28
40
  };
29
41
 
30
42
  // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
@@ -46,12 +58,12 @@ if (!set || !clear) {
46
58
  // Node.js 0.8-
47
59
  if (classof(process) == 'process') {
48
60
  defer = function (id) {
49
- process.nextTick(bind(run, id, 1));
61
+ process.nextTick(runner(id));
50
62
  };
51
63
  // Sphere (JS game engine) Dispatch API
52
64
  } else if (Dispatch && Dispatch.now) {
53
65
  defer = function (id) {
54
- Dispatch.now(bind(run, id, 1));
66
+ Dispatch.now(runner(id));
55
67
  };
56
68
  // Browsers with MessageChannel, includes WebWorkers
57
69
  } else if (MessageChannel) {
@@ -61,23 +73,21 @@ if (!set || !clear) {
61
73
  defer = bind(port.postMessage, port, 1);
62
74
  // Browsers with postMessage, skip WebWorkers
63
75
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
64
- } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
65
- defer = function (id) {
66
- global.postMessage(id + '', '*');
67
- };
76
+ } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {
77
+ defer = post;
68
78
  global.addEventListener('message', listener, false);
69
79
  // IE8-
70
80
  } else if (ONREADYSTATECHANGE in createElement('script')) {
71
81
  defer = function (id) {
72
82
  html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
73
83
  html.removeChild(this);
74
- run.call(id);
84
+ run(id);
75
85
  };
76
86
  };
77
87
  // Rest old browsers
78
88
  } else {
79
89
  defer = function (id) {
80
- setTimeout(bind(run, id, 1), 0);
90
+ setTimeout(runner(id), 0);
81
91
  };
82
92
  }
83
93
  }
@@ -4,5 +4,5 @@ var min = Math.min;
4
4
  // `ToLength` abstract operation
5
5
  // https://tc39.github.io/ecma262/#sec-tolength
6
6
  module.exports = function (argument) {
7
- return argument > 0 ? min(toInteger(argument), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
7
+ return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
8
8
  };
@@ -0,0 +1,5 @@
1
+ // https://github.com/zloirock/core-js/issues/280
2
+ var userAgent = require('../internals/user-agent');
3
+
4
+ // eslint-disable-next-line unicorn/no-unsafe-regex
5
+ module.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
@@ -1,3 +1,3 @@
1
1
  // a string of all valid unicode whitespaces
2
2
  // eslint-disable-next-line max-len
3
- module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
3
+ module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
@@ -6,7 +6,7 @@ var toLength = require('../internals/to-length');
6
6
  var createProperty = require('../internals/create-property');
7
7
  var arraySpeciesCreate = require('../internals/array-species-create');
8
8
  var IS_CONCAT_SPREADABLE = require('../internals/well-known-symbol')('isConcatSpreadable');
9
- var MAX_SAFE_INTEGER = 0x1fffffffffffff;
9
+ var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
10
10
  var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
11
11
 
12
12
  var IS_CONCAT_SPREADABLE_SUPPORT = !require('../internals/fails')(function () {
@@ -7,7 +7,7 @@ var arraySpeciesCreate = require('../internals/array-species-create');
7
7
  var createProperty = require('../internals/create-property');
8
8
  var max = Math.max;
9
9
  var min = Math.min;
10
- var MAX_SAFE_INTEGER = 0x1fffffffffffff;
10
+ var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
11
11
  var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
12
12
 
13
13
  var SPECIES_SUPPORT = require('../internals/array-method-has-species-support')('splice');
@@ -1,7 +1,7 @@
1
1
  var nativeImul = Math.imul;
2
2
 
3
3
  var FORCED = require('../internals/fails')(function () {
4
- return nativeImul(0xffffffff, 5) != -5 || nativeImul.length != 2;
4
+ return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;
5
5
  });
6
6
 
7
7
  // `Math.imul` method
@@ -9,7 +9,7 @@ var FORCED = require('../internals/fails')(function () {
9
9
  // some WebKit versions fails with big numbers, some has wrong arity
10
10
  require('../internals/export')({ target: 'Math', stat: true, forced: FORCED }, {
11
11
  imul: function imul(x, y) {
12
- var UINT16 = 0xffff;
12
+ var UINT16 = 0xFFFF;
13
13
  var xn = +x;
14
14
  var yn = +y;
15
15
  var xl = UINT16 & xn;
@@ -5,6 +5,6 @@ var abs = Math.abs;
5
5
  // https://tc39.github.io/ecma262/#sec-number.issafeinteger
6
6
  require('../internals/export')({ target: 'Number', stat: true }, {
7
7
  isSafeInteger: function isSafeInteger(number) {
8
- return isInteger(number) && abs(number) <= 0x1fffffffffffff;
8
+ return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;
9
9
  }
10
10
  });
@@ -1,3 +1,3 @@
1
1
  // `Number.MAX_SAFE_INTEGER` constant
2
2
  // https://tc39.github.io/ecma262/#sec-number.max_safe_integer
3
- require('../internals/export')({ target: 'Number', stat: true }, { MAX_SAFE_INTEGER: 0x1fffffffffffff });
3
+ require('../internals/export')({ target: 'Number', stat: true }, { MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF });
@@ -1,3 +1,3 @@
1
1
  // `Number.MIN_SAFE_INTEGER` constant
2
2
  // https://tc39.github.io/ecma262/#sec-number.min_safe_integer
3
- require('../internals/export')({ target: 'Number', stat: true }, { MIN_SAFE_INTEGER: -0x1fffffffffffff });
3
+ require('../internals/export')({ target: 'Number', stat: true }, { MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF });
@@ -1,5 +1,5 @@
1
1
  var nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;
2
- var FAILS_ON_PRIMITIVES = require('../internals/fails')(function () { Object.getOwnPropertyNames(1); });
2
+ var FAILS_ON_PRIMITIVES = require('../internals/fails')(function () { return !Object.getOwnPropertyNames(1); });
3
3
 
4
4
  // `Object.getOwnPropertyNames` method
5
5
  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames
@@ -106,9 +106,9 @@ var notify = function (promise, state, isReject) {
106
106
  then.call(result, resolve, reject);
107
107
  } else resolve(result);
108
108
  } else reject(value);
109
- } catch (e) {
109
+ } catch (error) {
110
110
  if (domain && !exited) domain.exit();
111
- reject(e);
111
+ reject(error);
112
112
  }
113
113
  };
114
114
  while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
@@ -144,8 +144,8 @@ var onUnhandled = function (promise, state) {
144
144
  });
145
145
  // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
146
146
  state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
147
+ if (result.error) throw result.value;
147
148
  }
148
- if (IS_UNHANDLED && result.e) throw result.v;
149
149
  });
150
150
  };
151
151
 
@@ -191,8 +191,8 @@ var internalResolve = function (promise, state, value, unwrap) {
191
191
  bind(internalResolve, promise, wrapper, state),
192
192
  bind(internalReject, promise, wrapper, state)
193
193
  );
194
- } catch (e) {
195
- internalReject(promise, wrapper, e, state);
194
+ } catch (error) {
195
+ internalReject(promise, wrapper, error, state);
196
196
  }
197
197
  });
198
198
  } else {
@@ -200,8 +200,8 @@ var internalResolve = function (promise, state, value, unwrap) {
200
200
  state.state = FULFILLED;
201
201
  notify(promise, state, false);
202
202
  }
203
- } catch (e) {
204
- internalReject(promise, { done: false }, e, state);
203
+ } catch (error) {
204
+ internalReject(promise, { done: false }, error, state);
205
205
  }
206
206
  };
207
207
 
@@ -215,8 +215,8 @@ if (FORCED) {
215
215
  var state = getInternalState(this);
216
216
  try {
217
217
  executor(bind(internalResolve, this, state), bind(internalReject, this, state));
218
- } catch (err) {
219
- internalReject(this, state, err);
218
+ } catch (error) {
219
+ internalReject(this, state, error);
220
220
  }
221
221
  };
222
222
  // eslint-disable-next-line no-unused-vars
@@ -309,6 +309,7 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
309
309
  var resolve = capability.resolve;
310
310
  var reject = capability.reject;
311
311
  var result = perform(function () {
312
+ var $promiseResolve = aFunction(C.resolve);
312
313
  var values = [];
313
314
  var counter = 0;
314
315
  var remaining = 1;
@@ -317,7 +318,7 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
317
318
  var alreadyCalled = false;
318
319
  values.push(undefined);
319
320
  remaining++;
320
- C.resolve(promise).then(function (value) {
321
+ $promiseResolve.call(C, promise).then(function (value) {
321
322
  if (alreadyCalled) return;
322
323
  alreadyCalled = true;
323
324
  values[index] = value;
@@ -326,7 +327,7 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
326
327
  });
327
328
  --remaining || resolve(values);
328
329
  });
329
- if (result.e) reject(result.v);
330
+ if (result.error) reject(result.value);
330
331
  return capability.promise;
331
332
  },
332
333
  // `Promise.race` method
@@ -336,11 +337,12 @@ $export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
336
337
  var capability = newPromiseCapability(C);
337
338
  var reject = capability.reject;
338
339
  var result = perform(function () {
340
+ var $promiseResolve = aFunction(C.resolve);
339
341
  iterate(iterable, function (promise) {
340
- C.resolve(promise).then(capability.resolve, reject);
342
+ $promiseResolve.call(C, promise).then(capability.resolve, reject);
341
343
  });
342
344
  });
343
- if (result.e) reject(result.v);
345
+ if (result.error) reject(result.value);
344
346
  return capability.promise;
345
347
  }
346
348
  });
@@ -19,7 +19,7 @@ require('../internals/export')({ target: 'Reflect', stat: true, forced: ERROR_IN
19
19
  try {
20
20
  definePropertyModule.f(target, propertyKey, attributes);
21
21
  return true;
22
- } catch (e) {
22
+ } catch (error) {
23
23
  return false;
24
24
  }
25
25
  }
@@ -11,7 +11,7 @@ require('../internals/export')({ target: 'Reflect', stat: true, sham: !FREEZING
11
11
  var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');
12
12
  if (objectPreventExtensions) objectPreventExtensions(target);
13
13
  return true;
14
- } catch (e) {
14
+ } catch (error) {
15
15
  return false;
16
16
  }
17
17
  }
@@ -9,7 +9,7 @@ if (objectSetPrototypeOf) require('../internals/export')({ target: 'Reflect', st
9
9
  try {
10
10
  objectSetPrototypeOf(target, proto);
11
11
  return true;
12
- } catch (e) {
12
+ } catch (error) {
13
13
  return false;
14
14
  }
15
15
  }
@@ -15,10 +15,10 @@ require('../internals/export')({ target: 'String', stat: true, forced: INCORRECT
15
15
  var code;
16
16
  while (length > i) {
17
17
  code = +arguments[i++];
18
- if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
18
+ if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
19
19
  elements.push(code < 0x10000
20
20
  ? fromCharCode(code)
21
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
21
+ : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)
22
22
  );
23
23
  } return elements.join('');
24
24
  }
@@ -0,0 +1,91 @@
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, flagsValue, flags, matcher, global, fullUnicode;
61
+ C = speciesConstructor(R, RegExp);
62
+ flagsValue = R.flags;
63
+ if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {
64
+ flagsValue = getFlags.call(R);
65
+ }
66
+ flags = flagsValue === undefined ? '' : String(flagsValue);
67
+ matcher = new C(C === RegExp ? R.source : R, flags);
68
+ global = !!~flags.indexOf('g');
69
+ fullUnicode = !!~flags.indexOf('u');
70
+ matcher.lastIndex = toLength(R.lastIndex);
71
+ return new $RegExpStringIterator(matcher, S, global, fullUnicode);
72
+ };
73
+
74
+ // `String.prototype.matchAll` method
75
+ // https://github.com/tc39/proposal-string-matchall
76
+ require('../internals/export')({ target: 'String', proto: true }, {
77
+ matchAll: function matchAll(regexp) {
78
+ var O = requireObjectCoercible(this);
79
+ var S, matcher, rx;
80
+ if (regexp != null) {
81
+ matcher = regexp[MATCH_ALL];
82
+ if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
83
+ if (matcher != null) return aFunction(matcher).call(regexp, O);
84
+ }
85
+ S = String(O);
86
+ rx = new RegExp(regexp, 'g');
87
+ return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);
88
+ }
89
+ });
90
+
91
+ IS_PURE || MATCH_ALL in RegExpPrototype || hide(RegExpPrototype, MATCH_ALL, $matchAll);
@@ -1,9 +1,6 @@
1
1
  'use strict';
2
2
  var internalStringPad = require('../internals/string-pad');
3
- var userAgent = require('../internals/user-agent');
4
-
5
- // https://github.com/zloirock/core-js/issues/280
6
- var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
3
+ var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
7
4
 
8
5
  // `String.prototype.padEnd` method
9
6
  // https://tc39.github.io/ecma262/#sec-string.prototype.padend
@@ -1,9 +1,6 @@
1
1
  'use strict';
2
2
  var internalStringPad = require('../internals/string-pad');
3
- var userAgent = require('../internals/user-agent');
4
-
5
- // https://github.com/zloirock/core-js/issues/280
6
- var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
3
+ var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
7
4
 
8
5
  // `String.prototype.padStart` method
9
6
  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart
@@ -18,6 +18,7 @@ var enumKeys = require('../internals/enum-keys');
18
18
  var isArray = require('../internals/is-array');
19
19
  var anObject = require('../internals/an-object');
20
20
  var isObject = require('../internals/is-object');
21
+ var toObject = require('../internals/to-object');
21
22
  var toIndexedObject = require('../internals/to-indexed-object');
22
23
  var toPrimitive = require('../internals/to-primitive');
23
24
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
@@ -36,6 +37,7 @@ var getInternalState = InternalStateModule.getterFor(SYMBOL);
36
37
  var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
37
38
  var nativeDefineProperty = definePropertyModule.f;
38
39
  var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
40
+ var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
39
41
  var $Symbol = global.Symbol;
40
42
  var JSON = global.JSON;
41
43
  var nativeJSONStringify = JSON && JSON.stringify;
@@ -172,7 +174,7 @@ if (!NATIVE_SYMBOL) {
172
174
  definePropertyModule.f = $defineProperty;
173
175
  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
174
176
  require('../internals/object-get-own-property-names').f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
175
- require('../internals/object-get-own-property-symbols').f = $getOwnPropertySymbols;
177
+ getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
176
178
 
177
179
  if (DESCRIPTORS) {
178
180
  // https://github.com/tc39/proposal-Symbol-description
@@ -240,6 +242,14 @@ $export({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
240
242
  getOwnPropertySymbols: $getOwnPropertySymbols
241
243
  });
242
244
 
245
+ // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
246
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3443
247
+ $export({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {
248
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
249
+ return getOwnPropertySymbolsModule.f(toObject(it));
250
+ }
251
+ });
252
+
243
253
  // `JSON.stringify` method behavior with symbols
244
254
  // https://tc39.github.io/ecma262/#sec-json.stringify
245
255
  JSON && $export({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function () {
@@ -0,0 +1,2 @@
1
+ // `Symbol.matchAll` well-known symbol
2
+ require('../internals/define-well-known-symbol')('matchAll');
@@ -2,7 +2,7 @@
2
2
  // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
3
3
  require('../internals/export')({ target: 'Math', stat: true }, {
4
4
  imulh: function imulh(u, v) {
5
- var UINT16 = 0xffff;
5
+ var UINT16 = 0xFFFF;
6
6
  var $u = +u;
7
7
  var $v = +v;
8
8
  var u0 = $u & UINT16;
@@ -2,7 +2,7 @@
2
2
  // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
3
3
  require('../internals/export')({ target: 'Math', stat: true }, {
4
4
  umulh: function umulh(u, v) {
5
- var UINT16 = 0xffff;
5
+ var UINT16 = 0xFFFF;
6
6
  var $u = +u;
7
7
  var $v = +v;
8
8
  var u0 = $u & UINT16;
@@ -3,7 +3,7 @@ var toInteger = require('../internals/to-integer');
3
3
  var parseInt = require('../internals/parse-int');
4
4
  var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';
5
5
  var INVALID_RADIX = 'Invalid radix';
6
- var valid = /^[0-9a-z]+$/;
6
+ var valid = /^[\da-z]+$/;
7
7
 
8
8
  // `Number.fromString` method
9
9
  // https://github.com/tc39/proposal-number-fromstring
@@ -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
+ });