Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(757)

Unified Diff: src/log.cc

Issue 1207433002: Assertion failure when using --log-regexp (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comments Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/log.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/log.cc
diff --git a/src/log.cc b/src/log.cc
index c634d28e9dd572304a4b7e5901419067a7faa643..367fdeb0167dfa30ce6324d78ebec4fe607a7926 100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -953,57 +953,58 @@ TIMER_EVENTS_LIST(V)
#undef V
-void Logger::LogRegExpSource(Handle<JSRegExp> regexp) {
+namespace {
+// Emits the source code of a regexp. Used by regexp events.
+void LogRegExpSource(Handle<JSRegExp> regexp, Isolate* isolate,
+ Log::MessageBuilder* msg) {
// Prints "/" + re.source + "/" +
// (re.global?"g":"") + (re.ignorecase?"i":"") + (re.multiline?"m":"")
- Log::MessageBuilder msg(log_);
- Handle<Object> source = Object::GetProperty(
- isolate_, regexp, "source").ToHandleChecked();
+ Handle<Object> source =
+ Object::GetProperty(isolate, regexp, "source").ToHandleChecked();
if (!source->IsString()) {
- msg.Append("no source");
+ msg->Append("no source");
return;
}
switch (regexp->TypeTag()) {
case JSRegExp::ATOM:
- msg.Append('a');
+ msg->Append('a');
break;
default:
break;
}
- msg.Append('/');
- msg.AppendDetailed(*Handle<String>::cast(source), false);
- msg.Append('/');
+ msg->Append('/');
+ msg->AppendDetailed(*Handle<String>::cast(source), false);
+ msg->Append('/');
// global flag
- Handle<Object> global = Object::GetProperty(
- isolate_, regexp, "global").ToHandleChecked();
+ Handle<Object> global =
+ Object::GetProperty(isolate, regexp, "global").ToHandleChecked();
if (global->IsTrue()) {
- msg.Append('g');
+ msg->Append('g');
}
// ignorecase flag
- Handle<Object> ignorecase = Object::GetProperty(
- isolate_, regexp, "ignoreCase").ToHandleChecked();
+ Handle<Object> ignorecase =
+ Object::GetProperty(isolate, regexp, "ignoreCase").ToHandleChecked();
if (ignorecase->IsTrue()) {
- msg.Append('i');
+ msg->Append('i');
}
// multiline flag
- Handle<Object> multiline = Object::GetProperty(
- isolate_, regexp, "multiline").ToHandleChecked();
+ Handle<Object> multiline =
+ Object::GetProperty(isolate, regexp, "multiline").ToHandleChecked();
if (multiline->IsTrue()) {
- msg.Append('m');
+ msg->Append('m');
}
-
- msg.WriteToLogFile();
}
+} // namespace
void Logger::RegExpCompileEvent(Handle<JSRegExp> regexp, bool in_cache) {
if (!log_->IsEnabled() || !FLAG_log_regexp) return;
Log::MessageBuilder msg(log_);
msg.Append("regexp-compile,");
- LogRegExpSource(regexp);
+ LogRegExpSource(regexp, isolate_, &msg);
msg.Append(in_cache ? ",hit" : ",miss");
msg.WriteToLogFile();
}
« no previous file with comments | « src/log.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698