rem: }; 
add: } 
context: Function.prototype.closure = function(obj){  // Init object storage.  if (!window.__objs)  {    window.__objs = [];    window.__funs = [];  };  // For symmetry and clarity.  var fun = this;  // Make sure the object has an id and is stored in the object store.  var objId = obj.__objId;  if (!objId) {    __objs[objId = obj.__objId = __objs.length] = obj;  };  // Make sure the function has an id and is stored in the function store.  var funId = fun.__funId;  if (!funId) {    __funs[funId = fun.__funId = __funs.length] = fun;  };  // Init closure storage.  if (!obj.__closures) {    obj.__closures = [];  };  // See if we previously created a closure for this object/function pair.  var closure = obj.__closures[funId];  if (closure) {    return closure;  };  // Clear references to keep them out of the closure scope.  obj = null;  fun = null;  // Create the closure, store in cache and return result.  return __objs[objId].__closures[funId] = function () {    return __funs[funId].apply(__objs[objId], arguments);  };};
meta: 1005	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1005/5b1a09c4ca80efdfbd41063412dd526cf7e711df/Core.js/buggy/qooxdoo/source/script/qx/lang/Core.js