anchor.diff:    }
   
     @override
  -  visitLogicalExpression(LogicalExpression node) {
  +  JS.Expression visitLogicalExpression(LogicalExpression node) {
       // The operands of logical boolean operators are subject to boolean
       // conversion.
       return _visitTest(node);
     }
   
     @override
  -  visitConditionalExpression(ConditionalExpression node) {
  +  JS.Expression visitConditionalExpression(ConditionalExpression node) {
       return js.call('# ? # : #', [
         _visitTest(node.condition),
         _visitExpression(node.then),
  
positive.code:   }
  
    @override
    visitBlockExpression(BlockExpression node) {
      var jsExpr = _visitExpression(node.value);
      List<JS.Statement> jsStmts = node.body.statements
          .map(_visitStatement)
  
negative.code:   }
  
    @override
    JS.Expression visitMapLiteral(MapLiteral node) {
      var entries = <JS.Expression>[];
      for (var e in node.entries) {
        entries.add(_visitExpression(e.key));
  