': {
"type": "ExpressionStatement",
"expression": {
"type": "JSXElement",
"openingElement": {
"type": "JSXOpeningElement",
"name": {
"type": "JSXIdentifier",
"name": "div",
"range": [
1,
4
],
"loc": {
"start": {
"line": 1,
"column": 1
},
"end": {
"line": 1,
"column": 4
}
}
},
"selfClosing": true,
"attributes": [
{
"type": "JSXSpreadAttribute",
"argument": {
"type": "Identifier",
"name": "props",
"range": [
9,
14
],
"loc": {
"start": {
"line": 1,
"column": 9
},
"end": {
"line": 1,
"column": 14
}
}
},
"range": [
5,
15
],
"loc": {
"start": {
"line": 1,
"column": 5
},
"end": {
"line": 1,
"column": 15
}
}
}
],
"range": [
0,
18
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 18
}
}
},
closingElement: null,
"children": [],
"range": [
0,
18
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 18
}
}
},
"range": [
0,
18
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 18
}
}
},
'
': {
"type": "ExpressionStatement",
"expression": {
"type": "JSXElement",
"openingElement": {
"type": "JSXOpeningElement",
"name": {
"type": "JSXIdentifier",
"name": "div",
"range": [
1,
4
],
"loc": {
"start": {
"line": 1,
"column": 1
},
"end": {
"line": 1,
"column": 4
}
}
},
"selfClosing": true,
"attributes": [
{
"type": "JSXSpreadAttribute",
"argument": {
"type": "Identifier",
"name": "props",
"range": [
9,
14
],
"loc": {
"start": {
"line": 1,
"column": 9
},
"end": {
"line": 1,
"column": 14
}
}
},
"range": [
5,
15
],
"loc": {
"start": {
"line": 1,
"column": 5
},
"end": {
"line": 1,
"column": 15
}
}
},
{
"type": "JSXAttribute",
"name": {
"type": "JSXIdentifier",
"name": "post",
"range": [
16,
20
],
"loc": {
"start": {
"line": 1,
"column": 16
},
"end": {
"line": 1,
"column": 20
}
}
},
"value": {
"type": "Literal",
"value": "attribute",
"raw": "\"attribute\"",
"range": [
21,
32
],
"loc": {
"start": {
"line": 1,
"column": 21
},
"end": {
"line": 1,
"column": 32
}
}
},
"range": [
16,
32
],
"loc": {
"start": {
"line": 1,
"column": 16
},
"end": {
"line": 1,
"column": 32
}
}
}
],
"range": [
0,
35
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
}
},
closingElement: null,
"children": [],
"range": [
0,
35
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
}
},
"range": [
0,
35
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
}
},
'
': {
"type": "ExpressionStatement",
"expression": {
"type": "JSXElement",
"openingElement": {
"type": "JSXOpeningElement",
"name": {
"type": "JSXIdentifier",
"name": "div",
"range": [
1,
4
],
"loc": {
"start": {
"line": 1,
"column": 1
},
"end": {
"line": 1,
"column": 4
}
}
},
"selfClosing": false,
"attributes": [
{
"type": "JSXAttribute",
"name": {
"type": "JSXIdentifier",
"name": "pre",
"range": [
5,
8
],
"loc": {
"start": {
"line": 1,
"column": 5
},
"end": {
"line": 1,
"column": 8
}
}
},
"value": {
"type": "Literal",
"value": "leading",
"raw": "\"leading\"",
"range": [
9,
18
],
"loc": {
"start": {
"line": 1,
"column": 9
},
"end": {
"line": 1,
"column": 18
}
}
},
"range": [
5,
18
],
"loc": {
"start": {
"line": 1,
"column": 5
},
"end": {
"line": 1,
"column": 18
}
}
},
{
"type": "JSXAttribute",
"name": {
"type": "JSXIdentifier",
"name": "pre2",
"range": [
19,
23
],
"loc": {
"start": {
"line": 1,
"column": 19
},
"end": {
"line": 1,
"column": 23
}
}
},
"value": {
"type": "Literal",
"value": "attribute",
"raw": "\"attribute\"",
"range": [
24,
35
],
"loc": {
"start": {
"line": 1,
"column": 24
},
"end": {
"line": 1,
"column": 35
}
}
},
"range": [
19,
35
],
"loc": {
"start": {
"line": 1,
"column": 19
},
"end": {
"line": 1,
"column": 35
}
}
},
{
"type": "JSXSpreadAttribute",
"argument": {
"type": "Identifier",
"name": "props",
"range": [
40,
45
],
"loc": {
"start": {
"line": 1,
"column": 40
},
"end": {
"line": 1,
"column": 45
}
}
},
"range": [
36,
46
],
"loc": {
"start": {
"line": 1,
"column": 36
},
"end": {
"line": 1,
"column": 46
}
}
}
],
"range": [
0,
47
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 47
}
}
},
"closingElement": {
"type": "JSXClosingElement",
"name": {
"type": "JSXIdentifier",
"name": "div",
"range": [
49,
52
],
"loc": {
"start": {
"line": 1,
"column": 49
},
"end": {
"line": 1,
"column": 52
}
}
},
"range": [
47,
53
],
"loc": {
"start": {
"line": 1,
"column": 47
},
"end": {
"line": 1,
"column": 53
}
}
},
"children": [],
"range": [
0,
53
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 53
}
}
},
"range": [
0,
53
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 53
}
}
},
'
{aa.b}
': {
"type": "ExpressionStatement",
"start": 0,
"end": 52,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 52
}
},
"range": [
0,
52
],
"expression": {
"type": "JSXElement",
"start": 0,
"end": 52,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 52
}
},
"range": [
0,
52
],
"openingElement": {
"type": "JSXOpeningElement",
"start": 0,
"end": 31,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 31
}
},
"range": [
0,
31
],
"attributes": [
{
"type": "JSXAttribute",
"start": 3,
"end": 16,
"loc": {
"start": {
"line": 1,
"column": 3
},
"end": {
"line": 1,
"column": 16
}
},
"range": [
3,
16
],
"name": {
"type": "JSXIdentifier",
"start": 3,
"end": 5,
"loc": {
"start": {
"line": 1,
"column": 3
},
"end": {
"line": 1,
"column": 5
}
},
"range": [
3,
5
],
"name": "aa"
},
"value": {
"type": "JSXExpressionContainer",
"start": 6,
"end": 16,
"loc": {
"start": {
"line": 1,
"column": 6
},
"end": {
"line": 1,
"column": 16
}
},
"range": [
6,
16
],
"expression": {
"type": "MemberExpression",
"start": 7,
"end": 15,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 15
}
},
"range": [
7,
15
],
"object": {
"type": "MemberExpression",
"start": 7,
"end": 12,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 12
}
},
"range": [
7,
12
],
"object": {
"type": "Identifier",
"start": 7,
"end": 9,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 9
}
},
"range": [
7,
9
],
"name": "aa"
},
"property": {
"type": "Identifier",
"start": 10,
"end": 12,
"loc": {
"start": {
"line": 1,
"column": 10
},
"end": {
"line": 1,
"column": 12
}
},
"range": [
10,
12
],
"name": "bb"
},
"computed": false
},
"property": {
"type": "Identifier",
"start": 13,
"end": 15,
"loc": {
"start": {
"line": 1,
"column": 13
},
"end": {
"line": 1,
"column": 15
}
},
"range": [
13,
15
],
"name": "cc"
},
"computed": false
}
}
},
{
"type": "JSXAttribute",
"start": 17,
"end": 30,
"loc": {
"start": {
"line": 1,
"column": 17
},
"end": {
"line": 1,
"column": 30
}
},
"range": [
17,
30
],
"name": {
"type": "JSXIdentifier",
"start": 17,
"end": 19,
"loc": {
"start": {
"line": 1,
"column": 17
},
"end": {
"line": 1,
"column": 19
}
},
"range": [
17,
19
],
"name": "bb"
},
"value": {
"type": "JSXExpressionContainer",
"start": 20,
"end": 30,
"loc": {
"start": {
"line": 1,
"column": 20
},
"end": {
"line": 1,
"column": 30
}
},
"range": [
20,
30
],
"expression": {
"type": "MemberExpression",
"start": 21,
"end": 29,
"loc": {
"start": {
"line": 1,
"column": 21
},
"end": {
"line": 1,
"column": 29
}
},
"range": [
21,
29
],
"object": {
"type": "MemberExpression",
"start": 21,
"end": 26,
"loc": {
"start": {
"line": 1,
"column": 21
},
"end": {
"line": 1,
"column": 26
}
},
"range": [
21,
26
],
"object": {
"type": "Identifier",
"start": 21,
"end": 23,
"loc": {
"start": {
"line": 1,
"column": 21
},
"end": {
"line": 1,
"column": 23
}
},
"range": [
21,
23
],
"name": "bb"
},
"property": {
"type": "Identifier",
"start": 24,
"end": 26,
"loc": {
"start": {
"line": 1,
"column": 24
},
"end": {
"line": 1,
"column": 26
}
},
"range": [
24,
26
],
"name": "cc"
},
"computed": false
},
"property": {
"type": "Identifier",
"start": 27,
"end": 29,
"loc": {
"start": {
"line": 1,
"column": 27
},
"end": {
"line": 1,
"column": 29
}
},
"range": [
27,
29
],
"name": "dd"
},
"computed": false
}
}
}
],
"name": {
"type": "JSXIdentifier",
"start": 1,
"end": 2,
"loc": {
"start": {
"line": 1,
"column": 1
},
"end": {
"line": 1,
"column": 2
}
},
"range": [
1,
2
],
"name": "A"
},
"selfClosing": false
},
"closingElement": {
"type": "JSXClosingElement",
"start": 48,
"end": 52,
"loc": {
"start": {
"line": 1,
"column": 48
},
"end": {
"line": 1,
"column": 52
}
},
"range": [
48,
52
],
"name": {
"type": "JSXIdentifier",
"start": 50,
"end": 51,
"loc": {
"start": {
"line": 1,
"column": 50
},
"end": {
"line": 1,
"column": 51
}
},
"range": [
50,
51
],
"name": "A"
}
},
"children": [
{
"type": "JSXElement",
"start": 31,
"end": 48,
"loc": {
"start": {
"line": 1,
"column": 31
},
"end": {
"line": 1,
"column": 48
}
},
"range": [
31,
48
],
"openingElement": {
"type": "JSXOpeningElement",
"start": 31,
"end": 36,
"loc": {
"start": {
"line": 1,
"column": 31
},
"end": {
"line": 1,
"column": 36
}
},
"range": [
31,
36
],
"attributes": [],
"name": {
"type": "JSXIdentifier",
"start": 32,
"end": 35,
"loc": {
"start": {
"line": 1,
"column": 32
},
"end": {
"line": 1,
"column": 35
}
},
"range": [
32,
35
],
"name": "div"
},
"selfClosing": false
},
"closingElement": {
"type": "JSXClosingElement",
"start": 42,
"end": 48,
"loc": {
"start": {
"line": 1,
"column": 42
},
"end": {
"line": 1,
"column": 48
}
},
"range": [
42,
48
],
"name": {
"type": "JSXIdentifier",
"start": 44,
"end": 47,
"loc": {
"start": {
"line": 1,
"column": 44
},
"end": {
"line": 1,
"column": 47
}
},
"range": [
44,
47
],
"name": "div"
}
},
"children": [
{
"type": "JSXExpressionContainer",
"start": 36,
"end": 42,
"loc": {
"start": {
"line": 1,
"column": 36
},
"end": {
"line": 1,
"column": 42
}
},
"range": [
36,
42
],
"expression": {
"type": "MemberExpression",
"start": 37,
"end": 41,
"loc": {
"start": {
"line": 1,
"column": 37
},
"end": {
"line": 1,
"column": 41
}
},
"range": [
37,
41
],
"object": {
"type": "Identifier",
"start": 37,
"end": 39,
"loc": {
"start": {
"line": 1,
"column": 37
},
"end": {
"line": 1,
"column": 39
}
},
"range": [
37,
39
],
"name": "aa"
},
"property": {
"type": "Identifier",
"start": 40,
"end": 41,
"loc": {
"start": {
"line": 1,
"column": 40
},
"end": {
"line": 1,
"column": 41
}
},
"range": [
40,
41
],
"name": "b"
},
"computed": false
}
}
]
}
]
}
},
'<>
': {
type: 'ExpressionStatement',
start: 0,
end: 16,
loc: {
start: {
line: 1,
column: 0
},
end: {
line: 1,
column: 16
}
},
range: [0, 16],
expression: {
type: 'JSXFragment',
start: 0,
end: 16,
loc: {
start: {
line: 1,
column: 0
},
end: {
line: 1,
column: 16
}
},
range: [0, 16],
openingElement: {
type: 'JSXOpeningElement',
start: 0,
end: 2,
loc: {
start: {
line: 1,
column: 0
},
end: {
line: 1,
column: 2
}
},
range: [0, 2],
attributes: [],
name: '',
selfClosing: false
},
closingElement: {
type: 'JSXClosingElement',
start: 13,
end: 16,
loc: {
start: {
line: 1,
column: 13
},
end: {
line: 1,
column: 16
}
},
range: [13, 16],
name: ''
},
children: [{
type: 'JSXElement',
start: 2,
end: 13,
loc: {
start: {
line: 1,
column: 2
},
end: {
line: 1,
column: 13
}
},
range: [2, 13],
openingElement: {
type: 'JSXOpeningElement',
start: 2,
end: 7,
loc: {
start: {
line: 1,
column: 2
},
end: {
line: 1,
column: 7
}
},
range: [2, 7],
attributes: [],
name: {
type: 'JSXIdentifier',
start: 3,
end: 6,
loc: {
start: {
line: 1,
column: 3
},
end: {
line: 1,
column: 6
}
},
range: [3, 6],
name: 'div'
},
selfClosing: false
},
closingElement: {
type: 'JSXClosingElement',
start: 7,
end: 13,
loc: {
start: {
line: 1,
column: 7
},
end: {
line: 1,
column: 13
}
},
range: [7, 13],
name: {
type: 'JSXIdentifier',
start: 9,
end: 12,
loc: {
start: {
line: 1,
column: 9
},
end: {
line: 1,
column: 12
}
},
range: [9, 12],
name: 'div'
}
},
children: []
}]
}
}
},
'Regression': {
'
foo bar baz
;': {
type: "ExpressionStatement",
start: 0,
end: 40,
expression: {
type: "JSXElement",
start: 0,
end: 38,
openingElement: {
type: "JSXOpeningElement",
start: 0,
end: 3,
attributes: [],
name: {
type: "JSXIdentifier",
start: 1,
end: 2,
name: "p"
},
selfClosing: false
},
closingElement: {
type: "JSXClosingElement",
start: 34,
end: 38,
name: {
type: "JSXIdentifier",
start: 36,
end: 37,
name: "p"
}
},
children: [
{
type: "JSXText",
start: 3,
end: 7,
value: "foo ",
raw: "foo "
},
{
type: "JSXElement",
start: 7,
end: 30,
openingElement: {
type: "JSXOpeningElement",
start: 7,
end: 22,
attributes: [{
type: "JSXAttribute",
start: 10,
end: 21,
name: {
type: "JSXIdentifier",
start: 10,
end: 14,
name: "href"
},
value: {
type: "Literal",
start: 15,
end: 21,
value: "test",
raw: "\"test\""
}
}],
name: {
type: "JSXIdentifier",
start: 8,
end: 9,
name: "a"
},
selfClosing: false
},
closingElement: {
type: "JSXClosingElement",
start: 26,
end: 30,
name: {
type: "JSXIdentifier",
start: 28,
end: 29,
name: "a"
}
},
children: [{
type: "JSXText",
start: 22,
end: 26,
value: " bar",
raw: " bar"
}]
},
{
type: "JSXText",
start: 30,
end: 34,
value: " baz",
raw: " baz"
}
]
}
},
'
{
}
': {
type: 'ExpressionStatement',
start: 0,
end: 30,
expression: {
type: 'JSXElement',
start: 0,
end: 30,
openingElement: {
type: 'JSXOpeningElement',
start: 0,
end: 5,
attributes: [],
name: {
type: 'JSXIdentifier',
start: 1,
end: 4,
name: 'div'
},
selfClosing: false
},
closingElement: {
type: 'JSXClosingElement',
start: 24,
end: 30,
name: {
type: 'JSXIdentifier',
start: 26,
end: 29,
name: 'div'
}
},
children: [{
type: 'JSXExpressionContainer',
start: 5,
end: 24,
expression: {
type: 'JSXElement',
start: 6,
end: 23,
openingElement: {
type: 'JSXOpeningElement',
start: 6,
end: 23,
attributes: [
{
type: 'JSXSpreadAttribute',
start: 11,
end: 20,
argument: {
type: 'Identifier',
start: 15,
end: 19,
name: 'test'
}
}
],
name: {
type: 'JSXIdentifier',
start: 7,
end: 10,
name: 'div'
},
selfClosing: true
},
closingElement: null,
children: []
}
}]
}
},
'
{ {a} }
': {
type: "ExpressionStatement",
start: 0,
end: 18,
expression: {
type: "JSXElement",
start: 0,
end: 18,
openingElement: {
type: "JSXOpeningElement",
start: 0,
end: 5,
attributes: [],
name: {
type: "JSXIdentifier",
start: 1,
end: 4,
name: "div"
},
selfClosing: false
},
closingElement: {
type: "JSXClosingElement",
start: 12,
end: 18,
name: {
type: "JSXIdentifier",
start: 14,
end: 17,
name: "div"
}
},
children: [{
type: "JSXExpressionContainer",
start: 5,
end: 12,
expression: {
type: "ObjectExpression",
start: 7,
end: 10,
properties: [{
type: "Property",
start: 8,
end: 9,
method: false,
shorthand: true,
computed: false,
key: {
type: "Identifier",
start: 8,
end: 9,
name: "a"
},
kind: "init",
value: {
type: "Identifier",
start: 8,
end: 9,
name: "a"
}
}]
}
}]
}
},
'
/text
': {
type: "ExpressionStatement",
start: 0,
end: 16,
expression: {
type: "JSXElement",
start: 0,
end: 16,
openingElement: {
type: "JSXOpeningElement",
start: 0,
end: 5,
attributes: [],
name: {
type: "JSXIdentifier",
start: 1,
end: 4,
name: "div"
},
selfClosing: false
},
closingElement: {
type: "JSXClosingElement",
start: 10,
end: 16,
name: {
type: "JSXIdentifier",
start: 12,
end: 15,
name: "div"
}
},
children: [{
type: "JSXText",
start: 5,
end: 10,
value: "/text",
raw: "/text"
}]
}
},
'
{a}{b}
': {
type: "ExpressionStatement",
start: 0,
end: 17,
expression: {
type: "JSXElement",
start: 0,
end: 17,
openingElement: {
type: "JSXOpeningElement",
start: 0,
end: 5,
attributes: [],
name: {
type: "JSXIdentifier",
start: 1,
end: 4,
name: "div"
},
selfClosing: false
},
closingElement: {
type: "JSXClosingElement",
start: 11,
end: 17,
name: {
type: "JSXIdentifier",
start: 13,
end: 16,
name: "div"
}
},
children: [{
type: 'JSXExpressionContainer',
expression: {
type: 'Identifier',
name: 'a',
range: [6, 7],
loc: {
start: {
line: 1,
column: 6
},
end: {
line: 1,
column: 7
}
}
},
range: [5, 8],
loc: {
start: {
line: 1,
column: 5
},
end: {
line: 1,
column: 8
}
}
}, {
type: 'JSXExpressionContainer',
expression: {
type: 'Identifier',
name: 'b',
range: [9, 10],
loc: {
start: {
line: 1,
column: 9
},
end: {
line: 1,
column: 10
}
}
},
range: [8, 11],
loc: {
start: {
line: 1,
column: 8
},
end: {
line: 1,
column: 11
}
}
}
]
}
},
'
': {
type: "ExpressionStatement",
range: [0, 32],
expression: {
type: "JSXElement",
range: [0, 32],
openingElement: {
type: "JSXOpeningElement",
range: [0, 32],
attributes: [
{
type: "JSXAttribute",
range: [5, 18],
name: {
type: "JSXIdentifier",
range: [5, 8],
name: "pre"
},
value: {
type: "Literal",
range: [9, 18],
value: "leading"
}
},
{
type: "JSXSpreadAttribute",
range: [19, 29],
argument: {
type: "Identifier",
range: [23, 28],
name: "props"
}
}
],
name: {
type: "JSXIdentifier",
range: [1, 4],
name: "div"
},
selfClosing: true
},
closingElement: null,
children: []
}
},
'
': {
type: "ExpressionStatement",
expression: {
type: "JSXElement",
range: [0, 64],
openingElement: {
type: "JSXOpeningElement",
range: [0, 64],
attributes: [
{
type: "JSXAttribute",
range: [6, 62],
name: {
type: "JSXIdentifier",
range: [6, 7],
name: "d"
},
value: {
type: "Literal",
loc: {
start: { line: 1, column: 8 },
end: { line: 3, column: 15 }
},
range: [8, 62],
value: "M230 80\n\t\tA 45 45, 0, 1, 0, 275 125 \r\n L 275 80 Z",
raw: "\"M230 80\n\t\tA 45 45, 0, 1, 0, 275 125 \r\n L 275 80 Z\""
}
}
],
name: {
type: "JSXIdentifier",
range: [1, 5],
name: "path"
},
selfClosing: true
},
closingElement: null,
children: []
}
}
}
};
if (typeof exports !== "undefined") {
var test = require("./driver.js").test;
var testFail = require("./driver.js").testFail;
var tokTypes = require("../").tokTypes;
}
testFail("var x = one
two
;", "Adjacent JSX elements must be wrapped in an enclosing tag (1:22)");
testFail("", "Unexpected token (1:4)");
test("", {
type: "Program",
range: [0, 9],
body: [{
type: "ExpressionStatement",
range: [0, 9],
expression: {
type: "JSXElement",
range: [0, 9],
openingElement: {
type: "JSXOpeningElement",
range: [0, 9],
attributes: [],
name: {
type: "JSXMemberExpression",
range: [1, 6],
object: {
type: "JSXNamespacedName",
range: [1, 4],
namespace: {
type: "JSXIdentifier",
range: [1, 2],
name: "a"
},
name: {
type: "JSXIdentifier",
range: [3, 4],
name: "b"
}
},
property: {
type: "JSXIdentifier",
range: [5, 6],
name: "c"
}
},
selfClosing: true
},
closingElement: null,
children: []
}
}]
}, {
ranges: true,
plugins: {
jsx: { allowNamespacedObjects: true }
}
});
testFail('', 'Unexpected token (1:3)', {
plugins: {
jsx: { allowNamespaces: false }
}
});
testFail('', 'Unexpected token (1:7)', {
plugins: {
jsx: { allowNamespaces: false }
}
});
test('
{/* foo */}', {}, {
onToken: [
{
type: tokTypes.jsxTagStart,
value: undefined,
start: 0,
end: 1
},
{
type: tokTypes.jsxName,
value: 'a',
start: 1,
end: 2
},
{
type: tokTypes.jsxTagEnd,
value: undefined,
start: 2,
end: 3
},
{
type: tokTypes.braceL,
value: undefined,
start: 3,
end: 4
},
{
type: tokTypes.braceR,
value: undefined,
start: 13,
end: 14
},
{
type: tokTypes.jsxTagStart,
value: undefined,
start: 14,
end: 15
},
{
type: tokTypes.slash,
value: '/',
start: 15,
end: 16
},
{
type: tokTypes.jsxName,
value: 'a',
start: 16,
end: 17
},
{
type: tokTypes.jsxTagEnd,
value: undefined,
start: 17,
end: 18
},
{
type: tokTypes.eof,
value: undefined,
start: 18,
end: 18
}
]
});
test('