Javascript library to manage hierarchichal or tree data
<p>Is there a JavaScript library that can do the following on <a href="https://en.wikipedia.org/wiki/Tree_(data_structure)" rel="nofollow">hierarchical or tree</a>  data?</p>

<ol>
<li>Make a clone / immutable copy of the tree?</li>
<li>Traverse the tree to locate a node.</li>
<li>Prune the sub-tree of a node.</li>
<li>Merge two trees that have  common node.</li>
<li>Insert or delete a node.</li>
</ol>