Commit e0d98b1c authored by Romain Courteaud's avatar Romain Courteaud

Publish build version of rsvp.

parent d58a4846
......@@ -204,6 +204,11 @@ function handleThenable(promise, value) {
then = value.then;
if (isFunction(then)) {
if (isFunction(value.on)) {
value.on('promise:notified', function (event) {
notify(promise, event.detail);
});
}
promise.on('promise:cancelled', function(event) {
if (isFunction(value.cancel)) {
value.cancel();
......
"use strict";
var Promise = require("./promise").Promise;
var delay = require("./timeout").delay;
var resolve = require("./resolve").resolve;
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
function ResolvedQueueError(message) {
......@@ -19,6 +19,7 @@ var Queue = function() {
promise,
fulfill,
reject,
notify,
resolved;
if (!(this instanceof Queue)) {
......@@ -31,7 +32,7 @@ var Queue = function() {
}
}
promise = new Promise(function(done, fail) {
promise = new Promise(function(done, fail, progress) {
fulfill = function (fulfillmentValue) {
if (resolved) {return;}
queue.isFulfilled = true;
......@@ -46,9 +47,10 @@ var Queue = function() {
resolved = true;
return fail(rejectedReason);
};
notify = progress;
}, canceller);
promise_list.push(delay());
promise_list.push(resolve());
promise_list.push(promise_list[0].then(function () {
promise_list.splice(0, 2);
if (promise_list.length === 0) {
......@@ -69,7 +71,7 @@ var Queue = function() {
return promise.then.apply(promise, arguments);
};
queue.push = function(done, fail) {
queue.push = function(done, fail, progress) {
var last_promise = promise_list[promise_list.length - 1],
next_promise;
......@@ -77,11 +79,11 @@ var Queue = function() {
throw new ResolvedQueueError();
}
next_promise = last_promise.then(done, fail);
next_promise = last_promise.then(done, fail, progress);
promise_list.push(next_promise);
// Handle pop
promise_list.push(next_promise.then(function (fulfillmentValue) {
last_promise = next_promise.then(function (fulfillmentValue) {
promise_list.splice(0, 2);
if (promise_list.length === 0) {
fulfill(fulfillmentValue);
......@@ -95,7 +97,13 @@ var Queue = function() {
} else {
throw rejectedReason;
}
}));
}, function (notificationValue) {
if (promise_list[promise_list.length - 1] === last_promise) {
notify(notificationValue);
}
return notificationValue;
});
promise_list.push(last_promise);
return this;
};
......
......@@ -631,6 +631,11 @@ define("rsvp/promise",
then = value.then;
if (isFunction(then)) {
if (isFunction(value.on)) {
value.on('promise:notified', function (event) {
notify(promise, event.detail);
});
}
promise.on('promise:cancelled', function(event) {
if (isFunction(value.cancel)) {
value.cancel();
......@@ -693,11 +698,11 @@ define("rsvp/promise",
__exports__.Promise = Promise;
});
define("rsvp/queue",
["rsvp/promise","rsvp/timeout","exports"],
["rsvp/promise","rsvp/resolve","exports"],
function(__dependency1__, __dependency2__, __exports__) {
"use strict";
var Promise = __dependency1__.Promise;
var delay = __dependency2__.delay;
var resolve = __dependency2__.resolve;
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
function ResolvedQueueError(message) {
......@@ -716,6 +721,7 @@ define("rsvp/queue",
promise,
fulfill,
reject,
notify,
resolved;
if (!(this instanceof Queue)) {
......@@ -728,7 +734,7 @@ define("rsvp/queue",
}
}
promise = new Promise(function(done, fail) {
promise = new Promise(function(done, fail, progress) {
fulfill = function (fulfillmentValue) {
if (resolved) {return;}
queue.isFulfilled = true;
......@@ -743,9 +749,10 @@ define("rsvp/queue",
resolved = true;
return fail(rejectedReason);
};
notify = progress;
}, canceller);
promise_list.push(delay());
promise_list.push(resolve());
promise_list.push(promise_list[0].then(function () {
promise_list.splice(0, 2);
if (promise_list.length === 0) {
......@@ -766,7 +773,7 @@ define("rsvp/queue",
return promise.then.apply(promise, arguments);
};
queue.push = function(done, fail) {
queue.push = function(done, fail, progress) {
var last_promise = promise_list[promise_list.length - 1],
next_promise;
......@@ -774,11 +781,11 @@ define("rsvp/queue",
throw new ResolvedQueueError();
}
next_promise = last_promise.then(done, fail);
next_promise = last_promise.then(done, fail, progress);
promise_list.push(next_promise);
// Handle pop
promise_list.push(next_promise.then(function (fulfillmentValue) {
last_promise = next_promise.then(function (fulfillmentValue) {
promise_list.splice(0, 2);
if (promise_list.length === 0) {
fulfill(fulfillmentValue);
......@@ -792,7 +799,13 @@ define("rsvp/queue",
} else {
throw rejectedReason;
}
}));
}, function (notificationValue) {
if (promise_list[promise_list.length - 1] === last_promise) {
notify(notificationValue);
}
return notificationValue;
});
promise_list.push(last_promise);
return this;
};
......
......@@ -668,6 +668,11 @@ define("rsvp/promise",
then = value.then;
if (isFunction(then)) {
if (isFunction(value.on)) {
value.on('promise:notified', function (event) {
notify(promise, event.detail);
});
}
promise.on('promise:cancelled', function(event) {
if (isFunction(value.cancel)) {
value.cancel();
......@@ -730,11 +735,11 @@ define("rsvp/promise",
__exports__.Promise = Promise;
});
define("rsvp/queue",
["rsvp/promise","rsvp/timeout","exports"],
["rsvp/promise","rsvp/resolve","exports"],
function(__dependency1__, __dependency2__, __exports__) {
"use strict";
var Promise = __dependency1__.Promise;
var delay = __dependency2__.delay;
var resolve = __dependency2__.resolve;
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
function ResolvedQueueError(message) {
......@@ -753,6 +758,7 @@ define("rsvp/queue",
promise,
fulfill,
reject,
notify,
resolved;
if (!(this instanceof Queue)) {
......@@ -765,7 +771,7 @@ define("rsvp/queue",
}
}
promise = new Promise(function(done, fail) {
promise = new Promise(function(done, fail, progress) {
fulfill = function (fulfillmentValue) {
if (resolved) {return;}
queue.isFulfilled = true;
......@@ -780,9 +786,10 @@ define("rsvp/queue",
resolved = true;
return fail(rejectedReason);
};
notify = progress;
}, canceller);
promise_list.push(delay());
promise_list.push(resolve());
promise_list.push(promise_list[0].then(function () {
promise_list.splice(0, 2);
if (promise_list.length === 0) {
......@@ -803,7 +810,7 @@ define("rsvp/queue",
return promise.then.apply(promise, arguments);
};
queue.push = function(done, fail) {
queue.push = function(done, fail, progress) {
var last_promise = promise_list[promise_list.length - 1],
next_promise;
......@@ -811,11 +818,11 @@ define("rsvp/queue",
throw new ResolvedQueueError();
}
next_promise = last_promise.then(done, fail);
next_promise = last_promise.then(done, fail, progress);
promise_list.push(next_promise);
// Handle pop
promise_list.push(next_promise.then(function (fulfillmentValue) {
last_promise = next_promise.then(function (fulfillmentValue) {
promise_list.splice(0, 2);
if (promise_list.length === 0) {
fulfill(fulfillmentValue);
......@@ -829,7 +836,13 @@ define("rsvp/queue",
} else {
throw rejectedReason;
}
}));
}, function (notificationValue) {
if (promise_list[promise_list.length - 1] === last_promise) {
notify(notificationValue);
}
return notificationValue;
});
promise_list.push(last_promise);
return this;
};
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment