@@ -23,23 +23,25 @@ export function stepped(opts) {
2323
2424 const dir = scaleX . dir * ( scaleX . ori == 0 ? 1 : - 1 ) ;
2525
26- idx0 = align === - 1 ? idx0 : nonNullIdx ( dataY , idx0 , idx1 , 1 ) ;
27- idx1 = align === 1 ? idx1 : nonNullIdx ( dataY , idx0 , idx1 , - 1 ) ;
26+ let lftIdx = align === - 1 ? idx0 : nonNullIdx ( dataY , idx0 , idx1 , 1 ) ;
27+ let rgtIdx = align === 1 ? idx1 : nonNullIdx ( dataY , idx0 , idx1 , - 1 ) ;
2828
29- let prevYPos = pixelForY ( dataY [ dir == 1 ? idx0 : idx1 ] ) ;
30- let firstXPos = pixelForX ( dataX [ dir == 1 ? idx0 : idx1 ] ) ;
29+ let prevYPos = pixelForY ( dataY [ dir == 1 ? lftIdx : rgtIdx ] ) ;
30+ let firstXPos = pixelForX ( dataX [ dir == 1 ? lftIdx : rgtIdx ] ) ;
3131 let prevXPos = firstXPos ;
3232
3333 lineTo ( stroke , firstXPos , yDim + yOff )
3434 lineTo ( stroke , firstXPos , prevYPos ) ;
3535
36- for ( let i = dir == 1 ? idx0 : idx1 ; i >= idx0 && i <= idx1 ; i += dir ) {
36+ for ( let i = dir == 1 ? lftIdx : rgtIdx ; i >= lftIdx && i <= rgtIdx ; i += dir ) {
3737 let yVal1 = dataY [ i ] ;
3838
39- if ( yVal1 == null )
39+ let x1 = pixelForX ( dataX [ i ] ) ;
40+
41+ if ( yVal1 == null && i < rgtIdx ) {
4042 continue ;
43+ }
4144
42- let x1 = pixelForX ( dataX [ i ] ) ;
4345 let y1 = pixelForY ( yVal1 ) ;
4446
4547 if ( align == 1 )
0 commit comments