core-js 2.4.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/bower.json +1 -1
  3. package/build/config.js +6 -0
  4. package/client/core.js +1238 -1233
  5. package/client/core.min.js +4 -4
  6. package/client/core.min.js.map +1 -1
  7. package/client/library.js +1194 -1189
  8. package/client/library.min.js +4 -4
  9. package/client/library.min.js.map +1 -1
  10. package/client/shim.js +1213 -1222
  11. package/client/shim.min.js +4 -4
  12. package/client/shim.min.js.map +1 -1
  13. package/es7/observable.js +6 -6
  14. package/fn/date/to-string.js +2 -2
  15. package/fn/observable.js +6 -6
  16. package/fn/symbol/has-instance.js +1 -1
  17. package/library/es7/observable.js +6 -6
  18. package/library/fn/date/to-string.js +2 -2
  19. package/library/fn/observable.js +6 -6
  20. package/library/fn/symbol/has-instance.js +1 -1
  21. package/library/modules/_a-number-value.js +4 -4
  22. package/library/modules/_array-reduce.js +27 -27
  23. package/library/modules/_array-species-constructor.js +15 -15
  24. package/library/modules/_collection-strong.js +0 -1
  25. package/library/modules/_create-property.js +7 -7
  26. package/library/modules/_date-to-primitive.js +8 -8
  27. package/library/modules/_enum-bug-keys.js +3 -3
  28. package/library/modules/_ie8-dom-define.js +2 -2
  29. package/library/modules/_inherit-if-required.js +7 -7
  30. package/library/modules/_object-create.js +41 -40
  31. package/library/modules/_object-dps.js +12 -12
  32. package/library/modules/_object-forced-pam.js +6 -6
  33. package/library/modules/_object-gopd.js +15 -15
  34. package/library/modules/_object-gopn.js +6 -6
  35. package/library/modules/_object-gpo.js +12 -12
  36. package/library/modules/_object-keys-internal.js +16 -16
  37. package/library/modules/_object-keys.js +6 -6
  38. package/library/modules/_shared-key.js +4 -4
  39. package/library/modules/_strict-method.js +6 -6
  40. package/library/modules/_string-ws.js +1 -1
  41. package/library/modules/_typed-array.js +0 -2
  42. package/library/modules/_typed-buffer.js +0 -2
  43. package/library/modules/_wks-define.js +8 -8
  44. package/library/modules/es6.array.every.js +9 -9
  45. package/library/modules/es6.array.for-each.js +10 -10
  46. package/library/modules/es6.array.index-of.js +14 -14
  47. package/library/modules/es6.array.is-array.js +3 -3
  48. package/library/modules/es6.array.join.js +11 -11
  49. package/library/modules/es6.array.last-index-of.js +21 -21
  50. package/library/modules/es6.array.map.js +9 -9
  51. package/library/modules/es6.array.reduce-right.js +9 -9
  52. package/library/modules/es6.array.reduce.js +9 -9
  53. package/library/modules/es6.array.slice.js +27 -27
  54. package/library/modules/es6.array.some.js +9 -9
  55. package/library/modules/es6.array.sort.js +22 -22
  56. package/library/modules/es6.date.now.js +3 -3
  57. package/library/modules/es6.date.to-iso-string.js +27 -27
  58. package/library/modules/es6.function.bind.js +3 -3
  59. package/library/modules/es6.number.to-fixed.js +112 -113
  60. package/library/modules/es6.number.to-precision.js +17 -17
  61. package/library/modules/es6.object.create.js +2 -2
  62. package/library/modules/es6.object.define-properties.js +2 -2
  63. package/library/modules/es6.object.define-property.js +2 -2
  64. package/library/modules/es6.parse-float.js +3 -3
  65. package/library/modules/es6.parse-int.js +3 -3
  66. package/library/modules/es6.promise.js +0 -2
  67. package/library/modules/es6.reflect.apply.js +9 -4
  68. package/library/modules/es6.reflect.construct.js +18 -10
  69. package/library/modules/es6.typed.array-buffer.js +0 -1
  70. package/library/modules/es6.weak-map.js +0 -1
  71. package/library/modules/es7.asap.js +11 -11
  72. package/library/modules/es7.object.define-getter.js +11 -11
  73. package/library/modules/es7.object.define-setter.js +11 -11
  74. package/library/modules/es7.object.enumerable-entries.js +12 -0
  75. package/library/modules/es7.object.enumerable-keys.js +12 -0
  76. package/library/modules/es7.object.enumerable-values.js +12 -0
  77. package/library/modules/es7.object.get-own-property-descriptors.js +1 -1
  78. package/library/modules/es7.object.lookup-getter.js +17 -17
  79. package/library/modules/es7.object.lookup-setter.js +17 -17
  80. package/library/modules/es7.observable.js +198 -198
  81. package/library/modules/es7.string.match-all.js +29 -29
  82. package/library/stage/pre.js +9 -9
  83. package/modules/_a-number-value.js +4 -4
  84. package/modules/_array-reduce.js +27 -27
  85. package/modules/_array-species-constructor.js +15 -15
  86. package/modules/_collection-strong.js +0 -1
  87. package/modules/_create-property.js +7 -7
  88. package/modules/_date-to-primitive.js +8 -8
  89. package/modules/_enum-bug-keys.js +3 -3
  90. package/modules/_ie8-dom-define.js +2 -2
  91. package/modules/_inherit-if-required.js +7 -7
  92. package/modules/_object-create.js +41 -40
  93. package/modules/_object-dps.js +12 -12
  94. package/modules/_object-forced-pam.js +6 -6
  95. package/modules/_object-gopd.js +15 -15
  96. package/modules/_object-gopn.js +6 -6
  97. package/modules/_object-gpo.js +12 -12
  98. package/modules/_object-keys-internal.js +16 -16
  99. package/modules/_object-keys.js +6 -6
  100. package/modules/_shared-key.js +4 -4
  101. package/modules/_strict-method.js +6 -6
  102. package/modules/_string-ws.js +1 -1
  103. package/modules/_typed-array.js +0 -2
  104. package/modules/_typed-buffer.js +0 -2
  105. package/modules/_wks-define.js +8 -8
  106. package/modules/es6.array.every.js +9 -9
  107. package/modules/es6.array.for-each.js +10 -10
  108. package/modules/es6.array.index-of.js +14 -14
  109. package/modules/es6.array.is-array.js +3 -3
  110. package/modules/es6.array.join.js +11 -11
  111. package/modules/es6.array.last-index-of.js +21 -21
  112. package/modules/es6.array.map.js +9 -9
  113. package/modules/es6.array.reduce-right.js +9 -9
  114. package/modules/es6.array.reduce.js +9 -9
  115. package/modules/es6.array.slice.js +27 -27
  116. package/modules/es6.array.some.js +9 -9
  117. package/modules/es6.array.sort.js +22 -22
  118. package/modules/es6.date.now.js +3 -3
  119. package/modules/es6.date.to-iso-string.js +27 -27
  120. package/modules/es6.date.to-primitive.js +3 -3
  121. package/modules/es6.function.bind.js +3 -3
  122. package/modules/es6.number.to-fixed.js +112 -113
  123. package/modules/es6.number.to-precision.js +17 -17
  124. package/modules/es6.object.create.js +2 -2
  125. package/modules/es6.object.define-properties.js +2 -2
  126. package/modules/es6.object.define-property.js +2 -2
  127. package/modules/es6.parse-float.js +3 -3
  128. package/modules/es6.parse-int.js +3 -3
  129. package/modules/es6.promise.js +0 -2
  130. package/modules/es6.reflect.apply.js +9 -4
  131. package/modules/es6.reflect.construct.js +18 -10
  132. package/modules/es6.regexp.to-string.js +24 -24
  133. package/modules/es6.typed.array-buffer.js +0 -1
  134. package/modules/es6.weak-map.js +0 -1
  135. package/modules/es7.asap.js +11 -11
  136. package/modules/es7.object.define-getter.js +11 -11
  137. package/modules/es7.object.define-setter.js +11 -11
  138. package/modules/es7.object.enumerable-entries.js +12 -0
  139. package/modules/es7.object.enumerable-keys.js +12 -0
  140. package/modules/es7.object.enumerable-values.js +12 -0
  141. package/modules/es7.object.get-own-property-descriptors.js +1 -1
  142. package/modules/es7.object.lookup-getter.js +17 -17
  143. package/modules/es7.object.lookup-setter.js +17 -17
  144. package/modules/es7.observable.js +198 -198
  145. package/modules/es7.string.match-all.js +29 -29
  146. package/package.json +6 -6
  147. package/stage/pre.js +9 -9
