1
0
Fork 0

Calc: Handle null values

`null' is used to represent a truncation in a diff.

* src/calc/Calc.js (_each): Proper null handling.
master
Mike Gerwitz 2017-08-10 14:46:01 -04:00
parent 9b3ca7a90a
commit 642dd8deb3
1 changed files with 17 additions and 1 deletions

View File

@ -27,7 +27,14 @@ function _each( data, value, callback )
for ( var i = 0; i < data_len; i++ ) for ( var i = 0; i < data_len; i++ )
{ {
// index removals are null
if ( data[ i ] === null )
{
continue;
}
cur_val = ( value[ i ] !== undefined ) ? value[ i ] : cur_val; cur_val = ( value[ i ] !== undefined ) ? value[ i ] : cur_val;
result.push( callback( data[ i ], cur_val, i ) ); result.push( callback( data[ i ], cur_val, i ) );
} }
@ -51,6 +58,11 @@ exports.join = function( data, value )
{ {
return _each( data, value, function( arr, delimiter ) return _each( data, value, function( arr, delimiter )
{ {
if ( !Array.isArray( arr ) )
{
arr = [];
}
return arr.join( delimiter ); return arr.join( delimiter );
}); });
}; };
@ -121,7 +133,11 @@ exports.length = function( data )
break; break;
} }
result.push( item.length ); var len = ( item[ item.length - 1 ] === null )
? item.length - 1
: item.length;
result.push( len );
} }
return result; return result;