From e07e74f010f4f08a9e8aa8adef9f61fe238e4238 Mon Sep 17 00:00:00 2001 From: Amjad Masad Date: Mon, 12 Jan 2015 17:32:02 -0500 Subject: [PATCH] Handle esprima-like AST catch clause in a TryStatement. Fixes #473 --- lib/6to5/generation/generators/statements.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/6to5/generation/generators/statements.js b/lib/6to5/generation/generators/statements.js index 613fdcf630..f3a6babeab 100644 --- a/lib/6to5/generation/generators/statements.js +++ b/lib/6to5/generation/generators/statements.js @@ -107,7 +107,16 @@ exports.TryStatement = function (node, print) { this.keyword("try"); print(node.block); this.space(); - print(node.handler); + + // Esprima bug puts the catch clause in a `handlers` array. + // see https://code.google.com/p/esprima/issues/detail?id=433 + // We run into this from regenerator generated ast. + if (node.handlers) { + print(node.handlers[0]); + } else { + print(node.handler); + } + if (node.finalizer) { this.space(); this.push("finally ");