{"version":3,"sources":["webpack:///./node_modules/aurelia-task-queue/dist/native-modules/aurelia-task-queue.js"],"names":["_typeof","Symbol","iterator","obj","constructor","prototype","makeRequestFlushFromTimer","flush","timeoutHandle","setTimeout","handleFlushTimer","intervalHandle","setInterval","clearTimeout","clearInterval","TaskQueue","observer","val","node","values","_this","this","flushing","longStacks","microTaskQueue","microTaskQueueCapacity","taskQueue","mutationObserver","requestFlushMicroTaskQueue","flushMicroTaskQueue","createMutationObserver","createTextNode","Object","create","a","b","observe","characterData","data","requestFlushTaskQueue","flushTaskQueue","_flushQueue","queue","capacity","index","task","length","stack","undefined","call","scan","newLength","error","filterFlushStack","onError","queueMicroTask","prepareQueueStack","push","queueTask","Number","MAX_VALUE","separator","replace","filterQueueStack","Error","e","captureStack","lastIndexOf","substr"],"mappings":"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","file":"npm.aurelia-task-queue.233e1b01c6558f858dc6.js","sourcesContent":["var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\nimport { DOM, FEATURE } from 'aurelia-pal';\n\nvar stackSeparator = '\\nEnqueued in TaskQueue by:\\n';\nvar microStackSeparator = '\\nEnqueued in MicroTaskQueue by:\\n';\n\nfunction makeRequestFlushFromMutationObserver(flush) {\n var observer = DOM.createMutationObserver(flush);\n var val = 'a';\n var node = DOM.createTextNode('a');\n var values = Object.create(null);\n values.a = 'b';\n values.b = 'a';\n observer.observe(node, { characterData: true });\n return function requestFlush() {\n node.data = val = values[val];\n };\n}\n\nfunction makeRequestFlushFromTimer(flush) {\n return function requestFlush() {\n var timeoutHandle = setTimeout(handleFlushTimer, 0);\n\n var intervalHandle = setInterval(handleFlushTimer, 50);\n function handleFlushTimer() {\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n flush();\n }\n };\n}\n\nfunction onError(error, task, longStacks) {\n if (longStacks && task.stack && (typeof error === 'undefined' ? 'undefined' : _typeof(error)) === 'object' && error !== null) {\n error.stack = filterFlushStack(error.stack) + task.stack;\n }\n\n if ('onError' in task) {\n task.onError(error);\n } else {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n}\n\nexport var TaskQueue = function () {\n function TaskQueue() {\n var _this = this;\n\n \n\n this.flushing = false;\n this.longStacks = false;\n\n this.microTaskQueue = [];\n this.microTaskQueueCapacity = 1024;\n this.taskQueue = [];\n\n if (FEATURE.mutationObserver) {\n this.requestFlushMicroTaskQueue = makeRequestFlushFromMutationObserver(function () {\n return _this.flushMicroTaskQueue();\n });\n } else {\n this.requestFlushMicroTaskQueue = makeRequestFlushFromTimer(function () {\n return _this.flushMicroTaskQueue();\n });\n }\n\n this.requestFlushTaskQueue = makeRequestFlushFromTimer(function () {\n return _this.flushTaskQueue();\n });\n }\n\n TaskQueue.prototype._flushQueue = function _flushQueue(queue, capacity) {\n var index = 0;\n var task = void 0;\n\n try {\n this.flushing = true;\n while (index < queue.length) {\n task = queue[index];\n if (this.longStacks) {\n this.stack = typeof task.stack === 'string' ? task.stack : undefined;\n }\n task.call();\n index++;\n\n if (index > capacity) {\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n\n queue.length -= index;\n index = 0;\n }\n }\n } catch (error) {\n onError(error, task, this.longStacks);\n } finally {\n this.flushing = false;\n }\n };\n\n TaskQueue.prototype.queueMicroTask = function queueMicroTask(task) {\n if (this.microTaskQueue.length < 1) {\n this.requestFlushMicroTaskQueue();\n }\n\n if (this.longStacks) {\n task.stack = this.prepareQueueStack(microStackSeparator);\n }\n\n this.microTaskQueue.push(task);\n };\n\n TaskQueue.prototype.queueTask = function queueTask(task) {\n if (this.taskQueue.length < 1) {\n this.requestFlushTaskQueue();\n }\n\n if (this.longStacks) {\n task.stack = this.prepareQueueStack(stackSeparator);\n }\n\n this.taskQueue.push(task);\n };\n\n TaskQueue.prototype.flushTaskQueue = function flushTaskQueue() {\n var queue = this.taskQueue;\n this.taskQueue = [];\n this._flushQueue(queue, Number.MAX_VALUE);\n };\n\n TaskQueue.prototype.flushMicroTaskQueue = function flushMicroTaskQueue() {\n var queue = this.microTaskQueue;\n this._flushQueue(queue, this.microTaskQueueCapacity);\n queue.length = 0;\n };\n\n TaskQueue.prototype.prepareQueueStack = function prepareQueueStack(separator) {\n var stack = separator + filterQueueStack(captureStack());\n\n if (typeof this.stack === 'string') {\n stack = filterFlushStack(stack) + this.stack;\n }\n\n return stack;\n };\n\n return TaskQueue;\n}();\n\nfunction captureStack() {\n var error = new Error();\n\n if (error.stack) {\n return error.stack;\n }\n\n try {\n throw error;\n } catch (e) {\n return e.stack;\n }\n}\n\nfunction filterQueueStack(stack) {\n return stack.replace(/^[\\s\\S]*?\\bqueue(Micro)?Task\\b[^\\n]*\\n/, '');\n}\n\nfunction filterFlushStack(stack) {\n var index = stack.lastIndexOf('flushMicroTaskQueue');\n\n if (index < 0) {\n index = stack.lastIndexOf('flushTaskQueue');\n if (index < 0) {\n return stack;\n }\n }\n\n index = stack.lastIndexOf('\\n', index);\n\n return index < 0 ? stack : stack.substr(0, index);\n}"],"sourceRoot":""}