diff --git a/src/languages/javascript.js b/src/languages/javascript.js
index 1375f885d9..4040be3b15 100644
--- a/src/languages/javascript.js
+++ b/src/languages/javascript.js
@@ -189,15 +189,15 @@ function(hljs) {
skip: true,
},
{ // E4X / JSX
- className: 'jsx',
begin: /<[A-Za-z0-9\\._:-]+/,
end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
subLanguage: 'xml',
contains: [
{
- begin: /<[A-Za-z0-9\\._:-]+/, end: /(\/[A-Za-z0-9\\._:-]+)>/, skip: true,
+ begin: /<[A-Za-z0-9\\._:-]+/,
+ end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
+ skip: true,
contains: [
- { begin: /<[A-Za-z0-9\\._:-]+\s*/, end: /\/>/, skip: true },
'self'
]
},
diff --git a/test/markup/javascript/jsx.expect.txt b/test/markup/javascript/jsx.expect.txt
index 2a2fb84e23..a000fe75a7 100644
--- a/test/markup/javascript/jsx.expect.txt
+++ b/test/markup/javascript/jsx.expect.txt
@@ -3,5 +3,25 @@
var jsx = <node>...<child>...</child></node>;
var jsx = <div><span><br /></span></div>;
var jsx = <pre-node><child /></pre-node>;
+
var x = 5;
+
return (<node attr="value"></node>);
+
+const n = () => <X />
+const m = () => <X x="" />
+
+class App extends Component {
+ render() {
+ return (
+ <BrowserRouter>
+ <div>
+ <Route path="/about" component={About} />
+ <Route path="/contact" component={Contact} />
+ </div>
+ </BrowserRouter>
+ );
+ }
+}
+
+var x = 5;
diff --git a/test/markup/javascript/jsx.txt b/test/markup/javascript/jsx.txt
index 7d1042c153..a76ef8eecd 100644
--- a/test/markup/javascript/jsx.txt
+++ b/test/markup/javascript/jsx.txt
@@ -3,5 +3,25 @@ var jsx =