Skip to content

Commit 36ce7ea

Browse files
meyermhegazy
authored andcommitted
Update JSX intrinsic element test to match babel’s (microsoft#19946)
* Update JSX intrinsic element test to match babel’s * Update baseline * Move regex out of isIntrinsicJsxName * Switch to non-regex intrinsic name test
1 parent 9c77195 commit 36ce7ea

14 files changed

+67
-69
lines changed

src/compiler/utilities.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -2434,10 +2434,8 @@ namespace ts {
24342434
}
24352435

24362436
export function isIntrinsicJsxName(name: __String | string) {
2437-
// An escaped identifier had a leading underscore prior to being escaped, which would return true
2438-
// The escape adds an extra underscore which does not change the result
2439-
const ch = (name as string).substr(0, 1);
2440-
return ch.toLowerCase() === ch;
2437+
const ch = (name as string).charCodeAt(0);
2438+
return (ch >= CharacterCodes.a && ch <= CharacterCodes.z) || (name as string).indexOf("-") > -1;
24412439
}
24422440

24432441
function get16BitUnicodeEscapeSequence(charCode: number): string {
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
//// [index.tsx]
22
declare global {
3-
namespace JSX {
4-
interface IntrinsicElements {
5-
__foot: any;
6-
}
7-
}
83
function __make (params: object): any;
94
}
105

6+
declare var __foot: any;
117

12-
const thing = <__foot></__foot>;
8+
const thing = <__foot />;
139

14-
export {}
10+
export {}
11+
1512

1613
//// [index.js]
1714
"use strict";
1815
exports.__esModule = true;
19-
var thing = __make("__foot", null);
16+
var thing = __make(__foot, null);

tests/baselines/reference/doubleUnderscoreReactNamespace.symbols

+8-16
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,17 @@
22
declare global {
33
>global : Symbol(global, Decl(index.tsx, 0, 0))
44

5-
namespace JSX {
6-
>JSX : Symbol(JSX, Decl(index.tsx, 0, 16))
7-
8-
interface IntrinsicElements {
9-
>IntrinsicElements : Symbol(IntrinsicElements, Decl(index.tsx, 1, 19))
10-
11-
__foot: any;
12-
>__foot : Symbol(IntrinsicElements.__foot, Decl(index.tsx, 2, 37))
13-
}
14-
}
155
function __make (params: object): any;
16-
>__make : Symbol(__make, Decl(index.tsx, 5, 5))
17-
>params : Symbol(params, Decl(index.tsx, 6, 21))
6+
>__make : Symbol(__make, Decl(index.tsx, 0, 16))
7+
>params : Symbol(params, Decl(index.tsx, 1, 21))
188
}
199

10+
declare var __foot: any;
11+
>__foot : Symbol(__foot, Decl(index.tsx, 4, 11))
2012

21-
const thing = <__foot></__foot>;
22-
>thing : Symbol(thing, Decl(index.tsx, 10, 5))
23-
>__foot : Symbol(JSX.IntrinsicElements.__foot, Decl(index.tsx, 2, 37))
24-
>__foot : Symbol(JSX.IntrinsicElements.__foot, Decl(index.tsx, 2, 37))
13+
const thing = <__foot />;
14+
>thing : Symbol(thing, Decl(index.tsx, 6, 5))
15+
>__foot : Symbol(__foot, Decl(index.tsx, 4, 11))
2516

2617
export {}
18+

tests/baselines/reference/doubleUnderscoreReactNamespace.types

+5-13
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,18 @@
22
declare global {
33
>global : typeof global
44

5-
namespace JSX {
6-
>JSX : any
7-
8-
interface IntrinsicElements {
9-
>IntrinsicElements : IntrinsicElements
10-
11-
__foot: any;
12-
>__foot : any
13-
}
14-
}
155
function __make (params: object): any;
166
>__make : (params: object) => any
177
>params : object
188
}
199

10+
declare var __foot: any;
11+
>__foot : any
2012

21-
const thing = <__foot></__foot>;
13+
const thing = <__foot />;
2214
>thing : any
23-
><__foot></__foot> : any
24-
>__foot : any
15+
><__foot /> : any
2516
>__foot : any
2617

2718
export {}
19+

tests/baselines/reference/jsxEsprimaFbTestSuite.symbols

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ declare var props;
4747
/>;
4848

4949
<日本語></日本語>;
50-
>日本語 : Symbol(unknown)
51-
>日本語 : Symbol(unknown)
50+
>日本語 : Symbol(日本語, Decl(jsxEsprimaFbTestSuite.tsx, 1, 11))
51+
>日本語 : Symbol(日本語, Decl(jsxEsprimaFbTestSuite.tsx, 1, 11))
5252

5353
<AbC_def
5454
>AbC_def : Symbol(AbC_def, Decl(jsxEsprimaFbTestSuite.tsx, 2, 11))

tests/baselines/reference/jsxFactoryIdentifier.js

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/jsxFactoryIdentifier.symbols

+1
Original file line numberDiff line numberDiff line change
@@ -122,3 +122,4 @@ class A {
122122
];
123123
}
124124
}
125+

tests/baselines/reference/jsxFactoryIdentifier.types

+1
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,4 @@ class A {
137137
];
138138
}
139139
}
140+

tests/baselines/reference/reactNamespaceJSXEmit.js

