diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T6719/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T6719/actual.js new file mode 100644 index 0000000000..38b9e80bae --- /dev/null +++ b/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T6719/actual.js @@ -0,0 +1,14 @@ +function withContext(ComposedComponent) { + return class WithContext extends Component { + + static propTypes = { + context: PropTypes.shape( + { + addCss: PropTypes.func, + setTitle: PropTypes.func, + setMeta: PropTypes.func, + } + ), + }; + }; +} diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T6719/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T6719/expected.js new file mode 100644 index 0000000000..fc48e43cdd --- /dev/null +++ b/packages/babel-plugin-transform-class-properties/test/fixtures/regression/T6719/expected.js @@ -0,0 +1,20 @@ +function withContext(ComposedComponent) { + var _class, _temp; + + return _temp = _class = (function (_Component) { + babelHelpers.inherits(WithContext, _Component); + + function WithContext() { + babelHelpers.classCallCheck(this, WithContext); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(WithContext).apply(this, arguments)); + } + + return WithContext; + })(Component), _class.propTypes = { + context: PropTypes.shape({ + addCss: PropTypes.func, + setTitle: PropTypes.func, + setMeta: PropTypes.func + }) + }, _temp; +} diff --git a/packages/babel-traverse/src/scope/index.js b/packages/babel-traverse/src/scope/index.js index e7702be6d8..955f068496 100644 --- a/packages/babel-traverse/src/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -745,15 +745,15 @@ export default class Scope { path = this.getFunctionParent().path; } + if (!path.isBlockStatement() && !path.isProgram()) { + path = this.getBlockParent().path; + } + if (path.isLoop() || path.isCatchClause() || path.isFunction()) { t.ensureBlock(path.node); path = path.get("body"); } - if (!path.isBlockStatement() && !path.isProgram()) { - path = this.getBlockParent().path; - } - let unique = opts.unique; let kind = opts.kind || "var"; let blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;