From 083f8f7aded1302517e25fded21e959947e29afe Mon Sep 17 00:00:00 2001
From: Tristan Cavelier <tristan.cavelier@tiolive.com>
Date: Mon, 9 Sep 2013 00:46:34 +0200
Subject: [PATCH] Promise.js error static method manage promise parameter

---
 src/jio/core/Promise.js | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/jio/core/Promise.js b/src/jio/core/Promise.js
index d0c0707..744ced5 100644
--- a/src/jio/core/Promise.js
+++ b/src/jio/core/Promise.js
@@ -50,22 +50,28 @@ Promise.when = function (item, onSuccess, onError, onProgress) {
 };
 
 /**
- * error(value, [onError]): Promise
+ * error(item, [onError]): Promise
  *
- * Return value as first parameter of the promise answer. The method returns a
+ * Return an item as first parameter of the promise answer. The method returns a
  * rejected promise.
  *
  *     Promise.error('a').then(null, console.log); // shows 'a'
+ *     Promise.error(Promise.when('a')).then(null, console.log); // shows 'a'
  *
  * @method error
  * @static
- * @param  {Any} value The value to use
+ * @param  {Any} item The item to use
  * @param  {Function} [onError] the callback called on error
  * @return {Promise} The promise
  */
-Promise.error = function (value, onError) {
-  var p = new Promise().fail(onError);
-  p.defer().reject(value);
+Promise.error = function (item, onError) {
+  var p = new Promise().fail(onError), solver = p.defer();
+  Promise.when(
+    item,
+    solver.reject.bind(solver),
+    solver.reject.bind(solver),
+    solver.notify.bind(solver)
+  );
   return p;
 };
 
-- 
2.30.9