Skip to content

Commit

Permalink
fix(parser): fixed JSX non failing cases
Browse files Browse the repository at this point in the history
  • Loading branch information
KFlash committed Jul 5, 2019
1 parent 597eaf2 commit e5bc9de
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
4 changes: 4 additions & 0 deletions src/parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8205,6 +8205,10 @@ function parseJSXOpeningFragmentOrSelfCloseElement(
type: 'JSXOpeningFragment'
});
}

if ((parser.token & Token.IsIdentifier) !== Token.IsIdentifier && (parser.token & Token.Keyword) !== Token.Keyword)
report(parser, Errors.Unexpected);

const tagName = parseJSXElementName(parser, context, parser.tokenIndex, parser.linePos, parser.colPos);
const attributes = parseJSXAttributes(parser, context);
const selfClosing = parser.token === Token.Divide;
Expand Down
14 changes: 4 additions & 10 deletions test/parser/miscellaneous/jsx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,19 @@ describe('Miscellaneous - JSX', () => {
['<p></q>', Context.OptionsJSX],
['<p></>', Context.OptionsJSX],
['<p><q></p>', Context.OptionsJSX],
// ['<1/>', Context.OptionsJSX],
['<1/>', Context.OptionsJSX],
['<div>one</div><div>two</div>', Context.OptionsJSX],
['</>', Context.OptionsJSX],
// ['<a:b.c />', Context.OptionsJSX],
['<a/!', Context.OptionsJSX],
['<img src={}>', Context.OptionsJSX],
['<a b=: />', Context.OptionsJSX],
['<xyz. />', Context.OptionsJSX],
// ['<.abc />', Context.OptionsJSX],
['<.abc />', Context.OptionsJSX],
['<Foo></Bar>', Context.OptionsJSX],
['<dd><e></e></dddd>;', Context.OptionsJSX],
['<{...b} {...a }>{...b}</{...b}>', Context.OptionsJSX],
['<f><g/></ff>;', Context.OptionsJSX],
// ['<:path />', Context.OptionsJSX],
['<:path />', Context.OptionsJSX],
['<path></svg:path>', Context.OptionsJSX],
['<foo.bar></foo.baz>', Context.OptionsJSX],
['<chinese:alladinfoo.bar></foo.baz>', Context.OptionsJSX],
Expand All @@ -41,11 +40,9 @@ describe('Miscellaneous - JSX', () => {
['<foo.bar></foo.baz>', Context.OptionsJSX],
['var x = <div>one</div> /* intervening comment */ <div>two</div>;', Context.OptionsJSX],
['<tag className=></tag>', Context.OptionsJSX],
//['<tag ... ></tag>', Context.OptionsJSX],
// ['<tag ...className></tag>', Context.OptionsJSX],
['<tag ${"className"}="tag"></tag>', Context.OptionsJSX],
['<a: />;', Context.OptionsJSX],
//['<:a />;', Context.OptionsJSX],
['<:a />;', Context.OptionsJSX],
['<a></b>', Context.OptionsJSX],
['<a foo="bar;', Context.OptionsJSX],
['<a:b></b>;', Context.OptionsJSX],
Expand All @@ -54,12 +51,10 @@ describe('Miscellaneous - JSX', () => {
['<a["foo"]></a["foo"]>;', Context.OptionsJSX],
['<a b={}>;', Context.OptionsJSX],
['var x = <div>one</div><div>two</div>;', Context.OptionsJSX],
// ['<a>{"str";}</a>;', Context.OptionsJSX],
['<div {props} />;', Context.OptionsJSX],
['<div {...props}>stuff</div {...props}>;', Context.OptionsJSX],
['<a>></a>;', Context.OptionsJSX],
['<a b=}>;', Context.OptionsJSX],
// ['<a .../*hai*/asdf/>;', Context.OptionsJSX],
[' > ;', Context.OptionsJSX],
['<a>;</>;', Context.OptionsJSX],
['<a b></b>;', Context.OptionsJSX],
Expand All @@ -69,7 +64,6 @@ describe('Miscellaneous - JSX', () => {
['[foo] > ;', Context.OptionsJSX],
['<.a></.a>', Context.OptionsJSX],
['<a.></a.>', Context.OptionsJSX],
// ['<span className="a", id="b" />', Context.OptionsJSX],
['<div className"app">', Context.OptionsJSX],
['<div {props} />', Context.OptionsJSX],
['<a>></a>', Context.OptionsJSX],
Expand Down

0 comments on commit e5bc9de

Please sign in to comment.