rem:  switch(undo.action) { case "card-revealed": undo.card.setFaceDown(); this.undo(); break; case "dealt-from-stock": this.undealFromStock(); break; case "stock-turned-over": this.undoTurnStockOver(); break; case "redeal":  this.undoRedeal(undo.map); break; default: this.undoMove(undo); } 
add: undo.undo(); 
context:   undo: function() {    var undo = this.undoHistory.pop();    this.score -= undo.score;    this.updateScoreDisplay();    // undo the move of it is a basic action type, otherwise hand it to undoMove, which games can override    switch(undo.action) {      case "card-revealed":        undo.card.setFaceDown();        this.undo(); // it looks odd seeing blank cards on top of a pile        break;      case "dealt-from-stock":        this.undealFromStock();        break;      case "stock-turned-over":        this.undoTurnStockOver();        break;      case "redeal":        // redeals/reshuffles require a full map of where cards were previously        this.undoRedeal(undo.map);        break;      default:        this.undoMove(undo);    }    // en/dis-able the Undo and Redeal buttons    Cards.fixUI();  },
meta: 3385	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3385/0cba6dcc760eeefa28646ee9b3c9f46eaff0a7de/cardgame.js/buggy/cardgame.js