diff options
Diffstat (limited to 'deps/v8/src/interpreter-irregexp.cc')
-rw-r--r-- | deps/v8/src/interpreter-irregexp.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/deps/v8/src/interpreter-irregexp.cc b/deps/v8/src/interpreter-irregexp.cc index 5abeb5a10..e678e6cf1 100644 --- a/deps/v8/src/interpreter-irregexp.cc +++ b/deps/v8/src/interpreter-irregexp.cc @@ -73,9 +73,15 @@ static bool BackRefMatchesNoCase(Canonicalize* interp_canonicalize, unsigned int old_char = subject[from++]; unsigned int new_char = subject[current++]; if (old_char == new_char) continue; - if (old_char - 'A' <= 'Z' - 'A') old_char |= 0x20; - if (new_char - 'A' <= 'Z' - 'A') new_char |= 0x20; + // Convert both characters to lower case. + old_char |= 0x20; + new_char |= 0x20; if (old_char != new_char) return false; + // Not letters in the ASCII range and Latin-1 range. + if (!(old_char - 'a' <= 'z' - 'a') && + !(old_char - 224 <= 254 - 224 && old_char != 247)) { + return false; + } } return true; } |