sceneValuesEqual function

bool sceneValuesEqual(
  1. Object? a,
  2. Object? b
)

Whether two property values are the same value.

== is not enough, because two property kinds are COLLECTIONS and two lists — or two maps — with the same contents are not == each other. Every place that asks "is this what the style says" or "is this still the default" goes through here, or an inherited paint stack reads as an override — which is exactly what it did before this existed.

Implementation

bool sceneValuesEqual(Object? a, Object? b) => switch ((a, b)) {
  (List x, List y) => _sameList(x, y),
  (Map x, Map y) => _sameMap(x, y),
  _ => a == b,
};