From 41d553a32b3b5e8b55e6d56b41fea622df141236 Mon Sep 17 00:00:00 2001 From: dsc Date: Tue, 7 Dec 2010 03:48:55 -0800 Subject: [PATCH] Fixes filter in YString. --- src/Y/types/collection.cjs | 2 +- src/Y/types/string.cjs | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletions(-) 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; + }; + }); -- 1.7.0.4