update( timestamp ) {

		if ( this._pageVisibilityHandler !== null && this._document.hidden === true ) {

			this._delta = 0;

		} else {

			this._previousTime = this._currentTime;
			this._currentTime = ( timestamp !== undefined ? timestamp : now() ) - this._startTime;

			this._delta = ( this._currentTime - this._previousTime ) * this._timescale;
			this._elapsed += this._delta; // _elapsed is the accumulation of all previous deltas

		}

		return this;

	}
Updates the internal state of the timer. This method should be called
once per simulation step and before you perform queries against the timer
(e.g. via `getDelta()`).

@param {number} timestamp - The current time in milliseconds. Can be obtained
from the `requestAnimationFrame` callback argument. If not provided, the current
time will be determined with `performance.now`.
@return {Timer} A reference to this timer.