rem: chain: function (p, q/*, ...*/) { /***  chain(p, q, ...) --> p0, p1, ... plast, q0, q1, ...  ***/  var self = MochiKit.Iter; var m = MochiKit.Base; if (arguments.length == 1) { return self.iter(arguments[0]); } var argiter = m.map(self.iter, arguments); return { repr: function () { return "chain(...)"; }, toString: m.forward("repr"), next: function () { while (argiter.length > 1) { try { return argiter[0].next(); } catch (e) { if (e != self.StopIteration) { throw e; } argiter.shift(); } } if (argiter.length == 1) {  var arg = argiter.shift(); this.next = m.bind("next", arg); return this.next(); } throw self.StopIteration; } }; }, 
add: },chain:function(p,q){ var self=MochiKit.Iter; var m=MochiKit.Base; if(arguments.length==1){ return self.iter(arguments[0]); } var _148=m.map(self.iter,arguments); return {repr:function(){ return "chain(...)"; },toString:m.forward("repr"),next:function(){ while(_148.length>1){ try{ return _148[0].next(); } catch(e){ if(e!=self.StopIteration){ throw e; } _148.shift(); } } if(_148.length==1){ var arg=_148.shift(); this.next=m.bind("next",arg); return this.next(); } throw self.StopIteration; }}; },takewhile:function(pred,seq){ 
context:     chain: function (p, q/*, ...*/) {        /***            chain(p, q, ...) --> p0, p1, ... plast, q0, q1, ...        ***/        // dumb fast path        var self = MochiKit.Iter;        var m = MochiKit.Base;        if (arguments.length == 1) {            return self.iter(arguments[0]);        }        var argiter = m.map(self.iter, arguments);        return {            repr: function () { return "chain(...)"; },            toString: m.forward("repr"),            next: function () {                while (argiter.length > 1) {                    try {                        return argiter[0].next();                    } catch (e) {                        if (e != self.StopIteration) {                            throw e;                        }                        argiter.shift();                    }                }                if (argiter.length == 1) {                    // optimize last element                    var arg = argiter.shift();                    this.next = m.bind("next", arg);                    return this.next();                }                throw self.StopIteration;            }        };    },
meta: 8607	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8607/ad067b3f5d648d6df90ec6fb2b79f0027612a307/MochiKit.js/buggy/trunk/lib/MochiKit.js