Show More
Commit Description:
change logger to be limited by file size
Commit Description:
change logger to be limited by file size
References:
File last commit:
Show/Diff file:
Action:
node_modules/core-js/modules/_microtask.js
| 69 lines
| 1.9 KiB
| application/javascript
| JavascriptLexer
|
r789 | var global = require('./_global'); | |||
var macrotask = require('./_task').set; | ||||
var Observer = global.MutationObserver || global.WebKitMutationObserver; | ||||
var process = global.process; | ||||
var Promise = global.Promise; | ||||
var isNode = require('./_cof')(process) == 'process'; | ||||
module.exports = function () { | ||||
var head, last, notify; | ||||
var flush = function () { | ||||
var parent, fn; | ||||
if (isNode && (parent = process.domain)) parent.exit(); | ||||
while (head) { | ||||
fn = head.fn; | ||||
head = head.next; | ||||
try { | ||||
fn(); | ||||
} catch (e) { | ||||
if (head) notify(); | ||||
else last = undefined; | ||||
throw e; | ||||
} | ||||
} last = undefined; | ||||
if (parent) parent.enter(); | ||||
}; | ||||
// Node.js | ||||
if (isNode) { | ||||
notify = function () { | ||||
process.nextTick(flush); | ||||
}; | ||||
// browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 | ||||
} else if (Observer && !(global.navigator && global.navigator.standalone)) { | ||||
var toggle = true; | ||||
var node = document.createTextNode(''); | ||||
new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new | ||||
notify = function () { | ||||
node.data = toggle = !toggle; | ||||
}; | ||||
// environments with maybe non-completely correct, but existent Promise | ||||
} else if (Promise && Promise.resolve) { | ||||
// Promise.resolve without an argument throws an error in LG WebOS 2 | ||||
var promise = Promise.resolve(undefined); | ||||
notify = function () { | ||||
promise.then(flush); | ||||
}; | ||||
// for other environments - macrotask based on: | ||||
// - setImmediate | ||||
// - MessageChannel | ||||
// - window.postMessag | ||||
// - onreadystatechange | ||||
// - setTimeout | ||||
} else { | ||||
notify = function () { | ||||
// strange IE + webpack dev server bug - use .call(global) | ||||
macrotask.call(global, flush); | ||||
}; | ||||
} | ||||
return function (fn) { | ||||
var task = { fn: fn, next: undefined }; | ||||
if (last) last.next = task; | ||||
if (!head) { | ||||
head = task; | ||||
notify(); | ||||
} last = task; | ||||
}; | ||||
}; | ||||