/*
* Timer is a constructor function that may be
* used to produces instances of objects of
* type Timer. An object of type Timer has
* methods start() and stop() that start
* and stop a timer, a method called reset
* that resets a timer, and a method called
* elaspedTimeInMs that returns an amount of
* elapsed time. If a timer has been started
* but not stopped, then elapsedTimeInMs
* returns the amount of time (in milliseconds)
* that has elapsed since the timer was started.
* If a timer has been started and stopped,
* then elapsedTimeInMs returns the amount of
* time that elapsed between the time the
* timer was started and stopped.
*/
function Timer() {
this.reset();
}
Timer.prototype = {
reset: function() {
this.timeStarted = null;
this.timeStopped = null;
},
start: function() {
this.timeStarted = new Date();
},
stop: function() {
this.timeStopped = new Date();
},
elapsedTimeInMs() {
if (this.timeStarted != null) {
if (this.timeStopped != null) {
return this.timeStopped - this.timeStarted;
}
else {
return new Date() - this.timeStarted;
}
}
else {
return undefined;
}
}
};