docs: function Ticker()
  {
      var _this = this;
      /**
       * Internal tick method bound to ticker instance.
       * This is because in early 2015, Function.bind
       * is still 60% slower in high performance scenarios.
       * Also separating frame requests from update method
       * so listeners may be called at any time and with
       * any animation API, just invoke ticker.update(time).
       *
       * @private
       */
      this._tick = function _tick(time) {
  
          _this._requestId = null;
  
          if (_this.started)
          {
              _this.update(time);
          }
          // Check here because listeners could have side effects
          // and may have modified state during frame execution.
          // A new frame may have been requested or listeners removed.
          if (_this.started && _this._requestId === null && hasListeners(_this._emitter))
          {
              _this._requestId = requestAnimationFrame(_this._tick);
          }
      };
      /**
       * Internal emitter used to fire 'tick' event
       * @private
       */
      this._emitter = new EventEmitter();
      /**
       * Internal current frame request ID
       * @private
       */
      this._requestId = null;
      /**
       * Internal value managed by minFPS property setter and getter.
       * This is the maximum allowed milliseconds between updates.
       * @private
       */
      this._maxElapsedMS = 100;
  
      /**
       * Whether or not this ticker should invoke the method
       * {@link PIXI.ticker.Ticker#start} automatically
       * when a listener is added.
       *
       * @member {boolean}
       * @default false
       */
      this.autoStart = false;
  
      /**
       * Scalar time value from last frame to this frame.
       * This value is capped by setting {@link PIXI.ticker.Ticker#minFPS}
       * and is scaled with {@link PIXI.ticker.Ticker#speed}.
       * **Note:** The cap may be exceeded by scaling.
       *
       * @member {number}
       * @default 1
       */
      this.deltaTime = 1;
  
      /**
       * Time elapsed in milliseconds from last frame to this frame.
       * Opposed to what the scalar {@link PIXI.ticker.Ticker#deltaTime}
       * is based, this value is neither capped nor scaled.
       * If the platform supports DOMHighResTimeStamp,
       * this value will have a precision of 1 µs.
       *
       * @member {DOMHighResTimeStamp|number}
       * @default 1 / TARGET_FPMS
       */
      this.elapsedMS = 1 / core.TARGET_FPMS; // default to target frame time
  
      /**
       * The last time {@link PIXI.ticker.Ticker#update} was invoked.
       * This value is also reset internally outside of invoking
       * update, but only when a new animation frame is requested.
       * If the platform supports DOMHighResTimeStamp,
       * this value will have a precision of 1 µs.
       *
       * @member {DOMHighResTimeStamp|number}
       * @default 0
       */
      this.lastTime = 0;
  
      /**
       * Factor of current {@link PIXI.ticker.Ticker#deltaTime}.
       * @example
       *     // Scales ticker.deltaTime to what would be
       *     // the equivalent of approximately 120 FPS
       *     ticker.speed = 2;
       *
       * @member {number}
       * @default 1
       */
      this.speed = 1;
  
      /**
       * Whether or not this ticker has been started.
       * `true` if {@link PIXI.ticker.Ticker#start} has been called.
       * `false` if {@link PIXI.ticker.Ticker#stop} has been called.
       * While `false`, this value may change to `true` in the
       * event of {@link PIXI.ticker.Ticker#autoStart} being `true`
       * and a listener is added.
       *
       * @member {boolean}
       * @default false
       */
      this.started = false;
  }