[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]
\%[ async \%]
(?= # preceeds arrow function
\%{js:optional-whitespace-or-comments}
(?:
\%{js:identifier}
\%{js:optional-whitespace-or-comments}
=> |
\( # can this be better?
)
)
(?! # does not preceed "function" (leave to function expression)
\%{js:optional-whitespace-or-comments}
\%[ function \%]
)
\%[ new \%] (?! \%{js:new-target-object-keyword-suffix} )
\%{js:before-next-token}
\%{js:before-next-token}
\(
\)
\%{js:before-next-token}
\%{js:before-next-token}
,
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
(?=\%{js:identifier-start})
\%{def:always-match}
\%{js:before-next-token}
\%{js:before-next-token}
\(
\)
\%{js:before-next-token}
\%{js:before-next-token}
,
\%{js:before-next-token}
\.(?!\.)
\%{js:before-next-token}
\[
]
\?\.(?![0-9])
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
(\+\+|--)
await
delete
typeof
void
yield
(
\+ | # unary plus
- | # unary negation
~ | # bitwise not
! # logical not
)
\%{js:before-next-token}
\%{js:before-next-token}
(?= \%{js:not-whitespace} )
(?= [^:;\])}] )
(?! /[/*] )
\%{_expression-start}
\%{js:before-next-token}
(?=:)
\%{def:always-match}
:
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\?
\%{js:before-next-token}
:
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\?
\%{js:before-next-token}
(?: \%[ (?: instanceof | in ) \%] )
(?:
\*\* =? | # exponentiation (assignment) (ES2016)
[+/*%-] =? | # arithmetic (assignment)
[!=]==? | # equality
&& | \|\| | # logical
\?\? | # nullish coalescing (ES2020)
[&|^] =? | # bitwise logical (assignment)
(?: << | >>>? ) =? | # bitwise shift (assignment)
[<>]=? | # relational
= # assignment
)
\%{_keyword-binary-operator}
\%{js:before-next-token}
\%{_binary-operator}
\%{js:before-next-token}
\%{_keyword-binary-operator}
\%{js:before-next-token}
(\%{_binary-operator}|,)
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\%{_expression-start}(?!,)
\%{js:before-next-token}
\%{_expression-start}(?!,)
\%{js:before-next-token}
\%{_expression-start}
\%{js:before-next-token}
\%{_expression-start}
\%{js:before-next-token}