Backed out changeset 958d228b8b00 (bug 1929511) for causing build bustages in RegExpShim.h.

This commit is contained in:
Stanca Serban 2024-11-07 19:07:01 +02:00
Родитель 5fe4e83ab6
Коммит 9e56e87df8
1 изменённых файлов: 18 добавлений и 5 удалений

Просмотреть файл

@ -244,6 +244,21 @@ template <typename... Args>
return mozilla::AddToHash(aHash, aArgs...);
}
template <typename T>
class Optional {
mozilla::Maybe<T> inner_;
public:
Optional() = default;
Optional(T t) { inner_.emplace(t); }
bool has_value() const { return inner_.isSome(); }
const T& value() const { return inner_.ref(); }
T* operator->() { return &inner_.ref(); }
T& operator*() { return inner_.ref(); }
};
namespace bits {
inline uint64_t CountTrailingZeros(uint64_t value) {
@ -1105,15 +1120,13 @@ inline bool IsEitherUnicode(RegExpFlags flags) {
return flags.unicode() || flags.unicodeSets();
}
inline std::optional<RegExpFlag> TryRegExpFlagFromChar(char c) {
inline base::Optional<RegExpFlag> TryRegExpFlagFromChar(char c) {
RegExpFlag flag;
// The parser only calls this after verifying that it's a supported flag.
if (JS::MaybeParseRegExpFlag(c, &flag)) {
return flag;
}
MOZ_ALWAYS_TRUE(JS::MaybeParseRegExpFlag(c, &flag));
return std::optional<RegExpFlag>{};
return base::Optional(flag);
}
inline bool operator==(const RegExpFlags& lhs, const int& rhs) {