|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
|
|
|
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
|
|
|
|
/* frac.js (C) 2012-present SheetJS -- http://sheetjs.com */
|
|
|
|
|
var frac = function frac(x, D, mixed) {
|
|
|
|
|
var n1 = Math.floor(x), d1 = 1;
|
|
|
|
@ -43,7 +43,7 @@ frac.cont = function cont(x, D, mixed) {
|
|
|
|
|
if(typeof module !== 'undefined' && typeof DO_NOT_EXPORT_FRAC === 'undefined') module.exports = frac;
|
|
|
|
|
|
|
|
|
|
},{}],2:[function(require,module,exports){
|
|
|
|
|
var assert = require('assert');
|
|
|
|
|
var fs = require('fs'), assert = require('assert');
|
|
|
|
|
var frac;
|
|
|
|
|
describe('source', function() { it('should load', function() { frac = require('./'); }); });
|
|
|
|
|
var xltestfiles=[
|
|
|
|
@ -108,10 +108,14 @@ xltestfiles.forEach(function(x) {
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},{"./":1,"assert":3}],3:[function(require,module,exports){
|
|
|
|
|
},{"./":1,"assert":4,"fs":3}],3:[function(require,module,exports){
|
|
|
|
|
|
|
|
|
|
},{}],4:[function(require,module,exports){
|
|
|
|
|
(function (global){
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
var objectAssign = require('object-assign');
|
|
|
|
|
|
|
|
|
|
// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js
|
|
|
|
|
// original notice:
|
|
|
|
|
|
|
|
|
@ -153,6 +157,8 @@ function isBuffer(b) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// based on node assert, original notice:
|
|
|
|
|
// NB: The URL to the CommonJS spec is kept just for tradition.
|
|
|
|
|
// node-assert has evolved a lot since then, both in API and behavior.
|
|
|
|
|
|
|
|
|
|
// http://wiki.commonjs.org/wiki/Unit_Testing/1.0
|
|
|
|
|
//
|
|
|
|
@ -593,6 +599,18 @@ assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
|
|
|
|
|
|
|
|
|
|
assert.ifError = function(err) { if (err) throw err; };
|
|
|
|
|
|
|
|
|
|
// Expose a strict only variant of assert
|
|
|
|
|
function strict(value, message) {
|
|
|
|
|
if (!value) fail(value, true, message, '==', strict);
|
|
|
|
|
}
|
|
|
|
|
assert.strict = objectAssign(strict, assert, {
|
|
|
|
|
equal: assert.strictEqual,
|
|
|
|
|
deepEqual: assert.deepStrictEqual,
|
|
|
|
|
notEqual: assert.notStrictEqual,
|
|
|
|
|
notDeepEqual: assert.notDeepStrictEqual
|
|
|
|
|
});
|
|
|
|
|
assert.strict.strict = assert.strict;
|
|
|
|
|
|
|
|
|
|
var objectKeys = Object.keys || function (obj) {
|
|
|
|
|
var keys = [];
|
|
|
|
|
for (var key in obj) {
|
|
|
|
@ -602,193 +620,7 @@ var objectKeys = Object.keys || function (obj) {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
|
|
|
|
},{"util/":7}],4:[function(require,module,exports){
|
|
|
|
|
// shim for using process in browser
|
|
|
|
|
var process = module.exports = {};
|
|
|
|
|
|
|
|
|
|
// cached from whatever global is present so that test runners that stub it
|
|
|
|
|
// don't break things. But we need to wrap it in a try catch in case it is
|
|
|
|
|
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
|
|
|
|
// function because try/catches deoptimize in certain engines.
|
|
|
|
|
|
|
|
|
|
var cachedSetTimeout;
|
|
|
|
|
var cachedClearTimeout;
|
|
|
|
|
|
|
|
|
|
function defaultSetTimout() {
|
|
|
|
|
throw new Error('setTimeout has not been defined');
|
|
|
|
|
}
|
|
|
|
|
function defaultClearTimeout () {
|
|
|
|
|
throw new Error('clearTimeout has not been defined');
|
|
|
|
|
}
|
|
|
|
|
(function () {
|
|
|
|
|
try {
|
|
|
|
|
if (typeof setTimeout === 'function') {
|
|
|
|
|
cachedSetTimeout = setTimeout;
|
|
|
|
|
} else {
|
|
|
|
|
cachedSetTimeout = defaultSetTimout;
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
cachedSetTimeout = defaultSetTimout;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
if (typeof clearTimeout === 'function') {
|
|
|
|
|
cachedClearTimeout = clearTimeout;
|
|
|
|
|
} else {
|
|
|
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
|
|
|
}
|
|
|
|
|
} ())
|
|
|
|
|
function runTimeout(fun) {
|
|
|
|
|
if (cachedSetTimeout === setTimeout) {
|
|
|
|
|
//normal enviroments in sane situations
|
|
|
|
|
return setTimeout(fun, 0);
|
|
|
|
|
}
|
|
|
|
|
// if setTimeout wasn't available but was latter defined
|
|
|
|
|
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
|
|
|
cachedSetTimeout = setTimeout;
|
|
|
|
|
return setTimeout(fun, 0);
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
|
|
|
return cachedSetTimeout(fun, 0);
|
|
|
|
|
} catch(e){
|
|
|
|
|
try {
|
|
|
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
|
|
|
return cachedSetTimeout.call(null, fun, 0);
|
|
|
|
|
} catch(e){
|
|
|
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
|
|
|
|
return cachedSetTimeout.call(this, fun, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
function runClearTimeout(marker) {
|
|
|
|
|
if (cachedClearTimeout === clearTimeout) {
|
|
|
|
|
//normal enviroments in sane situations
|
|
|
|
|
return clearTimeout(marker);
|
|
|
|
|
}
|
|
|
|
|
// if clearTimeout wasn't available but was latter defined
|
|
|
|
|
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
|
|
|
cachedClearTimeout = clearTimeout;
|
|
|
|
|
return clearTimeout(marker);
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
|
|
|
return cachedClearTimeout(marker);
|
|
|
|
|
} catch (e){
|
|
|
|
|
try {
|
|
|
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
|
|
|
return cachedClearTimeout.call(null, marker);
|
|
|
|
|
} catch (e){
|
|
|
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
|
|
|
|
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
|
|
|
|
return cachedClearTimeout.call(this, marker);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
var queue = [];
|
|
|
|
|
var draining = false;
|
|
|
|
|
var currentQueue;
|
|
|
|
|
var queueIndex = -1;
|
|
|
|
|
|
|
|
|
|
function cleanUpNextTick() {
|
|
|
|
|
if (!draining || !currentQueue) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
draining = false;
|
|
|
|
|
if (currentQueue.length) {
|
|
|
|
|
queue = currentQueue.concat(queue);
|
|
|
|
|
} else {
|
|
|
|
|
queueIndex = -1;
|
|
|
|
|
}
|
|
|
|
|
if (queue.length) {
|
|
|
|
|
drainQueue();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function drainQueue() {
|
|
|
|
|
if (draining) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var timeout = runTimeout(cleanUpNextTick);
|
|
|
|
|
draining = true;
|
|
|
|
|
|
|
|
|
|
var len = queue.length;
|
|
|
|
|
while(len) {
|
|
|
|
|
currentQueue = queue;
|
|
|
|
|
queue = [];
|
|
|
|
|
while (++queueIndex < len) {
|
|
|
|
|
if (currentQueue) {
|
|
|
|
|
currentQueue[queueIndex].run();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
queueIndex = -1;
|
|
|
|
|
len = queue.length;
|
|
|
|
|
}
|
|
|
|
|
currentQueue = null;
|
|
|
|
|
draining = false;
|
|
|
|
|
runClearTimeout(timeout);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
process.nextTick = function (fun) {
|
|
|
|
|
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(fun, args));
|
|
|
|
|
if (queue.length === 1 && !draining) {
|
|
|
|
|
runTimeout(drainQueue);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// v8 likes predictible objects
|
|
|
|
|
function Item(fun, array) {
|
|
|
|
|
this.fun = fun;
|
|
|
|
|
this.array = array;
|
|
|
|
|
}
|
|
|
|
|
Item.prototype.run = function () {
|
|
|
|
|
this.fun.apply(null, this.array);
|
|
|
|
|
};
|
|
|
|
|
process.title = 'browser';
|
|
|
|
|
process.browser = true;
|
|
|
|
|
process.env = {};
|
|
|
|
|
process.argv = [];
|
|
|
|
|
process.version = ''; // empty string to avoid regexp issues
|
|
|
|
|
process.versions = {};
|
|
|
|
|
|
|
|
|
|
function noop() {}
|
|
|
|
|
|
|
|
|
|
process.on = noop;
|
|
|
|
|
process.addListener = noop;
|
|
|
|
|
process.once = noop;
|
|
|
|
|
process.off = noop;
|
|
|
|
|
process.removeListener = noop;
|
|
|
|
|
process.removeAllListeners = noop;
|
|
|
|
|
process.emit = noop;
|
|
|
|
|
process.prependListener = noop;
|
|
|
|
|
process.prependOnceListener = noop;
|
|
|
|
|
|
|
|
|
|
process.listeners = function (name) { return [] }
|
|
|
|
|
|
|
|
|
|
process.binding = function (name) {
|
|
|
|
|
throw new Error('process.binding is not supported');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
process.cwd = function () { return '/' };
|
|
|
|
|
process.chdir = function (dir) {
|
|
|
|
|
throw new Error('process.chdir is not supported');
|
|
|
|
|
};
|
|
|
|
|
process.umask = function() { return 0; };
|
|
|
|
|
|
|
|
|
|
},{}],5:[function(require,module,exports){
|
|
|
|
|
},{"object-assign":8,"util/":7}],5:[function(require,module,exports){
|
|
|
|
|
if (typeof Object.create === 'function') {
|
|
|
|
|
// implementation from standard node.js 'util' module
|
|
|
|
|
module.exports = function inherits(ctor, superCtor) {
|
|
|
|
@ -1410,4 +1242,282 @@ function hasOwnProperty(obj, prop) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
|
|
|
|
},{"./support/isBuffer":6,"_process":4,"inherits":5}]},{},[2]);
|
|
|
|
|
},{"./support/isBuffer":6,"_process":9,"inherits":5}],8:[function(require,module,exports){
|
|
|
|
|
/*
|
|
|
|
|
object-assign
|
|
|
|
|
(c) Sindre Sorhus
|
|
|
|
|
@license MIT
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
/* eslint-disable no-unused-vars */
|
|
|
|
|
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
|
|
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
|
|
|
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
|
|
|
|
|
|
|
|
|
|
function toObject(val) {
|
|
|
|
|
if (val === null || val === undefined) {
|
|
|
|
|
throw new TypeError('Object.assign cannot be called with null or undefined');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Object(val);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function shouldUseNative() {
|
|
|
|
|
try {
|
|
|
|
|
if (!Object.assign) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Detect buggy property enumeration order in older V8 versions.
|
|
|
|
|
|
|
|
|
|
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
|
|
|
|
|
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
|
|
|
|
|
test1[5] = 'de';
|
|
|
|
|
if (Object.getOwnPropertyNames(test1)[0] === '5') {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
|
|
|
|
|
var test2 = {};
|
|
|
|
|
for (var i = 0; i < 10; i++) {
|
|
|
|
|
test2['_' + String.fromCharCode(i)] = i;
|
|
|
|
|
}
|
|
|
|
|
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
|
|
|
|
|
return test2[n];
|
|
|
|
|
});
|
|
|
|
|
if (order2.join('') !== '0123456789') {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
|
|
|
|
|
var test3 = {};
|
|
|
|
|
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
|
|
|
|
|
test3[letter] = letter;
|
|
|
|
|
});
|
|
|
|
|
if (Object.keys(Object.assign({}, test3)).join('') !==
|
|
|
|
|
'abcdefghijklmnopqrst') {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
} catch (err) {
|
|
|
|
|
// We don't expect any of the above to throw, but better to be safe.
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
|
|
|
|
|
var from;
|
|
|
|
|
var to = toObject(target);
|
|
|
|
|
var symbols;
|
|
|
|
|
|
|
|
|
|
for (var s = 1; s < arguments.length; s++) {
|
|
|
|
|
from = Object(arguments[s]);
|
|
|
|
|
|
|
|
|
|
for (var key in from) {
|
|
|
|
|
if (hasOwnProperty.call(from, key)) {
|
|
|
|
|
to[key] = from[key];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (getOwnPropertySymbols) {
|
|
|
|
|
symbols = getOwnPropertySymbols(from);
|
|
|
|
|
for (var i = 0; i < symbols.length; i++) {
|
|
|
|
|
if (propIsEnumerable.call(from, symbols[i])) {
|
|
|
|
|
to[symbols[i]] = from[symbols[i]];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return to;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
},{}],9:[function(require,module,exports){
|
|
|
|
|
// shim for using process in browser
|
|
|
|
|
var process = module.exports = {};
|
|
|
|
|
|
|
|
|
|
// cached from whatever global is present so that test runners that stub it
|
|
|
|
|
// don't break things. But we need to wrap it in a try catch in case it is
|
|
|
|
|
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
|
|
|
|
// function because try/catches deoptimize in certain engines.
|
|
|
|
|
|
|
|
|
|
var cachedSetTimeout;
|
|
|
|
|
var cachedClearTimeout;
|
|
|
|
|
|
|
|
|
|
function defaultSetTimout() {
|
|
|
|
|
throw new Error('setTimeout has not been defined');
|
|
|
|
|
}
|
|
|
|
|
function defaultClearTimeout () {
|
|
|
|
|
throw new Error('clearTimeout has not been defined');
|
|
|
|
|
}
|
|
|
|
|
(function () {
|
|
|
|
|
try {
|
|
|
|
|
if (typeof setTimeout === 'function') {
|
|
|
|
|
cachedSetTimeout = setTimeout;
|
|
|
|
|
} else {
|
|
|
|
|
cachedSetTimeout = defaultSetTimout;
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
cachedSetTimeout = defaultSetTimout;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
if (typeof clearTimeout === 'function') {
|
|
|
|
|
cachedClearTimeout = clearTimeout;
|
|
|
|
|
} else {
|
|
|
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
|
|
|
}
|
|
|
|
|
} ())
|
|
|
|
|
function runTimeout(fun) {
|
|
|
|
|
if (cachedSetTimeout === setTimeout) {
|
|
|
|
|
//normal enviroments in sane situations
|
|
|
|
|
return setTimeout(fun, 0);
|
|
|
|
|
}
|
|
|
|
|
// if setTimeout wasn't available but was latter defined
|
|
|
|
|
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
|
|
|
cachedSetTimeout = setTimeout;
|
|
|
|
|
return setTimeout(fun, 0);
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
|
|
|
return cachedSetTimeout(fun, 0);
|
|
|
|
|
} catch(e){
|
|
|
|
|
try {
|
|
|
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
|
|
|
return cachedSetTimeout.call(null, fun, 0);
|
|
|
|
|
} catch(e){
|
|
|
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
|
|
|
|
return cachedSetTimeout.call(this, fun, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
function runClearTimeout(marker) {
|
|
|
|
|
if (cachedClearTimeout === clearTimeout) {
|
|
|
|
|
//normal enviroments in sane situations
|
|
|
|
|
return clearTimeout(marker);
|
|
|
|
|
}
|
|
|
|
|
// if clearTimeout wasn't available but was latter defined
|
|
|
|
|
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
|
|
|
cachedClearTimeout = clearTimeout;
|
|
|
|
|
return clearTimeout(marker);
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
|
|
|
return cachedClearTimeout(marker);
|
|
|
|
|
} catch (e){
|
|
|
|
|
try {
|
|
|
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
|
|
|
return cachedClearTimeout.call(null, marker);
|
|
|
|
|
} catch (e){
|
|
|
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
|
|
|
|
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
|
|
|
|
return cachedClearTimeout.call(this, marker);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
var queue = [];
|
|
|
|
|
var draining = false;
|
|
|
|
|
var currentQueue;
|
|
|
|
|
var queueIndex = -1;
|
|
|
|
|
|
|
|
|
|
function cleanUpNextTick() {
|
|
|
|
|
if (!draining || !currentQueue) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
draining = false;
|
|
|
|
|
if (currentQueue.length) {
|
|
|
|
|
queue = currentQueue.concat(queue);
|
|
|
|
|
} else {
|
|
|
|
|
queueIndex = -1;
|
|
|
|
|
}
|
|
|
|
|
if (queue.length) {
|
|
|
|
|
drainQueue();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function drainQueue() {
|
|
|
|
|
if (draining) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var timeout = runTimeout(cleanUpNextTick);
|
|
|
|
|
draining = true;
|
|
|
|
|
|
|
|
|
|
var len = queue.length;
|
|
|
|
|
while(len) {
|
|
|
|
|
currentQueue = queue;
|
|
|
|
|
queue = [];
|
|
|
|
|
while (++queueIndex < len) {
|
|
|
|
|
if (currentQueue) {
|
|
|
|
|
currentQueue[queueIndex].run();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
queueIndex = -1;
|
|
|
|
|
len = queue.length;
|
|
|
|
|
}
|
|
|
|
|
currentQueue = null;
|
|
|
|
|
draining = false;
|
|
|
|
|
runClearTimeout(timeout);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
process.nextTick = function (fun) {
|
|
|
|
|
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(fun, args));
|
|
|
|
|
if (queue.length === 1 && !draining) {
|
|
|
|
|
runTimeout(drainQueue);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// v8 likes predictible objects
|
|
|
|
|
function Item(fun, array) {
|
|
|
|
|
this.fun = fun;
|
|
|
|
|
this.array = array;
|
|
|
|
|
}
|
|
|
|
|
Item.prototype.run = function () {
|
|
|
|
|
this.fun.apply(null, this.array);
|
|
|
|
|
};
|
|
|
|
|
process.title = 'browser';
|
|
|
|
|
process.browser = true;
|
|
|
|
|
process.env = {};
|
|
|
|
|
process.argv = [];
|
|
|
|
|
process.version = ''; // empty string to avoid regexp issues
|
|
|
|
|
process.versions = {};
|
|
|
|
|
|
|
|
|
|
function noop() {}
|
|
|
|
|
|
|
|
|
|
process.on = noop;
|
|
|
|
|
process.addListener = noop;
|
|
|
|
|
process.once = noop;
|
|
|
|
|
process.off = noop;
|
|
|
|
|
process.removeListener = noop;
|
|
|
|
|
process.removeAllListeners = noop;
|
|
|
|
|
process.emit = noop;
|
|
|
|
|
process.prependListener = noop;
|
|
|
|
|
process.prependOnceListener = noop;
|
|
|
|
|
|
|
|
|
|
process.listeners = function (name) { return [] }
|
|
|
|
|
|
|
|
|
|
process.binding = function (name) {
|
|
|
|
|
throw new Error('process.binding is not supported');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
process.cwd = function () { return '/' };
|
|
|
|
|
process.chdir = function (dir) {
|
|
|
|
|
throw new Error('process.chdir is not supported');
|
|
|
|
|
};
|
|
|
|
|
process.umask = function() { return 0; };
|
|
|
|
|
|
|
|
|
|
},{}]},{},[2]);
|
|
|
|
|