mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-05 02:39:46 +02:00
New updates and modules
This commit is contained in:
parent
4d5d408898
commit
0abf0f90f6
959 changed files with 364301 additions and 17493 deletions
97
node_modules/immediate/lib/index.js
generated
vendored
Normal file
97
node_modules/immediate/lib/index.js
generated
vendored
Normal file
|
@ -0,0 +1,97 @@
|
|||
'use strict';
|
||||
var types = [
|
||||
require('./nextTick'),
|
||||
require('./queueMicrotask'),
|
||||
require('./mutation.js'),
|
||||
require('./messageChannel'),
|
||||
require('./stateChange'),
|
||||
require('./timeout')
|
||||
];
|
||||
var draining;
|
||||
var currentQueue;
|
||||
var queueIndex = -1;
|
||||
var queue = [];
|
||||
var scheduled = false;
|
||||
function cleanUpNextTick() {
|
||||
if (!draining || !currentQueue) {
|
||||
return;
|
||||
}
|
||||
draining = false;
|
||||
if (currentQueue.length) {
|
||||
queue = currentQueue.concat(queue);
|
||||
} else {
|
||||
queueIndex = -1;
|
||||
}
|
||||
if (queue.length) {
|
||||
nextTick();
|
||||
}
|
||||
}
|
||||
|
||||
//named nextTick for less confusing stack traces
|
||||
function nextTick() {
|
||||
if (draining) {
|
||||
return;
|
||||
}
|
||||
scheduled = false;
|
||||
draining = true;
|
||||
var len = queue.length;
|
||||
var timeout = setTimeout(cleanUpNextTick);
|
||||
while (len) {
|
||||
currentQueue = queue;
|
||||
queue = [];
|
||||
while (currentQueue && ++queueIndex < len) {
|
||||
currentQueue[queueIndex].run();
|
||||
}
|
||||
queueIndex = -1;
|
||||
len = queue.length;
|
||||
}
|
||||
currentQueue = null;
|
||||
queueIndex = -1;
|
||||
draining = false;
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
var scheduleDrain;
|
||||
var i = -1;
|
||||
var len = types.length;
|
||||
while (++i < len) {
|
||||
if (types[i] && types[i].test && types[i].test()) {
|
||||
scheduleDrain = types[i].install(nextTick);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// v8 likes predictible objects
|
||||
function Item(fun, array) {
|
||||
this.fun = fun;
|
||||
this.array = array;
|
||||
}
|
||||
Item.prototype.run = function () {
|
||||
var fun = this.fun;
|
||||
var array = this.array;
|
||||
switch (array.length) {
|
||||
case 0:
|
||||
return fun();
|
||||
case 1:
|
||||
return fun(array[0]);
|
||||
case 2:
|
||||
return fun(array[0], array[1]);
|
||||
case 3:
|
||||
return fun(array[0], array[1], array[2]);
|
||||
default:
|
||||
return fun.apply(null, array);
|
||||
}
|
||||
|
||||
};
|
||||
module.exports = immediate;
|
||||
function immediate(task) {
|
||||
var args = new Array(arguments.length - 1);
|
||||
if (arguments.length > 1) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
args[i - 1] = arguments[i];
|
||||
}
|
||||
}
|
||||
queue.push(new Item(task, args));
|
||||
if (!scheduled && !draining) {
|
||||
scheduled = true;
|
||||
scheduleDrain();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue