| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index 3c1a003809bbb4efd0021c1bc8c45e5144b5a051..2deab773bfdf420c1128a6a3051a985f529d8085 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -4303,6 +4303,23 @@ bool String::IsOneByte() const {
|
| return str->HasOnlyOneByteChars();
|
| }
|
|
|
| +// Helpers for ContainsOnlyOneByteHelper
|
| +template<size_t size> struct OneByteMask;
|
| +template<> struct OneByteMask<4> {
|
| + static const uint32_t value = 0xFF00FF00;
|
| +};
|
| +template<> struct OneByteMask<8> {
|
| + static const uint64_t value = 0xFF00FF00FF00FF00;
|
| +};
|
| +static const uintptr_t kOneByteMask = OneByteMask<sizeof(uintptr_t)>::value;
|
| +static const uintptr_t kAlignmentMask = sizeof(uintptr_t) - 1;
|
| +static inline bool Unaligned(const uint16_t* chars) {
|
| + return reinterpret_cast<const uintptr_t>(chars) & kAlignmentMask;
|
| +}
|
| +static inline const uint16_t* Align(const uint16_t* chars) {
|
| + return reinterpret_cast<uint16_t*>(
|
| + reinterpret_cast<uintptr_t>(chars) & ~kAlignmentMask);
|
| +}
|
|
|
| class ContainsOnlyOneByteHelper {
|
| public:
|
| @@ -4348,16 +4365,6 @@ class ContainsOnlyOneByteHelper {
|
| }
|
|
|
| private:
|
| - static const uintptr_t kOneByteMask =
|
| - static_cast<uintptr_t>(0xFF00FF00FF00FF00ULL);
|
| - static const uintptr_t kAlignmentMask = sizeof(uintptr_t) - 1;
|
| - static inline bool Unaligned(const uint16_t* chars) {
|
| - return reinterpret_cast<const uintptr_t>(chars) & kAlignmentMask;
|
| - }
|
| - static inline const uint16_t* Align(const uint16_t* chars) {
|
| - return reinterpret_cast<uint16_t*>(
|
| - reinterpret_cast<uintptr_t>(chars) & ~kAlignmentMask);
|
| - }
|
| bool CheckCons(i::ConsString* cons_string) {
|
| while (true) {
|
| // Check left side if flat.
|
|
|