anchor.diff:      }
       // This is last so that [tooDifficult] is always updated.
       if (!registerNode()) return;
  +  }
  +
  +  @override
  +  visitAssertInitializer(ir.AssertInitializer node) {
  +    if (!enableUserAssertions) return;
  +    node.visitChildren(this);
  +  }
  +
  +  @override
  +  visitAssertStatement(ir.AssertStatement node) {
  +    if (!enableUserAssertions) return;
  +    defaultNode(node);
     }
   }
   
  
positive.code:   static String cannotBeInlinedReason(KernelToElementMapForBuilding elementMap,
        FunctionEntity function, int maxInliningNodes,
        {bool allowLoops: false, bool enableUserAssertions: null}) {
      InlineWeeder visitor = new InlineWeeder(maxInliningNodes, allowLoops);
      ir.FunctionNode node = getFunctionNode(elementMap, function);
      node.accept(visitor);
      if (function.isConstructor) {
  
negative.code: 
    final int maxInliningNodes; // `null` for unbounded.
    final bool allowLoops;
    final bool enableUserAssertions;
  
    bool seenReturn = false;
    int nodeCount = 0;
    String tooDifficultReason;
    bool get tooDifficult => tooDifficultReason != null;
  
    InlineWeeder(
        this.maxInliningNodes, this.allowLoops, this.enableUserAssertions);
  
    bool registerNode() {
      if (maxInliningNodes == null) return true;
  