1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-15 14:44:58 +00:00
serenity/Userland/Libraries/LibJS/Tests/syntax
Shannon Booth 2d8b2328fd 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 
2023-09-28 13:11:11 +02:00
..
async-await.js LibJS: Implement await properly for async functions 2023-08-10 05:12:07 +02:00
async-generators.js LibJS: Disallow async generator functions called 'await' or 'yield' 2021-12-21 14:04:23 +01:00
coalesce-logic-expression-mixing.js LibJS: Parse secondary expressions with the original forbidden token set 2023-04-02 06:45:37 +02:00
destructuring-assignment.js LibJS: Allow BigInts as destructuring property names 2022-08-24 23:27:17 +01:00
dynamic-import-usage.js LibJS: Don't VERIFY that the token after 'import' is one of '.' and '(' 2021-12-29 16:57:23 +01:00
for-loop-invalid-in.js LibJS: Fix cases where we incorrectly allowed 'in' in for loops 2022-02-15 10:31:41 +00:00
function-hoisting.js LibJS: No longer hoist if parent scope has a function with the same name 2022-11-17 16:05:20 +00:00
functions-in-tree-order-non-strict.js LibJS: Initialize functions in spec order 2022-11-17 16:05:20 +00:00
functions-in-tree-order-strict.js LibJS: Initialize functions in spec order 2022-11-17 16:05:20 +00:00
generators.js LibJS: Disallow async generator functions called 'await' or 'yield' 2021-12-21 14:04:23 +01:00
if-statement-empty-completion.js LibJS: Add missing undefined fallback to IfStatement completions 2021-12-31 15:39:25 +01:00
new-with-optional-chaining.js LibJS: Add tests for new Obj with optional chain 2023-06-17 20:01:38 +02:00
numeric-separator.js LibJS: Disallow numerical separators in octal numbers and after '.' 2021-11-30 17:05:32 +00:00
optional-chaining.js LibJS: Uncomment passing tests 2023-08-08 15:09:53 +02:00
slash-after-block.js LibJS: Parse slashes after reserved identifiers correctly 2023-06-10 07:20:33 +02:00
switch-as-statement.js LibJS: Make scoping follow the spec 2021-09-30 08:16:32 +01:00
syntax-error-unary-expression-before-exponentiation.js LibJS: Syntax error for a unary expression followed by exponentiation 2023-09-28 13:11:11 +02:00