Skip to content

Commit

Permalink
Update up to changes in es5-ext
Browse files Browse the repository at this point in the history
  • Loading branch information
medikoo committed May 23, 2012
1 parent b149d8e commit 02d7ffe
Show file tree
Hide file tree
Showing 12 changed files with 94 additions and 100 deletions.
18 changes: 8 additions & 10 deletions lib/ext/array/map.js
Expand Up @@ -2,13 +2,13 @@


'use strict'; 'use strict';


var every = Array.prototype.every var every = Array.prototype.every
, call = Function.prototype.call , call = Function.prototype.call
, valid = require('es5-ext/lib/valid-value') , valid = require('es5-ext/lib/valid-value')
, isError = require('es5-ext/lib/Error/is-error') , isError = require('es5-ext/lib/Error/is-error')
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, deferred = require('../../deferred') , deferred = require('../../deferred')
, isPromise = require('../../is-promise'); , isPromise = require('../../is-promise');


var Map = function (list, cb, thisArg, limit) { var Map = function (list, cb, thisArg, limit) {
this.list = list; this.list = list;
Expand Down Expand Up @@ -98,9 +98,7 @@ Map.prototype = {
module.exports = function (cb, thisArg, limit) { module.exports = function (cb, thisArg, limit) {
var result, iterator, d; var result, iterator, d;
valid(this); valid(this);
if (cb != null) { (cb == null) || callable(cb);
assertCallable(cb);
}
every.call(this, (iterator = new Map(this, cb, thisArg, limit)).iterate, every.call(this, (iterator = new Map(this, cb, thisArg, limit)).iterate,
iterator); iterator);
iterator.initialized = true; iterator.initialized = true;
Expand Down
25 changes: 12 additions & 13 deletions lib/ext/array/reduce.js
Expand Up @@ -2,15 +2,15 @@


'use strict'; 'use strict';


var every = Array.prototype.every var every = Array.prototype.every
, call = Function.prototype.call , call = Function.prototype.call
, valid = require('es5-ext/lib/valid-value') , valid = require('es5-ext/lib/valid-value')
, isError = require('es5-ext/lib/Error/is-error') , isError = require('es5-ext/lib/Error/is-error')
, silent = require('es5-ext/lib/Function/prototype/silent') , silent = require('es5-ext/lib/Function/prototype/silent')
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, create = require('es5-ext/lib/Object/plain-create') , create = require('es5-ext/lib/Object/plain-create')
, isPromise = require('../../is-promise') , isPromise = require('../../is-promise')
, promise = require('../../promise'); , promise = require('../../promise');


var proto = { var proto = {
iterate: function self(value, index) { iterate: function self(value, index) {
Expand Down Expand Up @@ -41,16 +41,15 @@ var proto = {
return value; return value;
}, },
processCb: function (accumulator, index, value) { processCb: function (accumulator, index, value) {
return silent.call(this.cb, accumulator, value, index, this.list); return silent.call(this.cb)(accumulator, value, index, this.list);
} }
}; };


module.exports = function (cb, initial) { module.exports = function (cb, initial) {
var iterator; var iterator;
valid(this); valid(this);
if (cb != null) { (cb == null) || callable(cb);
assertCallable(cb);
}
if (initial && isError(initial)) { if (initial && isError(initial)) {
return promise(initial); return promise(initial);
} }
Expand Down
13 changes: 6 additions & 7 deletions lib/ext/function/delay.js
Expand Up @@ -2,19 +2,18 @@


'use strict'; 'use strict';


var silent = require('es5-ext/lib/Function/prototype/silent') var silent = require('es5-ext/lib/Function/prototype/silent')
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, deferred = require('../../deferred') , deferred = require('../../deferred')

, delayed; , delayed;


delayed = function (fn, args, resolve) { delayed = function (fn, args, resolve) {
resolve(silent.apply(fn.bind(this), args)); resolve(silent.call(fn).apply(this, args));
}; };


module.exports = function (timeout) { module.exports = function (timeout) {
var fn; var fn = callable(this);
assertCallable(this);
fn = this;
return function () { return function () {
var d = deferred(); var d = deferred();
setTimeout(delayed.bind(this, fn, arguments, d.resolve), timeout); setTimeout(delayed.bind(this, fn, arguments, d.resolve), timeout);
Expand Down
20 changes: 10 additions & 10 deletions lib/ext/function/gate.js
Expand Up @@ -3,13 +3,13 @@
// controlled with qLimit value, any calls that would reach over that limit // controlled with qLimit value, any calls that would reach over that limit
// would be discarded (its promise would resolve with "Too many calls" error) // would be discarded (its promise would resolve with "Too many calls" error)


var apply = Function.prototype.apply var apply = Function.prototype.apply
, max = Math.max , max = Math.max
, toUinteger = require('es5-ext/lib/Number/to-uinteger') , toUint = require('es5-ext/lib/Number/to-uint')
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, deferred = require('../../deferred') , deferred = require('../../deferred')
, isPromise = require('../../is-promise') , isPromise = require('../../is-promise')
, promise = require('../../promise') , promise = require('../../promise')


, reject; , reject;


Expand All @@ -23,9 +23,9 @@ reject = function () {


module.exports = function (cLimit, qLimit) { module.exports = function (cLimit, qLimit) {
var fn, count, decrement, unload, queue, run; var fn, count, decrement, unload, queue, run;
fn = assertCallable(this) && this; fn = callable(this);
cLimit = max(toUinteger(cLimit), 1); cLimit = max(toUint(cLimit), 1);
qLimit = ((qLimit == null) || isNaN(qLimit)) ? Infinity : toUinteger(qLimit); qLimit = ((qLimit == null) || isNaN(qLimit)) ? Infinity : toUint(qLimit);
count = 0; count = 0;
queue = []; queue = [];


Expand Down
19 changes: 9 additions & 10 deletions lib/ext/function/promisify-sync.js
Expand Up @@ -2,18 +2,17 @@


'use strict'; 'use strict';


var isArray = Array.isArray var isArray = Array.isArray
, slice = Array.prototype.slice , slice = Array.prototype.slice
, some = Array.prototype.some , some = Array.prototype.some
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, silent = require('es5-ext/lib/Function/prototype/silent') , silent = require('es5-ext/lib/Function/prototype/silent')
, deferred = require('../../deferred') , deferred = require('../../deferred')
, isPromise = require('../../is-promise'); , isPromise = require('../../is-promise');


module.exports = function (length) { module.exports = function (length) {
var fn, args; var fn, args;
assertCallable(this); fn = callable(this);
fn = this;
if (length != null) { if (length != null) {
length = length >>> 0; length = length >>> 0;
} }
Expand All @@ -27,7 +26,7 @@ module.exports = function (length) {
return fn.apply(this, isArray(args) ? args : [args]); return fn.apply(this, isArray(args) ? args : [args]);
}.bind(this)); }.bind(this));
} else { } else {
return deferred(silent.apply(fn.bind(this), args)); return deferred(silent.call(fn).apply(this, args));
} }
}; };
}; };
15 changes: 7 additions & 8 deletions lib/ext/function/promisify.js
Expand Up @@ -2,17 +2,16 @@


'use strict'; 'use strict';


var isArray = Array.isArray var isArray = Array.isArray
, some = Array.prototype.some , some = Array.prototype.some
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, apply = require('../utils/apply-async') , apply = require('../utils/apply-async')
, deferred = require('../../deferred') , deferred = require('../../deferred')
, isPromise = require('../../is-promise'); , isPromise = require('../../is-promise');


module.exports = function (length) { module.exports = function (length) {
var fn, args; var fn, args;
assertCallable(this); fn = callable(this);
fn = this;
if (length != null) { if (length != null) {
length = length >>> 0; length = length >>> 0;
} }
Expand Down
6 changes: 3 additions & 3 deletions lib/ext/promise/cb.js
Expand Up @@ -19,13 +19,13 @@


'use strict'; 'use strict';


var assertCallable = require('es5-ext/lib/Object/assert-callable') var callable = require('es5-ext/lib/Object/valid-callable')


, b; , b;


require('../../extend')('cb', function (win, fail) { require('../../extend')('cb', function (win, fail) {
(win != null) && assertCallable(win); (win == null) || callable(win);
(fail != null) && assertCallable(fail); (fail == null) || callable(fail);
if (win || fail) { if (win || fail) {
if (this._base.resolved) { if (this._base.resolved) {
b.apply(this._base, arguments); b.apply(this._base, arguments);
Expand Down
2 changes: 1 addition & 1 deletion lib/ext/promise/invoke.js
Expand Up @@ -14,7 +14,7 @@ var slice = Array.prototype.slice
, apply; , apply;


apply = function (fn, args, resolve) { apply = function (fn, args, resolve) {
return resolve(silent.apply(fn.bind(this), args)); return resolve(silent.call(fn).apply(this, args));
}; };


require('../../extend')('invoke', [valid], require('../../extend')('invoke', [valid],
Expand Down
12 changes: 6 additions & 6 deletions lib/ext/promise/utils/array.js
Expand Up @@ -2,20 +2,20 @@


'use strict'; 'use strict';


var assertCallable = require('es5-ext/lib/Object/assert-callable') var callable = require('es5-ext/lib/Object/valid-callable')
, silent = require('es5-ext/lib/Function/prototype/silent') , silent = require('es5-ext/lib/Function/prototype/silent')
, extend = require('../../../extend'); , extend = require('../../../extend');


module.exports = function (name, ext) { module.exports = function (name, ext) {
extend(name, [function (cb) { extend(name, [function (cb) {
return (cb != null) && assertCallable(cb); (cb == null) || callable(cb);
}], function (args, resolve) { }], function (args, resolve) {
var cb, cbs; var cb, cbs;
if (this.failed) { if (this.failed) {
return resolve(this.promise); return resolve(this.promise);
} else { } else {
return resolve(silent.call(ext.bind(this.value, return resolve(silent.call(ext).call(this.value,
args[0], args[1], args[2]))); args[0], args[1], args[2]));
} }
}); });
}; };
14 changes: 7 additions & 7 deletions lib/extend.js
Expand Up @@ -10,19 +10,19 @@


'use strict'; 'use strict';


var forEach = Array.prototype.forEach var forEach = Array.prototype.forEach
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, isCallable = require('es5-ext/lib/Object/is-callable') , isCallable = require('es5-ext/lib/Object/is-callable')
, deferred = require('./deferred') , deferred = require('./deferred')
, promise = require('./promise') , promise = require('./promise')


, front = promise.front, back = promise.back; , front = promise.front, back = promise.back;


module.exports = function (name, f, b) { module.exports = function (name, f, b) {
(b != null) && assertCallable(b); (b == null) || callable(b);
if (!isCallable(f)) { if (!isCallable(f)) {
f && forEach.call(f, function (validator) { f && forEach.call(f, function (validator) {
(validator != null) && assertCallable(validator); (validator == null) || callable(validator);
}); });
if (!b) { if (!b) {
throw new Error("No methods provided"); throw new Error("No methods provided");
Expand Down
16 changes: 8 additions & 8 deletions lib/monitor.js
@@ -1,12 +1,12 @@
// Run if you want to monitor unresolved promises (in properly working // Run if you want to monitor unresolved promises (in properly working
// application there should be no promises that are never resolved) // application there should be no promises that are never resolved)


var max = Math.max var max = Math.max
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, isCallable = require('es5-ext/lib/Object/is-callable') , isCallable = require('es5-ext/lib/Object/is-callable')
, toUinteger = require('es5-ext/lib/Number/to-uinteger') , toUint = require('es5-ext/lib/Number/to-uint')
, deferred = require('./deferred') , deferred = require('./deferred')
, promise = require('./promise'); , promise = require('./promise');


exports = module.exports = function (timeout, cb) { exports = module.exports = function (timeout, cb) {
if (timeout === false) { if (timeout === false) {
Expand All @@ -16,7 +16,7 @@ exports = module.exports = function (timeout, cb) {
delete exports.callback; delete exports.callback;
return; return;
} }
exports.timeout = timeout = max(toUinteger(timeout) || 5000, 50); exports.timeout = timeout = max(toUint(timeout) || 5000, 50);
if (cb == null) { if (cb == null) {
if ((typeof console !== 'undefined') && console && if ((typeof console !== 'undefined') && console &&
isCallable(console.error)) { isCallable(console.error)) {
Expand All @@ -26,7 +26,7 @@ exports = module.exports = function (timeout, cb) {
}; };
} }
} else { } else {
assertCallable(cb); callable(cb);
} }
exports.callback = cb; exports.callback = cb;


Expand Down
34 changes: 17 additions & 17 deletions lib/promise.js
Expand Up @@ -4,26 +4,26 @@


'use strict'; 'use strict';


var push = Array.prototype.push var push = Array.prototype.push
, apply = Function.prototype.apply , apply = Function.prototype.apply
, defineProperty = Object.defineProperty , defineProperty = Object.defineProperty
, keys = Object.keys , keys = Object.keys
, isError = require('es5-ext/lib/Error/is-error') , isError = require('es5-ext/lib/Error/is-error')
, noop = require('es5-ext/lib/Function/noop') , noop = require('es5-ext/lib/Function/noop')
, match = require('es5-ext/lib/Function/prototype/match') , match = require('es5-ext/lib/Function/prototype/match')
, silent = require('es5-ext/lib/Function/prototype/silent') , silent = require('es5-ext/lib/Function/prototype/silent')
, assertCallable = require('es5-ext/lib/Object/assert-callable') , callable = require('es5-ext/lib/Object/valid-callable')
, dscr = require('es5-ext/lib/Object/descriptor') , dscr = require('es5-ext/lib/Object/descriptor')
, isCallable = require('es5-ext/lib/Object/is-callable') , isCallable = require('es5-ext/lib/Object/is-callable')
, isPromise = require('./is-promise') , isPromise = require('./is-promise')


, front, back, Resolved, Unresolved, deferred, createPromise; , front, back, Resolved, Unresolved, deferred, createPromise;


// Front for main promise extensions. This methods are called at invocation // Front for main promise extensions. This methods are called at invocation
front = { front = {
end: function (win, fail) { end: function (win, fail) {
(win != null) && assertCallable(win); (win == null) || callable(win);
(fail != null) && assertCallable(fail); (fail == null) || callable(fail);
this._base.next('end', arguments); this._base.next('end', arguments);
}, },
valueOf: function () { valueOf: function () {
Expand All @@ -37,7 +37,7 @@ back = {
then: function (win, fail, resolve) { then: function (win, fail, resolve) {
var cb = this.failed ? fail : win; var cb = this.failed ? fail : win;
return resolve((cb == null) ? this.promise : return resolve((cb == null) ? this.promise :
(isCallable(cb) ? silent.call(cb, this.value) : cb)); (isCallable(cb) ? silent.call(cb)(this.value) : cb));
}, },
end: function (win, fail) { end: function (win, fail) {
if (this.failed) { if (this.failed) {
Expand Down Expand Up @@ -66,7 +66,7 @@ Resolved.prototype = {
resolved: true, resolved: true,
link: function (promise) { link: function (promise) {
var previous, base; var previous, base;
base = dscr.v(this); base = dscr('', this);
previous = promise._base; previous = promise._base;
this.promise = promise; this.promise = promise;
defineProperty(promise, '_base', base); defineProperty(promise, '_base', base);
Expand Down Expand Up @@ -97,7 +97,7 @@ Unresolved.prototype = {
resolved: false, resolved: false,
link: function (promise) { link: function (promise) {
var previous, base; var previous, base;
base = dscr.c(this); base = dscr('c', this);
if ((previous = promise._base)) { if ((previous = promise._base)) {
clearTimeout(previous.timeout); clearTimeout(previous.timeout);
if (previous.monitor) { if (previous.monitor) {
Expand Down

0 comments on commit 02d7ffe

Please sign in to comment.