anchor.diff:    /**
      * If the given [expression] is not `null`, serialize it as an
      * [UnlinkedExecutableBuilder], otherwise return `null`.
  +   *
  +   * If [serializeBodyExpr] is `true`, then the initializer expression is stored
  +   * in [UnlinkedExecutableBuilder.bodyExpr].
      */
     UnlinkedExecutableBuilder serializeInitializerFunction(
  -      Expression expression) {
  +      Expression expression, bool serializeBodyExpr) {
       if (expression == null) {
         return null;
       }
       UnlinkedExecutableBuilder initializer =
           new UnlinkedExecutableBuilder(nameOffset: expression.offset);
  -    serializeFunctionBody(initializer, null, expression);
  +    serializeFunctionBody(initializer, null, expression, serializeBodyExpr);
       initializer.inferredReturnTypeSlot = assignSlot();
       return initializer;
     }
  
positive.code:     b.documentationComment = serializeDocumentation(node.documentationComment);
      b.annotations = serializeAnnotations(node.metadata);
      b.codeRange = serializeCodeRange(node);
      Map<int, int> localClosureIndexMap = _withLocalClosureIndexMap(() {
        serializeFunctionBody(b, node.initializers, node.body);
      });
      if (node.constKeyword != null) {
        Set<String> constructorParameterNames =
            node.parameters.parameters.map((p) => p.identifier.name).toSet();
  
negative.code:     }
      b.visibleOffset = enclosingBlock?.offset;
      b.visibleLength = enclosingBlock?.length;
      serializeFunctionBody(b, null, body, false);
      scopes.removeLast();
      assert(scopes.length == oldScopesLength);
      return b;
  