on master help sign in
Debugger: fix flattenNodes() so it doesn't return duplicates.
commitaf378051ab890937a146c4e5ffc6fdff2cec0ce8 authorLaszlo Pandy <laszlo.pandy@prezi.com> dateWed 6 Nov 2013, 17:46 (13 years ago) parent98dd9fe
1 file changed+10−5
runtime/Debugger.js+10−5
runtime/Debugger.js+10−5
@@ -435,13 +435,18 @@ function restoreNodeValues(allNodes, nodeStates) {
435435}
436436
437437function flattenNodes(nodes) {
438− var treeReduce = function(prev, cur, i, arr) {
439− var flatKids = cur.kids.reduce(treeReduce, []);
440− flatKids.push(cur);
441− return prev.concat(flatKids);
438+ var nodesById = {};
439+
440+ function addAllToDict(node) {
441+ nodesById[node.id] = node;
442+ node.kids.forEach(addAllToDict);
442443 }
444+ nodes.forEach(addAllToDict);
443445
444− return nodes.reduce(treeReduce, []);
446+ var allNodes = Object.keys(nodesById).sort().map(function(key) {
447+ return nodesById[key];
448+ });
449+ return allNodes;
445450};
446451
447452}());