The abstract operation WordCharacters performs the following steps:
- 1. If _e_ is -1 or _e_ is _InputLength_, return *false*.
- 1. Let _c_ be the character _Input_[_e_].
- 1. If _c_ is one of the sixty-three characters below, return *true*.
-
-
-
+ 1. Create a set _A_ of characters containing the sixty-three characters:
+
+
+
`a`
@@ -27991,14 +27989,30 @@
Runtime Semantics: IsWordChar Abstract Operation
-
-
-
- 1. Return *false*.
+
+
+
+ 1. Create an empty set _U_.
+ 1. For every character _c_ not in set _A_ where Canonicalize(_c_) is in _A_, add _c_ to _U_.
+ 1. Assert: Unless _Unicode_ and _IgnoreCase_ are both true, _U_ is empty.
+ 1. Add the characters in set _U_ to set _A_.
+ 1. Return _A_.
+
+
+
Runtime Semantics: IsWordChar Abstract Operation
+
The abstract operation IsWordChar takes an integer parameter _e_ and performs the following steps:
+
+ 1. If _e_ is -1 or _e_ is _InputLength_, return *false*.
+ 1. Let _c_ be the character _Input_[_e_].
+ 1. Let _WordChars_ be _WordCharacters_().
+ 1. If _c_ is in _WordChars_, return *true*.
+ 1. Return *false*.
+
+
+
-
Quantifier
@@ -28391,246 +28405,7 @@
CharacterClassEscape
The production CharacterClassEscape :: `D` evaluates by returning the set of all characters not included in the set returned by CharacterClassEscape :: `d`.
The production CharacterClassEscape :: `s` evaluates by returning the set of characters containing the characters that are on the right-hand side of the |WhiteSpace| or |LineTerminator| productions.
The production CharacterClassEscape :: `S` evaluates by returning the set of all characters not included in the set returned by CharacterClassEscape :: `s` .
-
The production CharacterClassEscape :: `w` evaluates as follows:
-
- 1. Create a set _A_ of characters containing the sixty-three characters:
-
-
-
-
-
- `a`
-
-
- `b`
-
-
- `c`
-
-
- `d`
-
-
- `e`
-
-
- `f`
-
-
- `g`
-
-
- `h`
-
-
- `i`
-
-
- `j`
-
-
- `k`
-
-
- `l`
-
-
- `m`
-
-
- `n`
-
-
- `o`
-
-
- `p`
-
-
- `q`
-
-
- `r`
-
-
- `s`
-
-
- `t`
-
-
- `u`
-
-
- `v`
-
-
- `w`
-
-
- `x`
-
-
- `y`
-
-
- `z`
-
-
-
-
- `A`
-
-
- `B`
-
-
- `C`
-
-
- `D`
-
-
- `E`
-
-
- `F`
-
-
- `G`
-
-
- `H`
-
-
- `I`
-
-
- `J`
-
-
- `K`
-
-
- `L`
-
-
- `M`
-
-
- `N`
-
-
- `O`
-
-
- `P`
-
-
- `Q`
-
-
- `R`
-
-
- `S`
-
-
- `T`
-
-
- `U`
-
-
- `V`
-
-
- `W`
-
-
- `X`
-
-
- `Y`
-
-
- `Z`
-
-
-
-
- `0`
-
-
- `1`
-
-
- `2`
-
-
- `3`
-
-
- `4`
-
-
- `5`
-
-
- `6`
-
-
- `7`
-
-
- `8`
-
-
- `9`
-
-
- `_`
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1. If _Unicode_ is *true*, then
- 1. Create an empty set _U_.
- 1. For every character _c_ not in set _A_ where Canonicalize(_c_) is in _A_, add _c_ to _U_.
- 1. Add the characters in set _U_ to set _A_.
- 1. Return _A_.
-
+
The production CharacterClassEscape :: `w` evaluates by returning the set of all characters returned by _WordCharacters_().
The production CharacterClassEscape :: `W` evaluates by returning the set of all characters not included in the set returned by CharacterClassEscape :: `w` .