anchor.diff:      allocateContext(lambda.functionNode);
       captureParameters();
   
  -    lambda.functionNode.body!.accept(this);
  +    visitStatement(lambda.functionNode.body!);
       _implicitReturn();
       b.end();
   
  
positive.code:         switchBackwardJumpInfos[node]!.defaultLoopLabel = b.loop();
        }
  
        c.body.accept(this);
  
        if (c.isDefault) {
          b.end(); // defaultLoopLabel
  
negative.code:   /// result to the expected type if needed. All expression code generation goes
    /// through this method.
    w.ValueType wrap(Expression node, w.ValueType expectedType) {
      try {
        w.ValueType resultType = node.accept1(this, expectedType);
        translator.convertType(function, resultType, expectedType);
        return expectedType;
      } catch (_) {
        _printLocation(node);
        rethrow;
      }
    }
  
    void visitStatement(Statement node) {
      try {
        node.accept(this);
      } catch (_) {
        _printLocation(node);
        rethrow;
      }
    }
  
    void visitInitializer(Initializer node) {
      try {
        node.accept(this);
      } catch (_) {
        _printLocation(node);
        rethrow;
      }
    }
  
    void _printLocation(TreeNode node) {
      if (!exceptionLocationPrinted) {
        print("Exception in ${node.runtimeType} at ${node.location}");
        exceptionLocationPrinted = true;
      }
    }
  
    w.ValueType call(Reference target) {
  