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

Side by Side Diff: src/log.cc

Issue 2422593003: Remove --log-regexp. (Closed)
Patch Set: fix Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « src/log.h ('k') | src/log-utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/log.h" 5 #include "src/log.h"
6 6
7 #include <cstdarg> 7 #include <cstdarg>
8 #include <memory> 8 #include <memory>
9 #include <sstream> 9 #include <sstream>
10 10
(...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 isolate->set_current_vm_state(JS); 886 isolate->set_current_vm_state(JS);
887 } 887 }
888 888
889 // Instantiate template methods. 889 // Instantiate template methods.
890 #define V(TimerName, expose) \ 890 #define V(TimerName, expose) \
891 template void TimerEventScope<TimerEvent##TimerName>::LogTimerEvent( \ 891 template void TimerEventScope<TimerEvent##TimerName>::LogTimerEvent( \
892 Logger::StartEnd se); 892 Logger::StartEnd se);
893 TIMER_EVENTS_LIST(V) 893 TIMER_EVENTS_LIST(V)
894 #undef V 894 #undef V
895 895
896
897 namespace {
898 // Emits the source code of a regexp. Used by regexp events.
899 void LogRegExpSource(Handle<JSRegExp> regexp, Isolate* isolate,
900 Log::MessageBuilder* msg) {
901 // Prints "/" + re.source + "/" +
902 // (re.global?"g":"") + (re.ignorecase?"i":"") + (re.multiline?"m":"")
903
904 Handle<Object> source =
905 JSReceiver::GetProperty(isolate, regexp, "source").ToHandleChecked();
906 if (!source->IsString()) {
907 msg->Append("no source");
908 return;
909 }
910
911 switch (regexp->TypeTag()) {
912 case JSRegExp::ATOM:
913 msg->Append('a');
914 break;
915 default:
916 break;
917 }
918 msg->Append('/');
919 msg->AppendDetailed(*Handle<String>::cast(source), false);
920 msg->Append('/');
921
922 // global flag
923 Handle<Object> global =
924 JSReceiver::GetProperty(isolate, regexp, "global").ToHandleChecked();
925 if (global->IsTrue(isolate)) {
926 msg->Append('g');
927 }
928 // ignorecase flag
929 Handle<Object> ignorecase =
930 JSReceiver::GetProperty(isolate, regexp, "ignoreCase").ToHandleChecked();
931 if (ignorecase->IsTrue(isolate)) {
932 msg->Append('i');
933 }
934 // multiline flag
935 Handle<Object> multiline =
936 JSReceiver::GetProperty(isolate, regexp, "multiline").ToHandleChecked();
937 if (multiline->IsTrue(isolate)) {
938 msg->Append('m');
939 }
940 }
941 } // namespace
942
943
944 void Logger::RegExpCompileEvent(Handle<JSRegExp> regexp, bool in_cache) {
945 if (!log_->IsEnabled() || !FLAG_log_regexp) return;
946 Log::MessageBuilder msg(log_);
947 msg.Append("regexp-compile,");
948 LogRegExpSource(regexp, isolate_, &msg);
949 msg.Append(in_cache ? ",hit" : ",miss");
950 msg.WriteToLogFile();
951 }
952
953
954 void Logger::ApiNamedPropertyAccess(const char* tag, 896 void Logger::ApiNamedPropertyAccess(const char* tag,
955 JSObject* holder, 897 JSObject* holder,
956 Object* name) { 898 Object* name) {
957 DCHECK(name->IsName()); 899 DCHECK(name->IsName());
958 if (!log_->IsEnabled() || !FLAG_log_api) return; 900 if (!log_->IsEnabled() || !FLAG_log_api) return;
959 String* class_name_obj = holder->class_name(); 901 String* class_name_obj = holder->class_name();
960 std::unique_ptr<char[]> class_name = 902 std::unique_ptr<char[]> class_name =
961 class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 903 class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
962 if (name->IsString()) { 904 if (name->IsString()) {
963 std::unique_ptr<char[]> property_name = 905 std::unique_ptr<char[]> property_name =
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after
1837 1779
1838 if (profiler_listener_.get() != nullptr) { 1780 if (profiler_listener_.get() != nullptr) {
1839 removeCodeEventListener(profiler_listener_.get()); 1781 removeCodeEventListener(profiler_listener_.get());
1840 } 1782 }
1841 1783
1842 return log_->Close(); 1784 return log_->Close();
1843 } 1785 }
1844 1786
1845 } // namespace internal 1787 } // namespace internal
1846 } // namespace v8 1788 } // namespace v8
OLDNEW
« no previous file with comments | « src/log.h ('k') | src/log-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698