core-js 3.1.3 → 3.1.4

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 (160) hide show
  1. package/internals/a-possible-prototype.js +7 -0
  2. package/internals/advance-string-index.js +2 -2
  3. package/internals/array-buffer-view-core.js +1 -1
  4. package/internals/array-buffer.js +12 -12
  5. package/internals/array-copy-within.js +3 -1
  6. package/internals/array-for-each.js +3 -6
  7. package/internals/array-from.js +1 -1
  8. package/internals/array-includes.js +12 -7
  9. package/internals/{array-methods.js → array-iteration.js} +30 -18
  10. package/internals/array-last-index-of.js +3 -2
  11. package/internals/array-reduce.js +30 -21
  12. package/internals/collection-from.js +3 -2
  13. package/internals/collection-weak.js +5 -5
  14. package/internals/collection.js +3 -3
  15. package/internals/composite-key.js +1 -0
  16. package/internals/date-to-iso-string.js +12 -14
  17. package/internals/document-create-element.js +2 -2
  18. package/internals/function-bind.js +3 -3
  19. package/internals/html.js +2 -4
  20. package/internals/indexed-object.js +1 -1
  21. package/internals/inherit-if-required.js +13 -6
  22. package/internals/iterate.js +18 -10
  23. package/internals/math-expm1.js +2 -1
  24. package/internals/math-fround.js +2 -1
  25. package/internals/math-log1p.js +3 -1
  26. package/internals/not-a-regexp.js +7 -0
  27. package/internals/object-assign.js +2 -1
  28. package/internals/object-create.js +2 -1
  29. package/internals/object-define-properties.js +4 -2
  30. package/internals/object-define-property.js +2 -0
  31. package/internals/object-get-own-property-descriptor.js +2 -0
  32. package/internals/object-get-own-property-names.js +2 -1
  33. package/internals/object-get-prototype-of.js +2 -1
  34. package/internals/object-keys-internal.js +2 -4
  35. package/internals/object-keys.js +2 -1
  36. package/internals/object-property-is-enumerable.js +2 -0
  37. package/internals/object-set-prototype-of.js +9 -5
  38. package/internals/object-to-array.js +25 -15
  39. package/internals/own-keys.js +2 -4
  40. package/internals/parse-float.js +7 -5
  41. package/internals/parse-int.js +6 -4
  42. package/internals/punycode-to-ascii.js +2 -4
  43. package/internals/reflect-metadata.js +1 -0
  44. package/internals/regexp-flags.js +1 -0
  45. package/internals/set-species.js +8 -5
  46. package/internals/string-multibyte.js +27 -0
  47. package/internals/string-pad.js +25 -11
  48. package/internals/string-trim.js +20 -8
  49. package/internals/to-primitive.js +7 -6
  50. package/internals/typed-array-constructor.js +5 -5
  51. package/internals/uid.js +1 -1
  52. package/internals/user-agent.js +2 -4
  53. package/modules/es.array.every.js +3 -6
  54. package/modules/es.array.fill.js +3 -1
  55. package/modules/es.array.filter.js +3 -6
  56. package/modules/es.array.find-index.js +2 -3
  57. package/modules/es.array.find.js +2 -3
  58. package/modules/es.array.flat-map.js +1 -1
  59. package/modules/es.array.flat.js +1 -1
  60. package/modules/es.array.includes.js +2 -4
  61. package/modules/es.array.index-of.js +2 -3
  62. package/modules/es.array.is-array.js +3 -1
  63. package/modules/es.array.map.js +3 -6
  64. package/modules/es.array.reduce-right.js +3 -4
  65. package/modules/es.array.reduce.js +3 -5
  66. package/modules/es.array.slice.js +1 -3
  67. package/modules/es.array.some.js +3 -6
  68. package/modules/es.array.splice.js +1 -3
  69. package/modules/es.map.js +1 -1
  70. package/modules/es.number.constructor.js +9 -10
  71. package/modules/es.number.to-fixed.js +57 -53
  72. package/modules/es.object.entries.js +2 -2
  73. package/modules/es.object.get-own-property-descriptors.js +3 -3
  74. package/modules/es.object.get-prototype-of.js +1 -0
  75. package/modules/es.object.values.js +2 -2
  76. package/modules/es.promise.js +6 -5
  77. package/modules/es.reflect.apply.js +2 -2
  78. package/modules/es.reflect.construct.js +4 -4
  79. package/modules/es.reflect.define-property.js +5 -5
  80. package/modules/es.reflect.delete-property.js +1 -1
  81. package/modules/es.reflect.get-own-property-descriptor.js +2 -2
  82. package/modules/es.reflect.get-prototype-of.js +1 -1
  83. package/modules/es.reflect.get.js +3 -3
  84. package/modules/es.reflect.set-prototype-of.js +4 -2
  85. package/modules/es.reflect.set.js +3 -3
  86. package/modules/es.regexp.constructor.js +3 -3
  87. package/modules/es.regexp.to-string.js +1 -1
  88. package/modules/es.set.js +1 -1
  89. package/modules/es.string.code-point-at.js +2 -2
  90. package/modules/es.string.ends-with.js +6 -5
  91. package/modules/es.string.includes.js +4 -3
  92. package/modules/es.string.iterator.js +2 -2
  93. package/modules/es.string.pad-end.js +2 -2
  94. package/modules/es.string.pad-start.js +2 -2
  95. package/modules/es.string.starts-with.js +8 -6
  96. package/modules/es.string.trim-end.js +2 -2
  97. package/modules/es.string.trim-start.js +2 -2
  98. package/modules/es.string.trim.js +3 -5
  99. package/modules/es.symbol.js +93 -85
  100. package/modules/es.typed-array.copy-within.js +2 -2
  101. package/modules/es.typed-array.every.js +2 -3
  102. package/modules/es.typed-array.fill.js +2 -2
  103. package/modules/es.typed-array.filter.js +3 -4
  104. package/modules/es.typed-array.find-index.js +2 -3
  105. package/modules/es.typed-array.find.js +2 -3
  106. package/modules/es.typed-array.for-each.js +2 -3
  107. package/modules/es.typed-array.includes.js +2 -3
  108. package/modules/es.typed-array.index-of.js +2 -3
  109. package/modules/es.typed-array.iterator.js +1 -1
  110. package/modules/es.typed-array.join.js +2 -2
  111. package/modules/es.typed-array.last-index-of.js +2 -2
  112. package/modules/es.typed-array.map.js +5 -7
  113. package/modules/es.typed-array.of.js +1 -1
  114. package/modules/es.typed-array.reduce-right.js +2 -2
  115. package/modules/es.typed-array.reduce.js +2 -2
  116. package/modules/es.typed-array.reverse.js +2 -1
  117. package/modules/es.typed-array.set.js +2 -2
  118. package/modules/es.typed-array.slice.js +3 -3
  119. package/modules/es.typed-array.some.js +2 -3
  120. package/modules/es.typed-array.sort.js +2 -2
  121. package/modules/es.typed-array.subarray.js +1 -1
  122. package/modules/es.typed-array.to-locale-string.js +7 -6
  123. package/modules/es.weak-map.js +1 -1
  124. package/modules/es.weak-set.js +1 -1
  125. package/modules/esnext.global-this.js +3 -1
  126. package/modules/esnext.map.every.js +4 -5
  127. package/modules/esnext.map.filter.js +4 -5
  128. package/modules/esnext.map.find-key.js +4 -5
  129. package/modules/esnext.map.find.js +4 -5
  130. package/modules/esnext.map.includes.js +4 -7
  131. package/modules/esnext.map.key-of.js +4 -7
  132. package/modules/esnext.map.map-keys.js +4 -5
  133. package/modules/esnext.map.map-values.js +4 -5
  134. package/modules/esnext.map.reduce.js +5 -5
  135. package/modules/esnext.map.some.js +4 -5
  136. package/modules/esnext.map.update.js +3 -2
  137. package/modules/esnext.observable.js +25 -24
  138. package/modules/esnext.reflect.get-metadata-keys.js +1 -0
  139. package/modules/esnext.set.every.js +4 -4
  140. package/modules/esnext.set.filter.js +4 -4
  141. package/modules/esnext.set.find.js +4 -4
  142. package/modules/esnext.set.is-disjoint-from.js +3 -5
  143. package/modules/esnext.set.is-subset-of.js +3 -5
  144. package/modules/esnext.set.is-superset-of.js +3 -5
  145. package/modules/esnext.set.join.js +2 -2
  146. package/modules/esnext.set.map.js +4 -4
  147. package/modules/esnext.set.reduce.js +5 -4
  148. package/modules/esnext.set.some.js +4 -4
  149. package/modules/esnext.string.at.js +2 -2
  150. package/modules/esnext.string.code-points.js +5 -3
  151. package/modules/esnext.string.replace-all.js +4 -4
  152. package/modules/web.immediate.js +5 -0
  153. package/modules/web.timers.js +12 -7
  154. package/modules/web.url-search-params.js +45 -36
  155. package/modules/web.url.js +45 -43
  156. package/package.json +1 -1
  157. package/internals/enum-keys.js +0 -16
  158. package/internals/string-at.js +0 -17
  159. package/internals/validate-set-prototype-of-arguments.js +0 -9
  160. package/internals/validate-string-method-arguments.js +0 -9
