code: function(ctx) {
  				var subCtx,
  					tree = ctx.tree,
  					node = ctx.node,
  					children = node.children;
  				// opts = ctx.options;
  
  				// FT.debug("nodeRemoveChildren()", node.toString());
  				if (!children) {
  					return;
  				}
  				if (this.activeNode && this.activeNode.isDescendantOf(node)) {
  					this.activeNode.setActive(false); // TODO: don't fire events
  				}
  				if (this.focusNode && this.focusNode.isDescendantOf(node)) {
  					this.focusNode = null;
  				}
  				// TODO: persist must take care to clear select and expand cookies
  				this.nodeRemoveChildMarkup(ctx);
  				// Unlink children to support GC
  				// TODO: also delete this.children (not possible using visit())
  				subCtx = $.extend({}, ctx);
  				node.triggerModifyChild("remove", null);
  				node.visit(function(n) {
  					n.parent = null;
  					tree._callHook("treeRegisterNode", tree, false, n);
  				});
  				if (node.lazy) {
  					// 'undefined' would be interpreted as 'not yet loaded' for lazy nodes
  					node.children = [];
  				} else {
  					node.children = null;
  				}
  				if (!node.isRootNode()) {
  					node.expanded = false; // #449, #459
  				}
  				this.nodeRenderStatus(ctx);
  			}
docs: Remove all descendants of ctx.node.
  @param {EventData} ctx