func: bool branchAndStartThen(MDefinition* cond, MBasicBlock** thenBlock, MBasicBlock** ParseNode* thenPn, ParseNode* elsePn) if ( inDeadCode ( ) )  inline bool inDeadCode() const return curBlock_ == nullptr ; bool hasThenBlock = * thenBlock != nullptr ; bool hasElseBlock = * elseBlock != nullptr ; if ( ! hasThenBlock && ! newBlock ( curBlock_ , thenBlock , thenPn ) )  bool newBlock(MBasicBlock* pred, MBasicBlock** block, ParseNode* pn) return newBlockWithDepth ( pred , loopStack_ . length ( ) , block , pn ) ; bool newBlockWithDepth(MBasicBlock* pred, unsigned loopDepth, MBasicBlock** block, ParseNode* pn) * block = MBasicBlock :: NewAsmJS ( mirGraph ( ) , info ( ) , pred , MBasicBlock :: NORMAL ); CompileInfo &  info() const return * info_ ; MIRGraph &     mirGraph() const return * graph_ ; if ( ! * block )  return false ; return true ; if ( ! hasElseBlock && ! newBlock ( curBlock_ , elseBlock , thenPn ) )  bool newBlock(MBasicBlock* pred, MBasicBlock** block, ParseNode* pn) return newBlockWithDepth ( pred , loopStack_ . length ( ) , block , pn ) ; if ( hasThenBlock && ! ( * thenBlock ) -> addPredecessor ( alloc ( ) , curBlock_ ) )  return * alloc_ ; TempAllocator &     alloc() const 