(?!\x{2E2F})[\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}]
\(
\)
\.
\%{js:before-next-token}
\%{js:meta-keyword}
\%{js:import-keyword}
\%{js:before-next-token}
\.
\%{js:before-next-token}
\%{js:target-keyword}
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:new-keyword}
\%{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-container-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:identifier-container-start}
\%{def:always-match}
\.(?!\.)
\%{js:before-next-token}
\[
]
\?\.(?![0-9])
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\+\+|--
\%{js:async-keyword}
# 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} \%{js:function-keyword} )
\%{js:await-keyword} |
\%{js:delete-keyword} |
\%{js:typeof-keyword} |
\%{js:void-keyword} |
\%{js:yield-keyword}
\+ | # 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}
\%{js:instanceof-keyword} | \%{js:in-keyword}
\*\* =? | # 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}