@@ -1,11 +1,11 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , $forEach = require('./_array-methods')(0)
4
- , STRICT = require('./_strict-method')([].forEach, true);
5
-
6
- $export($export.P + $export.F * !STRICT, 'Array', {
7
- // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
8
- forEach: function forEach(callbackfn /* , thisArg */){
9
- return $forEach(this, callbackfn, arguments[1]);
10
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , $forEach = require('./_array-methods')(0)
4
+ , STRICT = require('./_strict-method')([].forEach, true);
5
+
6
+ $export($export.P + $export.F * !STRICT, 'Array', {
7
+ // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
8
+ forEach: function forEach(callbackfn /* , thisArg */){
9
+ return $forEach(this, callbackfn, arguments[1]);
10
+ }
11
11
  });
@@ -1,15 +1,15 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , $indexOf = require('./_array-includes')(false)
4
- , $native = [].indexOf
5
- , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
6
-
7
- $export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
8
- // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
9
- indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
10
- return NEGATIVE_ZERO
11
- // convert -0 to +0
12
- ? $native.apply(this, arguments) || 0
13
- : $indexOf(this, searchElement, arguments[1]);
14
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , $indexOf = require('./_array-includes')(false)
4
+ , $native = [].indexOf
5
+ , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
6
+
7
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
8
+ // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
9
+ indexOf: function indexOf(searchElement /*, fromIndex = 0 */){
10
+ return NEGATIVE_ZERO
11
+ // convert -0 to +0
12
+ ? $native.apply(this, arguments) || 0
13
+ : $indexOf(this, searchElement, arguments[1]);
14
+ }
15
15
  });
@@ -1,4 +1,4 @@
1
- // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
2
- var $export = require('./_export');
3
-
1
+ // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
2
+ var $export = require('./_export');
3
+
4
4
  $export($export.S, 'Array', {isArray: require('./_is-array')});
@@ -1,12 +1,12 @@
1
- 'use strict';
2
- // 22.1.3.13 Array.prototype.join(separator)
3
- var $export = require('./_export')
4
- , toIObject = require('./_to-iobject')
5
- , arrayJoin = [].join;
6
-
7
- // fallback for not array-like strings
8
- $export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {
9
- join: function join(separator){
10
- return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
11
- }
1
+ 'use strict';
2
+ // 22.1.3.13 Array.prototype.join(separator)
3
+ var $export = require('./_export')
4
+ , toIObject = require('./_to-iobject')
5
+ , arrayJoin = [].join;
6
+
7
+ // fallback for not array-like strings
8
+ $export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {
9
+ join: function join(separator){
10
+ return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
11
+ }
12
12
  });
@@ -1,22 +1,22 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , toIObject = require('./_to-iobject')
4
- , toInteger = require('./_to-integer')
5
- , toLength = require('./_to-length')
6
- , $native = [].lastIndexOf
7
- , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
8
-
9
- $export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
10
- // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
11
- lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
12
- // convert -0 to +0
13
- if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
14
- var O = toIObject(this)
15
- , length = toLength(O.length)
16
- , index = length - 1;
17
- if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
18
- if(index < 0)index = length + index;
19
- for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
20
- return -1;
21
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , toIObject = require('./_to-iobject')
4
+ , toInteger = require('./_to-integer')
5
+ , toLength = require('./_to-length')
6
+ , $native = [].lastIndexOf
7
+ , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
8
+
9
+ $export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
10
+ // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
11
+ lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){
12
+ // convert -0 to +0
13
+ if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;
14
+ var O = toIObject(this)
15
+ , length = toLength(O.length)
16
+ , index = length - 1;
17
+ if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));
18
+ if(index < 0)index = length + index;
19
+ for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;
20
+ return -1;
21
+ }
22
22
  });
