Home | History | Annotate | Download | only in builtins

Lines Matching refs:regexp

9 #include "src/regexp/jsregexp.h"
10 #include "src/regexp/regexp-utils.h"
17 // ES6 section 21.2 RegExp Objects
21 Handle<String> PatternFlags(Isolate* isolate, Handle<JSRegExp> regexp) {
26 const JSRegExp::Flags flags = regexp->GetFlags();
43 Handle<JSRegExp> regexp,
63 return JSRegExp::Initialize(regexp, pattern_string, flags_string);
68 // ES#sec-regexp-pattern-flags
69 // RegExp ( pattern, flags )
135 Handle<JSRegExp> regexp = Handle<JSRegExp>::cast(object);
138 RegExpInitialize(isolate, regexp, pattern, flags));
143 CHECK_RECEIVER(JSRegExp, regexp, "RegExp.prototype.compile");
163 isolate, regexp, RegExpInitialize(isolate, regexp, pattern, flags));
174 compiler::Node* regexp) {
178 return a->LoadObjectField(regexp, field_offset);
182 compiler::Node* regexp) {
189 return a->CallStub(getproperty_callable, context, regexp, name);
194 compiler::Node* regexp) {
205 var_value.Bind(FastLoadLastIndex(a, context, regexp));
211 var_value.Bind(SlowLoadLastIndex(a, context, regexp));
219 // The fast-path of StoreLastIndex when regexp is guaranteed to be an unmodified
222 compiler::Node* regexp, compiler::Node* value) {
226 a->StoreObjectField(regexp, field_offset, value);
230 compiler::Node* regexp, compiler::Node* value) {
238 a->CallRuntime(Runtime::kSetProperty, context, regexp, name, value,
243 compiler::Node* has_initialmap, compiler::Node* regexp,
252 FastStoreLastIndex(a, context, regexp, value);
258 SlowStoreLastIndex(a, context, regexp, value);
343 // ES#sec-regexp.prototype.exec
344 // RegExp.prototype.exec ( string )
364 context, maybe_receiver, JS_REGEXP_TYPE, "RegExp.prototype.exec");
365 Node* const regexp = maybe_receiver;
367 // Check whether the regexp instance is unmodified.
380 // Check whether the regexp is global or sticky, which determines whether we
382 Node* const flags = a->LoadObjectField(regexp, JSRegExp::kFlagsOffset);
399 LoadLastIndex(a, context, has_initialmap, regexp);
413 StoreLastIndex(a, context, has_initialmap, regexp, smi_zero);
436 match_indices = a->CallStub(exec_callable, context, regexp, string,
446 StoreLastIndex(a, context, has_initialmap, regexp, smi_zero);
464 StoreLastIndex(a, context, has_initialmap, regexp, new_lastindex);
482 // ES#sec-regexp.prototype.exec
483 // RegExp.prototype.exec ( string )
555 // RegExp fast path implementations rely on unmodified JSRegExp instances.
557 // the regexp itself is unmodified (i.e. its map has not changed) and its
602 "RegExp.prototype.flags");
740 "RegExp.prototype.source")));
743 Handle<JSRegExp> regexp = Handle<JSRegExp>::cast(recv);
744 return regexp->source();
749 CHECK_RECEIVER(JSReceiver, recv, "RegExp.prototype.toString");
794 compiler::Node* const regexp,
799 Node* const flags = a->LoadObjectField(regexp, JSRegExp::kFlagsOffset);
817 // Check whether we have an unmodified regexp instance.
875 "RegExp.prototype.global");
882 "RegExp.prototype.ignoreCase");
889 "RegExp.prototype.multiline");
896 "RegExp.prototype.sticky");
903 "RegExp.prototype.unicode");
948 // rightContext of the RegExp constructor. The properties are computed based
1051 "RegExp.prototype.exec");
1062 // ES#sec-regexp.prototype.test
1063 // RegExp.prototype.test ( S )
1076 "RegExp.prototype.test");
1091 // ES#sec-regexp.prototype-@@match
1092 // RegExp.prototype [ @@match ] ( string )
1095 CHECK_RECEIVER(JSReceiver, recv, "RegExp.prototype.@@match");
1254 // ES#sec-regexp.prototype-@@search
1255 // RegExp.prototype [ @@search ] ( string )
1270 "RegExp.prototype.@@search");
1317 MaybeHandle<JSArray> RegExpSplit(Isolate* isolate, Handle<JSRegExp> regexp,
1335 RegExpImpl::Exec(regexp, string, 0, last_match_info), JSArray);
1363 RegExpImpl::Exec(regexp, string, start_index,
1388 const bool unicode = (regexp->GetFlags() & JSRegExp::kUnicode) != 0;
1467 // ES#sec-regexp.prototype-@@split
1468 // RegExp.prototype [ @@split ] ( string, limit )
1471 CHECK_RECEIVER(JSReceiver, recv, "RegExp.prototype.@@split");
1633 CodeStubAssembler* a, compiler::Node* context, compiler::Node* regexp,
1656 FastStoreLastIndex(a, context, regexp, smi_zero);
1677 a->CallRuntime(Runtime::kRegExpExecMultiple, context, regexp,
1681 FastStoreLastIndex(a, context, regexp, smi_zero);
1707 // the regexp, just the implicit capture that captures the whole match. In
1814 // Use the apply argument as backing for global RegExp properties.
1856 compiler::Node* regexp,
1882 // Is {regexp} global?
1884 Node* const flags = a->LoadObjectField(regexp, JSRegExp::kFlagsOffset);
1892 FastStoreLastIndex(a, context, regexp, smi_zero);
1895 subject_string, regexp, replace_string, last_match_info);
1905 a->CallStub(exec_callable, context, regexp, subject_string, smi_zero,
1913 FastStoreLastIndex(a, context, regexp, smi_zero);
1975 // ES#sec-regexp.prototype-@@replace
1976 // RegExp.prototype [ @@replace ] ( string, replaceValue )
1994 "RegExp.prototype.@@replace");
2006 Node* const regexp = receiver;
2029 a->Return(ReplaceSimpleStringFastPath(a, context, regexp, string,
2033 // {regexp} is unmodified and {replace_value} is callable.
2038 // Check if the {regexp} is global.
2040 Node* const is_global = FastFlagGetter(a, regexp, JSRegExp::kGlobal);
2046 a, context, regexp, string, replace_callable);
2054 context, string, regexp, replace_callable);
2075 Node* const regexp = a->Parameter(1);
2088 exec_callable, context, regexp, string, smi_zero, internal_match_info);