use 'this', not 'window', as global object; allow for Ox.break in Ox.loop
This commit is contained in:
parent
75558d4b9d
commit
047cf5813d
1 changed files with 22 additions and 16 deletions
|
@ -22,7 +22,7 @@ Some conventions:
|
||||||
k key (of a key/value pair)
|
k key (of a key/value pair)
|
||||||
key key (of a key/value pair)
|
key key (of a key/value pair)
|
||||||
max maximum value
|
max maximum value
|
||||||
min minumum value
|
min minimum value
|
||||||
num number
|
num number
|
||||||
obj object
|
obj object
|
||||||
re regexp
|
re regexp
|
||||||
|
@ -71,15 +71,17 @@ Some conventions:
|
||||||
// todo: check http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
|
// todo: check http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
|
||||||
// also see https://github.com/tlrobinson/narwhal/blob/master/lib/util.js
|
// also see https://github.com/tlrobinson/narwhal/blob/master/lib/util.js
|
||||||
|
|
||||||
|
(function(global) {
|
||||||
/*@
|
/*@
|
||||||
Ox <f> The <code>Ox</code> object
|
Ox <f> The <code>Ox</code> object
|
||||||
See <code>Ox.wrap</code> for details.
|
See <code>Ox.wrap</code> for details.
|
||||||
(value) -> <o> wrapped value
|
(value) -> <o> wrapped value
|
||||||
value <*> Any value
|
value <*> Any value
|
||||||
@*/
|
@*/
|
||||||
window.Ox = function(val) {
|
global.Ox = function(val) {
|
||||||
return Ox.wrap(val);
|
return Ox.wrap(val);
|
||||||
};
|
};
|
||||||
|
})(this);
|
||||||
|
|
||||||
/*@
|
/*@
|
||||||
Ox.load <f> Loads a module
|
Ox.load <f> Loads a module
|
||||||
|
@ -255,11 +257,18 @@ Ox.loop = function() {
|
||||||
step = len == 4 ? arguments[2] : (start <= stop ? 1 : -1),
|
step = len == 4 ? arguments[2] : (start <= stop ? 1 : -1),
|
||||||
fn = arguments[len - 1],
|
fn = arguments[len - 1],
|
||||||
i;
|
i;
|
||||||
|
try {
|
||||||
for (i = start; step > 0 ? i < stop : i > stop; i += step) {
|
for (i = start; step > 0 ? i < stop : i > stop; i += step) {
|
||||||
if (fn(i) === false) {
|
if (fn(i) === false) {
|
||||||
|
console.warn('Returning false in Ox.loop is deprecated.')
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch(e) {
|
||||||
|
if (e !== Ox.BreakError) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
return i;
|
return i;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -313,7 +322,6 @@ Ox.print <f> Prints its arguments to the console
|
||||||
> Ox.print('foo').split(' ').pop()
|
> Ox.print('foo').split(' ').pop()
|
||||||
"foo"
|
"foo"
|
||||||
@*/
|
@*/
|
||||||
|
|
||||||
Ox.print = function() {
|
Ox.print = function() {
|
||||||
var args = Ox.toArray(arguments),
|
var args = Ox.toArray(arguments),
|
||||||
date = new Date();
|
date = new Date();
|
||||||
|
@ -332,7 +340,6 @@ Ox.uid <f> Returns a unique id
|
||||||
> Ox.uid() != Ox.uid()
|
> Ox.uid() != Ox.uid()
|
||||||
true
|
true
|
||||||
@*/
|
@*/
|
||||||
|
|
||||||
Ox.uid = (function() {
|
Ox.uid = (function() {
|
||||||
var uid = 0;
|
var uid = 0;
|
||||||
return function() {
|
return function() {
|
||||||
|
@ -354,7 +361,6 @@ Ox.wrap <f> Wraps a value so that one can directly call any Ox function on it
|
||||||
> Ox.wrap("foobar").value()
|
> Ox.wrap("foobar").value()
|
||||||
"foobar"
|
"foobar"
|
||||||
@*/
|
@*/
|
||||||
|
|
||||||
Ox.wrap = function(val, chained) {
|
Ox.wrap = function(val, chained) {
|
||||||
// somewhat inspired by underscore.js
|
// somewhat inspired by underscore.js
|
||||||
var wrapper = {
|
var wrapper = {
|
||||||
|
|
Loading…
Reference in a new issue