core-js 1.2.3 → 1.2.7

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 (320) hide show
  1. package/CHANGELOG.md +408 -386
  2. package/bower.json +1 -1
  3. package/build/Gruntfile.ls +0 -5
  4. package/build/build.ls +24 -22
  5. package/build/index.js +2 -2
  6. package/client/core.js +1412 -1272
  7. package/client/core.min.js +4 -4
  8. package/client/core.min.js.map +1 -1
  9. package/client/library.js +1220 -1122
  10. package/client/library.min.js +4 -4
  11. package/client/library.min.js.map +1 -1
  12. package/client/shim.js +1304 -1164
  13. package/client/shim.min.js +4 -4
  14. package/client/shim.min.js.map +1 -1
  15. package/es6/symbol.js +1 -0
  16. package/fn/symbol/index.js +1 -0
  17. package/library/es6/symbol.js +1 -0
  18. package/library/fn/symbol/index.js +1 -0
  19. package/library/modules/{$.unscope.js → $.add-to-unscopables.js} +0 -0
  20. package/library/modules/$.array-fill.js +1 -1
  21. package/library/modules/$.array-methods.js +2 -12
  22. package/library/modules/$.array-species-create.js +16 -0
  23. package/library/modules/$.buffer.js +278 -285
  24. package/library/modules/$.collection-strong.js +9 -8
  25. package/library/modules/$.collection-weak.js +16 -15
  26. package/library/modules/$.collection.js +21 -14
  27. package/library/modules/$.core.js +1 -1
  28. package/library/modules/{$.support-desc.js → $.descriptors.js} +0 -0
  29. package/library/modules/$.export.js +46 -0
  30. package/library/modules/$.fails-is-regexp.js +2 -1
  31. package/library/modules/$.fix-re-wks.js +10 -5
  32. package/library/modules/$.flags.js +5 -5
  33. package/library/modules/$.get-names.js +3 -3
  34. package/library/modules/$.hide.js +1 -1
  35. package/library/modules/$.is-array-iter.js +5 -3
  36. package/library/modules/$.iter-create.js +5 -3
  37. package/library/modules/$.iter-define.js +46 -30
  38. package/library/modules/$.iter-detect.js +8 -6
  39. package/library/modules/{$.expm1.js → $.math-expm1.js} +0 -0
  40. package/library/modules/{$.log1p.js → $.math-log1p.js} +0 -0
  41. package/library/modules/{$.sign.js → $.math-sign.js} +0 -0
  42. package/library/modules/$.microtask.js +9 -2
  43. package/library/modules/{$.assign.js → $.object-assign.js} +0 -0
  44. package/library/modules/$.object-sap.js +6 -4
  45. package/library/modules/$.redefine-all.js +5 -0
  46. package/library/modules/{$.redef.js → $.redefine.js} +0 -0
  47. package/library/modules/{$.same.js → $.same-value.js} +1 -0
  48. package/library/modules/$.set-species.js +13 -0
  49. package/library/modules/{$.tag.js → $.set-to-string-tag.js} +0 -0
  50. package/library/modules/$.species-constructor.js +7 -7
  51. package/library/modules/$.string-at.js +5 -6
  52. package/library/modules/$.string-trim.js +17 -14
  53. package/library/modules/$.task.js +0 -1
  54. package/library/modules/$.to-primitive.js +12 -0
  55. package/library/modules/$.typed-array.js +345 -294
  56. package/library/modules/$.typed.js +36 -0
  57. package/library/modules/$.wks.js +2 -1
  58. package/library/modules/core.delay.js +2 -2
  59. package/library/modules/core.dict.js +20 -19
  60. package/library/modules/core.function.part.js +3 -4
  61. package/library/modules/core.is-iterable.js +1 -1
  62. package/library/modules/core.log.js +2 -2
  63. package/library/modules/core.object.classof.js +2 -2
  64. package/library/modules/core.object.define.js +3 -3
  65. package/library/modules/core.object.is-object.js +2 -2
  66. package/library/modules/core.object.make.js +4 -4
  67. package/library/modules/core.string.escape-html.js +9 -9
  68. package/library/modules/core.string.unescape-html.js +9 -9
  69. package/library/modules/es5.js +61 -60
  70. package/library/modules/es6.array.copy-within.js +3 -4
  71. package/library/modules/es6.array.fill.js +3 -3
  72. package/library/modules/es6.array.find-index.js +6 -6
  73. package/library/modules/es6.array.find.js +6 -6
  74. package/library/modules/es6.array.from.js +2 -2
  75. package/library/modules/es6.array.iterator.js +8 -8
  76. package/library/modules/es6.array.of.js +2 -2
  77. package/library/modules/es6.array.species.js +1 -1
  78. package/library/modules/es6.date.to-string.js +0 -0
  79. package/library/modules/es6.math.acosh.js +5 -5
  80. package/library/modules/es6.math.asinh.js +2 -2
  81. package/library/modules/es6.math.atanh.js +2 -2
  82. package/library/modules/es6.math.cbrt.js +3 -3
  83. package/library/modules/es6.math.clz32.js +2 -2
  84. package/library/modules/es6.math.cosh.js +3 -3
  85. package/library/modules/es6.math.expm1.js +2 -2
  86. package/library/modules/es6.math.fround.js +4 -4
  87. package/library/modules/es6.math.hypot.js +3 -3
  88. package/library/modules/es6.math.imul.js +3 -3
  89. package/library/modules/es6.math.log10.js +2 -2
  90. package/library/modules/es6.math.log1p.js +2 -2
  91. package/library/modules/es6.math.log2.js +2 -2
  92. package/library/modules/es6.math.sign.js +2 -2
  93. package/library/modules/es6.math.sinh.js +4 -4
  94. package/library/modules/es6.math.tanh.js +4 -4
  95. package/library/modules/es6.math.trunc.js +2 -2
  96. package/library/modules/es6.number.epsilon.js +2 -2
  97. package/library/modules/es6.number.is-finite.js +2 -2
  98. package/library/modules/es6.number.is-integer.js +2 -2
  99. package/library/modules/es6.number.is-nan.js +2 -2
  100. package/library/modules/es6.number.is-safe-integer.js +2 -2
  101. package/library/modules/es6.number.max-safe-integer.js +2 -2
  102. package/library/modules/es6.number.min-safe-integer.js +2 -2
  103. package/library/modules/es6.number.parse-float.js +2 -2
  104. package/library/modules/es6.number.parse-int.js +2 -2
  105. package/library/modules/es6.object.assign.js +2 -2
  106. package/library/modules/es6.object.is.js +2 -4
  107. package/library/modules/es6.object.set-prototype-of.js +2 -2
  108. package/library/modules/es6.promise.js +96 -66
  109. package/library/modules/es6.reflect.apply.js +5 -4
  110. package/library/modules/es6.reflect.construct.js +4 -3
  111. package/library/modules/es6.reflect.define-property.js +2 -2
  112. package/library/modules/es6.reflect.delete-property.js +2 -2
  113. package/library/modules/es6.reflect.enumerate.js +2 -2
  114. package/library/modules/es6.reflect.get-own-property-descriptor.js +2 -2
  115. package/library/modules/es6.reflect.get-prototype-of.js +2 -2
  116. package/library/modules/es6.reflect.get.js +2 -2
  117. package/library/modules/es6.reflect.has.js +2 -2
  118. package/library/modules/es6.reflect.is-extensible.js +2 -2
  119. package/library/modules/es6.reflect.own-keys.js +2 -2
  120. package/library/modules/es6.reflect.prevent-extensions.js +2 -2
  121. package/library/modules/es6.reflect.set-prototype-of.js +2 -2
  122. package/library/modules/es6.reflect.set.js +2 -2
  123. package/library/modules/es6.regexp.constructor.js +1 -1
  124. package/library/modules/es6.string.code-point-at.js +3 -3
  125. package/library/modules/es6.string.ends-with.js +2 -2
  126. package/library/modules/es6.string.from-code-point.js +4 -4
  127. package/library/modules/es6.string.includes.js +4 -3
  128. package/library/modules/es6.string.raw.js +2 -2
  129. package/library/modules/es6.string.repeat.js +2 -2
  130. package/library/modules/es6.string.starts-with.js +2 -2
  131. package/library/modules/es6.symbol.js +17 -16
  132. package/library/modules/es6.typed.array-buffer.js +43 -0
  133. package/library/modules/es6.typed.data-view.js +4 -0
  134. package/library/modules/{es6.typed-arrays.float32-array.js → es6.typed.float32-array.js} +0 -0
  135. package/library/modules/{es6.typed-arrays.float64-array.js → es6.typed.float64-array.js} +0 -0
  136. package/library/modules/{es6.typed-arrays.int16-array.js → es6.typed.int16-array.js} +0 -0
  137. package/library/modules/{es6.typed-arrays.int32-array.js → es6.typed.int32-array.js} +0 -0
  138. package/library/modules/{es6.typed-arrays.int8-array.js → es6.typed.int8-array.js} +0 -0
  139. package/library/modules/{es6.typed-arrays.uint16-array.js → es6.typed.uint16-array.js} +0 -0
  140. package/library/modules/{es6.typed-arrays.uint32-array.js → es6.typed.uint32-array.js} +0 -0
  141. package/library/modules/{es6.typed-arrays.uint8-array.js → es6.typed.uint8-array.js} +0 -0
  142. package/library/modules/{es6.typed-arrays.uint8-clamped-array.js → es6.typed.uint8-clamped-array.js} +0 -0
  143. package/library/modules/es6.weak-map.js +2 -1
  144. package/library/modules/es7.array.includes.js +5 -3
  145. package/library/modules/es7.map.to-json.js +2 -2
  146. package/library/modules/es7.object.entries.js +2 -2
  147. package/library/modules/es7.object.get-own-property-descriptors.js +2 -2
  148. package/library/modules/es7.object.values.js +2 -2
  149. package/library/modules/es7.regexp.escape.js +4 -3
  150. package/library/modules/es7.set.to-json.js +2 -2
  151. package/library/modules/es7.string.at.js +5 -4
  152. package/library/modules/es7.string.pad-left.js +4 -3
  153. package/library/modules/es7.string.pad-right.js +4 -3
  154. package/library/modules/js.array.statics.js +4 -3
  155. package/library/modules/web.immediate.js +3 -3
  156. package/library/modules/web.timers.js +2 -2
  157. package/modules/$.add-to-unscopables.js +7 -0
  158. package/modules/$.array-fill.js +1 -1
  159. package/modules/$.array-methods.js +2 -12
  160. package/modules/$.array-species-create.js +16 -0
  161. package/modules/$.buffer.js +278 -285
  162. package/modules/$.collection-strong.js +9 -8
  163. package/modules/$.collection-weak.js +16 -15
  164. package/modules/$.collection.js +37 -25
  165. package/modules/$.core.js +1 -1
  166. package/modules/{$.support-desc.js → $.descriptors.js} +0 -0
  167. package/modules/$.export.js +41 -0
  168. package/modules/$.fails-is-regexp.js +2 -1
  169. package/modules/$.fix-re-wks.js +10 -5
  170. package/modules/$.flags.js +5 -5
  171. package/modules/$.get-names.js +3 -3
  172. package/modules/$.hide.js +1 -1
  173. package/modules/$.is-array-iter.js +5 -3
  174. package/modules/$.iter-create.js +5 -3
  175. package/modules/$.iter-define.js +46 -30
  176. package/modules/$.iter-detect.js +8 -6
  177. package/modules/{$.expm1.js → $.math-expm1.js} +0 -0
  178. package/modules/{$.log1p.js → $.math-log1p.js} +0 -0
  179. package/modules/{$.sign.js → $.math-sign.js} +0 -0
  180. package/modules/$.microtask.js +9 -2
  181. package/modules/{$.assign.js → $.object-assign.js} +0 -0
  182. package/modules/$.object-sap.js +6 -4
  183. package/modules/$.redefine-all.js +5 -0
  184. package/modules/{$.redef.js → $.redefine.js} +0 -0
  185. package/modules/{$.same.js → $.same-value.js} +1 -0
  186. package/modules/$.set-species.js +13 -0
  187. package/modules/{$.tag.js → $.set-to-string-tag.js} +0 -0
  188. package/modules/$.species-constructor.js +7 -7
  189. package/modules/$.string-at.js +5 -6
  190. package/modules/$.string-trim.js +17 -14
  191. package/modules/$.task.js +0 -1
  192. package/modules/$.to-primitive.js +12 -0
  193. package/modules/$.typed-array.js +345 -294
  194. package/modules/$.typed.js +36 -0
  195. package/modules/$.wks.js +2 -1
  196. package/modules/core.delay.js +2 -2
  197. package/modules/core.dict.js +20 -19
  198. package/modules/core.function.part.js +3 -4
  199. package/modules/core.is-iterable.js +1 -1
  200. package/modules/core.log.js +2 -2
  201. package/modules/core.object.classof.js +2 -2
  202. package/modules/core.object.define.js +3 -3
  203. package/modules/core.object.is-object.js +2 -2
  204. package/modules/core.object.make.js +4 -4
  205. package/modules/core.string.escape-html.js +9 -9
  206. package/modules/core.string.unescape-html.js +9 -9
  207. package/modules/es5.js +61 -60
  208. package/modules/es6.array.copy-within.js +3 -4
  209. package/modules/es6.array.fill.js +3 -3
  210. package/modules/es6.array.find-index.js +6 -6
  211. package/modules/es6.array.find.js +6 -6
  212. package/modules/es6.array.from.js +2 -2
  213. package/modules/es6.array.iterator.js +8 -8
  214. package/modules/es6.array.of.js +2 -2
  215. package/modules/es6.array.species.js +1 -1
  216. package/modules/es6.date.to-string.js +10 -0
  217. package/modules/es6.function.name.js +1 -1
  218. package/modules/es6.math.acosh.js +5 -5
  219. package/modules/es6.math.asinh.js +2 -2
  220. package/modules/es6.math.atanh.js +2 -2
  221. package/modules/es6.math.cbrt.js +3 -3
  222. package/modules/es6.math.clz32.js +2 -2
  223. package/modules/es6.math.cosh.js +3 -3
  224. package/modules/es6.math.expm1.js +2 -2
  225. package/modules/es6.math.fround.js +4 -4
  226. package/modules/es6.math.hypot.js +3 -3
  227. package/modules/es6.math.imul.js +3 -3
  228. package/modules/es6.math.log10.js +2 -2
  229. package/modules/es6.math.log1p.js +2 -2
  230. package/modules/es6.math.log2.js +2 -2
  231. package/modules/es6.math.sign.js +2 -2
  232. package/modules/es6.math.sinh.js +4 -4
  233. package/modules/es6.math.tanh.js +4 -4
  234. package/modules/es6.math.trunc.js +2 -2
  235. package/modules/es6.number.constructor.js +43 -29
  236. package/modules/es6.number.epsilon.js +2 -2
  237. package/modules/es6.number.is-finite.js +2 -2
  238. package/modules/es6.number.is-integer.js +2 -2
  239. package/modules/es6.number.is-nan.js +2 -2
  240. package/modules/es6.number.is-safe-integer.js +2 -2
  241. package/modules/es6.number.max-safe-integer.js +2 -2
  242. package/modules/es6.number.min-safe-integer.js +2 -2
  243. package/modules/es6.number.parse-float.js +2 -2
  244. package/modules/es6.number.parse-int.js +2 -2
  245. package/modules/es6.object.assign.js +2 -2
  246. package/modules/es6.object.is.js +2 -4
  247. package/modules/es6.object.set-prototype-of.js +2 -2
  248. package/modules/es6.object.to-string.js +1 -1
  249. package/modules/es6.promise.js +96 -66
  250. package/modules/es6.reflect.apply.js +5 -4
  251. package/modules/es6.reflect.construct.js +4 -3
  252. package/modules/es6.reflect.define-property.js +2 -2
  253. package/modules/es6.reflect.delete-property.js +2 -2
  254. package/modules/es6.reflect.enumerate.js +2 -2
  255. package/modules/es6.reflect.get-own-property-descriptor.js +2 -2
  256. package/modules/es6.reflect.get-prototype-of.js +2 -2
  257. package/modules/es6.reflect.get.js +2 -2
  258. package/modules/es6.reflect.has.js +2 -2
  259. package/modules/es6.reflect.is-extensible.js +2 -2
  260. package/modules/es6.reflect.own-keys.js +2 -2
  261. package/modules/es6.reflect.prevent-extensions.js +2 -2
  262. package/modules/es6.reflect.set-prototype-of.js +2 -2
  263. package/modules/es6.reflect.set.js +2 -2
  264. package/modules/es6.regexp.constructor.js +3 -3
  265. package/modules/es6.regexp.flags.js +1 -1
  266. package/modules/es6.string.code-point-at.js +3 -3
  267. package/modules/es6.string.ends-with.js +2 -2
  268. package/modules/es6.string.from-code-point.js +4 -4
  269. package/modules/es6.string.includes.js +4 -3
  270. package/modules/es6.string.raw.js +2 -2
  271. package/modules/es6.string.repeat.js +2 -2
  272. package/modules/es6.string.starts-with.js +2 -2
  273. package/modules/es6.symbol.js +17 -16
  274. package/modules/es6.typed.array-buffer.js +43 -0
  275. package/modules/es6.typed.data-view.js +4 -0
  276. package/modules/{es6.typed-arrays.float32-array.js → es6.typed.float32-array.js} +0 -0
  277. package/modules/{es6.typed-arrays.float64-array.js → es6.typed.float64-array.js} +0 -0
  278. package/modules/{es6.typed-arrays.int16-array.js → es6.typed.int16-array.js} +0 -0
  279. package/modules/{es6.typed-arrays.int32-array.js → es6.typed.int32-array.js} +0 -0
  280. package/modules/{es6.typed-arrays.int8-array.js → es6.typed.int8-array.js} +0 -0
  281. package/modules/{es6.typed-arrays.uint16-array.js → es6.typed.uint16-array.js} +0 -0
  282. package/modules/{es6.typed-arrays.uint32-array.js → es6.typed.uint32-array.js} +0 -0
  283. package/modules/{es6.typed-arrays.uint8-array.js → es6.typed.uint8-array.js} +0 -0
  284. package/modules/{es6.typed-arrays.uint8-clamped-array.js → es6.typed.uint8-clamped-array.js} +0 -0
  285. package/modules/es6.weak-map.js +2 -1
  286. package/modules/es7.array.includes.js +5 -3
  287. package/modules/es7.map.to-json.js +2 -2
  288. package/modules/es7.object.entries.js +2 -2
  289. package/modules/es7.object.get-own-property-descriptors.js +2 -2
  290. package/modules/es7.object.values.js +2 -2
  291. package/modules/es7.regexp.escape.js +4 -3
  292. package/modules/es7.set.to-json.js +2 -2
  293. package/modules/es7.string.at.js +5 -4
  294. package/modules/es7.string.pad-left.js +4 -3
  295. package/modules/es7.string.pad-right.js +4 -3
  296. package/modules/js.array.statics.js +4 -3
  297. package/modules/library/{$.unscope.js → $.add-to-unscopables.js} +0 -0
  298. package/modules/library/$.collection.js +21 -14
  299. package/modules/library/$.export.js +46 -0
  300. package/modules/library/{$.redef.js → $.redefine.js} +0 -0
  301. package/modules/library/$.set-species.js +13 -0
  302. package/modules/library/es6.date.to-string.js +0 -0
  303. package/modules/library/es6.regexp.constructor.js +1 -1
  304. package/modules/web.dom.iterable.js +2 -2
  305. package/modules/web.immediate.js +3 -3
  306. package/modules/web.timers.js +2 -2
  307. package/package.json +6 -6
  308. package/README.md +0 -1289
  309. package/library/modules/$.def.js +0 -47
  310. package/library/modules/$.mix.js +0 -5
  311. package/library/modules/$.species.js +0 -9
  312. package/library/modules/es6.typed-arrays.array-buffer.js +0 -33
  313. package/library/modules/es6.typed-arrays.data-view.js +0 -4
  314. package/modules/$.def.js +0 -42
  315. package/modules/$.mix.js +0 -5
  316. package/modules/$.species.js +0 -9
  317. package/modules/$.unscope.js +0 -6
  318. package/modules/es6.typed-arrays.array-buffer.js +0 -33
  319. package/modules/es6.typed-arrays.data-view.js +0 -4
  320. package/modules/library/$.def.js +0 -47
