As mentioned in https://github.com/mooz/js2-mode/issues/389#issuecomment-271869380 , there seems to be a bug in the way js-mode (at least the folks there pointed me at js-mode) indents JSX JavaScript. When I'm doing a map with JSX syntax I'm getting: render() { const messages = this.state.messages.map( message => ); return messages; } I'd ideally expect something like: render() { const messages = this.state.messages.map( message => ); return messages; } It's even odder when I try to leave the argument to the arrow function in the line above: render() { const messages = this.state.messages.map(message => ); return messages; } For this second case, I'd hope to get: render() { const messages = this.state.messages.map(message => ); return messages; } (I get such results if I wrap the return expression in parentheses)