mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-28 10:37:17 +02:00
LibJS: Syntax error for a unary expression followed by exponentiation
This change makes LibJS correctly report a syntax error when a unary
expression is followed by exponentiation, as the spec requires.
Apparently this is due to that expression being ambiguous ordering.
Strangely this check does not seem to apply in the same way for '++' and
'--' for reasons that I don't fully understand. For example
```
let x = 5;
++x ** 2
```
Since `--5` and `++5` on it's own results in a syntax error anyway, it
seems we do not need to perform this exponentiation check in those
places.
Diff Tests:
+6 ✅ -6 ❌
This commit is contained in:
committed by
Andreas Kling
parent
5e7a82a853
commit
2d8b2328fd
Notes:
sideshowbarker
2024-07-16 23:51:07 +09:00
Author: https://github.com/shannonbooth Commit: https://github.com/SerenityOS/serenity/commit/2d8b2328fd Pull-request: https://github.com/SerenityOS/serenity/pull/21120
@@ -0,0 +1,9 @@
|
||||
test("syntax error for an unary expression before exponentiation", () => {
|
||||
expect(`!5 ** 2`).not.toEval();
|
||||
expect(`~5 ** 2`).not.toEval();
|
||||
expect(`+5 ** 2`).not.toEval();
|
||||
expect(`-5 ** 2`).not.toEval();
|
||||
expect(`typeof 5 ** 2`).not.toEval();
|
||||
expect(`void 5 ** 2`).not.toEval();
|
||||
expect(`delete 5 ** 2`).not.toEval();
|
||||
});
|
||||
Reference in New Issue
Block a user