@@ -1,8 +1,8 @@
1
1
  // 20.2.2.9 Math.cbrt(x)
2
- var $def = require('./$.def')
3
- , sign = require('./$.sign');
2
+ var $export = require('./$.export')
3
+ , sign = require('./$.math-sign');
4
4
 
5
- $def($def.S, 'Math', {
5
+ $export($export.S, 'Math', {
6
6
  cbrt: function cbrt(x){
7
7
  return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
8
8
  }
@@ -1,7 +1,7 @@
1
1
  // 20.2.2.11 Math.clz32(x)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Math', {
4
+ $export($export.S, 'Math', {
5
5
  clz32: function clz32(x){
6
6
  return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
7
7
  }
@@ -1,8 +1,8 @@
1
1
  // 20.2.2.12 Math.cosh(x)
2
- var $def = require('./$.def')
3
- , exp = Math.exp;
2
+ var $export = require('./$.export')
3
+ , exp = Math.exp;
4
4
 
5
- $def($def.S, 'Math', {
5
+ $export($export.S, 'Math', {
6
6
  cosh: function cosh(x){
7
7
  return (exp(x = +x) + exp(-x)) / 2;
8
8
  }
@@ -1,4 +1,4 @@
1
1
  // 20.2.2.14 Math.expm1(x)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Math', {expm1: require('./$.expm1')});
4
+ $export($export.S, 'Math', {expm1: require('./$.math-expm1')});
@@ -1,7 +1,7 @@
1
1
  // 20.2.2.16 Math.fround(x)
2
- var $def = require('./$.def')
3
- , sign = require('./$.sign')
4
- , pow = Math.pow
2
+ var $export = require('./$.export')
3
+ , sign = require('./$.math-sign')
4
+ , pow = Math.pow
5
5
  , EPSILON = pow(2, -52)
6
6
  , EPSILON32 = pow(2, -23)
7
7
  , MAX32 = pow(2, 127) * (2 - EPSILON32)
@@ -12,7 +12,7 @@ var roundTiesToEven = function(n){
12
12
  };
13
13
 
14
14
 
15
- $def($def.S, 'Math', {
15
+ $export($export.S, 'Math', {
16
16
  fround: function fround(x){
17
17
  var $abs = Math.abs(x)
18
18
  , $sign = sign(x)
@@ -1,8 +1,8 @@
1
1
  // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
2
- var $def = require('./$.def')
3
- , abs = Math.abs;
2
+ var $export = require('./$.export')
3
+ , abs = Math.abs;
4
4
 
5
- $def($def.S, 'Math', {
5
+ $export($export.S, 'Math', {
6
6
  hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
7
7
  var sum = 0
8
8
  , i = 0
@@ -1,9 +1,9 @@
1
1
  // 20.2.2.18 Math.imul(x, y)
2
- var $def = require('./$.def')
3
- , $imul = Math.imul;
2
+ var $export = require('./$.export')
3
+ , $imul = Math.imul;
4
4
 
5
5
  // some WebKit versions fails with big numbers, some has wrong arity
6
- $def($def.S + $def.F * require('./$.fails')(function(){
6
+ $export($export.S + $export.F * require('./$.fails')(function(){
7
7
  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
8
8
  }), 'Math', {
9
9
  imul: function imul(x, y){
@@ -1,7 +1,7 @@
1
1
  // 20.2.2.21 Math.log10(x)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Math', {
4
+ $export($export.S, 'Math', {
5
5
  log10: function log10(x){
6
6
  return Math.log(x) / Math.LN10;
7
7
  }
@@ -1,4 +1,4 @@
1
1
  // 20.2.2.20 Math.log1p(x)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Math', {log1p: require('./$.log1p')});
4
+ $export($export.S, 'Math', {log1p: require('./$.math-log1p')});
@@ -1,7 +1,7 @@
1
1
  // 20.2.2.22 Math.log2(x)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Math', {
4
+ $export($export.S, 'Math', {
5
5
  log2: function log2(x){
6
6
  return Math.log(x) / Math.LN2;
7
7
  }
@@ -1,4 +1,4 @@
1
1
  // 20.2.2.28 Math.sign(x)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Math', {sign: require('./$.sign')});
4
+ $export($export.S, 'Math', {sign: require('./$.math-sign')});
@@ -1,10 +1,10 @@
1
1
  // 20.2.2.30 Math.sinh(x)
2
- var $def = require('./$.def')
3
- , expm1 = require('./$.expm1')
4
- , exp = Math.exp;
2
+ var $export = require('./$.export')
3
+ , expm1 = require('./$.math-expm1')
4
+ , exp = Math.exp;
5
5
 
6
6
  // V8 near Chromium 38 has a problem with very small numbers
7
- $def($def.S + $def.F * require('./$.fails')(function(){
7
+ $export($export.S + $export.F * require('./$.fails')(function(){
8
8
  return !Math.sinh(-2e-17) != -2e-17;
9
9
  }), 'Math', {
10
10
  sinh: function sinh(x){
@@ -1,9 +1,9 @@
1
1
  // 20.2.2.33 Math.tanh(x)
2
- var $def = require('./$.def')
3
- , expm1 = require('./$.expm1')
4
- , exp = Math.exp;
2
+ var $export = require('./$.export')
3
+ , expm1 = require('./$.math-expm1')
4
+ , exp = Math.exp;
5
5
 
6
- $def($def.S, 'Math', {
6
+ $export($export.S, 'Math', {
7
7
  tanh: function tanh(x){
8
8
  var a = expm1(x = +x)
9
9
  , b = expm1(-x);
@@ -1,7 +1,7 @@
1
1
  // 20.2.2.34 Math.trunc(x)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Math', {
4
+ $export($export.S, 'Math', {
5
5
  trunc: function trunc(it){
6
6
  return (it > 0 ? Math.floor : Math.ceil)(it);
7
7
  }
@@ -1,4 +1,4 @@
1
1
  // 20.1.2.1 Number.EPSILON
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Number', {EPSILON: Math.pow(2, -52)});
4
+ $export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
@@ -1,8 +1,8 @@
1
1
  // 20.1.2.2 Number.isFinite(number)
2
- var $def = require('./$.def')
2
+ var $export = require('./$.export')
3
3
  , _isFinite = require('./$.global').isFinite;
4
4
 
5
- $def($def.S, 'Number', {
5
+ $export($export.S, 'Number', {
6
6
  isFinite: function isFinite(it){
7
7
  return typeof it == 'number' && _isFinite(it);
8
8
  }
@@ -1,4 +1,4 @@
1
1
  // 20.1.2.3 Number.isInteger(number)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Number', {isInteger: require('./$.is-integer')});
4
+ $export($export.S, 'Number', {isInteger: require('./$.is-integer')});
@@ -1,7 +1,7 @@
1
1
  // 20.1.2.4 Number.isNaN(number)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Number', {
4
+ $export($export.S, 'Number', {
5
5
  isNaN: function isNaN(number){
6
6
  return number != number;
7
7
  }
@@ -1,9 +1,9 @@
1
1
  // 20.1.2.5 Number.isSafeInteger(number)
2
- var $def = require('./$.def')
2
+ var $export = require('./$.export')
3
3
  , isInteger = require('./$.is-integer')
4
4
  , abs = Math.abs;
5
5
 
6
- $def($def.S, 'Number', {
6
+ $export($export.S, 'Number', {
7
7
  isSafeInteger: function isSafeInteger(number){
8
8
  return isInteger(number) && abs(number) <= 0x1fffffffffffff;
9
9
  }
@@ -1,4 +1,4 @@
1
1
  // 20.1.2.6 Number.MAX_SAFE_INTEGER
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
4
+ $export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
@@ -1,4 +1,4 @@
1
1
  // 20.1.2.10 Number.MIN_SAFE_INTEGER
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
4
+ $export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
@@ -1,4 +1,4 @@
1
1
  // 20.1.2.12 Number.parseFloat(string)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Number', {parseFloat: parseFloat});
4
+ $export($export.S, 'Number', {parseFloat: parseFloat});
@@ -1,4 +1,4 @@
1
1
  // 20.1.2.13 Number.parseInt(string, radix)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S, 'Number', {parseInt: parseInt});
4
+ $export($export.S, 'Number', {parseInt: parseInt});
@@ -1,4 +1,4 @@
1
1
  // 19.1.3.1 Object.assign(target, source)
2
- var $def = require('./$.def');
2
+ var $export = require('./$.export');
3
3
 
4
- $def($def.S + $def.F, 'Object', {assign: require('./$.assign')});
4
+ $export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});
@@ -1,5 +1,3 @@
1
1
  // 19.1.3.10 Object.is(value1, value2)
2
- var $def = require('./$.def');
3
- $def($def.S, 'Object', {
4
- is: require('./$.same')
5
- });
2
+ var $export = require('./$.export');
3
+ $export($export.S, 'Object', {is: require('./$.same-value')});
@@ -1,3 +1,3 @@
1
1
  // 19.1.3.19 Object.setPrototypeOf(O, proto)
2
- var $def = require('./$.def');
3
- $def($def.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});
2
+ var $export = require('./$.export');
3
+ $export($export.S, 'Object', {setPrototypeOf: require('./$.set-proto').set});
@@ -4,32 +4,34 @@ var $ = require('./$')
4
4
  , global = require('./$.global')
5
5
  , ctx = require('./$.ctx')
6
6
  , classof = require('./$.classof')
7
- , $def = require('./$.def')
7
+ , $export = require('./$.export')
8
8
  , isObject = require('./$.is-object')
9
9
  , anObject = require('./$.an-object')
10
10
  , aFunction = require('./$.a-function')
11
11
  , strictNew = require('./$.strict-new')
12
12
  , forOf = require('./$.for-of')
13
13
  , setProto = require('./$.set-proto').set
14
- , same = require('./$.same')
15
- , species = require('./$.species')
14
+ , same = require('./$.same-value')
16
15
  , SPECIES = require('./$.wks')('species')
17
16
  , speciesConstructor = require('./$.species-constructor')
18
- , RECORD = require('./$.uid')('record')
19
17
  , asap = require('./$.microtask')
20
18
  , PROMISE = 'Promise'
21
19
  , process = global.process
22
20
  , isNode = classof(process) == 'process'
23
21
  , P = global[PROMISE]
22
+ , empty = function(){ /* empty */ }
24
23
  , Wrapper;
25
24
 
26
25
  var testResolve = function(sub){
27
- var test = new P(function(){});
28
- if(sub)test.constructor = Object;
29
- return P.resolve(test) === test;
26
+ var test = new P(empty), promise;
27
+ if(sub)test.constructor = function(exec){
28
+ exec(empty, empty);
29
+ };
30
+ (promise = P.resolve(test))['catch'](empty);
31
+ return promise === test;
30
32
  };
31
33
 
32
- var useNative = function(){
34
+ var USE_NATIVE = function(){
33
35
  var works = false;
34
36
  function P2(x){
35
37
  var self = new P(x);
@@ -45,7 +47,7 @@ var useNative = function(){
45
47
  works = false;
46
48
  }
47
49
  // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
48
- if(works && require('./$.support-desc')){
50
+ if(works && require('./$.descriptors')){
49
51
  var thenableThenGotten = false;
50
52
  P.resolve($.setDesc({}, 'then', {
51
53
  get: function(){ thenableThenGotten = true; }
@@ -57,9 +59,6 @@ var useNative = function(){
57
59
  }();
58
60
 
59
61
  // helpers
60
- var isPromise = function(it){
61
- return isObject(it) && (useNative ? classof(it) == 'Promise' : RECORD in it);
62
- };
63
62
  var sameConstructor = function(a, b){
64
63
  // library wrapper special case
65
64
  if(LIBRARY && a === P && b === Wrapper)return true;
@@ -73,6 +72,23 @@ var isThenable = function(it){
73
72
  var then;
74
73
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
75
74
  };
75
+ var PromiseCapability = function(C){
76
+ var resolve, reject;
77
+ this.promise = new C(function($$resolve, $$reject){
78
+ if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
79
+ resolve = $$resolve;
80
+ reject = $$reject;
81
+ });
82
+ this.resolve = aFunction(resolve),
83
+ this.reject = aFunction(reject)
84
+ };
85
+ var perform = function(exec){
86
+ try {
87
+ exec();
88
+ } catch(e){
89
+ return {error: e};
90
+ }
91
+ };
76
92
  var notify = function(record, isReject){
77
93
  if(record.n)return;
78
94
  record.n = true;
@@ -81,21 +97,23 @@ var notify = function(record, isReject){
81
97
  var value = record.v
82
98
  , ok = record.s == 1
83
99
  , i = 0;
84
- var run = function(react){
85
- var cb = ok ? react.ok : react.fail
86
- , ret, then;
100
+ var run = function(reaction){
101
+ var handler = ok ? reaction.ok : reaction.fail
102
+ , resolve = reaction.resolve
103
+ , reject = reaction.reject
104
+ , result, then;
87
105
  try {
88
- if(cb){
106
+ if(handler){
89
107
  if(!ok)record.h = true;
90
- ret = cb === true ? value : cb(value);
91
- if(ret === react.P){
92
- react.rej(TypeError('Promise-chain cycle'));
93
- } else if(then = isThenable(ret)){
94
- then.call(ret, react.res, react.rej);
95
- } else react.res(ret);
96
- } else react.rej(value);
97
- } catch(err){
98
- react.rej(err);
108
+ result = handler === true ? value : handler(value);
109
+ if(result === reaction.promise){
110
+ reject(TypeError('Promise-chain cycle'));
111
+ } else if(then = isThenable(result)){
112
+ then.call(result, resolve, reject);
113
+ } else resolve(result);
114
+ } else reject(value);
115
+ } catch(e){
116
+ reject(e);
99
117
  }
100
118
  };
101
119
  while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
@@ -117,14 +135,14 @@ var notify = function(record, isReject){
117
135
  });
118
136
  };
119
137
  var isUnhandled = function(promise){
120
- var record = promise[RECORD]
138
+ var record = promise._d
121
139
  , chain = record.a || record.c
122
140
  , i = 0
123
- , react;
141
+ , reaction;
124
142
  if(record.h)return false;
125
143
  while(chain.length > i){
126
- react = chain[i++];
127
- if(react.fail || !isUnhandled(react.P))return false;
144
+ reaction = chain[i++];
145
+ if(reaction.fail || !isUnhandled(reaction.promise))return false;
128
146
  } return true;
129
147
  };
130
148
  var $reject = function(value){
@@ -144,6 +162,7 @@ var $resolve = function(value){
144
162
  record.d = true;
145
163
  record = record.r || record; // unwrap
146
164
  try {
165
+ if(record.p === value)throw TypeError("Promise can't be resolved itself");
147
166
  if(then = isThenable(value)){
148
167
  asap(function(){
149
168
  var wrapper = {r: record, d: false}; // wrap
@@ -164,11 +183,11 @@ var $resolve = function(value){
164
183
  };
165
184
 
166
185
  // constructor polyfill
167
- if(!useNative){
186
+ if(!USE_NATIVE){
168
187
  // 25.4.3.1 Promise(executor)
169
188
  P = function Promise(executor){
170
189
  aFunction(executor);
171
- var record = {
190
+ var record = this._d = {
172
191
  p: strictNew(this, P, PROMISE), // <- promise
173
192
  c: [], // <- awaiting reactions
174
193
  a: undefined, // <- checked in isUnhandled reactions
@@ -178,29 +197,22 @@ if(!useNative){
178
197
  h: false, // <- handled rejection
179
198
  n: false // <- notify
180
199
  };
181
- this[RECORD] = record;
182
200
  try {
183
201
  executor(ctx($resolve, record, 1), ctx($reject, record, 1));
184
202
  } catch(err){
185
203
  $reject.call(record, err);
186
204
  }
187
205
  };
188
- require('./$.mix')(P.prototype, {
206
+ require('./$.redefine-all')(P.prototype, {
189
207
  // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
190
208
  then: function then(onFulfilled, onRejected){
191
- var react = {
192
- ok: typeof onFulfilled == 'function' ? onFulfilled : true,
193
- fail: typeof onRejected == 'function' ? onRejected : false
194
- };
195
- var promise = react.P = new (speciesConstructor(this, P))(function(res, rej){
196
- react.res = res;
197
- react.rej = rej;
198
- });
199
- aFunction(react.res);
200
- aFunction(react.rej);
201
- var record = this[RECORD];
202
- record.c.push(react);
203
- if(record.a)record.a.push(react);
209
+ var reaction = new PromiseCapability(speciesConstructor(this, P))
210
+ , promise = reaction.promise
211
+ , record = this._d;
212
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
213
+ reaction.fail = typeof onRejected == 'function' && onRejected;
214
+ record.c.push(reaction);
215
+ if(record.a)record.a.push(reaction);
204
216
  if(record.s)notify(record, false);
205
217
  return promise;
206
218
  },
@@ -211,53 +223,71 @@ if(!useNative){
211
223
  });
212
224
  }
213
225
 
214
- // export
215
- $def($def.G + $def.W + $def.F * !useNative, {Promise: P});
216
- require('./$.tag')(P, PROMISE);
217
- species(P);
218
- species(Wrapper = require('./$.core')[PROMISE]);
226
+ $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P});
227
+ require('./$.set-to-string-tag')(P, PROMISE);
228
+ require('./$.set-species')(PROMISE);
229
+ Wrapper = require('./$.core')[PROMISE];
219
230
 
220
231
  // statics
221
- $def($def.S + $def.F * !useNative, PROMISE, {
232
+ $export($export.S + $export.F * !USE_NATIVE, PROMISE, {
222
233
  // 25.4.4.5 Promise.reject(r)
223
234
  reject: function reject(r){
224
- return new this(function(res, rej){ rej(r); });
235
+ var capability = new PromiseCapability(this)
236
+ , $$reject = capability.reject;
237
+ $$reject(r);
238
+ return capability.promise;
225
239
  }
226
240
  });
227
- $def($def.S + $def.F * (!useNative || testResolve(true)), PROMISE, {
241
+ $export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, {
228
242
  // 25.4.4.6 Promise.resolve(x)
229
243
  resolve: function resolve(x){
230
- return isPromise(x) && sameConstructor(x.constructor, this)
231
- ? x : new this(function(res){ res(x); });
244
+ // instanceof instead of internal slot check because we should fix it without replacement native Promise core
245
+ if(x instanceof P && sameConstructor(x.constructor, this))return x;
246
+ var capability = new PromiseCapability(this)
247
+ , $$resolve = capability.resolve;
248
+ $$resolve(x);
249
+ return capability.promise;
232
250
  }
233
251
  });
234
- $def($def.S + $def.F * !(useNative && require('./$.iter-detect')(function(iter){
252
+ $export($export.S + $export.F * !(USE_NATIVE && require('./$.iter-detect')(function(iter){
235
253
  P.all(iter)['catch'](function(){});
236
254
  })), PROMISE, {
237
255
  // 25.4.4.1 Promise.all(iterable)
238
256
  all: function all(iterable){
239
- var C = getConstructor(this)
240
- , values = [];
241
- return new C(function(res, rej){
257
+ var C = getConstructor(this)
258
+ , capability = new PromiseCapability(C)
259
+ , resolve = capability.resolve
260
+ , reject = capability.reject
261
+ , values = [];
262
+ var abrupt = perform(function(){
242
263
  forOf(iterable, false, values.push, values);
243
264
  var remaining = values.length
244
265
  , results = Array(remaining);
245
266
  if(remaining)$.each.call(values, function(promise, index){
267
+ var alreadyCalled = false;
246
268
  C.resolve(promise).then(function(value){
269
+ if(alreadyCalled)return;
270
+ alreadyCalled = true;
247
271
  results[index] = value;
248
- --remaining || res(results);
249
- }, rej);
272
+ --remaining || resolve(results);
273
+ }, reject);
250
274
  });
251
- else res(results);
275
+ else resolve(results);
252
276
  });
277
+ if(abrupt)reject(abrupt.error);
278
+ return capability.promise;
253
279
  },
254
280
  // 25.4.4.4 Promise.race(iterable)
255
281
  race: function race(iterable){
256
- var C = getConstructor(this);
257
- return new C(function(res, rej){
282
+ var C = getConstructor(this)
283
+ , capability = new PromiseCapability(C)
284
+ , reject = capability.reject;
285
+ var abrupt = perform(function(){
258
286
  forOf(iterable, false, function(promise){
259
- C.resolve(promise).then(res, rej);
287
+ C.resolve(promise).then(capability.resolve, reject);
260
288
  });
261
289
  });
290
+ if(abrupt)reject(abrupt.error);
291
+ return capability.promise;
262
292
  }
263
293
  });
@@ -1,9 +1,10 @@
1
1
  // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
2
- var $def = require('./$.def')
3
- , _apply = Function.apply;
2
+ var $export = require('./$.export')
3
+ , _apply = Function.apply
4
+ , anObject = require('./$.an-object');
4
5
 
5
- $def($def.S, 'Reflect', {
6
+ $export($export.S, 'Reflect', {
6
7
  apply: function apply(target, thisArgument, argumentsList){
7
- return _apply.call(target, thisArgument, argumentsList);
8
+ return _apply.call(target, thisArgument, anObject(argumentsList));
8
9
  }
9
10
  });
@@ -1,6 +1,6 @@
1
1
  // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
2
2
  var $ = require('./$')
3
- , $def = require('./$.def')
3
+ , $export = require('./$.export')
4
4
  , aFunction = require('./$.a-function')
5
5
  , anObject = require('./$.an-object')
6
6
  , isObject = require('./$.is-object')
@@ -8,16 +8,17 @@ var $ = require('./$')
8
8
 
9
9
  // MS Edge supports only 2 arguments
10
10
  // FF Nightly sets third argument as `new.target`, but does not create `this` from it
11
- $def($def.S + $def.F * require('./$.fails')(function(){
11
+ $export($export.S + $export.F * require('./$.fails')(function(){
12
12
  function F(){}
13
13
  return !(Reflect.construct(function(){}, [], F) instanceof F);
14
14
  }), 'Reflect', {
15
15
  construct: function construct(Target, args /*, newTarget*/){
16
16
  aFunction(Target);
17
+ anObject(args);
17
18
  var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
18
19
  if(Target == newTarget){
19
20
  // w/o altered newTarget, optimization for 0-4 arguments
20
- if(args != undefined)switch(anObject(args).length){
21
+ switch(args.length){
21
22
  case 0: return new Target;
22
23
  case 1: return new Target(args[0]);
23
24
  case 2: return new Target(args[0], args[1]);
@@ -1,10 +1,10 @@
1
1
  // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
2
2
  var $ = require('./$')
3
- , $def = require('./$.def')
3
+ , $export = require('./$.export')
4
4
  , anObject = require('./$.an-object');
5
5
 
6
6
  // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
7
- $def($def.S + $def.F * require('./$.fails')(function(){
7
+ $export($export.S + $export.F * require('./$.fails')(function(){
8
8
  Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2});
9
9
  }), 'Reflect', {
10
10
  defineProperty: function defineProperty(target, propertyKey, attributes){