xchess
Version:
Chess Engine
33 lines (25 loc) • 441 B
JavaScript
export {GameLog}
class GameLog {
#context;
constructor(context){
this.#context = context;
}
get first(){
const firstState = this.#context.first;
if(firstState) return firstState.handler;
return null;
}
* list(){
let stateHandler = this.first;
while(stateHandler){
yield stateHandler;
stateHandler = stateHandler.next;
}
}
[Symbol.iterator](){
return this.list();
}
toArray(){
return [... this];
}
}