From: dsc Date: Tue, 7 Dec 2010 11:48:55 +0000 (-0800) Subject: Fixes filter in YString. X-Git-Url: http://git.less.ly:3516/?a=commitdiff_plain;h=41d553a32b3b5e8b55e6d56b41fea622df141236;p=tanks.git Fixes filter in YString. --- diff --git a/src/Y/types/collection.cjs b/src/Y/types/collection.cjs index b8db902..beb799e 100644 --- a/src/Y/types/collection.cjs +++ b/src/Y/types/collection.cjs @@ -65,7 +65,7 @@ YBase.subclass('YCollection', { var o = this._o, acc = new o.constructor(); for ( var name in o ) if ( fn.call( context || this, o[name], name, o ) ) - acc[name] = o[name]; + acc[name] = o[name]; return acc; }, diff --git a/src/Y/types/string.cjs b/src/Y/types/string.cjs index 1d57932..5b26886 100644 --- a/src/Y/types/string.cjs +++ b/src/Y/types/string.cjs @@ -166,4 +166,15 @@ YCollection.subclass('YString', function(YString){ return this; }; + this['filter'] = + function filter(fn){ + fn = Function.toFunction(fn); + for ( var out = "", s = this._o, L = s.length, cxt = arguments[1]||this, i = 0; i < L; ++i ) { + var c = s.charAt(i); + if ( fn.call(cxt, c, i, s) ) + out += c; + } + return out; + }; + });