404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.144.20.151: ~ $
"use strict";
module.exports =
function(Promise, PromiseArray, apiRejection) {
var util = require("./util");
var RangeError = require("./errors").RangeError;
var AggregateError = require("./errors").AggregateError;
var isArray = util.isArray;
var CANCELLATION = {};


function SomePromiseArray(values) {
    this.constructor$(values);
    this._howMany = 0;
    this._unwrap = false;
    this._initialized = false;
}
util.inherits(SomePromiseArray, PromiseArray);

SomePromiseArray.prototype._init = function () {
    if (!this._initialized) {
        return;
    }
    if (this._howMany === 0) {
        this._resolve([]);
        return;
    }
    this._init$(undefined, -5);
    var isArrayResolved = isArray(this._values);
    if (!this._isResolved() &&
        isArrayResolved &&
        this._howMany > this._canPossiblyFulfill()) {
        this._reject(this._getRangeError(this.length()));
    }
};

SomePromiseArray.prototype.init = function () {
    this._initialized = true;
    this._init();
};

SomePromiseArray.prototype.setUnwrap = function () {
    this._unwrap = true;
};

SomePromiseArray.prototype.howMany = function () {
    return this._howMany;
};

SomePromiseArray.prototype.setHowMany = function (count) {
    this._howMany = count;
};

SomePromiseArray.prototype._promiseFulfilled = function (value) {
    this._addFulfilled(value);
    if (this._fulfilled() === this.howMany()) {
        this._values.length = this.howMany();
        if (this.howMany() === 1 && this._unwrap) {
            this._resolve(this._values[0]);
        } else {
            this._resolve(this._values);
        }
        return true;
    }
    return false;

};
SomePromiseArray.prototype._promiseRejected = function (reason) {
    this._addRejected(reason);
    return this._checkOutcome();
};

SomePromiseArray.prototype._promiseCancelled = function () {
    if (this._values instanceof Promise || this._values == null) {
        return this._cancel();
    }
    this._addRejected(CANCELLATION);
    return this._checkOutcome();
};

SomePromiseArray.prototype._checkOutcome = function() {
    if (this.howMany() > this._canPossiblyFulfill()) {
        var e = new AggregateError();
        for (var i = this.length(); i < this._values.length; ++i) {
            if (this._values[i] !== CANCELLATION) {
                e.push(this._values[i]);
            }
        }
        if (e.length > 0) {
            this._reject(e);
        } else {
            this._cancel();
        }
        return true;
    }
    return false;
};

SomePromiseArray.prototype._fulfilled = function () {
    return this._totalResolved;
};

SomePromiseArray.prototype._rejected = function () {
    return this._values.length - this.length();
};

SomePromiseArray.prototype._addRejected = function (reason) {
    this._values.push(reason);
};

SomePromiseArray.prototype._addFulfilled = function (value) {
    this._values[this._totalResolved++] = value;
};

SomePromiseArray.prototype._canPossiblyFulfill = function () {
    return this.length() - this._rejected();
};

SomePromiseArray.prototype._getRangeError = function (count) {
    var message = "Input array must contain at least " +
            this._howMany + " items but contains only " + count + " items";
    return new RangeError(message);
};

SomePromiseArray.prototype._resolveEmptyArray = function () {
    this._reject(this._getRangeError(0));
};

function some(promises, howMany) {
    if ((howMany | 0) !== howMany || howMany < 0) {
        return apiRejection("expecting a positive integer\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
    }
    var ret = new SomePromiseArray(promises);
    var promise = ret.promise();
    ret.setHowMany(howMany);
    ret.init();
    return promise;
}

Promise.some = function (promises, howMany) {
    return some(promises, howMany);
};

Promise.prototype.some = function (howMany) {
    return some(this, howMany);
};

Promise._SomePromiseArray = SomePromiseArray;
};

Filemanager

Name Type Size Permission Actions
any.js File 421 B 0644
assert.js File 1.61 KB 0644
async.js File 4.05 KB 0644
bind.js File 1.92 KB 0644
bluebird.js File 291 B 0644
call_get.js File 4.25 KB 0644
cancel.js File 3.62 KB 0644
catch_filter.js File 1.39 KB 0644
context.js File 2.33 KB 0644
debuggability.js File 29.63 KB 0644
direct_resolve.js File 1.36 KB 0644
each.js File 789 B 0644
errors.js File 3.63 KB 0644
es5.js File 1.93 KB 0644
filter.js File 314 B 0644
finally.js File 4.5 KB 0644
generators.js File 7.58 KB 0644
join.js File 8.03 KB 0644
map.js File 5.25 KB 0644
method.js File 1.73 KB 0644
nodeback.js File 1.52 KB 0644
nodeify.js File 1.61 KB 0644
promise.js File 25.59 KB 0644
promise_array.js File 5.08 KB 0644
promisify.js File 11.9 KB 0644
props.js File 3.04 KB 0644
queue.js File 1.83 KB 0644
race.js File 1.22 KB 0644
reduce.js File 5.01 KB 0644
schedule.js File 2.1 KB 0644
settle.js File 1.23 KB 0644
some.js File 3.87 KB 0644
synchronous_inspection.js File 2.75 KB 0644
thenables.js File 2.08 KB 0644
timers.js File 2.34 KB 0644
using.js File 7.35 KB 0644
util.js File 10.28 KB 0644