@@ -1,18 +1,19 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var toLength = require('../internals/to-length');
4
- var validateArguments = require('../internals/validate-string-method-arguments');
4
+ var notARegExp = require('../internals/not-a-regexp');
5
+ var requireObjectCoercible = require('../internals/require-object-coercible');
5
6
  var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
6
7
 
7
- var ENDS_WITH = 'endsWith';
8
- var nativeEndsWith = ''[ENDS_WITH];
8
+ var nativeEndsWith = ''.endsWith;
9
9
  var min = Math.min;
10
10
 
11
11
  // `String.prototype.endsWith` method
12
12
  // https://tc39.github.io/ecma262/#sec-string.prototype.endswith
13
- $({ target: 'String', proto: true, forced: !correctIsRegExpLogic(ENDS_WITH) }, {
13
+ $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('endsWith') }, {
14
14
  endsWith: function endsWith(searchString /* , endPosition = @length */) {
15
- var that = validateArguments(this, searchString, ENDS_WITH);
15
+ var that = String(requireObjectCoercible(this));
16
+ notARegExp(searchString);
16
17
  var endPosition = arguments.length > 1 ? arguments[1] : undefined;
17
18
  var len = toLength(that.length);
18
19
  var end = endPosition === undefined ? len : min(toLength(endPosition), len);
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var validateArguments = require('../internals/validate-string-method-arguments');
3
+ var notARegExp = require('../internals/not-a-regexp');
4
+ var requireObjectCoercible = require('../internals/require-object-coercible');
4
5
  var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
5
6
 
6
7
  // `String.prototype.includes` method
7
8
  // https://tc39.github.io/ecma262/#sec-string.prototype.includes
8
9
  $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
9
10
  includes: function includes(searchString /* , position = 0 */) {
10
- return !!~validateArguments(this, searchString, 'includes')
11
- .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
11
+ return !!~String(requireObjectCoercible(this))
12
+ .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
12
13
  }
13
14
  });
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var codePointAt = require('../internals/string-at');
2
+ var charAt = require('../internals/string-multibyte').charAt;
3
3
  var InternalStateModule = require('../internals/internal-state');
4
4
  var defineIterator = require('../internals/define-iterator');
5
5
 
@@ -23,7 +23,7 @@ defineIterator(String, 'String', function (iterated) {
23
23
  var index = state.index;
24
24
  var point;
25
25
  if (index >= string.length) return { value: undefined, done: true };
26
- point = codePointAt(string, index, true);
26
+ point = charAt(string, index);
27
27
  state.index += point.length;
28
28
  return { value: point, done: false };
29
29
  });
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var internalStringPad = require('../internals/string-pad');
3
+ var $padEnd = require('../internals/string-pad').end;
4
4
  var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
5
5
 
6
6
  // `String.prototype.padEnd` method
7
7
  // https://tc39.github.io/ecma262/#sec-string.prototype.padend
8
8
  $({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
9
9
  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
10
- return internalStringPad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
10
+ return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
11
11
  }
12
12
  });
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var internalStringPad = require('../internals/string-pad');
3
+ var $padStart = require('../internals/string-pad').start;
4
4
  var WEBKIT_BUG = require('../internals/webkit-string-pad-bug');
