rem:   if(typeof this.cards == "number") this.cards = makeDecks(this.cards); else if(!("isCard" in this.cards[0])) this.cards = makeCardSuits.apply(null, this.cards); 
add: this.initCards(); this.init2(); 
context:   initialise: function() {    this.initialised = true;    if(!this.mouseHandler) this.mouseHandler = MouseHandlers[this.mouseHandling];    // see rules.js    // if any of various members that should be functions are instead strings then substitute appropriate function    for(var r in Rules) if(typeof this[r] == "string") this[r] = Rules[r][this[r]];    // the mayTakeCardFromFoo and mayAddCardToFoo take values from Rules.mayTakeCard an Rules.mayAddCard respectively    const takes = ["mayTakeCardFromStock","mayTakeCardFromWaste","mayTakeCardFromReserve",                  "mayTakeCardFromCell","mayTakeCardFromFoundation","mayTakeCardFromPile"];    const adds = ["mayAddCardToStock","mayAddCardToWaste","mayAddCardToReserve",                  "mayAddCardToCell","mayAddCardToFoundation","mayAddCardToPile"];    for(var i = 0; i != takes.length; i++) {      r = takes[i];      if(typeof this[r] == "string") this[r] = Rules.mayTakeCard[this[r]];      r = adds[i];      if(typeof this[r] == "string") this[r] = Rules.mayAddCard[this[r]];    }    this.initXulElement();    this.init();    // see comments above    if(typeof this.cards == "number") this.cards = makeDecks(this.cards);    else if(!("isCard" in this.cards[0])) this.cards = makeCardSuits.apply(null, this.cards);  },
meta: 3385	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3385/a9047b67b616870adba8d6806359da1ac435fe7e/cardgame.js/buggy/cardgame.js