5#ifndef V8_OBJECTS_JS_REGEXP_INL_H_
6#define V8_OBJECTS_JS_REGEXP_INL_H_
22#include "torque-generated/src/objects/js-regexp-tq-inl.inc"
42 return Flags(smi.value());
46 kRegExpDataIndirectPointerTag)
52#define V(Lower, Camel, LowerCamel, Char, Bit) \
53 if (flags & JSRegExp::k##Camel) buffer[cursor++] = Char;
56 buffer[cursor++] =
'\0';
57 return buffer.begin();
67 return Type(value.value());
79 return JSRegExp::Flags(value.value());
92 case Type::EXPERIMENTAL:
99 kRegExpDataIndirectPointerTag)
106 return is_one_byte ? has_latin1_code() : has_uc16_code();
110 set_latin1_code(code);
116 bool is_one_byte)
const {
117 return is_one_byte ? latin1_code(isolate) : uc16_code(isolate);
120 kLatin1BytecodeOffset)
124 return is_one_byte ? has_latin1_bytecode() : has_uc16_bytecode();
128 clear_latin1_bytecode();
130 clear_uc16_bytecode();
136 set_latin1_bytecode(bytecode);
138 set_uc16_bytecode(bytecode);
148 set_capture_name_map(Smi::zero());
150 set_capture_name_map(*capture_name_map);
Tagged< TrustedByteArray > bytecode(bool is_one_byte) const
bool has_code(bool is_one_byte) const
void set_code(bool is_one_byte, Tagged< Code > code)
void set_bytecode(bool is_one_byte, Tagged< TrustedByteArray > bytecode)
Tagged< Code > code(IsolateForSandbox isolate, bool is_one_byte) const
void clear_bytecode(bool is_one_byte)
static const char * FlagsToString(Flags flags, FlagsBuffer *out_buffer)
Tagged< String > source() const
Tagged< String > EscapedPattern()
base::EmbeddedVector< char, kFlagCount+1 > FlagsBuffer
void set_flags(JSRegExp::Flags flags)
static constexpr Tagged< Smi > FromInt(int value)
static PtrType load(Tagged< HeapObject > host, int offset=0)
static void store(Tagged< HeapObject > host, PtrType value)
DirectHandle< FixedArray > capture_name_map
V8_EXPORT_PRIVATE base::Vector< Flag > Flags()
Tagged(T object) -> Tagged< T >
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define CODE_POINTER_ACCESSORS(holder, name, offset)
#define PROTECTED_POINTER_ACCESSORS(holder, name, type, offset)
#define OBJECT_CONSTRUCTORS_IMPL(Type, Super)
#define ACCESSORS(holder, name, type, offset)
#define TRUSTED_POINTER_ACCESSORS(holder, name, type, offset, tag)
#define TQ_OBJECT_CONSTRUCTORS_IMPL(Type)
#define SMI_ACCESSORS(holder, name, offset)
#define DCHECK(condition)