585d44ca17
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>
38 lines
1.2 KiB
C++
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
|