anchor.diff:    int expectedPrecedence = JSPrecedence.STATEMENT_PRECEDENCE;
     JSBinaryOperatorPrecedence unsignedShiftPrecedences;
     HGraph currentGraph;
  -
     /**
      * Whether the code-generation should try to generate an expression
      * instead of a sequence of statements.
      */
     int generationState = STATE_STATEMENT;
  -
  -  /**
  -   * Whether we are generating a statement that does not need
  -   * indentation (e.g. an 'if' in an 'else if').
  -   */
  -  bool generatingInlineStatement = false;
  -
     HBasicBlock currentBlock;
   
     // Records a block-information that is being handled specially.
  
positive.code: 
            case ONE_EXPRESSION:
            case ONE_STATEMENT:
            case IF_STATEMENT:
              if (thenGraphHasSuccessor) {
                buffer.add(' else ');
                visitWithoutIndent(elseGraph);
  
negative.code:    * contains one statement, one expression, or multiple statements.
     */
    int analyzeGraphForCodegen(HStatementInformation graph) {
      HBasicBlock start = graph.start;
      HBasicBlock end = graph.end;
      // Only deal with single blocks for now. TODO(ngeoffray): analyze
      // all blocks.
      if (start !== end) return MULTIPLE_STATEMENTS;
  
      int kind = EMPTY;
      bool updateKind(int newKind) {
        if (kind != EMPTY) return false;
  