+3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
declare var myReactLib: any;
33
declare var foo: any;
44
declare var Bar: any;
5+
declare var _Bar: any;
56
declare var x: any;
67

78
<foo data/>;
89
<Bar x={x} />;
910
<x-component />;
1011
<Bar {...x} />;
1112
<Bar { ...x } y={2} />;
13+
<_Bar { ...x } />;
1214

1315

1416
//// [reactNamespaceJSXEmit.js]
@@ -25,3 +27,4 @@ myReactLib.createElement(Bar, { x: x });
2527
myReactLib.createElement("x-component", null);
2628
myReactLib.createElement(Bar, __assign({}, x));
2729
myReactLib.createElement(Bar, __assign({}, x, { y: 2 }));
30+
myReactLib.createElement(_Bar, __assign({}, x));

tests/baselines/reference/reactNamespaceJSXEmit.symbols

+14-7
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,34 @@ declare var foo: any;
88
declare var Bar: any;
99
>Bar : Symbol(Bar, Decl(reactNamespaceJSXEmit.tsx, 2, 11))
1010

11+
declare var _Bar: any;
12+
>_Bar : Symbol(_Bar, Decl(reactNamespaceJSXEmit.tsx, 3, 11))
13+
1114
declare var x: any;
12-
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 3, 11))
15+
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11))
1316

1417
<foo data/>;
1518
>foo : Symbol(unknown)
16-
>data : Symbol(data, Decl(reactNamespaceJSXEmit.tsx, 5, 4))
19+
>data : Symbol(data, Decl(reactNamespaceJSXEmit.tsx, 6, 4))
1720

1821
<Bar x={x} />;
1922
>Bar : Symbol(Bar, Decl(reactNamespaceJSXEmit.tsx, 2, 11))
20-
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 6, 4))
21-
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 3, 11))
23+
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 7, 4))
24+
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11))
2225

2326
<x-component />;
2427
>x-component : Symbol(unknown)
2528

2629
<Bar {...x} />;
2730
>Bar : Symbol(Bar, Decl(reactNamespaceJSXEmit.tsx, 2, 11))
28-
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 3, 11))
31+
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11))
2932

3033
<Bar { ...x } y={2} />;
3134
>Bar : Symbol(Bar, Decl(reactNamespaceJSXEmit.tsx, 2, 11))
32-
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 3, 11))
33-
>y : Symbol(y, Decl(reactNamespaceJSXEmit.tsx, 9, 13))
35+
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11))
36+
>y : Symbol(y, Decl(reactNamespaceJSXEmit.tsx, 10, 13))
37+
38+
<_Bar { ...x } />;
39+
>_Bar : Symbol(_Bar, Decl(reactNamespaceJSXEmit.tsx, 3, 11))
40+
>x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11))
3441

tests/baselines/reference/reactNamespaceJSXEmit.types

+8
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ declare var foo: any;
88
declare var Bar: any;
99
>Bar : any
1010

11+
declare var _Bar: any;
12+
>_Bar : any
13+
1114
declare var x: any;
1215
>x : any
1316

@@ -38,3 +41,8 @@ declare var x: any;
3841
>y : number
3942
>2 : 2
4043

44+
<_Bar { ...x } />;
45+
><_Bar { ...x } /> : any
46+
>_Bar : any
47+
>x : any
48+

tests/cases/compiler/doubleUnderscoreReactNamespace.ts

+3-7
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,11 @@
44
// @filename: index.tsx
55

66
declare global {
7-
namespace JSX {
8-
interface IntrinsicElements {
9-
__foot: any;
10-
}
11-
}
127
function __make (params: object): any;
138
}
149

10+
declare var __foot: any;
1511

16-
const thing = <__foot></__foot>;
12+
const thing = <__foot />;
1713

18-
export {}
14+
export {}

tests/cases/compiler/jsxFactoryIdentifier.ts

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
//@jsx: react
2-
//@target: es6
3-
//@module: commonjs
4-
//@jsxFactory: createElement
5-
//@sourcemap: true
6-
7-
// @filename: Element.ts
1+
//@jsx: react
2+
//@target: es6
3+
//@module: commonjs
4+
//@jsxFactory: createElement
5+
//@sourcemap: true
6+
7+
// @filename: Element.ts
88
declare namespace JSX {
99
interface Element {
1010
name: string;
@@ -33,9 +33,9 @@ export let createElement = Element.createElement;
3333

3434
function toCamelCase(text: string): string {
3535
return text[0].toLowerCase() + text.substring(1);
36-
}
37-
38-
// @filename: test.tsx
36+
}
37+
38+
// @filename: test.tsx
3939
import { Element} from './Element';
4040
let createElement = Element.createElement;
4141
let c: {
@@ -51,4 +51,4 @@ class A {
5151
<meta content={c.a!.b}></meta>
5252
];
5353
}
54-
}
54+
}

tests/cases/compiler/reactNamespaceJSXEmit.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
declare var myReactLib: any;
55
declare var foo: any;
66
declare var Bar: any;
7+
declare var _Bar: any;
78
declare var x: any;
89

910
<foo data/>;
1011
<Bar x={x} />;
1112
<x-component />;
1213
<Bar {...x} />;
1314
<Bar { ...x } y={2} />;
15+
<_Bar { ...x } />;

0 commit comments

Comments
 (0)