if(typeof tree != "undefined") { if(index < path.length) { var childNode = tree.c[path[index]]; this._unsubscribe(childNode, path, index + 1, sid); if(childNode.s.length == 0) { for(var x in childNode.c) return; delete tree.c[path[index]]; } return; } else { var callbacks = tree.s; var max = callbacks.length; for(var i = 0; i < max; i++) if(sid == callbacks[i].sid) { if(this._pubDepth > 0) { callbacks[i].cb = null; this._cleanup.push(callbacks[i]); } else callbacks.splice(i, 1); return; } } }