From a8cf58939bb7aabb36ee6c43bf0d36ee33a2ff3c Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 9 Jan 2015 06:52:24 -0800 Subject: [PATCH] Adding comment --- src/compiler/parser.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 3fd2bbf4676..b70c4a7a1d5 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -13,11 +13,15 @@ module ts { } function visitNode(cbNode: (node: Node) => T, node: Node): T { - return node ? cbNode(node) : void 0; + if (node) { + return cbNode(node); + } } function visitNodeArray(cbNodes: (nodes: Node[]) => T, nodes: Node[]) { - return nodes ? cbNodes(nodes) : void 0; + if (nodes) { + return cbNodes(nodes); + } } function visitEachNode(cbNode: (node: Node) => T, nodes: Node[]) { @@ -39,6 +43,9 @@ module ts { if (!node) { return; } + // The visitXXX functions could be written as local functions that close over the cbNode and cbNodeArray + // callback parameters, but that causes a closure allocation for each invocation with noticeable effects + // on performance. var visitNodes: (cb: (node: Node | Node[]) => T, nodes: Node[]) => T = cbNodeArray ? visitNodeArray : visitEachNode; var cbNodes = cbNodeArray || cbNode; switch (node.kind) {