a timer at the start of each taskEnv,
   * and stops it at the end. It accumulates the total run
   * time internally, exposing it via `zone.time()`
   *
   * Note that this is the time the CPU is spending doing
   * bogosort, as opposed to the time from the start
   * of the algorithm until it's completion.
   */
  var profilingZoneSpec = (function () {
    var time = 0,
        // use the high-res timer if available
        timer = performance ?
                    performance.now.bind(performance) :
    