anchor.diff:    void endIfStatement(Token ifToken, Token elseToken) {
       Statement elsePart = popStatementIfNotNull(elseToken);
       Statement thenPart = popStatement();
  -    Expression condition = popForValue();
  +    Expression condition = pop();
       typePromoter.exitConditional();
       push(new ShadowIfStatement(condition, thenPart, elsePart)
         ..fileOffset = ifToken.charOffset);
  
positive.code:   void endConditionalExpression(Token question, Token colon) {
      debugEvent("ConditionalExpression");
      Expression elseExpression = popForValue();
      Expression thenExpression = popForValue();
      Expression condition = popForValue();
      typePromoter.exitConditional();
      push(new ShadowConditionalExpression(
          condition, thenExpression, elseExpression));
  
negative.code: 
    void doLogicalExpression(Token token) {
      Expression argument = popForValue();
      Expression receiver = pop();
      var logicalExpression =
          new ShadowLogicalExpression(receiver, token.stringValue, argument);
      typePromoter.exitLogicalExpression(argument, logicalExpression);
  