@@ -2461,6 +2461,15 @@ function getDiffFlags(oldContainer, newContainer, outerparts, opts) {
2461
2461
var wasArray = Array . isArray ( oldVal ) ;
2462
2462
var nowArray = Array . isArray ( newVal ) ;
2463
2463
2464
+ // hack for traces that modify the data in supplyDefaults, like
2465
+ // converting 1D to 2D arrays, which will always create new objects
2466
+ if ( wasArray && nowArray ) {
2467
+ var inputKey = '_input_' + key ;
2468
+ var oldValIn = oldContainer [ inputKey ] ;
2469
+ var newValIn = newContainer [ inputKey ] ;
2470
+ if ( Array . isArray ( oldValIn ) && oldValIn === newValIn ) continue ;
2471
+ }
2472
+
2464
2473
if ( newVal === undefined ) {
2465
2474
if ( canBeDataArray && wasArray ) flags . calc = true ;
2466
2475
else changed ( ) ;
@@ -2502,12 +2511,6 @@ function getDiffFlags(oldContainer, newContainer, outerparts, opts) {
2502
2511
}
2503
2512
else if ( canBeDataArray ) {
2504
2513
if ( wasArray && nowArray ) {
2505
- // hack for traces that modify the data in supplyDefaults, like
2506
- // converting 1D to 2D arrays, which will always create new objects
2507
- var inputKey = '_input_' + key ;
2508
- var oldValIn = oldContainer [ inputKey ] ;
2509
- var newValIn = newContainer [ inputKey ] ;
2510
- if ( Array . isArray ( oldValIn ) && oldValIn === newValIn ) continue ;
2511
2514
2512
2515
// don't try to diff two data arrays. If immutable we know the data changed,
2513
2516
// if not, assume it didn't and let `layout.datarevision` tell us if it did
0 commit comments