Lines Matching refs:JSRegExp
109 uint32_t JSRegExp::backtrack_limit() const {
115 base::Optional<JSRegExp::Flags> JSRegExp::FlagsFromString(
120 if (length > JSRegExp::kFlagCount) return {};
126 base::Optional<RegExpFlag> flag = JSRegExp::FlagFromChar(reader.Get(i));
132 return JSRegExp::AsJSRegExpFlags(value);
136 Handle<String> JSRegExp::StringFromFlags(Isolate* isolate,
137 JSRegExp::Flags flags) {
142 if (flags & JSRegExp::k##Camel) buffer[cursor++] = Char;
151 MaybeHandle<JSRegExp> JSRegExp::New(Isolate* isolate, Handle<String> pattern,
154 Handle<JSRegExp> regexp =
155 Handle<JSRegExp>::cast(isolate->factory()->NewJSObject(constructor));
157 return JSRegExp::Initialize(regexp, pattern, flags, backtrack_limit);
160 Object JSRegExp::code(bool is_latin1) const {
161 DCHECK_EQ(type_tag(), JSRegExp::IRREGEXP);
167 void JSRegExp::set_code(bool is_latin1, Handle<Code> code) {
171 Object JSRegExp::bytecode(bool is_latin1) const {
172 DCHECK(type_tag() == JSRegExp::IRREGEXP ||
173 type_tag() == JSRegExp::EXPERIMENTAL);
177 void JSRegExp::set_bytecode_and_trampoline(Isolate* isolate,
184 SetDataAt(JSRegExp::kIrregexpLatin1CodeIndex, *trampoline);
185 SetDataAt(JSRegExp::kIrregexpUC16CodeIndex, *trampoline);
188 bool JSRegExp::ShouldProduceBytecode() {
194 bool JSRegExp::CanTierUp() {
195 return FLAG_regexp_tier_up && type_tag() == JSRegExp::IRREGEXP;
200 bool JSRegExp::MarkedForTierUp() {
210 void JSRegExp::ResetLastTierUpTick() {
212 DCHECK_EQ(type_tag(), JSRegExp::IRREGEXP);
214 FixedArray::cast(data()).set(JSRegExp::kIrregexpTicksUntilTierUpIndex,
218 void JSRegExp::TierUpTick() {
220 DCHECK_EQ(type_tag(), JSRegExp::IRREGEXP);
225 FixedArray::cast(data()).set(JSRegExp::kIrregexpTicksUntilTierUpIndex,
229 void JSRegExp::MarkTierUpForNextExec() {
231 DCHECK_EQ(type_tag(), JSRegExp::IRREGEXP);
232 FixedArray::cast(data()).set(JSRegExp::kIrregexpTicksUntilTierUpIndex,
237 MaybeHandle<JSRegExp> JSRegExp::Initialize(Handle<JSRegExp> regexp,
242 JSRegExp::FlagsFromString(isolate, flags_string);
247 JSRegExp);
399 MaybeHandle<JSRegExp> JSRegExp::Initialize(Handle<JSRegExp> regexp,
412 RegExp::Compile(isolate, regexp, source, JSRegExp::AsRegExpFlags(flags),
414 JSRegExp);
418 EscapeRegExpSource(isolate, source), JSRegExp);
428 regexp->InObjectPropertyAtPut(JSRegExp::kLastIndexFieldIndex,
438 JSRegExp);