5
5
 
6
6
  // `String.prototype.padStart` method
7
7
  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart
8
8
  $({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
9
9
  padStart: function padStart(maxLength /* , fillString = ' ' */) {
10
- return internalStringPad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
10
+ return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
11
11
  }
12
12
  });
@@ -1,18 +1,20 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var toLength = require('../internals/to-length');
4
- var validateArguments = require('../internals/validate-string-method-arguments');
4
+ var notARegExp = require('../internals/not-a-regexp');
5
+ var requireObjectCoercible = require('../internals/require-object-coercible');
5
6
  var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
6
7
 
7
- var STARTS_WITH = 'startsWith';
8
- var nativeStartsWith = ''[STARTS_WITH];
8
+ var nativeStartsWith = ''.startsWith;
9
+ var min = Math.min;
9
10
 
10
11
  // `String.prototype.startsWith` method
11
12
  // https://tc39.github.io/ecma262/#sec-string.prototype.startswith
12
- $({ target: 'String', proto: true, forced: !correctIsRegExpLogic(STARTS_WITH) }, {
13
+ $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('startsWith') }, {
13
14
  startsWith: function startsWith(searchString /* , position = 0 */) {
14
- var that = validateArguments(this, searchString, STARTS_WITH);
15
- var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
15
+ var that = String(requireObjectCoercible(this));
16
+ notARegExp(searchString);
17
+ var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
16
18
  var search = String(searchString);
17
19
  return nativeStartsWith
18
20
  ? nativeStartsWith.call(that, search, index)
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var internalStringTrim = require('../internals/string-trim');
3
+ var $trimEnd = require('../internals/string-trim').end;
4
4
  var forcedStringTrimMethod = require('../internals/forced-string-trim-method');
5
5
 
6
6
  var FORCED = forcedStringTrimMethod('trimEnd');
7
7
 
8
8
  var trimEnd = FORCED ? function trimEnd() {
9
- return internalStringTrim(this, 2);
9
+ return $trimEnd(this);
10
10
  } : ''.trimEnd;
11
11
 
12
12
  // `String.prototype.{ trimEnd, trimRight }` methods
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var internalStringTrim = require('../internals/string-trim');
3
+ var $trimStart = require('../internals/string-trim').start;
4
4
  var forcedStringTrimMethod = require('../internals/forced-string-trim-method');
5
5
 
6
6
  var FORCED = forcedStringTrimMethod('trimStart');
7
7
 
8
8
  var trimStart = FORCED ? function trimStart() {
9
- return internalStringTrim(this, 1);
9
+ return $trimStart(this);
10
10
  } : ''.trimStart;
11
11
 
12
12
  // `String.prototype.{ trimStart, trimLeft }` methods
@@ -1,14 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var internalStringTrim = require('../internals/string-trim');
3
+ var $trim = require('../internals/string-trim').trim;
4
4
  var forcedStringTrimMethod = require('../internals/forced-string-trim-method');
5
5
 
6
- var FORCED = forcedStringTrimMethod('trim');
7
-
8
6
  // `String.prototype.trim` method
9
7
  // https://tc39.github.io/ecma262/#sec-string.prototype.trim
10
- $({ target: 'String', proto: true, forced: FORCED }, {
8
+ $({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
11
9
  trim: function trim() {
12
- return internalStringTrim(this, 3);
10
+ return $trim(this);
13
11
  }
14
12
  });
@@ -1,57 +1,58 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var global = require('../internals/global');
4
- var has = require('../internals/has');
5
- var NATIVE_SYMBOL = require('../internals/native-symbol');
6
- var DESCRIPTORS = require('../internals/descriptors');
7
4
  var IS_PURE = require('../internals/is-pure');
8
- var redefine = require('../internals/redefine');
9
- var hiddenKeys = require('../internals/hidden-keys');
5
+ var DESCRIPTORS = require('../internals/descriptors');
6
+ var NATIVE_SYMBOL = require('../internals/native-symbol');
10
7
  var fails = require('../internals/fails');
11
- var shared = require('../internals/shared');
12
- var setToStringTag = require('../internals/set-to-string-tag');
13
- var uid = require('../internals/uid');
14
- var wellKnownSymbol = require('../internals/well-known-symbol');
15
- var wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');
16
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
17
- var enumKeys = require('../internals/enum-keys');
8
+ var has = require('../internals/has');
18
9
  var isArray = require('../internals/is-array');
19
- var anObject = require('../internals/an-object');
20
10
  var isObject = require('../internals/is-object');
11
+ var anObject = require('../internals/an-object');
21
12
  var toObject = require('../internals/to-object');
22
13
  var toIndexedObject = require('../internals/to-indexed-object');
23
14
  var toPrimitive = require('../internals/to-primitive');
24
15
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
25
16
  var nativeObjectCreate = require('../internals/object-create');
17
+ var objectKeys = require('../internals/object-keys');
26
18
  var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
27
19
  var getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');
20
+ var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
28
21
  var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
29
22
  var definePropertyModule = require('../internals/object-define-property');
30
23
  var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
31
24
  var hide = require('../internals/hide');
32
- var objectKeys = require('../internals/object-keys');
33
- var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
25
+ var redefine = require('../internals/redefine');
26
+ var shared = require('../internals/shared');
34
27
  var sharedKey = require('../internals/shared-key');
28
+ var hiddenKeys = require('../internals/hidden-keys');
29
+ var uid = require('../internals/uid');
30
+ var wellKnownSymbol = require('../internals/well-known-symbol');
31
+ var wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');
32
+ var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
33
+ var setToStringTag = require('../internals/set-to-string-tag');
35
34
  var InternalStateModule = require('../internals/internal-state');
35
+ var $forEach = require('../internals/array-iteration').forEach;
36
36
 
37
37
  var HIDDEN = sharedKey('hidden');
38
38
  var SYMBOL = 'Symbol';
39
+ var PROTOTYPE = 'prototype';
40
+ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
39
41
  var setInternalState = InternalStateModule.set;
40
42
  var getInternalState = InternalStateModule.getterFor(SYMBOL);
41
- var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
42
- var nativeDefineProperty = definePropertyModule.f;
43
- var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
43
+ var ObjectPrototype = Object[PROTOTYPE];
44
44
  var $Symbol = global.Symbol;
45
45
  var JSON = global.JSON;
46
46
  var nativeJSONStringify = JSON && JSON.stringify;
47
- var PROTOTYPE = 'prototype';
48
- var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
47
+ var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
48
+ var nativeDefineProperty = definePropertyModule.f;
49
+ var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
49
50
  var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
50
- var SymbolRegistry = shared('symbol-registry');
51
51
  var AllSymbols = shared('symbols');
52
52
  var ObjectPrototypeSymbols = shared('op-symbols');
53
+ var StringToSymbolRegistry = shared('string-to-symbol-registry');
54
+ var SymbolToStringRegistry = shared('symbol-to-string-registry');
53
55
  var WellKnownSymbolsStore = shared('wks');
54
- var ObjectPrototype = Object[PROTOTYPE];
55
56
  var QObject = global.QObject;
56
57
  // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
57
58
  var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
@@ -61,12 +62,12 @@ var setSymbolDescriptor = DESCRIPTORS && fails(function () {
61
62
  return nativeObjectCreate(nativeDefineProperty({}, 'a', {
62
63
  get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
63
64
  })).a != 7;
64
- }) ? function (it, key, D) {
65
- var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, key);
66
- if (ObjectPrototypeDescriptor) delete ObjectPrototype[key];
67
- nativeDefineProperty(it, key, D);
68
- if (ObjectPrototypeDescriptor && it !== ObjectPrototype) {
69
- nativeDefineProperty(ObjectPrototype, key, ObjectPrototypeDescriptor);
65
+ }) ? function (O, P, Attributes) {
66
+ var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
67
+ if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
68
+ nativeDefineProperty(O, P, Attributes);
69
+ if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
70
+ nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
70
71
  }
71
72
  } : nativeDefineProperty;
72
73
 
@@ -87,70 +88,73 @@ var isSymbol = NATIVE_SYMBOL && typeof $Symbol.iterator == 'symbol' ? function (
87
88
  return Object(it) instanceof $Symbol;
88
89
  };
89
90
 
90
- var $defineProperty = function defineProperty(it, key, D) {
91
- if (it === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, key, D);
92
- anObject(it);
93
- key = toPrimitive(key, true);
94
- anObject(D);
91
+ var $defineProperty = function defineProperty(O, P, Attributes) {
92
+ if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
93
+ anObject(O);
94
+ var key = toPrimitive(P, true);
95
+ anObject(Attributes);
95
96
  if (has(AllSymbols, key)) {
96
- if (!D.enumerable) {
97
- if (!has(it, HIDDEN)) nativeDefineProperty(it, HIDDEN, createPropertyDescriptor(1, {}));
98
- it[HIDDEN][key] = true;
97
+ if (!Attributes.enumerable) {
98
+ if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
99
+ O[HIDDEN][key] = true;
99
100
  } else {
100
- if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
101
- D = nativeObjectCreate(D, { enumerable: createPropertyDescriptor(0, false) });
102
- } return setSymbolDescriptor(it, key, D);
103
- } return nativeDefineProperty(it, key, D);
101
+ if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
102
+ Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
103
+ } return setSymbolDescriptor(O, key, Attributes);
104
+ } return nativeDefineProperty(O, key, Attributes);
104
105
  };
105
106
 
106
- var $defineProperties = function defineProperties(it, P) {
107
- anObject(it);
108
- var keys = enumKeys(P = toIndexedObject(P));
109
- var i = 0;
110
- var l = keys.length;
111
- var key;
112
- while (l > i) $defineProperty(it, key = keys[i++], P[key]);
113
- return it;
107
+ var $defineProperties = function defineProperties(O, Properties) {
108
+ anObject(O);
109
+ var properties = toIndexedObject(Properties);
110
+ var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
111
+ $forEach(keys, function (key) {
112
+ if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
113
+ });
114
+ return O;
114
115
  };
115
116
 
116
- var $create = function create(it, P) {
117
- return P === undefined ? nativeObjectCreate(it) : $defineProperties(nativeObjectCreate(it), P);
117
+ var $create = function create(O, Properties) {
118
+ return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
118
119
  };
119
120
 
120
- var $propertyIsEnumerable = function propertyIsEnumerable(key) {
121
- var E = nativePropertyIsEnumerable.call(this, key = toPrimitive(key, true));
122
- if (this === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return false;
123
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
121
+ var $propertyIsEnumerable = function propertyIsEnumerable(V) {
122
+ var P = toPrimitive(V, true);
123
+ var enumerable = nativePropertyIsEnumerable.call(this, P);
124
+ if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;
125
+ return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
124
126
  };
125
127
 
126
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
127
- it = toIndexedObject(it);
128
- key = toPrimitive(key, true);
128
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
129
+ var it = toIndexedObject(O);
130
+ var key = toPrimitive(P, true);
129
131
  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;
130
- var D = nativeGetOwnPropertyDescriptor(it, key);
131
- if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
132
- return D;
132
+ var descriptor = nativeGetOwnPropertyDescriptor(it, key);
133
+ if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
134
+ descriptor.enumerable = true;
135
+ }
136
+ return descriptor;
133
137
  };
134
138
 
135
- var $getOwnPropertyNames = function getOwnPropertyNames(it) {
136
- var names = nativeGetOwnPropertyNames(toIndexedObject(it));
139
+ var $getOwnPropertyNames = function getOwnPropertyNames(O) {
140
+ var names = nativeGetOwnPropertyNames(toIndexedObject(O));
137
141
  var result = [];
138
- var i = 0;
139
- var key;
140
- while (names.length > i) {
141
- if (!has(AllSymbols, key = names[i++]) && !has(hiddenKeys, key)) result.push(key);
142
- } return result;
142
+ $forEach(names, function (key) {
143
+ if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);
144
+ });
145
+ return result;
143
146
  };
144
147
 
145
- var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
146
- var IS_OP = it === ObjectPrototype;
147
- var names = nativeGetOwnPropertyNames(IS_OP ? ObjectPrototypeSymbols : toIndexedObject(it));
148
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
149
+ var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
150
+ var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
148
151
  var result = [];
149
- var i = 0;
150
- var key;
151
- while (names.length > i) {
152
- if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectPrototype, key) : true)) result.push(AllSymbols[key]);
153
- } return result;
152
+ $forEach(names, function (key) {
153
+ if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
154
+ result.push(AllSymbols[key]);
155
+ }
156
+ });
157
+ return result;
154
158
  };
