diff --git a/lib/convert.js b/lib/convert.js
index f17782b..9451998 100644
--- a/lib/convert.js
+++ b/lib/convert.js
@@ -297,6 +297,9 @@ module.exports = function convert(config) {
// Assign the appropriate types
tagNameToken.object.type = (isNestedMemberExpression) ? AST_NODE_TYPES.JSXMemberExpression : AST_NODE_TYPES.JSXIdentifier;
tagNameToken.property.type = AST_NODE_TYPES.JSXIdentifier;
+ if (tagName.expression.kind === SyntaxKind.ThisKeyword) {
+ tagNameToken.object.name = "this";
+ }
} else {
tagNameToken.type = AST_NODE_TYPES.JSXIdentifier;
tagNameToken.name = tagNameToken.value;
diff --git a/tests/fixtures/jsx/member-expression-this.src.js b/tests/fixtures/jsx/member-expression-this.src.js
index f3bd61b..a9ab134 100644
--- a/tests/fixtures/jsx/member-expression-this.src.js
+++ b/tests/fixtures/jsx/member-expression-this.src.js
@@ -1 +1,2 @@
;
+;
diff --git a/tests/lib/__snapshots__/jsx.js.snap b/tests/lib/__snapshots__/jsx.js.snap
index b7baabd..c18fea7 100644
--- a/tests/lib/__snapshots__/jsx.js.snap
+++ b/tests/lib/__snapshots__/jsx.js.snap
@@ -5504,11 +5504,119 @@ Object {
],
"type": "ExpressionStatement",
},
+ Object {
+ "expression": Object {
+ "children": Array [],
+ "closingElement": null,
+ "loc": Object {
+ "end": Object {
+ "column": 18,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 0,
+ "line": 2,
+ },
+ },
+ "openingElement": Object {
+ "attributes": Array [],
+ "loc": Object {
+ "end": Object {
+ "column": 18,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 0,
+ "line": 2,
+ },
+ },
+ "name": Object {
+ "loc": Object {
+ "end": Object {
+ "column": 15,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 1,
+ "line": 2,
+ },
+ },
+ "object": Object {
+ "loc": Object {
+ "end": Object {
+ "column": 5,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 1,
+ "line": 2,
+ },
+ },
+ "name": "this",
+ "range": Array [
+ 27,
+ 31,
+ ],
+ "type": "JSXIdentifier",
+ },
+ "property": Object {
+ "loc": Object {
+ "end": Object {
+ "column": 15,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 6,
+ "line": 2,
+ },
+ },
+ "name": "Component",
+ "range": Array [
+ 32,
+ 41,
+ ],
+ "type": "JSXIdentifier",
+ },
+ "range": Array [
+ 27,
+ 41,
+ ],
+ "type": "JSXMemberExpression",
+ },
+ "range": Array [
+ 26,
+ 44,
+ ],
+ "selfClosing": true,
+ "type": "JSXOpeningElement",
+ },
+ "range": Array [
+ 26,
+ 44,
+ ],
+ "type": "JSXElement",
+ },
+ "loc": Object {
+ "end": Object {
+ "column": 19,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 0,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 26,
+ 45,
+ ],
+ "type": "ExpressionStatement",
+ },
],
"loc": Object {
"end": Object {
- "column": 25,
- "line": 1,
+ "column": 19,
+ "line": 2,
},
"start": Object {
"column": 0,
@@ -5517,7 +5625,7 @@ Object {
},
"range": Array [
0,
- 25,
+ 45,
],
"sourceType": "script",
"tokens": Array [
@@ -5683,6 +5791,132 @@ Object {
"type": "Punctuator",
"value": ";",
},
+ Object {
+ "loc": Object {
+ "end": Object {
+ "column": 1,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 0,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 26,
+ 27,
+ ],
+ "type": "Punctuator",
+ "value": "<",
+ },
+ Object {
+ "loc": Object {
+ "end": Object {
+ "column": 5,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 1,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 27,
+ 31,
+ ],
+ "type": "Keyword",
+ "value": "this",
+ },
+ Object {
+ "loc": Object {
+ "end": Object {
+ "column": 6,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 5,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 31,
+ 32,
+ ],
+ "type": "Punctuator",
+ "value": ".",
+ },
+ Object {
+ "loc": Object {
+ "end": Object {
+ "column": 15,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 6,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 32,
+ 41,
+ ],
+ "type": "JSXIdentifier",
+ "value": "Component",
+ },
+ Object {
+ "loc": Object {
+ "end": Object {
+ "column": 17,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 16,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 42,
+ 43,
+ ],
+ "type": "Punctuator",
+ "value": "/",
+ },
+ Object {
+ "loc": Object {
+ "end": Object {
+ "column": 18,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 17,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 43,
+ 44,
+ ],
+ "type": "Punctuator",
+ "value": ">",
+ },
+ Object {
+ "loc": Object {
+ "end": Object {
+ "column": 19,
+ "line": 2,
+ },
+ "start": Object {
+ "column": 18,
+ "line": 2,
+ },
+ },
+ "range": Array [
+ 44,
+ 45,
+ ],
+ "type": "Punctuator",
+ "value": ";",
+ },
],
"type": "Program",
}