@@ -1,10 +1,10 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , $map = require('./_array-methods')(1);
4
-
5
- $export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {
6
- // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
7
- map: function map(callbackfn /* , thisArg */){
8
- return $map(this, callbackfn, arguments[1]);
9
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , $map = require('./_array-methods')(1);
4
+
5
+ $export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {
6
+ // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
7
+ map: function map(callbackfn /* , thisArg */){
8
+ return $map(this, callbackfn, arguments[1]);
9
+ }
10
10
  });
@@ -1,10 +1,10 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , $reduce = require('./_array-reduce');
4
-
5
- $export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {
6
- // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
7
- reduceRight: function reduceRight(callbackfn /* , initialValue */){
8
- return $reduce(this, callbackfn, arguments.length, arguments[1], true);
9
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , $reduce = require('./_array-reduce');
4
+
5
+ $export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {
6
+ // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
7
+ reduceRight: function reduceRight(callbackfn /* , initialValue */){
8
+ return $reduce(this, callbackfn, arguments.length, arguments[1], true);
9
+ }
10
10
  });
@@ -1,10 +1,10 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , $reduce = require('./_array-reduce');
4
-
5
- $export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {
6
- // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
7
- reduce: function reduce(callbackfn /* , initialValue */){
8
- return $reduce(this, callbackfn, arguments.length, arguments[1], false);
9
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , $reduce = require('./_array-reduce');
4
+
5
+ $export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {
6
+ // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
7
+ reduce: function reduce(callbackfn /* , initialValue */){
8
+ return $reduce(this, callbackfn, arguments.length, arguments[1], false);
9
+ }
10
10
  });
@@ -1,28 +1,28 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , html = require('./_html')
4
- , cof = require('./_cof')
5
- , toIndex = require('./_to-index')
6
- , toLength = require('./_to-length')
7
- , arraySlice = [].slice;
8
-
9
- // fallback for not array-like ES3 strings and DOM objects
10
- $export($export.P + $export.F * require('./_fails')(function(){
11
- if(html)arraySlice.call(html);
12
- }), 'Array', {
13
- slice: function slice(begin, end){
14
- var len = toLength(this.length)
15
- , klass = cof(this);
16
- end = end === undefined ? len : end;
17
- if(klass == 'Array')return arraySlice.call(this, begin, end);
18
- var start = toIndex(begin, len)
19
- , upTo = toIndex(end, len)
20
- , size = toLength(upTo - start)
21
- , cloned = Array(size)
22
- , i = 0;
23
- for(; i < size; i++)cloned[i] = klass == 'String'
24
- ? this.charAt(start + i)
25
- : this[start + i];
26
- return cloned;
27
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , html = require('./_html')
4
+ , cof = require('./_cof')
5
+ , toIndex = require('./_to-index')
6
+ , toLength = require('./_to-length')
7
+ , arraySlice = [].slice;
8
+
9
+ // fallback for not array-like ES3 strings and DOM objects
10
+ $export($export.P + $export.F * require('./_fails')(function(){
11
+ if(html)arraySlice.call(html);
12
+ }), 'Array', {
13
+ slice: function slice(begin, end){
14
+ var len = toLength(this.length)
15
+ , klass = cof(this);
16
+ end = end === undefined ? len : end;
17
+ if(klass == 'Array')return arraySlice.call(this, begin, end);
18
+ var start = toIndex(begin, len)
19
+ , upTo = toIndex(end, len)
20
+ , size = toLength(upTo - start)
21
+ , cloned = Array(size)
22
+ , i = 0;
23
+ for(; i < size; i++)cloned[i] = klass == 'String'
24
+ ? this.charAt(start + i)
25
+ : this[start + i];
26
+ return cloned;
27
+ }
28
28
  });
@@ -1,10 +1,10 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , $some = require('./_array-methods')(3);
4
-
5
- $export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {
6
- // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
7
- some: function some(callbackfn /* , thisArg */){
8
- return $some(this, callbackfn, arguments[1]);
9
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , $some = require('./_array-methods')(3);
4
+
5
+ $export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {
6
+ // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
7
+ some: function some(callbackfn /* , thisArg */){
8
+ return $some(this, callbackfn, arguments[1]);
9
+ }
10
10
  });
@@ -1,23 +1,23 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , aFunction = require('./_a-function')
4
- , toObject = require('./_to-object')
5
- , fails = require('./_fails')
6
- , $sort = [].sort
7
- , test = [1, 2, 3];
8
-
9
- $export($export.P + $export.F * (fails(function(){
10
- // IE8-
11
- test.sort(undefined);
12
- }) || !fails(function(){
13
- // V8 bug
14
- test.sort(null);
15
- // Old WebKit
16
- }) || !require('./_strict-method')($sort)), 'Array', {
17
- // 22.1.3.25 Array.prototype.sort(comparefn)
18
- sort: function sort(comparefn){
19
- return comparefn === undefined
20
- ? $sort.call(toObject(this))
21
- : $sort.call(toObject(this), aFunction(comparefn));
22
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , aFunction = require('./_a-function')
4
+ , toObject = require('./_to-object')
5
+ , fails = require('./_fails')
6
+ , $sort = [].sort
7
+ , test = [1, 2, 3];
8
+
9
+ $export($export.P + $export.F * (fails(function(){
10
+ // IE8-
11
+ test.sort(undefined);
12
+ }) || !fails(function(){
13
+ // V8 bug
14
+ test.sort(null);
15
+ // Old WebKit
16
+ }) || !require('./_strict-method')($sort)), 'Array', {
17
+ // 22.1.3.25 Array.prototype.sort(comparefn)
18
+ sort: function sort(comparefn){
19
+ return comparefn === undefined
20
+ ? $sort.call(toObject(this))
21
+ : $sort.call(toObject(this), aFunction(comparefn));
22
+ }
23
23
  });
@@ -1,4 +1,4 @@
1
- // 20.3.3.1 / 15.9.4.4 Date.now()
2
- var $export = require('./_export');
3
-
1
+ // 20.3.3.1 / 15.9.4.4 Date.now()
2
+ var $export = require('./_export');
3
+
4
4
  $export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});
@@ -1,28 +1,28 @@
1
- 'use strict';
2
- // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
3
- var $export = require('./_export')
4
- , fails = require('./_fails')
5
- , getTime = Date.prototype.getTime;
6
-
7
- var lz = function(num){
8
- return num > 9 ? num : '0' + num;
9
- };
10
-
11
- // PhantomJS / old WebKit has a broken implementations
12
- $export($export.P + $export.F * (fails(function(){
13
- return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
14
- }) || !fails(function(){
15
- new Date(NaN).toISOString();
16
- })), 'Date', {
17
- toISOString: function toISOString(){
18
- if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
19
- var d = this
20
- , y = d.getUTCFullYear()
21
- , m = d.getUTCMilliseconds()
22
- , s = y < 0 ? '-' : y > 9999 ? '+' : '';
23
- return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
24
- '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
25
- 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
26
- ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
27
- }
1
+ 'use strict';
2
+ // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
3
+ var $export = require('./_export')
4
+ , fails = require('./_fails')
5
+ , getTime = Date.prototype.getTime;
6
+
7
+ var lz = function(num){
8
+ return num > 9 ? num : '0' + num;
9
+ };
10
+
11
+ // PhantomJS / old WebKit has a broken implementations
12
+ $export($export.P + $export.F * (fails(function(){
13
+ return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
14
+ }) || !fails(function(){
15
+ new Date(NaN).toISOString();
16
+ })), 'Date', {
17
+ toISOString: function toISOString(){
18
+ if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');
19
+ var d = this
20
+ , y = d.getUTCFullYear()
21
+ , m = d.getUTCMilliseconds()
22
+ , s = y < 0 ? '-' : y > 9999 ? '+' : '';
23
+ return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
24
+ '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
25
+ 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
26
+ ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
27
+ }
28
28
  });
@@ -1,4 +1,4 @@
1
- // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
2
- var $export = require('./_export');
3
-
1
+ // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
2
+ var $export = require('./_export');
3
+
4
4
  $export($export.P, 'Function', {bind: require('./_bind')});
@@ -1,114 +1,113 @@
1
- 'use strict';
2
- var $export = require('./_export')
3
- , anInstance = require('./_an-instance')
4
- , toInteger = require('./_to-integer')
5
- , aNumberValue = require('./_a-number-value')
6
- , repeat = require('./_string-repeat')
7
- , $toFixed = 1..toFixed
8
- , floor = Math.floor
9
- , data = [0, 0, 0, 0, 0, 0]
10
- , ERROR = 'Number.toFixed: incorrect invocation!'
11
- , ZERO = '0';
12
-
13
- var multiply = function(n, c){
14
- var i = -1
15
- , c2 = c;
16
- while(++i < 6){
17
- c2 += n * data[i];
18
- data[i] = c2 % 1e7;
19
- c2 = floor(c2 / 1e7);
20
- }
21
- };
22
- var divide = function(n){
23
- var i = 6
24
- , c = 0;
25
- while(--i >= 0){
26
- c += data[i];
27
- data[i] = floor(c / n);
28
- c = (c % n) * 1e7;
29
- }
30
- };
31
- var numToString = function(){
32
- var i = 6
33
- , s = '';
34
- while(--i >= 0){
35
- if(s !== '' || i === 0 || data[i] !== 0){
36
- var t = String(data[i]);
37
- s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
38
- }
39
- } return s;
40
- };
41
- var pow = function(x, n, acc){
42
- return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
43
- };
44
- var log = function(x){
45
- var n = 0
46
- , x2 = x;
47
- while(x2 >= 4096){
48
- n += 12;
49
- x2 /= 4096;
50
- }
51
- while(x2 >= 2){
52
- n += 1;
53
- x2 /= 2;
54
- } return n;
55
- };
56
-
57
- $export($export.P + $export.F * (!!$toFixed && (
58
- 0.00008.toFixed(3) !== '0.000' ||
59
- 0.9.toFixed(0) !== '1' ||
60
- 1.255.toFixed(2) !== '1.25' ||
61
- 1000000000000000128..toFixed(0) !== '1000000000000000128'
62
- ) || !require('./_fails')(function(){
63
- // V8 ~ Android 4.3-
64
- $toFixed.call({});
65
- })), 'Number', {
66
- toFixed: function toFixed(fractionDigits){
67
- var x = aNumberValue(this, ERROR)
68
- , f = toInteger(fractionDigits)
69
- , s = ''
70
- , m = ZERO
71
- , e, z, j, k;
72
- if(f < 0 || f > 20)throw RangeError(ERROR);
73
- if(x != x)return 'NaN';
74
- if(x <= -1e21 || x >= 1e21)return String(x);
75
- if(x < 0){
76
- s = '-';
77
- x = -x;
78
- }
79
- if(x > 1e-21){
80
- e = log(x * pow(2, 69, 1)) - 69;
81
- z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
82
- z *= 0x10000000000000;
83
- e = 52 - e;
84
- if(e > 0){
85
- multiply(0, z);
86
- j = f;
87
- while(j >= 7){
88
- multiply(1e7, 0);
89
- j -= 7;
90
- }
91
- multiply(pow(10, j, 1), 0);
92
- j = e - 1;
93
- while(j >= 23){
94
- divide(1 << 23);
95
- j -= 23;
96
- }
97
- divide(1 << j);
98
- multiply(1, 1);
99
- divide(2);
100
- m = numToString();
101
- } else {
102
- multiply(0, z);
103
- multiply(1 << -e, 0);
104
- m = numToString() + repeat.call(ZERO, f);
105
- }
106
- }
107
- if(f > 0){
108
- k = m.length;
109
- m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
110
- } else {
111
- m = s + m;
112
- } return m;
113
- }
1
+ 'use strict';
2
+ var $export = require('./_export')
3
+ , toInteger = require('./_to-integer')
4
+ , aNumberValue = require('./_a-number-value')
5
+ , repeat = require('./_string-repeat')
6
+ , $toFixed = 1..toFixed
7
+ , floor = Math.floor
8
+ , data = [0, 0, 0, 0, 0, 0]
9
+ , ERROR = 'Number.toFixed: incorrect invocation!'
10
+ , ZERO = '0';
11
+
12
+ var multiply = function(n, c){
13
+ var i = -1
14
+ , c2 = c;
15
+ while(++i < 6){
16
+ c2 += n * data[i];
17
+ data[i] = c2 % 1e7;
18
+ c2 = floor(c2 / 1e7);
19
+ }
20
+ };
21
+ var divide = function(n){
22
+ var i = 6
23
+ , c = 0;
24
+ while(--i >= 0){
25
+ c += data[i];
26
+ data[i] = floor(c / n);
27
+ c = (c % n) * 1e7;
28
+ }
29
+ };
30
+ var numToString = function(){
31
+ var i = 6
32
+ , s = '';
33
+ while(--i >= 0){
34
+ if(s !== '' || i === 0 || data[i] !== 0){
35
+ var t = String(data[i]);
36
+ s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
37
+ }
38
+ } return s;
39
+ };
40
+ var pow = function(x, n, acc){
41
+ return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
42
+ };
43
+ var log = function(x){
44
+ var n = 0
45
+ , x2 = x;
46
+ while(x2 >= 4096){
47
+ n += 12;
48
+ x2 /= 4096;
49
+ }
50
+ while(x2 >= 2){
51
+ n += 1;
52
+ x2 /= 2;
53
+ } return n;
54
+ };
55
+
56
+ $export($export.P + $export.F * (!!$toFixed && (
57
+ 0.00008.toFixed(3) !== '0.000' ||
58
+ 0.9.toFixed(0) !== '1' ||
59
+ 1.255.toFixed(2) !== '1.25' ||
60
+ 1000000000000000128..toFixed(0) !== '1000000000000000128'
61
+ ) || !require('./_fails')(function(){
62
+ // V8 ~ Android 4.3-
63
+ $toFixed.call({});
64
+ })), 'Number', {
65
+ toFixed: function toFixed(fractionDigits){
66
+ var x = aNumberValue(this, ERROR)
67
+ , f = toInteger(fractionDigits)
68
+ , s = ''
69
+ , m = ZERO
70
+ , e, z, j, k;
71
+ if(f < 0 || f > 20)throw RangeError(ERROR);
72
+ if(x != x)return 'NaN';
73
+ if(x <= -1e21 || x >= 1e21)return String(x);
74
+ if(x < 0){
75
+ s = '-';
76
+ x = -x;
77
+ }
78
+ if(x > 1e-21){
79
+ e = log(x * pow(2, 69, 1)) - 69;
80
+ z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
81
+ z *= 0x10000000000000;
82
+ e = 52 - e;
83
+ if(e > 0){
84
+ multiply(0, z);
85
+ j = f;
86
+ while(j >= 7){
87
+ multiply(1e7, 0);
88
+ j -= 7;
89
+ }
90
+ multiply(pow(10, j, 1), 0);
91
+ j = e - 1;
92
+ while(j >= 23){
93
+ divide(1 << 23);
94
+ j -= 23;
95
+ }
96
+ divide(1 << j);
97
+ multiply(1, 1);
98
+ divide(2);
99
+ m = numToString();
100
+ } else {
101
+ multiply(0, z);
102
+ multiply(1 << -e, 0);
103
+ m = numToString() + repeat.call(ZERO, f);
104
+ }
105
+ }
106
+ if(f > 0){
107
+ k = m.length;
108
+ m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
109
+ } else {
110
+ m = s + m;
111
+ } return m;
112
+ }
114
113
  });