forked from enviPath/enviPy
Current Dev State
This commit is contained in:
55
static/js/ketcher2/node_modules/when/lib/apply.js
generated
vendored
Normal file
55
static/js/ketcher2/node_modules/when/lib/apply.js
generated
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/** @license MIT License (c) copyright 2010-2014 original author or authors */
|
||||
/** @author Brian Cavalier */
|
||||
/** @author John Hann */
|
||||
|
||||
(function(define) { 'use strict';
|
||||
define(function() {
|
||||
|
||||
makeApply.tryCatchResolve = tryCatchResolve;
|
||||
|
||||
return makeApply;
|
||||
|
||||
function makeApply(Promise, call) {
|
||||
if(arguments.length < 2) {
|
||||
call = tryCatchResolve;
|
||||
}
|
||||
|
||||
return apply;
|
||||
|
||||
function apply(f, thisArg, args) {
|
||||
var p = Promise._defer();
|
||||
var l = args.length;
|
||||
var params = new Array(l);
|
||||
callAndResolve({ f:f, thisArg:thisArg, args:args, params:params, i:l-1, call:call }, p._handler);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
function callAndResolve(c, h) {
|
||||
if(c.i < 0) {
|
||||
return call(c.f, c.thisArg, c.params, h);
|
||||
}
|
||||
|
||||
var handler = Promise._handler(c.args[c.i]);
|
||||
handler.fold(callAndResolveNext, c, void 0, h);
|
||||
}
|
||||
|
||||
function callAndResolveNext(c, x, h) {
|
||||
c.params[c.i] = x;
|
||||
c.i -= 1;
|
||||
callAndResolve(c, h);
|
||||
}
|
||||
}
|
||||
|
||||
function tryCatchResolve(f, thisArg, args, resolver) {
|
||||
try {
|
||||
resolver.resolve(f.apply(thisArg, args));
|
||||
} catch(e) {
|
||||
resolver.reject(e);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user