anchor.diff:  
   @pragma('vm:entry-point')
   // ignore: unused_element
  -_LocaleClosure _getLocaleClosure() => _localeClosure;
  -
  -@pragma('vm:entry-point')
  -// ignore: unused_element
  -void _updateLocales(List<String> locales) {
  +_LocaleClosure/*?*/ _getLocaleClosure() => _localeClosure;
  +
  +@pragma('vm:entry-point')
  +// ignore: unused_element
  +void _updateLocales(List<String/*!*/>/*!*/ locales) {
     const int stringsPerLocale = 4;
     final int numLocales = locales.length ~/ stringsPerLocale;
     window._locales = List<Locale>(numLocales);
  
positive.code: 
  @pragma('vm:entry-point')
  // ignore: unused_element
  void _updateUserSettingsData(String jsonData) {
    final Map<String, dynamic> data = json.decode(jsonData) as Map<String, dynamic>;
    if (data.isEmpty) {
      return;
  
negative.code: }
  
  
  void _updateTextScaleFactor(double/*!*/ textScaleFactor) {
    window._textScaleFactor = textScaleFactor;
    _invoke(window.onTextScaleFactorChanged, window._onTextScaleFactorChangedZone);
  }
  
  void _updateAlwaysUse24HourFormat(bool/*!*/ alwaysUse24HourFormat) {
    window._alwaysUse24HourFormat = alwaysUse24HourFormat;
  }
  
  void _updatePlatformBrightness(String/*!*/ brightnessName) {
    window._platformBrightness = brightnessName == 'dark' ? Brightness.dark : Brightness.light;
    _invoke(window.onPlatformBrightnessChanged, window._onPlatformBrightnessChangedZone);
  }
  
  @pragma('vm:entry-point')
  // ignore: unused_element
  void _updateSemanticsEnabled(bool/*!*/ enabled) {
    window._semanticsEnabled = enabled;
    _invoke(window.onSemanticsEnabledChanged, window._onSemanticsEnabledChangedZone);
  }
  
  @pragma('vm:entry-point')
  // ignore: unused_element
  void _updateAccessibilityFeatures(int/*!*/ values) {
    final AccessibilityFeatures newFeatures = AccessibilityFeatures._(values);
    if (newFeatures == window._accessibilityFeatures)
      return;
  