@@ -6,14 +6,16 @@ var lengthOfArrayLike = require('../internals/length-of-array-like');
66
77var $TypeError = TypeError ;
88
9+ var REDUCE_EMPTY = 'Reduce of empty array with no initial value' ;
10+
911// `Array.prototype.{ reduce, reduceRight }` methods implementation
1012var createMethod = function ( IS_RIGHT ) {
1113return function ( that , callbackfn , argumentsLength , memo ) {
1214var O = toObject ( that ) ;
1315var self = IndexedObject ( O ) ;
1416var length = lengthOfArrayLike ( O ) ;
1517aCallable ( callbackfn ) ;
16- if ( length === 0 && argumentsLength < 2 ) throw new $TypeError ( 'Reduce of empty array with no initial value' ) ;
18+ if ( length === 0 && argumentsLength < 2 ) throw new $TypeError ( REDUCE_EMPTY ) ;
1719var index = IS_RIGHT ?length - 1 :0 ;
1820var i = IS_RIGHT ?- 1 :1 ;
1921if ( argumentsLength < 2 ) while ( true ) {
@@ -24,7 +26,7 @@ var createMethod = function (IS_RIGHT) {
2426}
2527index += i ;
2628if ( IS_RIGHT ?index < 0 :length <= index ) {
27- throw new $TypeError ( 'Reduce of empty array with no initial value' ) ;
29+ throw new $TypeError ( REDUCE_EMPTY ) ;
2830}
2931}
3032for ( ; IS_RIGHT ?index >= 0 :length > index ; index += i ) if ( index in self ) {