2eb75ec950d686b993eef6c9b784723f.json 71.6 KB
{"ast":null,"code":"/** @license React v0.20.1\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n  (function () {\n    'use strict';\n\n    var enableSchedulerDebugging = false;\n    var enableProfiling = true;\n    var requestHostCallback;\n    var requestHostTimeout;\n    var cancelHostTimeout;\n    var requestPaint;\n    var hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\n    if (hasPerformanceNow) {\n      var localPerformance = performance;\n\n      exports.unstable_now = function () {\n        return localPerformance.now();\n      };\n    } else {\n      var localDate = Date;\n      var initialTime = localDate.now();\n\n      exports.unstable_now = function () {\n        return localDate.now() - initialTime;\n      };\n    }\n\n    if ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n    // implementation using setTimeout.\n    typeof window === 'undefined' || // Check if MessageChannel is supported, too.\n    typeof MessageChannel !== 'function') {\n      // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n      // fallback to a naive implementation.\n      var _callback = null;\n      var _timeoutID = null;\n\n      var _flushCallback = function () {\n        if (_callback !== null) {\n          try {\n            var currentTime = exports.unstable_now();\n            var hasRemainingTime = true;\n\n            _callback(hasRemainingTime, currentTime);\n\n            _callback = null;\n          } catch (e) {\n            setTimeout(_flushCallback, 0);\n            throw e;\n          }\n        }\n      };\n\n      requestHostCallback = function (cb) {\n        if (_callback !== null) {\n          // Protect against re-entrancy.\n          setTimeout(requestHostCallback, 0, cb);\n        } else {\n          _callback = cb;\n          setTimeout(_flushCallback, 0);\n        }\n      };\n\n      requestHostTimeout = function (cb, ms) {\n        _timeoutID = setTimeout(cb, ms);\n      };\n\n      cancelHostTimeout = function () {\n        clearTimeout(_timeoutID);\n      };\n\n      exports.unstable_shouldYield = function () {\n        return false;\n      };\n\n      requestPaint = exports.unstable_forceFrameRate = function () {};\n    } else {\n      // Capture local references to native APIs, in case a polyfill overrides them.\n      var _setTimeout = window.setTimeout;\n      var _clearTimeout = window.clearTimeout;\n\n      if (typeof console !== 'undefined') {\n        // TODO: Scheduler no longer requires these methods to be polyfilled. But\n        // maybe we want to continue warning if they don't exist, to preserve the\n        // option to rely on it in the future?\n        var requestAnimationFrame = window.requestAnimationFrame;\n        var cancelAnimationFrame = window.cancelAnimationFrame;\n\n        if (typeof requestAnimationFrame !== 'function') {\n          // Using console['error'] to evade Babel and ESLint\n          console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n        }\n\n        if (typeof cancelAnimationFrame !== 'function') {\n          // Using console['error'] to evade Babel and ESLint\n          console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n        }\n      }\n\n      var isMessageLoopRunning = false;\n      var scheduledHostCallback = null;\n      var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n      // thread, like user events. By default, it yields multiple times per frame.\n      // It does not attempt to align with frame boundaries, since most tasks don't\n      // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n      var yieldInterval = 5;\n      var deadline = 0; // TODO: Make this configurable\n\n      {\n        // `isInputPending` is not available. Since we have no way of knowing if\n        // there's pending input, always yield at the end of the frame.\n        exports.unstable_shouldYield = function () {\n          return exports.unstable_now() >= deadline;\n        }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n        requestPaint = function () {};\n      }\n\n      exports.unstable_forceFrameRate = function (fps) {\n        if (fps < 0 || fps > 125) {\n          // Using console['error'] to evade Babel and ESLint\n          console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n          return;\n        }\n\n        if (fps > 0) {\n          yieldInterval = Math.floor(1000 / fps);\n        } else {\n          // reset the framerate\n          yieldInterval = 5;\n        }\n      };\n\n      var performWorkUntilDeadline = function () {\n        if (scheduledHostCallback !== null) {\n          var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n          // cycle. This means there's always time remaining at the beginning of\n          // the message event.\n\n          deadline = currentTime + yieldInterval;\n          var hasTimeRemaining = true;\n\n          try {\n            var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n            if (!hasMoreWork) {\n              isMessageLoopRunning = false;\n              scheduledHostCallback = null;\n            } else {\n              // If there's more work, schedule the next message event at the end\n              // of the preceding one.\n              port.postMessage(null);\n            }\n          } catch (error) {\n            // If a scheduler task throws, exit the current browser task so the\n            // error can be observed.\n            port.postMessage(null);\n            throw error;\n          }\n        } else {\n          isMessageLoopRunning = false;\n        } // Yielding to the browser will give it a chance to paint, so we can\n\n      };\n\n      var channel = new MessageChannel();\n      var port = channel.port2;\n      channel.port1.onmessage = performWorkUntilDeadline;\n\n      requestHostCallback = function (callback) {\n        scheduledHostCallback = callback;\n\n        if (!isMessageLoopRunning) {\n          isMessageLoopRunning = true;\n          port.postMessage(null);\n        }\n      };\n\n      requestHostTimeout = function (callback, ms) {\n        taskTimeoutID = _setTimeout(function () {\n          callback(exports.unstable_now());\n        }, ms);\n      };\n\n      cancelHostTimeout = function () {\n        _clearTimeout(taskTimeoutID);\n\n        taskTimeoutID = -1;\n      };\n    }\n\n    function push(heap, node) {\n      var index = heap.length;\n      heap.push(node);\n      siftUp(heap, node, index);\n    }\n\n    function peek(heap) {\n      var first = heap[0];\n      return first === undefined ? null : first;\n    }\n\n    function pop(heap) {\n      var first = heap[0];\n\n      if (first !== undefined) {\n        var last = heap.pop();\n\n        if (last !== first) {\n          heap[0] = last;\n          siftDown(heap, last, 0);\n        }\n\n        return first;\n      } else {\n        return null;\n      }\n    }\n\n    function siftUp(heap, node, i) {\n      var index = i;\n\n      while (true) {\n        var parentIndex = index - 1 >>> 1;\n        var parent = heap[parentIndex];\n\n        if (parent !== undefined && compare(parent, node) > 0) {\n          // The parent is larger. Swap positions.\n          heap[parentIndex] = node;\n          heap[index] = parent;\n          index = parentIndex;\n        } else {\n          // The parent is smaller. Exit.\n          return;\n        }\n      }\n    }\n\n    function siftDown(heap, node, i) {\n      var index = i;\n      var length = heap.length;\n\n      while (index < length) {\n        var leftIndex = (index + 1) * 2 - 1;\n        var left = heap[leftIndex];\n        var rightIndex = leftIndex + 1;\n        var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n        if (left !== undefined && compare(left, node) < 0) {\n          if (right !== undefined && compare(right, left) < 0) {\n            heap[index] = right;\n            heap[rightIndex] = node;\n            index = rightIndex;\n          } else {\n            heap[index] = left;\n            heap[leftIndex] = node;\n            index = leftIndex;\n          }\n        } else if (right !== undefined && compare(right, node) < 0) {\n          heap[index] = right;\n          heap[rightIndex] = node;\n          index = rightIndex;\n        } else {\n          // Neither child is smaller. Exit.\n          return;\n        }\n      }\n    }\n\n    function compare(a, b) {\n      // Compare sort index first, then task id.\n      var diff = a.sortIndex - b.sortIndex;\n      return diff !== 0 ? diff : a.id - b.id;\n    } // TODO: Use symbols?\n\n\n    var NoPriority = 0;\n    var ImmediatePriority = 1;\n    var UserBlockingPriority = 2;\n    var NormalPriority = 3;\n    var LowPriority = 4;\n    var IdlePriority = 5;\n    var runIdCounter = 0;\n    var mainThreadIdCounter = 0;\n    var profilingStateSize = 4;\n    var sharedProfilingBuffer = // $FlowFixMe Flow doesn't know about SharedArrayBuffer\n    typeof SharedArrayBuffer === 'function' ? new SharedArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : // $FlowFixMe Flow doesn't know about ArrayBuffer\n    typeof ArrayBuffer === 'function' ? new ArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : null // Don't crash the init path on IE9\n    ;\n    var profilingState = sharedProfilingBuffer !== null ? new Int32Array(sharedProfilingBuffer) : []; // We can't read this but it helps save bytes for null checks\n\n    var PRIORITY = 0;\n    var CURRENT_TASK_ID = 1;\n    var CURRENT_RUN_ID = 2;\n    var QUEUE_SIZE = 3;\n    {\n      profilingState[PRIORITY] = NoPriority; // This is maintained with a counter, because the size of the priority queue\n      // array might include canceled tasks.\n\n      profilingState[QUEUE_SIZE] = 0;\n      profilingState[CURRENT_TASK_ID] = 0;\n    } // Bytes per element is 4\n\n    var INITIAL_EVENT_LOG_SIZE = 131072;\n    var MAX_EVENT_LOG_SIZE = 524288; // Equivalent to 2 megabytes\n\n    var eventLogSize = 0;\n    var eventLogBuffer = null;\n    var eventLog = null;\n    var eventLogIndex = 0;\n    var TaskStartEvent = 1;\n    var TaskCompleteEvent = 2;\n    var TaskErrorEvent = 3;\n    var TaskCancelEvent = 4;\n    var TaskRunEvent = 5;\n    var TaskYieldEvent = 6;\n    var SchedulerSuspendEvent = 7;\n    var SchedulerResumeEvent = 8;\n\n    function logEvent(entries) {\n      if (eventLog !== null) {\n        var offset = eventLogIndex;\n        eventLogIndex += entries.length;\n\n        if (eventLogIndex + 1 > eventLogSize) {\n          eventLogSize *= 2;\n\n          if (eventLogSize > MAX_EVENT_LOG_SIZE) {\n            // Using console['error'] to evade Babel and ESLint\n            console['error'](\"Scheduler Profiling: Event log exceeded maximum size. Don't \" + 'forget to call `stopLoggingProfilingEvents()`.');\n            stopLoggingProfilingEvents();\n            return;\n          }\n\n          var newEventLog = new Int32Array(eventLogSize * 4);\n          newEventLog.set(eventLog);\n          eventLogBuffer = newEventLog.buffer;\n          eventLog = newEventLog;\n        }\n\n        eventLog.set(entries, offset);\n      }\n    }\n\n    function startLoggingProfilingEvents() {\n      eventLogSize = INITIAL_EVENT_LOG_SIZE;\n      eventLogBuffer = new ArrayBuffer(eventLogSize * 4);\n      eventLog = new Int32Array(eventLogBuffer);\n      eventLogIndex = 0;\n    }\n\n    function stopLoggingProfilingEvents() {\n      var buffer = eventLogBuffer;\n      eventLogSize = 0;\n      eventLogBuffer = null;\n      eventLog = null;\n      eventLogIndex = 0;\n      return buffer;\n    }\n\n    function markTaskStart(task, ms) {\n      {\n        profilingState[QUEUE_SIZE]++;\n\n        if (eventLog !== null) {\n          // performance.now returns a float, representing milliseconds. When the\n          // event is logged, it's coerced to an int. Convert to microseconds to\n          // maintain extra degrees of precision.\n          logEvent([TaskStartEvent, ms * 1000, task.id, task.priorityLevel]);\n        }\n      }\n    }\n\n    function markTaskCompleted(task, ms) {\n      {\n        profilingState[PRIORITY] = NoPriority;\n        profilingState[CURRENT_TASK_ID] = 0;\n        profilingState[QUEUE_SIZE]--;\n\n        if (eventLog !== null) {\n          logEvent([TaskCompleteEvent, ms * 1000, task.id]);\n        }\n      }\n    }\n\n    function markTaskCanceled(task, ms) {\n      {\n        profilingState[QUEUE_SIZE]--;\n\n        if (eventLog !== null) {\n          logEvent([TaskCancelEvent, ms * 1000, task.id]);\n        }\n      }\n    }\n\n    function markTaskErrored(task, ms) {\n      {\n        profilingState[PRIORITY] = NoPriority;\n        profilingState[CURRENT_TASK_ID] = 0;\n        profilingState[QUEUE_SIZE]--;\n\n        if (eventLog !== null) {\n          logEvent([TaskErrorEvent, ms * 1000, task.id]);\n        }\n      }\n    }\n\n    function markTaskRun(task, ms) {\n      {\n        runIdCounter++;\n        profilingState[PRIORITY] = task.priorityLevel;\n        profilingState[CURRENT_TASK_ID] = task.id;\n        profilingState[CURRENT_RUN_ID] = runIdCounter;\n\n        if (eventLog !== null) {\n          logEvent([TaskRunEvent, ms * 1000, task.id, runIdCounter]);\n        }\n      }\n    }\n\n    function markTaskYield(task, ms) {\n      {\n        profilingState[PRIORITY] = NoPriority;\n        profilingState[CURRENT_TASK_ID] = 0;\n        profilingState[CURRENT_RUN_ID] = 0;\n\n        if (eventLog !== null) {\n          logEvent([TaskYieldEvent, ms * 1000, task.id, runIdCounter]);\n        }\n      }\n    }\n\n    function markSchedulerSuspended(ms) {\n      {\n        mainThreadIdCounter++;\n\n        if (eventLog !== null) {\n          logEvent([SchedulerSuspendEvent, ms * 1000, mainThreadIdCounter]);\n        }\n      }\n    }\n\n    function markSchedulerUnsuspended(ms) {\n      {\n        if (eventLog !== null) {\n          logEvent([SchedulerResumeEvent, ms * 1000, mainThreadIdCounter]);\n        }\n      }\n    }\n    /* eslint-disable no-var */\n    // Math.pow(2, 30) - 1\n    // 0b111111111111111111111111111111\n\n\n    var maxSigned31BitInt = 1073741823; // Times out immediately\n\n    var IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\n    var USER_BLOCKING_PRIORITY_TIMEOUT = 250;\n    var NORMAL_PRIORITY_TIMEOUT = 5000;\n    var LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\n    var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\n    var taskQueue = [];\n    var timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\n    var taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\n\n    var currentTask = null;\n    var currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\n    var isPerformingWork = false;\n    var isHostCallbackScheduled = false;\n    var isHostTimeoutScheduled = false;\n\n    function advanceTimers(currentTime) {\n      // Check for tasks that are no longer delayed and add them to the queue.\n      var timer = peek(timerQueue);\n\n      while (timer !== null) {\n        if (timer.callback === null) {\n          // Timer was cancelled.\n          pop(timerQueue);\n        } else if (timer.startTime <= currentTime) {\n          // Timer fired. Transfer to the task queue.\n          pop(timerQueue);\n          timer.sortIndex = timer.expirationTime;\n          push(taskQueue, timer);\n          {\n            markTaskStart(timer, currentTime);\n            timer.isQueued = true;\n          }\n        } else {\n          // Remaining timers are pending.\n          return;\n        }\n\n        timer = peek(timerQueue);\n      }\n    }\n\n    function handleTimeout(currentTime) {\n      isHostTimeoutScheduled = false;\n      advanceTimers(currentTime);\n\n      if (!isHostCallbackScheduled) {\n        if (peek(taskQueue) !== null) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        } else {\n          var firstTimer = peek(timerQueue);\n\n          if (firstTimer !== null) {\n            requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n          }\n        }\n      }\n    }\n\n    function flushWork(hasTimeRemaining, initialTime) {\n      {\n        markSchedulerUnsuspended(initialTime);\n      } // We'll need a host callback the next time work is scheduled.\n\n      isHostCallbackScheduled = false;\n\n      if (isHostTimeoutScheduled) {\n        // We scheduled a timeout but it's no longer needed. Cancel it.\n        isHostTimeoutScheduled = false;\n        cancelHostTimeout();\n      }\n\n      isPerformingWork = true;\n      var previousPriorityLevel = currentPriorityLevel;\n\n      try {\n        if (enableProfiling) {\n          try {\n            return workLoop(hasTimeRemaining, initialTime);\n          } catch (error) {\n            if (currentTask !== null) {\n              var currentTime = exports.unstable_now();\n              markTaskErrored(currentTask, currentTime);\n              currentTask.isQueued = false;\n            }\n\n            throw error;\n          }\n        } else {\n          // No catch in prod code path.\n          return workLoop(hasTimeRemaining, initialTime);\n        }\n      } finally {\n        currentTask = null;\n        currentPriorityLevel = previousPriorityLevel;\n        isPerformingWork = false;\n        {\n          var _currentTime = exports.unstable_now();\n\n          markSchedulerSuspended(_currentTime);\n        }\n      }\n    }\n\n    function workLoop(hasTimeRemaining, initialTime) {\n      var currentTime = initialTime;\n      advanceTimers(currentTime);\n      currentTask = peek(taskQueue);\n\n      while (currentTask !== null && !enableSchedulerDebugging) {\n        if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) {\n          // This currentTask hasn't expired, and we've reached the deadline.\n          break;\n        }\n\n        var callback = currentTask.callback;\n\n        if (typeof callback === 'function') {\n          currentTask.callback = null;\n          currentPriorityLevel = currentTask.priorityLevel;\n          var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n          markTaskRun(currentTask, currentTime);\n          var continuationCallback = callback(didUserCallbackTimeout);\n          currentTime = exports.unstable_now();\n\n          if (typeof continuationCallback === 'function') {\n            currentTask.callback = continuationCallback;\n            markTaskYield(currentTask, currentTime);\n          } else {\n            {\n              markTaskCompleted(currentTask, currentTime);\n              currentTask.isQueued = false;\n            }\n\n            if (currentTask === peek(taskQueue)) {\n              pop(taskQueue);\n            }\n          }\n\n          advanceTimers(currentTime);\n        } else {\n          pop(taskQueue);\n        }\n\n        currentTask = peek(taskQueue);\n      } // Return whether there's additional work\n\n\n      if (currentTask !== null) {\n        return true;\n      } else {\n        var firstTimer = peek(timerQueue);\n\n        if (firstTimer !== null) {\n          requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n        }\n\n        return false;\n      }\n    }\n\n    function unstable_runWithPriority(priorityLevel, eventHandler) {\n      switch (priorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n        case LowPriority:\n        case IdlePriority:\n          break;\n\n        default:\n          priorityLevel = NormalPriority;\n      }\n\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n\n    function unstable_next(eventHandler) {\n      var priorityLevel;\n\n      switch (currentPriorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n          // Shift down to normal priority\n          priorityLevel = NormalPriority;\n          break;\n\n        default:\n          // Anything lower than normal priority should remain at the current level.\n          priorityLevel = currentPriorityLevel;\n          break;\n      }\n\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n\n    function unstable_wrapCallback(callback) {\n      var parentPriorityLevel = currentPriorityLevel;\n      return function () {\n        // This is a fork of runWithPriority, inlined for performance.\n        var previousPriorityLevel = currentPriorityLevel;\n        currentPriorityLevel = parentPriorityLevel;\n\n        try {\n          return callback.apply(this, arguments);\n        } finally {\n          currentPriorityLevel = previousPriorityLevel;\n        }\n      };\n    }\n\n    function unstable_scheduleCallback(priorityLevel, callback, options) {\n      var currentTime = exports.unstable_now();\n      var startTime;\n\n      if (typeof options === 'object' && options !== null) {\n        var delay = options.delay;\n\n        if (typeof delay === 'number' && delay > 0) {\n          startTime = currentTime + delay;\n        } else {\n          startTime = currentTime;\n        }\n      } else {\n        startTime = currentTime;\n      }\n\n      var timeout;\n\n      switch (priorityLevel) {\n        case ImmediatePriority:\n          timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n          break;\n\n        case UserBlockingPriority:\n          timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n          break;\n\n        case IdlePriority:\n          timeout = IDLE_PRIORITY_TIMEOUT;\n          break;\n\n        case LowPriority:\n          timeout = LOW_PRIORITY_TIMEOUT;\n          break;\n\n        case NormalPriority:\n        default:\n          timeout = NORMAL_PRIORITY_TIMEOUT;\n          break;\n      }\n\n      var expirationTime = startTime + timeout;\n      var newTask = {\n        id: taskIdCounter++,\n        callback: callback,\n        priorityLevel: priorityLevel,\n        startTime: startTime,\n        expirationTime: expirationTime,\n        sortIndex: -1\n      };\n      {\n        newTask.isQueued = false;\n      }\n\n      if (startTime > currentTime) {\n        // This is a delayed task.\n        newTask.sortIndex = startTime;\n        push(timerQueue, newTask);\n\n        if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n          // All tasks are delayed, and this is the task with the earliest delay.\n          if (isHostTimeoutScheduled) {\n            // Cancel an existing timeout.\n            cancelHostTimeout();\n          } else {\n            isHostTimeoutScheduled = true;\n          } // Schedule a timeout.\n\n\n          requestHostTimeout(handleTimeout, startTime - currentTime);\n        }\n      } else {\n        newTask.sortIndex = expirationTime;\n        push(taskQueue, newTask);\n        {\n          markTaskStart(newTask, currentTime);\n          newTask.isQueued = true;\n        } // Schedule a host callback, if needed. If we're already performing work,\n        // wait until the next time we yield.\n\n        if (!isHostCallbackScheduled && !isPerformingWork) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        }\n      }\n\n      return newTask;\n    }\n\n    function unstable_pauseExecution() {}\n\n    function unstable_continueExecution() {\n      if (!isHostCallbackScheduled && !isPerformingWork) {\n        isHostCallbackScheduled = true;\n        requestHostCallback(flushWork);\n      }\n    }\n\n    function unstable_getFirstCallbackNode() {\n      return peek(taskQueue);\n    }\n\n    function unstable_cancelCallback(task) {\n      {\n        if (task.isQueued) {\n          var currentTime = exports.unstable_now();\n          markTaskCanceled(task, currentTime);\n          task.isQueued = false;\n        }\n      } // Null out the callback to indicate the task has been canceled. (Can't\n      // remove from the queue because you can't remove arbitrary nodes from an\n      // array based heap, only the first one.)\n\n      task.callback = null;\n    }\n\n    function unstable_getCurrentPriorityLevel() {\n      return currentPriorityLevel;\n    }\n\n    var unstable_requestPaint = requestPaint;\n    var unstable_Profiling = {\n      startLoggingProfilingEvents: startLoggingProfilingEvents,\n      stopLoggingProfilingEvents: stopLoggingProfilingEvents,\n      sharedProfilingBuffer: sharedProfilingBuffer\n    };\n    exports.unstable_IdlePriority = IdlePriority;\n    exports.unstable_ImmediatePriority = ImmediatePriority;\n    exports.unstable_LowPriority = LowPriority;\n    exports.unstable_NormalPriority = NormalPriority;\n    exports.unstable_Profiling = unstable_Profiling;\n    exports.unstable_UserBlockingPriority = UserBlockingPriority;\n    exports.unstable_cancelCallback = unstable_cancelCallback;\n    exports.unstable_continueExecution = unstable_continueExecution;\n    exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\n    exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\n    exports.unstable_next = unstable_next;\n    exports.unstable_pauseExecution = unstable_pauseExecution;\n    exports.unstable_requestPaint = unstable_requestPaint;\n    exports.unstable_runWithPriority = unstable_runWithPriority;\n    exports.unstable_scheduleCallback = unstable_scheduleCallback;\n    exports.unstable_wrapCallback = unstable_wrapCallback;\n  })();\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/scheduler/cjs/scheduler.development.js"],"names":["process","env","NODE_ENV","enableSchedulerDebugging","enableProfiling","requestHostCallback","requestHostTimeout","cancelHostTimeout","requestPaint","hasPerformanceNow","performance","now","localPerformance","exports","unstable_now","localDate","Date","initialTime","window","MessageChannel","_callback","_timeoutID","_flushCallback","currentTime","hasRemainingTime","e","setTimeout","cb","ms","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","_setTimeout","_clearTimeout","console","requestAnimationFrame","cancelAnimationFrame","isMessageLoopRunning","scheduledHostCallback","taskTimeoutID","yieldInterval","deadline","fps","Math","floor","performWorkUntilDeadline","hasTimeRemaining","hasMoreWork","port","postMessage","error","channel","port2","port1","onmessage","callback","push","heap","node","index","length","siftUp","peek","first","undefined","pop","last","siftDown","i","parentIndex","parent","compare","leftIndex","left","rightIndex","right","a","b","diff","sortIndex","id","NoPriority","ImmediatePriority","UserBlockingPriority","NormalPriority","LowPriority","IdlePriority","runIdCounter","mainThreadIdCounter","profilingStateSize","sharedProfilingBuffer","SharedArrayBuffer","Int32Array","BYTES_PER_ELEMENT","ArrayBuffer","profilingState","PRIORITY","CURRENT_TASK_ID","CURRENT_RUN_ID","QUEUE_SIZE","INITIAL_EVENT_LOG_SIZE","MAX_EVENT_LOG_SIZE","eventLogSize","eventLogBuffer","eventLog","eventLogIndex","TaskStartEvent","TaskCompleteEvent","TaskErrorEvent","TaskCancelEvent","TaskRunEvent","TaskYieldEvent","SchedulerSuspendEvent","SchedulerResumeEvent","logEvent","entries","offset","stopLoggingProfilingEvents","newEventLog","set","buffer","startLoggingProfilingEvents","markTaskStart","task","priorityLevel","markTaskCompleted","markTaskCanceled","markTaskErrored","markTaskRun","markTaskYield","markSchedulerSuspended","markSchedulerUnsuspended","maxSigned31BitInt","IMMEDIATE_PRIORITY_TIMEOUT","USER_BLOCKING_PRIORITY_TIMEOUT","NORMAL_PRIORITY_TIMEOUT","LOW_PRIORITY_TIMEOUT","IDLE_PRIORITY_TIMEOUT","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","advanceTimers","timer","startTime","expirationTime","isQueued","handleTimeout","flushWork","firstTimer","previousPriorityLevel","workLoop","_currentTime","didUserCallbackTimeout","continuationCallback","unstable_runWithPriority","eventHandler","unstable_next","unstable_wrapCallback","parentPriorityLevel","apply","arguments","unstable_scheduleCallback","options","delay","timeout","newTask","unstable_pauseExecution","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_cancelCallback","unstable_getCurrentPriorityLevel","unstable_requestPaint","unstable_Profiling","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_UserBlockingPriority"],"mappings":"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","sourcesContent":["/** @license React v0.20.1\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\nvar enableSchedulerDebugging = false;\nvar enableProfiling = true;\n\nvar requestHostCallback;\nvar requestHostTimeout;\nvar cancelHostTimeout;\nvar requestPaint;\nvar hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nif (hasPerformanceNow) {\n  var localPerformance = performance;\n\n  exports.unstable_now = function () {\n    return localPerformance.now();\n  };\n} else {\n  var localDate = Date;\n  var initialTime = localDate.now();\n\n  exports.unstable_now = function () {\n    return localDate.now() - initialTime;\n  };\n}\n\nif ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n// implementation using setTimeout.\ntypeof window === 'undefined' || // Check if MessageChannel is supported, too.\ntypeof MessageChannel !== 'function') {\n  // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n  // fallback to a naive implementation.\n  var _callback = null;\n  var _timeoutID = null;\n\n  var _flushCallback = function () {\n    if (_callback !== null) {\n      try {\n        var currentTime = exports.unstable_now();\n        var hasRemainingTime = true;\n\n        _callback(hasRemainingTime, currentTime);\n\n        _callback = null;\n      } catch (e) {\n        setTimeout(_flushCallback, 0);\n        throw e;\n      }\n    }\n  };\n\n  requestHostCallback = function (cb) {\n    if (_callback !== null) {\n      // Protect against re-entrancy.\n      setTimeout(requestHostCallback, 0, cb);\n    } else {\n      _callback = cb;\n      setTimeout(_flushCallback, 0);\n    }\n  };\n\n  requestHostTimeout = function (cb, ms) {\n    _timeoutID = setTimeout(cb, ms);\n  };\n\n  cancelHostTimeout = function () {\n    clearTimeout(_timeoutID);\n  };\n\n  exports.unstable_shouldYield = function () {\n    return false;\n  };\n\n  requestPaint = exports.unstable_forceFrameRate = function () {};\n} else {\n  // Capture local references to native APIs, in case a polyfill overrides them.\n  var _setTimeout = window.setTimeout;\n  var _clearTimeout = window.clearTimeout;\n\n  if (typeof console !== 'undefined') {\n    // TODO: Scheduler no longer requires these methods to be polyfilled. But\n    // maybe we want to continue warning if they don't exist, to preserve the\n    // option to rely on it in the future?\n    var requestAnimationFrame = window.requestAnimationFrame;\n    var cancelAnimationFrame = window.cancelAnimationFrame;\n\n    if (typeof requestAnimationFrame !== 'function') {\n      // Using console['error'] to evade Babel and ESLint\n      console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n    }\n\n    if (typeof cancelAnimationFrame !== 'function') {\n      // Using console['error'] to evade Babel and ESLint\n      console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n    }\n  }\n\n  var isMessageLoopRunning = false;\n  var scheduledHostCallback = null;\n  var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n  // thread, like user events. By default, it yields multiple times per frame.\n  // It does not attempt to align with frame boundaries, since most tasks don't\n  // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n  var yieldInterval = 5;\n  var deadline = 0; // TODO: Make this configurable\n\n  {\n    // `isInputPending` is not available. Since we have no way of knowing if\n    // there's pending input, always yield at the end of the frame.\n    exports.unstable_shouldYield = function () {\n      return exports.unstable_now() >= deadline;\n    }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n    requestPaint = function () {};\n  }\n\n  exports.unstable_forceFrameRate = function (fps) {\n    if (fps < 0 || fps > 125) {\n      // Using console['error'] to evade Babel and ESLint\n      console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n      return;\n    }\n\n    if (fps > 0) {\n      yieldInterval = Math.floor(1000 / fps);\n    } else {\n      // reset the framerate\n      yieldInterval = 5;\n    }\n  };\n\n  var performWorkUntilDeadline = function () {\n    if (scheduledHostCallback !== null) {\n      var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n      // cycle. This means there's always time remaining at the beginning of\n      // the message event.\n\n      deadline = currentTime + yieldInterval;\n      var hasTimeRemaining = true;\n\n      try {\n        var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n        if (!hasMoreWork) {\n          isMessageLoopRunning = false;\n          scheduledHostCallback = null;\n        } else {\n          // If there's more work, schedule the next message event at the end\n          // of the preceding one.\n          port.postMessage(null);\n        }\n      } catch (error) {\n        // If a scheduler task throws, exit the current browser task so the\n        // error can be observed.\n        port.postMessage(null);\n        throw error;\n      }\n    } else {\n      isMessageLoopRunning = false;\n    } // Yielding to the browser will give it a chance to paint, so we can\n  };\n\n  var channel = new MessageChannel();\n  var port = channel.port2;\n  channel.port1.onmessage = performWorkUntilDeadline;\n\n  requestHostCallback = function (callback) {\n    scheduledHostCallback = callback;\n\n    if (!isMessageLoopRunning) {\n      isMessageLoopRunning = true;\n      port.postMessage(null);\n    }\n  };\n\n  requestHostTimeout = function (callback, ms) {\n    taskTimeoutID = _setTimeout(function () {\n      callback(exports.unstable_now());\n    }, ms);\n  };\n\n  cancelHostTimeout = function () {\n    _clearTimeout(taskTimeoutID);\n\n    taskTimeoutID = -1;\n  };\n}\n\nfunction push(heap, node) {\n  var index = heap.length;\n  heap.push(node);\n  siftUp(heap, node, index);\n}\nfunction peek(heap) {\n  var first = heap[0];\n  return first === undefined ? null : first;\n}\nfunction pop(heap) {\n  var first = heap[0];\n\n  if (first !== undefined) {\n    var last = heap.pop();\n\n    if (last !== first) {\n      heap[0] = last;\n      siftDown(heap, last, 0);\n    }\n\n    return first;\n  } else {\n    return null;\n  }\n}\n\nfunction siftUp(heap, node, i) {\n  var index = i;\n\n  while (true) {\n    var parentIndex = index - 1 >>> 1;\n    var parent = heap[parentIndex];\n\n    if (parent !== undefined && compare(parent, node) > 0) {\n      // The parent is larger. Swap positions.\n      heap[parentIndex] = node;\n      heap[index] = parent;\n      index = parentIndex;\n    } else {\n      // The parent is smaller. Exit.\n      return;\n    }\n  }\n}\n\nfunction siftDown(heap, node, i) {\n  var index = i;\n  var length = heap.length;\n\n  while (index < length) {\n    var leftIndex = (index + 1) * 2 - 1;\n    var left = heap[leftIndex];\n    var rightIndex = leftIndex + 1;\n    var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n    if (left !== undefined && compare(left, node) < 0) {\n      if (right !== undefined && compare(right, left) < 0) {\n        heap[index] = right;\n        heap[rightIndex] = node;\n        index = rightIndex;\n      } else {\n        heap[index] = left;\n        heap[leftIndex] = node;\n        index = leftIndex;\n      }\n    } else if (right !== undefined && compare(right, node) < 0) {\n      heap[index] = right;\n      heap[rightIndex] = node;\n      index = rightIndex;\n    } else {\n      // Neither child is smaller. Exit.\n      return;\n    }\n  }\n}\n\nfunction compare(a, b) {\n  // Compare sort index first, then task id.\n  var diff = a.sortIndex - b.sortIndex;\n  return diff !== 0 ? diff : a.id - b.id;\n}\n\n// TODO: Use symbols?\nvar NoPriority = 0;\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nvar runIdCounter = 0;\nvar mainThreadIdCounter = 0;\nvar profilingStateSize = 4;\nvar sharedProfilingBuffer =  // $FlowFixMe Flow doesn't know about SharedArrayBuffer\ntypeof SharedArrayBuffer === 'function' ? new SharedArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : // $FlowFixMe Flow doesn't know about ArrayBuffer\ntypeof ArrayBuffer === 'function' ? new ArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : null // Don't crash the init path on IE9\n;\nvar profilingState =  sharedProfilingBuffer !== null ? new Int32Array(sharedProfilingBuffer) : []; // We can't read this but it helps save bytes for null checks\n\nvar PRIORITY = 0;\nvar CURRENT_TASK_ID = 1;\nvar CURRENT_RUN_ID = 2;\nvar QUEUE_SIZE = 3;\n\n{\n  profilingState[PRIORITY] = NoPriority; // This is maintained with a counter, because the size of the priority queue\n  // array might include canceled tasks.\n\n  profilingState[QUEUE_SIZE] = 0;\n  profilingState[CURRENT_TASK_ID] = 0;\n} // Bytes per element is 4\n\n\nvar INITIAL_EVENT_LOG_SIZE = 131072;\nvar MAX_EVENT_LOG_SIZE = 524288; // Equivalent to 2 megabytes\n\nvar eventLogSize = 0;\nvar eventLogBuffer = null;\nvar eventLog = null;\nvar eventLogIndex = 0;\nvar TaskStartEvent = 1;\nvar TaskCompleteEvent = 2;\nvar TaskErrorEvent = 3;\nvar TaskCancelEvent = 4;\nvar TaskRunEvent = 5;\nvar TaskYieldEvent = 6;\nvar SchedulerSuspendEvent = 7;\nvar SchedulerResumeEvent = 8;\n\nfunction logEvent(entries) {\n  if (eventLog !== null) {\n    var offset = eventLogIndex;\n    eventLogIndex += entries.length;\n\n    if (eventLogIndex + 1 > eventLogSize) {\n      eventLogSize *= 2;\n\n      if (eventLogSize > MAX_EVENT_LOG_SIZE) {\n        // Using console['error'] to evade Babel and ESLint\n        console['error'](\"Scheduler Profiling: Event log exceeded maximum size. Don't \" + 'forget to call `stopLoggingProfilingEvents()`.');\n        stopLoggingProfilingEvents();\n        return;\n      }\n\n      var newEventLog = new Int32Array(eventLogSize * 4);\n      newEventLog.set(eventLog);\n      eventLogBuffer = newEventLog.buffer;\n      eventLog = newEventLog;\n    }\n\n    eventLog.set(entries, offset);\n  }\n}\n\nfunction startLoggingProfilingEvents() {\n  eventLogSize = INITIAL_EVENT_LOG_SIZE;\n  eventLogBuffer = new ArrayBuffer(eventLogSize * 4);\n  eventLog = new Int32Array(eventLogBuffer);\n  eventLogIndex = 0;\n}\nfunction stopLoggingProfilingEvents() {\n  var buffer = eventLogBuffer;\n  eventLogSize = 0;\n  eventLogBuffer = null;\n  eventLog = null;\n  eventLogIndex = 0;\n  return buffer;\n}\nfunction markTaskStart(task, ms) {\n  {\n    profilingState[QUEUE_SIZE]++;\n\n    if (eventLog !== null) {\n      // performance.now returns a float, representing milliseconds. When the\n      // event is logged, it's coerced to an int. Convert to microseconds to\n      // maintain extra degrees of precision.\n      logEvent([TaskStartEvent, ms * 1000, task.id, task.priorityLevel]);\n    }\n  }\n}\nfunction markTaskCompleted(task, ms) {\n  {\n    profilingState[PRIORITY] = NoPriority;\n    profilingState[CURRENT_TASK_ID] = 0;\n    profilingState[QUEUE_SIZE]--;\n\n    if (eventLog !== null) {\n      logEvent([TaskCompleteEvent, ms * 1000, task.id]);\n    }\n  }\n}\nfunction markTaskCanceled(task, ms) {\n  {\n    profilingState[QUEUE_SIZE]--;\n\n    if (eventLog !== null) {\n      logEvent([TaskCancelEvent, ms * 1000, task.id]);\n    }\n  }\n}\nfunction markTaskErrored(task, ms) {\n  {\n    profilingState[PRIORITY] = NoPriority;\n    profilingState[CURRENT_TASK_ID] = 0;\n    profilingState[QUEUE_SIZE]--;\n\n    if (eventLog !== null) {\n      logEvent([TaskErrorEvent, ms * 1000, task.id]);\n    }\n  }\n}\nfunction markTaskRun(task, ms) {\n  {\n    runIdCounter++;\n    profilingState[PRIORITY] = task.priorityLevel;\n    profilingState[CURRENT_TASK_ID] = task.id;\n    profilingState[CURRENT_RUN_ID] = runIdCounter;\n\n    if (eventLog !== null) {\n      logEvent([TaskRunEvent, ms * 1000, task.id, runIdCounter]);\n    }\n  }\n}\nfunction markTaskYield(task, ms) {\n  {\n    profilingState[PRIORITY] = NoPriority;\n    profilingState[CURRENT_TASK_ID] = 0;\n    profilingState[CURRENT_RUN_ID] = 0;\n\n    if (eventLog !== null) {\n      logEvent([TaskYieldEvent, ms * 1000, task.id, runIdCounter]);\n    }\n  }\n}\nfunction markSchedulerSuspended(ms) {\n  {\n    mainThreadIdCounter++;\n\n    if (eventLog !== null) {\n      logEvent([SchedulerSuspendEvent, ms * 1000, mainThreadIdCounter]);\n    }\n  }\n}\nfunction markSchedulerUnsuspended(ms) {\n  {\n    if (eventLog !== null) {\n      logEvent([SchedulerResumeEvent, ms * 1000, mainThreadIdCounter]);\n    }\n  }\n}\n\n/* eslint-disable no-var */\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\n\nvar maxSigned31BitInt = 1073741823; // Times out immediately\n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\nvar USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\nvar IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\nvar taskQueue = [];\nvar timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\nvar taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false;\n\nfunction advanceTimers(currentTime) {\n  // Check for tasks that are no longer delayed and add them to the queue.\n  var timer = peek(timerQueue);\n\n  while (timer !== null) {\n    if (timer.callback === null) {\n      // Timer was cancelled.\n      pop(timerQueue);\n    } else if (timer.startTime <= currentTime) {\n      // Timer fired. Transfer to the task queue.\n      pop(timerQueue);\n      timer.sortIndex = timer.expirationTime;\n      push(taskQueue, timer);\n\n      {\n        markTaskStart(timer, currentTime);\n        timer.isQueued = true;\n      }\n    } else {\n      // Remaining timers are pending.\n      return;\n    }\n\n    timer = peek(timerQueue);\n  }\n}\n\nfunction handleTimeout(currentTime) {\n  isHostTimeoutScheduled = false;\n  advanceTimers(currentTime);\n\n  if (!isHostCallbackScheduled) {\n    if (peek(taskQueue) !== null) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    } else {\n      var firstTimer = peek(timerQueue);\n\n      if (firstTimer !== null) {\n        requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n      }\n    }\n  }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n  {\n    markSchedulerUnsuspended(initialTime);\n  } // We'll need a host callback the next time work is scheduled.\n\n\n  isHostCallbackScheduled = false;\n\n  if (isHostTimeoutScheduled) {\n    // We scheduled a timeout but it's no longer needed. Cancel it.\n    isHostTimeoutScheduled = false;\n    cancelHostTimeout();\n  }\n\n  isPerformingWork = true;\n  var previousPriorityLevel = currentPriorityLevel;\n\n  try {\n    if (enableProfiling) {\n      try {\n        return workLoop(hasTimeRemaining, initialTime);\n      } catch (error) {\n        if (currentTask !== null) {\n          var currentTime = exports.unstable_now();\n          markTaskErrored(currentTask, currentTime);\n          currentTask.isQueued = false;\n        }\n\n        throw error;\n      }\n    } else {\n      // No catch in prod code path.\n      return workLoop(hasTimeRemaining, initialTime);\n    }\n  } finally {\n    currentTask = null;\n    currentPriorityLevel = previousPriorityLevel;\n    isPerformingWork = false;\n\n    {\n      var _currentTime = exports.unstable_now();\n\n      markSchedulerSuspended(_currentTime);\n    }\n  }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n  var currentTime = initialTime;\n  advanceTimers(currentTime);\n  currentTask = peek(taskQueue);\n\n  while (currentTask !== null && !(enableSchedulerDebugging )) {\n    if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) {\n      // This currentTask hasn't expired, and we've reached the deadline.\n      break;\n    }\n\n    var callback = currentTask.callback;\n\n    if (typeof callback === 'function') {\n      currentTask.callback = null;\n      currentPriorityLevel = currentTask.priorityLevel;\n      var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n      markTaskRun(currentTask, currentTime);\n      var continuationCallback = callback(didUserCallbackTimeout);\n      currentTime = exports.unstable_now();\n\n      if (typeof continuationCallback === 'function') {\n        currentTask.callback = continuationCallback;\n        markTaskYield(currentTask, currentTime);\n      } else {\n        {\n          markTaskCompleted(currentTask, currentTime);\n          currentTask.isQueued = false;\n        }\n\n        if (currentTask === peek(taskQueue)) {\n          pop(taskQueue);\n        }\n      }\n\n      advanceTimers(currentTime);\n    } else {\n      pop(taskQueue);\n    }\n\n    currentTask = peek(taskQueue);\n  } // Return whether there's additional work\n\n\n  if (currentTask !== null) {\n    return true;\n  } else {\n    var firstTimer = peek(timerQueue);\n\n    if (firstTimer !== null) {\n      requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n    }\n\n    return false;\n  }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n  switch (priorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n    case LowPriority:\n    case IdlePriority:\n      break;\n\n    default:\n      priorityLevel = NormalPriority;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_next(eventHandler) {\n  var priorityLevel;\n\n  switch (currentPriorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n      // Shift down to normal priority\n      priorityLevel = NormalPriority;\n      break;\n\n    default:\n      // Anything lower than normal priority should remain at the current level.\n      priorityLevel = currentPriorityLevel;\n      break;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_wrapCallback(callback) {\n  var parentPriorityLevel = currentPriorityLevel;\n  return function () {\n    // This is a fork of runWithPriority, inlined for performance.\n    var previousPriorityLevel = currentPriorityLevel;\n    currentPriorityLevel = parentPriorityLevel;\n\n    try {\n      return callback.apply(this, arguments);\n    } finally {\n      currentPriorityLevel = previousPriorityLevel;\n    }\n  };\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n  var currentTime = exports.unstable_now();\n  var startTime;\n\n  if (typeof options === 'object' && options !== null) {\n    var delay = options.delay;\n\n    if (typeof delay === 'number' && delay > 0) {\n      startTime = currentTime + delay;\n    } else {\n      startTime = currentTime;\n    }\n  } else {\n    startTime = currentTime;\n  }\n\n  var timeout;\n\n  switch (priorityLevel) {\n    case ImmediatePriority:\n      timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n      break;\n\n    case UserBlockingPriority:\n      timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n      break;\n\n    case IdlePriority:\n      timeout = IDLE_PRIORITY_TIMEOUT;\n      break;\n\n    case LowPriority:\n      timeout = LOW_PRIORITY_TIMEOUT;\n      break;\n\n    case NormalPriority:\n    default:\n      timeout = NORMAL_PRIORITY_TIMEOUT;\n      break;\n  }\n\n  var expirationTime = startTime + timeout;\n  var newTask = {\n    id: taskIdCounter++,\n    callback: callback,\n    priorityLevel: priorityLevel,\n    startTime: startTime,\n    expirationTime: expirationTime,\n    sortIndex: -1\n  };\n\n  {\n    newTask.isQueued = false;\n  }\n\n  if (startTime > currentTime) {\n    // This is a delayed task.\n    newTask.sortIndex = startTime;\n    push(timerQueue, newTask);\n\n    if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n      // All tasks are delayed, and this is the task with the earliest delay.\n      if (isHostTimeoutScheduled) {\n        // Cancel an existing timeout.\n        cancelHostTimeout();\n      } else {\n        isHostTimeoutScheduled = true;\n      } // Schedule a timeout.\n\n\n      requestHostTimeout(handleTimeout, startTime - currentTime);\n    }\n  } else {\n    newTask.sortIndex = expirationTime;\n    push(taskQueue, newTask);\n\n    {\n      markTaskStart(newTask, currentTime);\n      newTask.isQueued = true;\n    } // Schedule a host callback, if needed. If we're already performing work,\n    // wait until the next time we yield.\n\n\n    if (!isHostCallbackScheduled && !isPerformingWork) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    }\n  }\n\n  return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n  if (!isHostCallbackScheduled && !isPerformingWork) {\n    isHostCallbackScheduled = true;\n    requestHostCallback(flushWork);\n  }\n}\n\nfunction unstable_getFirstCallbackNode() {\n  return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n  {\n    if (task.isQueued) {\n      var currentTime = exports.unstable_now();\n      markTaskCanceled(task, currentTime);\n      task.isQueued = false;\n    }\n  } // Null out the callback to indicate the task has been canceled. (Can't\n  // remove from the queue because you can't remove arbitrary nodes from an\n  // array based heap, only the first one.)\n\n\n  task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n  return currentPriorityLevel;\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling =  {\n  startLoggingProfilingEvents: startLoggingProfilingEvents,\n  stopLoggingProfilingEvents: stopLoggingProfilingEvents,\n  sharedProfilingBuffer: sharedProfilingBuffer\n} ;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_wrapCallback = unstable_wrapCallback;\n  })();\n}\n"]},"metadata":{},"sourceType":"script"}