anchor.diff:  // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
   // for details. All rights reserved. Use of this source code is governed by a
   // BSD-style license that can be found in the LICENSE file.
  -
  -// @dart = 2.10
   
   library dart2js.js_helpers.impact;
   
  
positive.code:   void registerImpact(WorldImpactBuilder worldImpactBuilder,
        ElementEnvironment elementEnvironment) {
      for (FunctionEntity staticUse in staticUses) {
        assert(staticUse != null);
        worldImpactBuilder.registerStaticUse(StaticUse.implicitInvoke(staticUse));
      }
      for (FunctionEntity staticUse in globalUses) {
        assert(staticUse != null);
        worldImpactBuilder.registerStaticUse(StaticUse.implicitInvoke(staticUse));
      }
      for (Selector selector in dynamicUses) {
        assert(selector != null);
        worldImpactBuilder
            .registerDynamicUse(DynamicUse(selector, null, const []));
      }
  
negative.code:     return stringValues;
    }
  
    late final BackendImpact assertWithoutMessage = BackendImpact(
      staticUses: [_commonElements.assertHelper],
    );
  
    late final BackendImpact assertWithMessage = BackendImpact(
      staticUses: [_commonElements.assertTest, _commonElements.assertThrow],
    );
  
    late final BackendImpact asyncForIn = BackendImpact(
      staticUses: [_commonElements.streamIteratorConstructor],
    );
  
    late final BackendImpact stringInterpolation = BackendImpact(
      dynamicUses: [Selectors.toString_],
      staticUses: [_commonElements.stringInterpolationHelper],
      otherImpacts: [_needsString('Strings are created.')],
    );
  
    late final BackendImpact stringJuxtaposition =
        _needsString('String.concat is used.');
  
    BackendImpact get nullLiteral => nullValue;
  
  