import Enumerator from './enumerator'; import {
PENDING
} from './-internal'; import {
o_create
} from './utils';
function PromiseHash(Constructor, object, label) {
this._superConstructor(Constructor, object, true, label);
}
export default PromiseHash;
PromiseHash.prototype = o_create(Enumerator.prototype); PromiseHash.prototype._superConstructor = Enumerator; PromiseHash.prototype._init = function() {
this._result = {};
};
PromiseHash.prototype._validateInput = function(input) {
return input && typeof input === 'object';
};
PromiseHash.prototype._validationError = function() {
return new Error('Promise.hash must be called with an object');
};
PromiseHash.prototype._enumerate = function() {
var promise = this.promise; var input = this._input; var results = []; for (var key in input) { if (promise._state === PENDING && input.hasOwnProperty(key)) { results.push({ position: key, entry: input[key] }); } } var length = results.length; this._remaining = length; var result; for (var i = 0; promise._state === PENDING && i < length; i++) { result = results[i]; this._eachEntry(result.entry, result.position); }
};