Files
sdk/runtime/vm/regexp/char-predicates.cc
Ryan Macnak 585d44ca17 [vm, regexp] Remove inclusion of the urename.h header file.
This is an internal header file of the ICU4C library and should not be
included directly (it gets transitively included by the public header
files of the library).

TEST=ci
Bug: cl/891754607
Change-Id: I5ece920c7ced706fa32912cf23518e46c8c68b92
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/491900
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2026-03-31 15:36:18 -07:00

38 lines
1.2 KiB
C++

// Copyright 2011 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "vm/regexp/char-predicates.h"
#include "unicode/uchar.h"
namespace dart {
// ES#sec-names-and-keywords Names and Keywords
// UnicodeIDStart, '$', '_' and '\'
bool IsIdentifierStartSlow(base::uc32 c) {
// cannot use u_isIDStart because it does not work for
// Other_ID_Start characters.
return u_hasBinaryProperty(c, UCHAR_ID_START) ||
(c < 0x60 && (c == '$' || c == '\\' || c == '_'));
}
// ES#sec-names-and-keywords Names and Keywords
// UnicodeIDContinue, '$', '_', '\', ZWJ, and ZWNJ
bool IsIdentifierPartSlow(base::uc32 c) {
// Can't use u_isIDPart because it does not work for
// Other_ID_Continue characters.
return u_hasBinaryProperty(c, UCHAR_ID_CONTINUE) ||
(c < 0x60 && (c == '$' || c == '\\' || c == '_')) || c == 0x200C ||
c == 0x200D;
}
// ES#sec-white-space White Space
// gC=Zs, U+0009, U+000B, U+000C, U+FEFF
bool IsWhiteSpaceSlow(base::uc32 c) {
return (u_charType(c) == U_SPACE_SEPARATOR) ||
(c < 0x0D && (c == 0x09 || c == 0x0B || c == 0x0C)) || c == 0xFEFF;
}
} // namespace dart