| Index: tools/profile.js
|
| diff --git a/tools/profile.js b/tools/profile.js
|
| index d2b53223c042edcdb17063c625372264fd924fa4..70e30846da9ebef5dc135c234d8a9defee5fbadb 100644
|
| --- a/tools/profile.js
|
| +++ b/tools/profile.js
|
| @@ -395,14 +395,16 @@ devtools.profiler.CallTree.prototype.computeTotalWeights = function() {
|
| * @param {devtools.profiler.CallTree.Node} opt_start Starting node.
|
| */
|
| devtools.profiler.CallTree.prototype.traverse = function(f, opt_start) {
|
| - var pairsToProcess = [{node: opt_start || this.root_, param: null}];
|
| - while (pairsToProcess.length > 0) {
|
| - var pair = pairsToProcess.shift();
|
| + var pairsToProcess = new ConsArray();
|
| + pairsToProcess.concat([{node: opt_start || this.root_, param: null}]);
|
| + while (!pairsToProcess.atEnd()) {
|
| + var pair = pairsToProcess.next();
|
| var node = pair.node;
|
| var newParam = f(node, pair.param);
|
| - node.forEachChild(
|
| - function (child) { pairsToProcess.push({node: child, param: newParam}); }
|
| - );
|
| + var morePairsToProcess = [];
|
| + node.forEachChild(function (child) {
|
| + morePairsToProcess.push({node: child, param: newParam}); });
|
| + pairsToProcess.concat(morePairsToProcess);
|
| }
|
| };
|
|
|
|
|