@@ -3159,8 +3159,8 @@ function d3_svg_arcEndAngle(d) {
31593159function d3_svg_line ( projection ) {
31603160 var x = d3_svg_lineX ,
31613161 y = d3_svg_lineY ,
3162- interpolate = "linear" ,
3163- interpolator = d3_svg_lineInterpolators [ interpolate ] ,
3162+ interpolate = d3_svg_lineInterpolatorDefault ,
3163+ interpolator = d3_svg_lineInterpolators . get ( interpolate ) ,
31643164 tension = .7 ;
31653165
31663166 function line ( d ) {
@@ -3181,7 +3181,8 @@ function d3_svg_line(projection) {
31813181
31823182 line . interpolate = function ( v ) {
31833183 if ( ! arguments . length ) return interpolate ;
3184- interpolator = d3_svg_lineInterpolators [ interpolate = v ] ;
3184+ if ( ! d3_svg_lineInterpolators . has ( v += "" ) ) v = d3_svg_lineInterpolatorDefault ;
3185+ interpolator = d3_svg_lineInterpolators . get ( interpolate = v ) ;
31853186 return line ;
31863187 } ;
31873188
@@ -3234,8 +3235,10 @@ function d3_svg_lineY(d) {
32343235 return d [ 1 ] ;
32353236}
32363237
3238+ var d3_svg_lineInterpolatorDefault = "linear" ;
3239+
32373240// The various interpolators supported by the `line` class.
3238- var d3_svg_lineInterpolators = {
3241+ var d3_svg_lineInterpolators = d3 . map ( {
32393242 "linear" : d3_svg_lineLinear ,
32403243 "step-before" : d3_svg_lineStepBefore ,
32413244 "step-after" : d3_svg_lineStepAfter ,
@@ -3247,7 +3250,7 @@ var d3_svg_lineInterpolators = {
32473250 "cardinal-open" : d3_svg_lineCardinalOpen ,
32483251 "cardinal-closed" : d3_svg_lineCardinalClosed ,
32493252 "monotone" : d3_svg_lineMonotone
3250- } ;
3253+ } ) ;
32513254
32523255// Linear interpolation; generates "L" commands.
32533256function d3_svg_lineLinear ( points ) {
@@ -3650,7 +3653,8 @@ function d3_svg_area(projection) {
36503653
36513654 area . interpolate = function ( x ) {
36523655 if ( ! arguments . length ) return interpolate ;
3653- i0 = d3_svg_lineInterpolators [ interpolate = x ] ;
3656+ if ( ! d3_svg_lineInterpolators . has ( x += "" ) ) x = d3_svg_lineInterpolatorDefault ;
3657+ i0 = d3_svg_lineInterpolators . get ( interpolate = x ) ;
36543658 i1 = i0 . reverse || i0 ;
36553659 return area ;
36563660 } ;
0 commit comments