update dev deps and tooling
This commit is contained in:
		
							parent
							
								
									e993b565c8
								
							
						
					
					
						commit
						d07f3c99c7
					
				| @ -2,7 +2,7 @@ | ||||
| 	"env": { "shared-node-browser":true }, | ||||
| 	"globals": {}, | ||||
| 	"parserOptions": { | ||||
| 		"ecmaVersion": 3, | ||||
| 		"ecmaVersion": 3 | ||||
| 	}, | ||||
| 	"plugins": [ "html", "json" ], | ||||
| 	"extends": "eslint:recommended", | ||||
| @ -12,7 +12,13 @@ | ||||
| 		"curly": 0, | ||||
| 		"no-bitwise": 0, | ||||
| 		"no-console": 0, | ||||
| 		"no-control-regex": 0, | ||||
| 		"no-empty": 0, | ||||
| 		"no-trailing-spaces": 2, | ||||
| 		"no-use-before-define": [ 1, { | ||||
| 			"functions":false, "classes":true, "variables":false | ||||
| 		}], | ||||
| 		"no-useless-escape": 0, | ||||
| 		"semi": [ 2, "always" ] | ||||
| 	} | ||||
| } | ||||
|  | ||||
							
								
								
									
										9
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										9
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| .gitignore | ||||
| node_modules/ | ||||
| coverage.html | ||||
| *.sheetjs | ||||
| *.pyc | ||||
| build/ | ||||
| MANIFEST | ||||
| *.gz | ||||
| *.tgz | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -47,7 +47,7 @@ fullint: lint old-lint tslint flow mdlint ## Run all checks | ||||
| 
 | ||||
| .PHONY: lint | ||||
| lint: $(TARGET) $(AUXTARGETS) ## Run eslint checks
 | ||||
| 	@eslint --ext .js,.njs,.json,.html,.htm $(TARGET) $(AUXTARGETS) $(CMDS) $(HTMLLINT) package.json bower.json | ||||
| 	@eslint --ext .js,.njs,.json,.html,.htm $(TARGET) $(AUXTARGETS) $(CMDS) $(HTMLLINT) package.json | ||||
| 	if [ -e $(CLOSURE) ]; then java -jar $(CLOSURE) $(REQS) $(FLOWTARGET) --jscomp_warning=reportUnknownTypes >/dev/null; fi | ||||
| 
 | ||||
| .PHONY: old-lint | ||||
|  | ||||
							
								
								
									
										1
									
								
								README
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										1
									
								
								README
									
									
									
									
									
								
							| @ -1 +0,0 @@ | ||||
| README.md | ||||
| @ -102,6 +102,10 @@ The test TSV baselines in the `test_files` directory have four columns: | ||||
| 
 | ||||
| `make test` will run the node-based tests. | ||||
| 
 | ||||
| `make ctest` will use `browserify` to build a standalone script that can be run | ||||
| in the web browser.  The transform `brfs` must be installed locally.  Browser | ||||
| test script built against `browserfy@16.5.1` and `brfs@2.0.2`. | ||||
| 
 | ||||
| `make pytest` will run the python tests against the system Python version. | ||||
| 
 | ||||
| `make pypytest` will run the python tests against `pypy` if installed | ||||
| @ -123,6 +127,4 @@ granted by the Apache 2.0 License are reserved by the Original Author. | ||||
| 
 | ||||
| [](https://david-dm.org/sheetjs/frac) | ||||
| 
 | ||||
| [](https://ghit.me/repo/sheetjs/js-xlsx) | ||||
| 
 | ||||
| [](https://github.com/SheetJS/frac) | ||||
|  | ||||
							
								
								
									
										492
									
								
								ctest/test.js
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										492
									
								
								ctest/test.js
									
									
									
									
									
								
							| @ -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]); | ||||
|  | ||||
							
								
								
									
										3
									
								
								frac.md
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										3
									
								
								frac.md
									
									
									
									
									
								
							| @ -258,10 +258,11 @@ xltestfiles.forEach(function(x) { | ||||
|     "codepage": "~1.10.0", | ||||
|     "@sheetjs/uglify-js": "~2.7.3", | ||||
|     "@types/node": "^8.0.7", | ||||
|     "brfs": "^2.0.2", | ||||
|     "dtslint": "^0.1.2", | ||||
|     "typescript": "2.2.0" | ||||
|   }, | ||||
|   "repository": { "type":"git", "url":"git://github.com/SheetJS/frac.git" }, | ||||
|   "repository": { "type": "git", "url": "git://github.com/SheetJS/frac.git" }, | ||||
|   "scripts": { | ||||
|     "test": "make test", | ||||
|     "build": "make", | ||||
|  | ||||
| @ -14,10 +14,11 @@ | ||||
|     "codepage": "~1.10.0", | ||||
|     "@sheetjs/uglify-js": "~2.7.3", | ||||
|     "@types/node": "^8.0.7", | ||||
|     "brfs": "^2.0.2", | ||||
|     "dtslint": "^0.1.2", | ||||
|     "typescript": "2.2.0" | ||||
|   }, | ||||
|   "repository": { "type":"git", "url":"git://github.com/SheetJS/frac.git" }, | ||||
|   "repository": { "type": "git", "url": "git://github.com/SheetJS/frac.git" }, | ||||
|   "scripts": { | ||||
|     "test": "make test", | ||||
|     "build": "make", | ||||
|  | ||||
| @ -9,6 +9,7 @@ | ||||
|         "paths": { "frac": ["."] }, | ||||
|         "types": [], | ||||
|         "noEmit": true, | ||||
|         "strictFunctionTypes": true, | ||||
|         "forceConsistentCasingInFileNames": true | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -1,11 +1,14 @@ | ||||
| { | ||||
| 	"extends": "dtslint/dtslint.json", | ||||
| 	"rules": { | ||||
| 		"no-implicit-dependencies": false, | ||||
| 		"whitespace": false, | ||||
| 		"no-sparse-arrays": false, | ||||
| 		"only-arrow-functions": false, | ||||
| 		"no-consecutive-blank-lines": false, | ||||
| 		"prefer-conditional-expression": false, | ||||
| 		"one-variable-per-declaration": false | ||||
| 		"one-variable-per-declaration": false, | ||||
| 		"strict-export-declare-modifiers": false, | ||||
| 		"prefer-template": false | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user