anchor.diff:  }
   
   class FunctionBodyRewriter extends CloningVisitor {
  -  FunctionBodyRewriter(originalTreeElements) : super(originalTreeElements);
  +  final Compiler compiler;
  +
  +  FunctionBodyRewriter(this.compiler, originalTreeElements)
  +      : super(originalTreeElements);
   
     visitFunctionExpression(FunctionExpression node) {
  -    shouldOmit(Statement statement) => statement is EmptyStatement;
  +    shouldOmit(Statement statement) {
  +      if (statement is EmptyStatement) return true;
  +      if (statement is ExpressionStatement) {
  +        Send send = statement.expression.asSend();
  +        if (send !== null) {
  +          Element element = originalTreeElements[send];
  +          if (REMOVE_ASSERTS && element === compiler.assertMethod) {
  +            return true;
  +          }
  +        }
  +      }
  +      return false;
  +    }
   
       rewriteBody(Statement body) {
         if (body is !Block) return visit(body);
  
positive.code: // 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.
  
  class ElementAst {
    final Node ast;
    final TreeElements treeElements;
  
    ElementAst(this.ast, this.treeElements);
  
    factory ElementAst.rewrite(ast, treeElements) {
      final rewriter = new FunctionBodyRewriter(treeElements);
      return new ElementAst(rewriter.visit(ast), rewriter.cloneTreeElements);
    }
  
  
negative.code:     resolvedElements.forEach((element, treeElements) {
        if (!shouldOutput(element)) return;
  
        var elementAst = new ElementAst.rewrite(compiler, parse(element), treeElements);
        if (element.isField()) {
          final list = (element as VariableElement).variables;
          elementAst = elementAsts.putIfAbsent(
  