diff --git a/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/actual.js b/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/actual.js new file mode 100644 index 0000000000..7f5ee43be8 --- /dev/null +++ b/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/actual.js @@ -0,0 +1,7 @@ +const x = do { + try { + a(); + } catch (e) { + b(); + } +} diff --git a/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/expected.js b/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/expected.js new file mode 100644 index 0000000000..d84bdcb1bf --- /dev/null +++ b/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/expected.js @@ -0,0 +1,7 @@ +var x = function () { + try { + return a(); + } catch (e) { + return b(); + } +}(); diff --git a/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/options.json b/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/options.json new file mode 100644 index 0000000000..61aac27ff0 --- /dev/null +++ b/packages/babel-plugin-transform-do-expressions/test/fixtures/do-expressions/catch-block/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-block-scoping", "transform-do-expressions"] +} diff --git a/packages/babel-traverse/src/path/family.js b/packages/babel-traverse/src/path/family.js index 9fe3ded555..7e02719978 100644 --- a/packages/babel-traverse/src/path/family.js +++ b/packages/babel-traverse/src/path/family.js @@ -33,6 +33,8 @@ export function getCompletionRecords(): Array { paths = addCompletionRecords(this.get("block"), paths); paths = addCompletionRecords(this.get("handler"), paths); paths = addCompletionRecords(this.get("finalizer"), paths); + } else if (this.isCatchClause()) { + paths = addCompletionRecords(this.get("body"), paths); } else { paths.push(this); }