mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
[compiler] Emit better error for unsupported syntax this (#34322)
This commit is contained in:
parent
0a1f1fcd50
commit
bd5b1b7639
|
|
@ -323,6 +323,22 @@ export default class HIRBuilder {
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (node.name === 'this') {
|
||||||
|
CompilerError.throwDiagnostic({
|
||||||
|
severity: ErrorSeverity.UnsupportedJS,
|
||||||
|
category: ErrorCategory.UnsupportedSyntax,
|
||||||
|
reason: '`this` is not supported syntax',
|
||||||
|
description:
|
||||||
|
'React Compiler does not support compiling functions that use `this`',
|
||||||
|
details: [
|
||||||
|
{
|
||||||
|
kind: 'error',
|
||||||
|
message: '`this` was used here',
|
||||||
|
loc: node.loc ?? GeneratedSource,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
const originalName = node.name;
|
const originalName = node.name;
|
||||||
let name = originalName;
|
let name = originalName;
|
||||||
let index = 0;
|
let index = 0;
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,18 @@ function useThing(fn) {
|
||||||
```
|
```
|
||||||
Found 1 error:
|
Found 1 error:
|
||||||
|
|
||||||
Error: Expected a non-reserved identifier name
|
Error: `this` is not supported syntax
|
||||||
|
|
||||||
`this` is a reserved word in JavaScript and cannot be used as an identifier name.
|
React Compiler does not support compiling functions that use `this`
|
||||||
|
|
||||||
|
error.reserved-words.ts:8:28
|
||||||
|
6 |
|
||||||
|
7 | if (ref.current === null) {
|
||||||
|
> 8 | ref.current = function (this: unknown, ...args) {
|
||||||
|
| ^^^^^^^^^^^^^ `this` was used here
|
||||||
|
9 | return fnRef.current.call(this, ...args);
|
||||||
|
10 | };
|
||||||
|
11 | }
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user