155
159
 
156
160
  // `Symbol` constructor
@@ -158,7 +162,7 @@ var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
158
162
  if (!NATIVE_SYMBOL) {
159
163
  $Symbol = function Symbol() {
160
164
  if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
161
- var description = arguments[0] === undefined ? undefined : String(arguments[0]);
165
+ var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
162
166
  var tag = uid(description);
163
167
  var setter = function (value) {
164
168
  if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
@@ -168,6 +172,7 @@ if (!NATIVE_SYMBOL) {
168
172
  if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
169
173
  return wrap(tag, description);
170
174
  };
175
+
171
176
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
172
177
  return getInternalState(this).tag;
173
178
  });
@@ -200,23 +205,26 @@ $({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
200
205
  Symbol: $Symbol
201
206
  });
202
207
 
203
- for (var wellKnownSymbols = objectKeys(WellKnownSymbolsStore), k = 0; wellKnownSymbols.length > k;) {
204
- defineWellKnownSymbol(wellKnownSymbols[k++]);
205
- }
208
+ $forEach(objectKeys(WellKnownSymbolsStore), function (name) {
209
+ defineWellKnownSymbol(name);
210
+ });
206
211
 
207
212
  $({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
208
213
  // `Symbol.for` method
209
214
  // https://tc39.github.io/ecma262/#sec-symbol.for
210
215
  'for': function (key) {
211
- return has(SymbolRegistry, key += '')
212
- ? SymbolRegistry[key]
213
- : SymbolRegistry[key] = $Symbol(key);
216
+ var string = String(key);
217
+ if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
218
+ var symbol = $Symbol(string);
219
+ StringToSymbolRegistry[string] = symbol;
220
+ SymbolToStringRegistry[symbol] = string;
221
+ return symbol;
214
222
  },
215
223
  // `Symbol.keyFor` method
216
224
  // https://tc39.github.io/ecma262/#sec-symbol.keyfor
217
225
  keyFor: function keyFor(sym) {
218
226
  if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
219
- for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
227
+ if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
220
228
  },
221
229
  useSetter: function () { USE_SETTER = true; },
222
230
  useSimple: function () { USE_SETTER = false; }
@@ -267,9 +275,9 @@ JSON && $({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function
267
275
  }) }, {
268
276
  stringify: function stringify(it) {
269
277
  var args = [it];
270
- var i = 1;
278
+ var index = 1;
271
279
  var replacer, $replacer;
272
- while (arguments.length > i) args.push(arguments[i++]);
280
+ while (arguments.length > index) args.push(arguments[index++]);
273
281
  $replacer = replacer = args[1];
274
282
  if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
275
283
  if (!isArray(replacer)) replacer = function (key, value) {
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
- var arrayCopyWithin = require('../internals/array-copy-within');
3
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var $copyWithin = require('../internals/array-copy-within');
4
4
 
5
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
6
6
 
7
7
  // `%TypedArray%.prototype.copyWithin` method
8
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin
9
9
  ArrayBufferViewCore.exportProto('copyWithin', function copyWithin(target, start /* , end */) {
10
- return arrayCopyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
10
+ return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
11
11
  });
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
- var arrayMethods = require('../internals/array-methods');
3
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var $every = require('../internals/array-iteration').every;
4
4
 
5
- var arrayEvery = arrayMethods(4);
6
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
6
 
8
7
  // `%TypedArray%.prototype.every` method
9
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every
10
9
  ArrayBufferViewCore.exportProto('every', function every(callbackfn /* , thisArg */) {
11
- return arrayEvery(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
10
+ return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
12
11
  });
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
- var arrayFill = require('../internals/array-fill');
3
+ var $fill = require('../internals/array-fill');
4
4
 
5
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
6
6
 
@@ -8,5 +8,5 @@ var aTypedArray = ArrayBufferViewCore.aTypedArray;
8
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill
9
9
  // eslint-disable-next-line no-unused-vars
10
10
  ArrayBufferViewCore.exportProto('fill', function fill(value /* , start, end */) {
11
- return arrayFill.apply(aTypedArray(this), arguments);
11
+ return $fill.apply(aTypedArray(this), arguments);
12
12
  });
@@ -1,16 +1,15 @@
1
1
  'use strict';
2
- var speciesConstructor = require('../internals/species-constructor');
3
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
4
- var arrayMethods = require('../internals/array-methods');
3
+ var $filter = require('../internals/array-iteration').filter;
4
+ var speciesConstructor = require('../internals/species-constructor');
5
5
 
6
- var arrayFilter = arrayMethods(2);
7
6
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
8
7
  var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
9
8
 
10
9
  // `%TypedArray%.prototype.filter` method
11
10
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter
12
11
  ArrayBufferViewCore.exportProto('filter', function filter(callbackfn /* , thisArg */) {
13
- var list = arrayFilter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
12
+ var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
14
13
  var C = speciesConstructor(this, this.constructor);
15
14
  var index = 0;
16
15
  var length = list.length;
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $findIndex = require('../internals/array-iteration').findIndex;
4
4
 
5
- var arrayFindIndex = arrayMethods(6);
6
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
6
 
8
7
  // `%TypedArray%.prototype.findIndex` method
9
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex
10
9
  ArrayBufferViewCore.exportProto('findIndex', function findIndex(predicate /* , thisArg */) {
11
- return arrayFindIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
10
+ return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
12
11
  });
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $find = require('../internals/array-iteration').find;
4
4
 
5
- var arrayFind = arrayMethods(5);
6
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
6
 
8
7
  // `%TypedArray%.prototype.find` method
9
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find
10
9
  ArrayBufferViewCore.exportProto('find', function find(predicate /* , thisArg */) {
11
- return arrayFind(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
10
+ return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
12
11
  });
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $forEach = require('../internals/array-iteration').forEach;
4
4
 
5
- var arrayForEach = arrayMethods(0);
6
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
6
 
8
7
  // `%TypedArray%.prototype.forEach` method
9
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach
10
9
  ArrayBufferViewCore.exportProto('forEach', function forEach(callbackfn /* , thisArg */) {
11
- arrayForEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
10
+ $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
12
11
  });
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
- var createIncludes = require('../internals/array-includes');
3
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var $includes = require('../internals/array-includes').includes;
4
4
 
5
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
6
- var arrayIncludes = createIncludes(true);
7
6
 
8
7
  // `%TypedArray%.prototype.includes` method
9
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes
10
9
  ArrayBufferViewCore.exportProto('includes', function includes(searchElement /* , fromIndex */) {
11
- return arrayIncludes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
10
+ return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
12
11
  });
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
- var createIncludes = require('../internals/array-includes');
3
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var $indexOf = require('../internals/array-includes').indexOf;
4
4
 
5
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
6
- var arrayIndexOf = createIncludes(false);
7
6
 
8
7
  // `%TypedArray%.prototype.indexOf` method
9
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof
10
9
  ArrayBufferViewCore.exportProto('indexOf', function indexOf(searchElement /* , fromIndex */) {
11
- return arrayIndexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
10
+ return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
12
11
  });
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
- var ArrayIterators = require('../modules/es.array.iterator');
4
3
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
4
+ var ArrayIterators = require('../modules/es.array.iterator');
5
5
  var wellKnownSymbol = require('../internals/well-known-symbol');
6
6
 
7
7
  var ITERATOR = wellKnownSymbol('iterator');
@@ -2,11 +2,11 @@
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
3
 
4
4
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
5
- var arrayJoin = [].join;
5
+ var $join = [].join;
6
6
 
7
7
  // `%TypedArray%.prototype.join` method
8
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join
9
9
  // eslint-disable-next-line no-unused-vars
10
10
  ArrayBufferViewCore.exportProto('join', function join(separator) {
11
- return arrayJoin.apply(aTypedArray(this), arguments);
11
+ return $join.apply(aTypedArray(this), arguments);
12
12
  });