@@ -417,32 +417,35 @@ helpers.extend(Chart.prototype, /** @lends Chart */ {
417417 buildOrUpdateControllers : function ( ) {
418418 var me = this ;
419419 var newControllers = [ ] ;
420+ var datasets = me . data . datasets ;
421+ var i , ilen ;
420422
421- helpers . each ( me . data . datasets , function ( dataset , datasetIndex ) {
422- var meta = me . getDatasetMeta ( datasetIndex ) ;
423+ for ( i = 0 , ilen = datasets . length ; i < ilen ; i ++ ) {
424+ var dataset = datasets [ i ] ;
425+ var meta = me . getDatasetMeta ( i ) ;
423426 var type = dataset . type || me . config . type ;
424427
425428 if ( meta . type && meta . type !== type ) {
426- me . destroyDatasetMeta ( datasetIndex ) ;
427- meta = me . getDatasetMeta ( datasetIndex ) ;
429+ me . destroyDatasetMeta ( i ) ;
430+ meta = me . getDatasetMeta ( i ) ;
428431 }
429432 meta . type = type ;
430433 meta . order = dataset . order || 0 ;
431- meta . index = datasetIndex ;
434+ meta . index = i ;
432435
433436 if ( meta . controller ) {
434- meta . controller . updateIndex ( datasetIndex ) ;
437+ meta . controller . updateIndex ( i ) ;
435438 meta . controller . linkScales ( ) ;
436439 } else {
437440 var ControllerClass = controllers [ meta . type ] ;
438441 if ( ControllerClass === undefined ) {
439442 throw new Error ( '"' + meta . type + '" is not a chart type.' ) ;
440443 }
441444
442- meta . controller = new ControllerClass ( me , datasetIndex ) ;
445+ meta . controller = new ControllerClass ( me , i ) ;
443446 newControllers . push ( meta . controller ) ;
444447 }
445- } , me ) ;
448+ }
446449
447450 return newControllers ;
448451 } ,
@@ -468,6 +471,7 @@ helpers.extend(Chart.prototype, /** @lends Chart */ {
468471
469472 update : function ( config ) {
470473 var me = this ;
474+ var i , ilen ;
471475
472476 if ( ! config || typeof config !== 'object' ) {
473477 // backwards compatibility
@@ -494,9 +498,9 @@ helpers.extend(Chart.prototype, /** @lends Chart */ {
494498 var newControllers = me . buildOrUpdateControllers ( ) ;
495499
496500 // Make sure all dataset controllers have correct meta data counts
497- helpers . each ( me . data . datasets , function ( dataset , datasetIndex ) {
498- me . getDatasetMeta ( datasetIndex ) . controller . buildOrUpdateElements ( ) ;
499- } , me ) ;
501+ for ( i = 0 , ilen = me . data . datasets . length ; i < ilen ; i ++ ) {
502+ me . getDatasetMeta ( i ) . controller . buildOrUpdateElements ( ) ;
503+ }
500504
501505 me . updateLayout ( ) ;
502506
0 commit comments