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.
- package/CHANGELOG.md +408 -386
- package/bower.json +1 -1
- package/build/Gruntfile.ls +0 -5
- package/build/build.ls +24 -22
- package/build/index.js +2 -2
- package/client/core.js +1412 -1272
- package/client/core.min.js +4 -4
- package/client/core.min.js.map +1 -1
- package/client/library.js +1220 -1122
- package/client/library.min.js +4 -4
- package/client/library.min.js.map +1 -1
- package/client/shim.js +1304 -1164
- package/client/shim.min.js +4 -4
- package/client/shim.min.js.map +1 -1
- package/es6/symbol.js +1 -0
- package/fn/symbol/index.js +1 -0
- package/library/es6/symbol.js +1 -0
- package/library/fn/symbol/index.js +1 -0
- package/library/modules/{$.unscope.js → $.add-to-unscopables.js} +0 -0
- package/library/modules/$.array-fill.js +1 -1
- package/library/modules/$.array-methods.js +2 -12
- package/library/modules/$.array-species-create.js +16 -0
- package/library/modules/$.buffer.js +278 -285
- package/library/modules/$.collection-strong.js +9 -8
- package/library/modules/$.collection-weak.js +16 -15
- package/library/modules/$.collection.js +21 -14
- package/library/modules/$.core.js +1 -1
- package/library/modules/{$.support-desc.js → $.descriptors.js} +0 -0
- package/library/modules/$.export.js +46 -0
- package/library/modules/$.fails-is-regexp.js +2 -1
- package/library/modules/$.fix-re-wks.js +10 -5
- package/library/modules/$.flags.js +5 -5
- package/library/modules/$.get-names.js +3 -3
- package/library/modules/$.hide.js +1 -1
- package/library/modules/$.is-array-iter.js +5 -3
- package/library/modules/$.iter-create.js +5 -3
- package/library/modules/$.iter-define.js +46 -30
- package/library/modules/$.iter-detect.js +8 -6
- package/library/modules/{$.expm1.js → $.math-expm1.js} +0 -0
- package/library/modules/{$.log1p.js → $.math-log1p.js} +0 -0
- package/library/modules/{$.sign.js → $.math-sign.js} +0 -0
- package/library/modules/$.microtask.js +9 -2
- package/library/modules/{$.assign.js → $.object-assign.js} +0 -0
- package/library/modules/$.object-sap.js +6 -4
- package/library/modules/$.redefine-all.js +5 -0
- package/library/modules/{$.redef.js → $.redefine.js} +0 -0
- package/library/modules/{$.same.js → $.same-value.js} +1 -0
- package/library/modules/$.set-species.js +13 -0
- package/library/modules/{$.tag.js → $.set-to-string-tag.js} +0 -0
- package/library/modules/$.species-constructor.js +7 -7
- package/library/modules/$.string-at.js +5 -6
- package/library/modules/$.string-trim.js +17 -14
- package/library/modules/$.task.js +0 -1
- package/library/modules/$.to-primitive.js +12 -0
- package/library/modules/$.typed-array.js +345 -294
- package/library/modules/$.typed.js +36 -0
- package/library/modules/$.wks.js +2 -1
- package/library/modules/core.delay.js +2 -2
- package/library/modules/core.dict.js +20 -19
- package/library/modules/core.function.part.js +3 -4
- package/library/modules/core.is-iterable.js +1 -1
- package/library/modules/core.log.js +2 -2
- package/library/modules/core.object.classof.js +2 -2
- package/library/modules/core.object.define.js +3 -3
- package/library/modules/core.object.is-object.js +2 -2
- package/library/modules/core.object.make.js +4 -4
- package/library/modules/core.string.escape-html.js +9 -9
- package/library/modules/core.string.unescape-html.js +9 -9
- package/library/modules/es5.js +61 -60
- package/library/modules/es6.array.copy-within.js +3 -4
- package/library/modules/es6.array.fill.js +3 -3
- package/library/modules/es6.array.find-index.js +6 -6
- package/library/modules/es6.array.find.js +6 -6
- package/library/modules/es6.array.from.js +2 -2
- package/library/modules/es6.array.iterator.js +8 -8
- package/library/modules/es6.array.of.js +2 -2
- package/library/modules/es6.array.species.js +1 -1
- package/library/modules/es6.date.to-string.js +0 -0
- package/library/modules/es6.math.acosh.js +5 -5
- package/library/modules/es6.math.asinh.js +2 -2
- package/library/modules/es6.math.atanh.js +2 -2
- package/library/modules/es6.math.cbrt.js +3 -3
- package/library/modules/es6.math.clz32.js +2 -2
- package/library/modules/es6.math.cosh.js +3 -3
- package/library/modules/es6.math.expm1.js +2 -2
- package/library/modules/es6.math.fround.js +4 -4
- package/library/modules/es6.math.hypot.js +3 -3
- package/library/modules/es6.math.imul.js +3 -3
- package/library/modules/es6.math.log10.js +2 -2
- package/library/modules/es6.math.log1p.js +2 -2
- package/library/modules/es6.math.log2.js +2 -2
- package/library/modules/es6.math.sign.js +2 -2
- package/library/modules/es6.math.sinh.js +4 -4
- package/library/modules/es6.math.tanh.js +4 -4
- package/library/modules/es6.math.trunc.js +2 -2
- package/library/modules/es6.number.epsilon.js +2 -2
- package/library/modules/es6.number.is-finite.js +2 -2
- package/library/modules/es6.number.is-integer.js +2 -2
- package/library/modules/es6.number.is-nan.js +2 -2
- package/library/modules/es6.number.is-safe-integer.js +2 -2
- package/library/modules/es6.number.max-safe-integer.js +2 -2
- package/library/modules/es6.number.min-safe-integer.js +2 -2
- package/library/modules/es6.number.parse-float.js +2 -2
- package/library/modules/es6.number.parse-int.js +2 -2
- package/library/modules/es6.object.assign.js +2 -2
- package/library/modules/es6.object.is.js +2 -4
- package/library/modules/es6.object.set-prototype-of.js +2 -2
- package/library/modules/es6.promise.js +96 -66
- package/library/modules/es6.reflect.apply.js +5 -4
- package/library/modules/es6.reflect.construct.js +4 -3
- package/library/modules/es6.reflect.define-property.js +2 -2
- package/library/modules/es6.reflect.delete-property.js +2 -2
- package/library/modules/es6.reflect.enumerate.js +2 -2
- package/library/modules/es6.reflect.get-own-property-descriptor.js +2 -2
- package/library/modules/es6.reflect.get-prototype-of.js +2 -2
- package/library/modules/es6.reflect.get.js +2 -2
- package/library/modules/es6.reflect.has.js +2 -2
- package/library/modules/es6.reflect.is-extensible.js +2 -2
- package/library/modules/es6.reflect.own-keys.js +2 -2
- package/library/modules/es6.reflect.prevent-extensions.js +2 -2
- package/library/modules/es6.reflect.set-prototype-of.js +2 -2
- package/library/modules/es6.reflect.set.js +2 -2
- package/library/modules/es6.regexp.constructor.js +1 -1
- package/library/modules/es6.string.code-point-at.js +3 -3
- package/library/modules/es6.string.ends-with.js +2 -2
- package/library/modules/es6.string.from-code-point.js +4 -4
- package/library/modules/es6.string.includes.js +4 -3
- package/library/modules/es6.string.raw.js +2 -2
- package/library/modules/es6.string.repeat.js +2 -2
- package/library/modules/es6.string.starts-with.js +2 -2
- package/library/modules/es6.symbol.js +17 -16
- package/library/modules/es6.typed.array-buffer.js +43 -0
- package/library/modules/es6.typed.data-view.js +4 -0
- package/library/modules/{es6.typed-arrays.float32-array.js → es6.typed.float32-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.float64-array.js → es6.typed.float64-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.int16-array.js → es6.typed.int16-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.int32-array.js → es6.typed.int32-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.int8-array.js → es6.typed.int8-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.uint16-array.js → es6.typed.uint16-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.uint32-array.js → es6.typed.uint32-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.uint8-array.js → es6.typed.uint8-array.js} +0 -0
- package/library/modules/{es6.typed-arrays.uint8-clamped-array.js → es6.typed.uint8-clamped-array.js} +0 -0
- package/library/modules/es6.weak-map.js +2 -1
- package/library/modules/es7.array.includes.js +5 -3
- package/library/modules/es7.map.to-json.js +2 -2
- package/library/modules/es7.object.entries.js +2 -2
- package/library/modules/es7.object.get-own-property-descriptors.js +2 -2
- package/library/modules/es7.object.values.js +2 -2
- package/library/modules/es7.regexp.escape.js +4 -3
- package/library/modules/es7.set.to-json.js +2 -2
- package/library/modules/es7.string.at.js +5 -4
- package/library/modules/es7.string.pad-left.js +4 -3
- package/library/modules/es7.string.pad-right.js +4 -3
- package/library/modules/js.array.statics.js +4 -3
- package/library/modules/web.immediate.js +3 -3
- package/library/modules/web.timers.js +2 -2
- package/modules/$.add-to-unscopables.js +7 -0
- package/modules/$.array-fill.js +1 -1
- package/modules/$.array-methods.js +2 -12
- package/modules/$.array-species-create.js +16 -0
- package/modules/$.buffer.js +278 -285
- package/modules/$.collection-strong.js +9 -8
- package/modules/$.collection-weak.js +16 -15
- package/modules/$.collection.js +37 -25
- package/modules/$.core.js +1 -1
- package/modules/{$.support-desc.js → $.descriptors.js} +0 -0
- package/modules/$.export.js +41 -0
- package/modules/$.fails-is-regexp.js +2 -1
- package/modules/$.fix-re-wks.js +10 -5
- package/modules/$.flags.js +5 -5
- package/modules/$.get-names.js +3 -3
- package/modules/$.hide.js +1 -1
- package/modules/$.is-array-iter.js +5 -3
- package/modules/$.iter-create.js +5 -3
- package/modules/$.iter-define.js +46 -30
- package/modules/$.iter-detect.js +8 -6
- package/modules/{$.expm1.js → $.math-expm1.js} +0 -0
- package/modules/{$.log1p.js → $.math-log1p.js} +0 -0
- package/modules/{$.sign.js → $.math-sign.js} +0 -0
- package/modules/$.microtask.js +9 -2
- package/modules/{$.assign.js → $.object-assign.js} +0 -0
- package/modules/$.object-sap.js +6 -4
- package/modules/$.redefine-all.js +5 -0
- package/modules/{$.redef.js → $.redefine.js} +0 -0
- package/modules/{$.same.js → $.same-value.js} +1 -0
- package/modules/$.set-species.js +13 -0
- package/modules/{$.tag.js → $.set-to-string-tag.js} +0 -0
- package/modules/$.species-constructor.js +7 -7
- package/modules/$.string-at.js +5 -6
- package/modules/$.string-trim.js +17 -14
- package/modules/$.task.js +0 -1
- package/modules/$.to-primitive.js +12 -0
- package/modules/$.typed-array.js +345 -294
- package/modules/$.typed.js +36 -0
- package/modules/$.wks.js +2 -1
- package/modules/core.delay.js +2 -2
- package/modules/core.dict.js +20 -19
- package/modules/core.function.part.js +3 -4
- package/modules/core.is-iterable.js +1 -1
- package/modules/core.log.js +2 -2
- package/modules/core.object.classof.js +2 -2
- package/modules/core.object.define.js +3 -3
- package/modules/core.object.is-object.js +2 -2
- package/modules/core.object.make.js +4 -4
- package/modules/core.string.escape-html.js +9 -9
- package/modules/core.string.unescape-html.js +9 -9
- package/modules/es5.js +61 -60
- package/modules/es6.array.copy-within.js +3 -4
- package/modules/es6.array.fill.js +3 -3
- package/modules/es6.array.find-index.js +6 -6
- package/modules/es6.array.find.js +6 -6
- package/modules/es6.array.from.js +2 -2
- package/modules/es6.array.iterator.js +8 -8
- package/modules/es6.array.of.js +2 -2
- package/modules/es6.array.species.js +1 -1
- package/modules/es6.date.to-string.js +10 -0
- package/modules/es6.function.name.js +1 -1
- package/modules/es6.math.acosh.js +5 -5
- package/modules/es6.math.asinh.js +2 -2
- package/modules/es6.math.atanh.js +2 -2
- package/modules/es6.math.cbrt.js +3 -3
- package/modules/es6.math.clz32.js +2 -2
- package/modules/es6.math.cosh.js +3 -3
- package/modules/es6.math.expm1.js +2 -2
- package/modules/es6.math.fround.js +4 -4
- package/modules/es6.math.hypot.js +3 -3
- package/modules/es6.math.imul.js +3 -3
- package/modules/es6.math.log10.js +2 -2
- package/modules/es6.math.log1p.js +2 -2
- package/modules/es6.math.log2.js +2 -2
- package/modules/es6.math.sign.js +2 -2
- package/modules/es6.math.sinh.js +4 -4
- package/modules/es6.math.tanh.js +4 -4
- package/modules/es6.math.trunc.js +2 -2
- package/modules/es6.number.constructor.js +43 -29
- package/modules/es6.number.epsilon.js +2 -2
- package/modules/es6.number.is-finite.js +2 -2
- package/modules/es6.number.is-integer.js +2 -2
- package/modules/es6.number.is-nan.js +2 -2
- package/modules/es6.number.is-safe-integer.js +2 -2
- package/modules/es6.number.max-safe-integer.js +2 -2
- package/modules/es6.number.min-safe-integer.js +2 -2
- package/modules/es6.number.parse-float.js +2 -2
- package/modules/es6.number.parse-int.js +2 -2
- package/modules/es6.object.assign.js +2 -2
- package/modules/es6.object.is.js +2 -4
- package/modules/es6.object.set-prototype-of.js +2 -2
- package/modules/es6.object.to-string.js +1 -1
- package/modules/es6.promise.js +96 -66
- package/modules/es6.reflect.apply.js +5 -4
- package/modules/es6.reflect.construct.js +4 -3
- package/modules/es6.reflect.define-property.js +2 -2
- package/modules/es6.reflect.delete-property.js +2 -2
- package/modules/es6.reflect.enumerate.js +2 -2
- package/modules/es6.reflect.get-own-property-descriptor.js +2 -2
- package/modules/es6.reflect.get-prototype-of.js +2 -2
- package/modules/es6.reflect.get.js +2 -2
- package/modules/es6.reflect.has.js +2 -2
- package/modules/es6.reflect.is-extensible.js +2 -2
- package/modules/es6.reflect.own-keys.js +2 -2
- package/modules/es6.reflect.prevent-extensions.js +2 -2
- package/modules/es6.reflect.set-prototype-of.js +2 -2
- package/modules/es6.reflect.set.js +2 -2
- package/modules/es6.regexp.constructor.js +3 -3
- package/modules/es6.regexp.flags.js +1 -1
- package/modules/es6.string.code-point-at.js +3 -3
- package/modules/es6.string.ends-with.js +2 -2
- package/modules/es6.string.from-code-point.js +4 -4
- package/modules/es6.string.includes.js +4 -3
- package/modules/es6.string.raw.js +2 -2
- package/modules/es6.string.repeat.js +2 -2
- package/modules/es6.string.starts-with.js +2 -2
- package/modules/es6.symbol.js +17 -16
- package/modules/es6.typed.array-buffer.js +43 -0
- package/modules/es6.typed.data-view.js +4 -0
- package/modules/{es6.typed-arrays.float32-array.js → es6.typed.float32-array.js} +0 -0
- package/modules/{es6.typed-arrays.float64-array.js → es6.typed.float64-array.js} +0 -0
- package/modules/{es6.typed-arrays.int16-array.js → es6.typed.int16-array.js} +0 -0
- package/modules/{es6.typed-arrays.int32-array.js → es6.typed.int32-array.js} +0 -0
- package/modules/{es6.typed-arrays.int8-array.js → es6.typed.int8-array.js} +0 -0
- package/modules/{es6.typed-arrays.uint16-array.js → es6.typed.uint16-array.js} +0 -0
- package/modules/{es6.typed-arrays.uint32-array.js → es6.typed.uint32-array.js} +0 -0
- package/modules/{es6.typed-arrays.uint8-array.js → es6.typed.uint8-array.js} +0 -0
- package/modules/{es6.typed-arrays.uint8-clamped-array.js → es6.typed.uint8-clamped-array.js} +0 -0
- package/modules/es6.weak-map.js +2 -1
- package/modules/es7.array.includes.js +5 -3
- package/modules/es7.map.to-json.js +2 -2
- package/modules/es7.object.entries.js +2 -2
- package/modules/es7.object.get-own-property-descriptors.js +2 -2
- package/modules/es7.object.values.js +2 -2
- package/modules/es7.regexp.escape.js +4 -3
- package/modules/es7.set.to-json.js +2 -2
- package/modules/es7.string.at.js +5 -4
- package/modules/es7.string.pad-left.js +4 -3
- package/modules/es7.string.pad-right.js +4 -3
- package/modules/js.array.statics.js +4 -3
- package/modules/library/{$.unscope.js → $.add-to-unscopables.js} +0 -0
- package/modules/library/$.collection.js +21 -14
- package/modules/library/$.export.js +46 -0
- package/modules/library/{$.redef.js → $.redefine.js} +0 -0
- package/modules/library/$.set-species.js +13 -0
- package/modules/library/es6.date.to-string.js +0 -0
- package/modules/library/es6.regexp.constructor.js +1 -1
- package/modules/web.dom.iterable.js +2 -2
- package/modules/web.immediate.js +3 -3
- package/modules/web.timers.js +2 -2
- package/package.json +6 -6
- package/README.md +0 -1289
- package/library/modules/$.def.js +0 -47
- package/library/modules/$.mix.js +0 -5
- package/library/modules/$.species.js +0 -9
- package/library/modules/es6.typed-arrays.array-buffer.js +0 -33
- package/library/modules/es6.typed-arrays.data-view.js +0 -4
- package/modules/$.def.js +0 -42
- package/modules/$.mix.js +0 -5
- package/modules/$.species.js +0 -9
- package/modules/$.unscope.js +0 -6
- package/modules/es6.typed-arrays.array-buffer.js +0 -33
- package/modules/es6.typed-arrays.data-view.js +0 -4
- package/modules/library/$.def.js +0 -47
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// 20.2.2.9 Math.cbrt(x)
|
|
2
|
-
var $
|
|
3
|
-
, sign
|
|
2
|
+
var $export = require('./$.export')
|
|
3
|
+
, sign = require('./$.math-sign');
|
|
4
4
|
|
|
5
|
-
$
|
|
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 $
|
|
2
|
+
var $export = require('./$.export');
|
|
3
3
|
|
|
4
|
-
$
|
|
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 $
|
|
3
|
-
, exp
|
|
2
|
+
var $export = require('./$.export')
|
|
3
|
+
, exp = Math.exp;
|
|
4
4
|
|
|
5
|
-
$
|
|
5
|
+
$export($export.S, 'Math', {
|
|
6
6
|
cosh: function cosh(x){
|
|
7
7
|
return (exp(x = +x) + exp(-x)) / 2;
|
|
8
8
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// 20.2.2.16 Math.fround(x)
|
|
2
|
-
var $
|
|
3
|
-
, sign
|
|
4
|
-
, 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
|
-
$
|
|
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 $
|
|
3
|
-
, abs
|
|
2
|
+
var $export = require('./$.export')
|
|
3
|
+
, abs = Math.abs;
|
|
4
4
|
|
|
5
|
-
$
|
|
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 $
|
|
3
|
-
, $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
|
-
$
|
|
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,10 +1,10 @@
|
|
|
1
1
|
// 20.2.2.30 Math.sinh(x)
|
|
2
|
-
var $
|
|
3
|
-
, expm1
|
|
4
|
-
, 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
|
-
$
|
|
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 $
|
|
3
|
-
, expm1
|
|
4
|
-
, exp
|
|
2
|
+
var $export = require('./$.export')
|
|
3
|
+
, expm1 = require('./$.math-expm1')
|
|
4
|
+
, exp = Math.exp;
|
|
5
5
|
|
|
6
|
-
$
|
|
6
|
+
$export($export.S, 'Math', {
|
|
7
7
|
tanh: function tanh(x){
|
|
8
8
|
var a = expm1(x = +x)
|
|
9
9
|
, b = expm1(-x);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// 20.1.2.2 Number.isFinite(number)
|
|
2
|
-
var $
|
|
2
|
+
var $export = require('./$.export')
|
|
3
3
|
, _isFinite = require('./$.global').isFinite;
|
|
4
4
|
|
|
5
|
-
$
|
|
5
|
+
$export($export.S, 'Number', {
|
|
6
6
|
isFinite: function isFinite(it){
|
|
7
7
|
return typeof it == 'number' && _isFinite(it);
|
|
8
8
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// 20.1.2.5 Number.isSafeInteger(number)
|
|
2
|
-
var $
|
|
2
|
+
var $export = require('./$.export')
|
|
3
3
|
, isInteger = require('./$.is-integer')
|
|
4
4
|
, abs = Math.abs;
|
|
5
5
|
|
|
6
|
-
$
|
|
6
|
+
$export($export.S, 'Number', {
|
|
7
7
|
isSafeInteger: function isSafeInteger(number){
|
|
8
8
|
return isInteger(number) && abs(number) <= 0x1fffffffffffff;
|
|
9
9
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// 19.1.3.19 Object.setPrototypeOf(O, proto)
|
|
2
|
-
var $
|
|
3
|
-
$
|
|
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
|
-
, $
|
|
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(
|
|
28
|
-
if(sub)test.constructor =
|
|
29
|
-
|
|
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
|
|
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('./$.
|
|
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(
|
|
85
|
-
var
|
|
86
|
-
,
|
|
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(
|
|
106
|
+
if(handler){
|
|
89
107
|
if(!ok)record.h = true;
|
|
90
|
-
|
|
91
|
-
if(
|
|
92
|
-
|
|
93
|
-
} else if(then = isThenable(
|
|
94
|
-
then.call(
|
|
95
|
-
} else
|
|
96
|
-
} else
|
|
97
|
-
} catch(
|
|
98
|
-
|
|
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
|
|
138
|
+
var record = promise._d
|
|
121
139
|
, chain = record.a || record.c
|
|
122
140
|
, i = 0
|
|
123
|
-
,
|
|
141
|
+
, reaction;
|
|
124
142
|
if(record.h)return false;
|
|
125
143
|
while(chain.length > i){
|
|
126
|
-
|
|
127
|
-
if(
|
|
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(!
|
|
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('./$.
|
|
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
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
require('./$.
|
|
217
|
-
|
|
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
|
-
$
|
|
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
|
-
|
|
235
|
+
var capability = new PromiseCapability(this)
|
|
236
|
+
, $$reject = capability.reject;
|
|
237
|
+
$$reject(r);
|
|
238
|
+
return capability.promise;
|
|
225
239
|
}
|
|
226
240
|
});
|
|
227
|
-
$
|
|
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
|
-
|
|
231
|
-
|
|
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
|
-
$
|
|
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
|
|
240
|
-
,
|
|
241
|
-
|
|
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 ||
|
|
249
|
-
},
|
|
272
|
+
--remaining || resolve(results);
|
|
273
|
+
}, reject);
|
|
250
274
|
});
|
|
251
|
-
else
|
|
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
|
|
257
|
-
|
|
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(
|
|
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 $
|
|
3
|
-
, _apply
|
|
2
|
+
var $export = require('./$.export')
|
|
3
|
+
, _apply = Function.apply
|
|
4
|
+
, anObject = require('./$.an-object');
|
|
4
5
|
|
|
5
|
-
$
|
|
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
|
-
, $
|
|
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
|
-
$
|
|
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
|
-
|
|
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
|
-
, $
|
|
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
|
-
$
|
|
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){
|