forked from enviPath/enviPy
Current Dev State
This commit is contained in:
73
static/js/ketcher2/node_modules/when/lib/env.js
generated
vendored
Normal file
73
static/js/ketcher2/node_modules/when/lib/env.js
generated
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
/** @license MIT License (c) copyright 2010-2014 original author or authors */
|
||||
/** @author Brian Cavalier */
|
||||
/** @author John Hann */
|
||||
|
||||
/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/
|
||||
(function(define) { 'use strict';
|
||||
define(function(require) {
|
||||
/*jshint maxcomplexity:6*/
|
||||
|
||||
// Sniff "best" async scheduling option
|
||||
// Prefer process.nextTick or MutationObserver, then check for
|
||||
// setTimeout, and finally vertx, since its the only env that doesn't
|
||||
// have setTimeout
|
||||
|
||||
var MutationObs;
|
||||
var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout;
|
||||
|
||||
// Default env
|
||||
var setTimer = function(f, ms) { return setTimeout(f, ms); };
|
||||
var clearTimer = function(t) { return clearTimeout(t); };
|
||||
var asap = function (f) { return capturedSetTimeout(f, 0); };
|
||||
|
||||
// Detect specific env
|
||||
if (isNode()) { // Node
|
||||
asap = function (f) { return process.nextTick(f); };
|
||||
|
||||
} else if (MutationObs = hasMutationObserver()) { // Modern browser
|
||||
asap = initMutationObserver(MutationObs);
|
||||
|
||||
} else if (!capturedSetTimeout) { // vert.x
|
||||
var vertxRequire = require;
|
||||
var vertx = vertxRequire('vertx');
|
||||
setTimer = function (f, ms) { return vertx.setTimer(ms, f); };
|
||||
clearTimer = vertx.cancelTimer;
|
||||
asap = vertx.runOnLoop || vertx.runOnContext;
|
||||
}
|
||||
|
||||
return {
|
||||
setTimer: setTimer,
|
||||
clearTimer: clearTimer,
|
||||
asap: asap
|
||||
};
|
||||
|
||||
function isNode () {
|
||||
return typeof process !== 'undefined' &&
|
||||
Object.prototype.toString.call(process) === '[object process]';
|
||||
}
|
||||
|
||||
function hasMutationObserver () {
|
||||
return (typeof MutationObserver !== 'undefined' && MutationObserver) ||
|
||||
(typeof WebKitMutationObserver !== 'undefined' && WebKitMutationObserver);
|
||||
}
|
||||
|
||||
function initMutationObserver(MutationObserver) {
|
||||
var scheduled;
|
||||
var node = document.createTextNode('');
|
||||
var o = new MutationObserver(run);
|
||||
o.observe(node, { characterData: true });
|
||||
|
||||
function run() {
|
||||
var f = scheduled;
|
||||
scheduled = void 0;
|
||||
f();
|
||||
}
|
||||
|
||||
var i = 0;
|
||||
return function (f) {
|
||||
scheduled = f;
|
||||
node.data = (i ^= 1);
|
||||
};
|
||||
}
|
||||
});
|
||||
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));
|
||||
Reference in New Issue
Block a user