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

Side by Side Diff: src/inspector/v8-debugger-agent-impl.cc

Issue 2467853003: [inspector] migrate Runtime to new style (Closed)
Patch Set: addressed comments Created 4 years, 1 month 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/inspector/v8-console.cc ('k') | src/inspector/v8-heap-profiler-agent-impl.cc » ('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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/inspector/v8-debugger-agent-impl.h" 5 #include "src/inspector/v8-debugger-agent-impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "src/debug/debug-interface.h" 9 #include "src/debug/debug-interface.h"
10 #include "src/inspector/injected-script.h" 10 #include "src/inspector/injected-script.h"
11 #include "src/inspector/inspected-context.h" 11 #include "src/inspector/inspected-context.h"
12 #include "src/inspector/java-script-call-frame.h" 12 #include "src/inspector/java-script-call-frame.h"
13 #include "src/inspector/protocol/Protocol.h" 13 #include "src/inspector/protocol/Protocol.h"
14 #include "src/inspector/remote-object-id.h" 14 #include "src/inspector/remote-object-id.h"
15 #include "src/inspector/script-breakpoint.h" 15 #include "src/inspector/script-breakpoint.h"
16 #include "src/inspector/search-util.h" 16 #include "src/inspector/search-util.h"
17 #include "src/inspector/string-util.h" 17 #include "src/inspector/string-util.h"
18 #include "src/inspector/v8-debugger-script.h" 18 #include "src/inspector/v8-debugger-script.h"
19 #include "src/inspector/v8-debugger.h" 19 #include "src/inspector/v8-debugger.h"
20 #include "src/inspector/v8-inspector-impl.h" 20 #include "src/inspector/v8-inspector-impl.h"
21 #include "src/inspector/v8-inspector-session-impl.h" 21 #include "src/inspector/v8-inspector-session-impl.h"
22 #include "src/inspector/v8-regex.h" 22 #include "src/inspector/v8-regex.h"
23 #include "src/inspector/v8-runtime-agent-impl.h" 23 #include "src/inspector/v8-runtime-agent-impl.h"
24 #include "src/inspector/v8-stack-trace-impl.h" 24 #include "src/inspector/v8-stack-trace-impl.h"
25 #include "src/inspector/v8-value-copier.h"
25 26
26 #include "include/v8-inspector.h" 27 #include "include/v8-inspector.h"
27 28
28 namespace v8_inspector { 29 namespace v8_inspector {
29 30
30 using protocol::Array; 31 using protocol::Array;
31 using protocol::Maybe; 32 using protocol::Maybe;
32 using protocol::Debugger::BreakpointId; 33 using protocol::Debugger::BreakpointId;
33 using protocol::Debugger::CallFrame; 34 using protocol::Debugger::CallFrame;
34 using protocol::Runtime::ExceptionDetails; 35 using protocol::Runtime::ExceptionDetails;
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 if (!callFrames) return; 554 if (!callFrames) return;
554 *newCallFrames = std::move(callFrames); 555 *newCallFrames = std::move(callFrames);
555 *asyncStackTrace = currentAsyncStackTrace(); 556 *asyncStackTrace = currentAsyncStackTrace();
556 } 557 }
557 558
558 void V8DebuggerAgentImpl::restartFrame( 559 void V8DebuggerAgentImpl::restartFrame(
559 ErrorString* errorString, const String16& callFrameId, 560 ErrorString* errorString, const String16& callFrameId,
560 std::unique_ptr<Array<CallFrame>>* newCallFrames, 561 std::unique_ptr<Array<CallFrame>>* newCallFrames,
561 Maybe<StackTrace>* asyncStackTrace) { 562 Maybe<StackTrace>* asyncStackTrace) {
562 if (!assertPaused(errorString)) return; 563 if (!assertPaused(errorString)) return;
563 InjectedScript::CallFrameScope scope( 564 InjectedScript::CallFrameScope scope(m_inspector, m_session->contextGroupId(),
564 errorString, m_inspector, m_session->contextGroupId(), callFrameId); 565 callFrameId);
565 if (!scope.initialize()) return; 566 Response response = scope.initialize();
567 if (!response.isSuccess()) {
568 *errorString = response.errorMessage();
569 return;
570 }
566 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) { 571 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) {
567 *errorString = "Could not find call frame with given id"; 572 *errorString = "Could not find call frame with given id";
568 return; 573 return;
569 } 574 }
570 575
571 v8::Local<v8::Value> resultValue; 576 v8::Local<v8::Value> resultValue;
572 v8::Local<v8::Boolean> result; 577 v8::Local<v8::Boolean> result;
573 if (!m_pausedCallFrames[scope.frameOrdinal()]->restart().ToLocal( 578 if (!m_pausedCallFrames[scope.frameOrdinal()]->restart().ToLocal(
574 &resultValue) || 579 &resultValue) ||
575 scope.tryCatch().HasCaught() || 580 scope.tryCatch().HasCaught() ||
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 } 713 }
709 714
710 void V8DebuggerAgentImpl::evaluateOnCallFrame( 715 void V8DebuggerAgentImpl::evaluateOnCallFrame(
711 ErrorString* errorString, const String16& callFrameId, 716 ErrorString* errorString, const String16& callFrameId,
712 const String16& expression, const Maybe<String16>& objectGroup, 717 const String16& expression, const Maybe<String16>& objectGroup,
713 const Maybe<bool>& includeCommandLineAPI, const Maybe<bool>& silent, 718 const Maybe<bool>& includeCommandLineAPI, const Maybe<bool>& silent,
714 const Maybe<bool>& returnByValue, const Maybe<bool>& generatePreview, 719 const Maybe<bool>& returnByValue, const Maybe<bool>& generatePreview,
715 std::unique_ptr<RemoteObject>* result, 720 std::unique_ptr<RemoteObject>* result,
716 Maybe<protocol::Runtime::ExceptionDetails>* exceptionDetails) { 721 Maybe<protocol::Runtime::ExceptionDetails>* exceptionDetails) {
717 if (!assertPaused(errorString)) return; 722 if (!assertPaused(errorString)) return;
718 InjectedScript::CallFrameScope scope( 723 InjectedScript::CallFrameScope scope(m_inspector, m_session->contextGroupId(),
719 errorString, m_inspector, m_session->contextGroupId(), callFrameId); 724 callFrameId);
720 if (!scope.initialize()) return; 725 Response response = scope.initialize();
726 if (!response.isSuccess()) {
727 *errorString = response.errorMessage();
728 return;
729 }
721 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) { 730 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) {
722 *errorString = "Could not find call frame with given id"; 731 *errorString = "Could not find call frame with given id";
723 return; 732 return;
724 } 733 }
725 734
726 if (includeCommandLineAPI.fromMaybe(false) && !scope.installCommandLineAPI()) 735 if (includeCommandLineAPI.fromMaybe(false)) scope.installCommandLineAPI();
727 return;
728 if (silent.fromMaybe(false)) scope.ignoreExceptionsAndMuteConsole(); 736 if (silent.fromMaybe(false)) scope.ignoreExceptionsAndMuteConsole();
729 737
730 v8::MaybeLocal<v8::Value> maybeResultValue = 738 v8::MaybeLocal<v8::Value> maybeResultValue =
731 m_pausedCallFrames[scope.frameOrdinal()]->evaluate( 739 m_pausedCallFrames[scope.frameOrdinal()]->evaluate(
732 toV8String(m_isolate, expression)); 740 toV8String(m_isolate, expression));
733 741
734 // Re-initialize after running client's code, as it could have destroyed 742 // Re-initialize after running client's code, as it could have destroyed
735 // context or session. 743 // context or session.
736 if (!scope.initialize()) return; 744 response = scope.initialize();
737 scope.injectedScript()->wrapEvaluateResult( 745 if (!response.isSuccess()) {
738 errorString, maybeResultValue, scope.tryCatch(), 746 *errorString = response.errorMessage();
739 objectGroup.fromMaybe(""), returnByValue.fromMaybe(false), 747 return;
740 generatePreview.fromMaybe(false), result, exceptionDetails); 748 }
749 response = scope.injectedScript()->wrapEvaluateResult(
750 maybeResultValue, scope.tryCatch(), objectGroup.fromMaybe(""),
751 returnByValue.fromMaybe(false), generatePreview.fromMaybe(false), result,
752 exceptionDetails);
753 if (!response.isSuccess()) *errorString = response.errorMessage();
741 } 754 }
742 755
743 void V8DebuggerAgentImpl::setVariableValue( 756 void V8DebuggerAgentImpl::setVariableValue(
744 ErrorString* errorString, int scopeNumber, const String16& variableName, 757 ErrorString* errorString, int scopeNumber, const String16& variableName,
745 std::unique_ptr<protocol::Runtime::CallArgument> newValueArgument, 758 std::unique_ptr<protocol::Runtime::CallArgument> newValueArgument,
746 const String16& callFrameId) { 759 const String16& callFrameId) {
747 if (!checkEnabled(errorString)) return; 760 if (!checkEnabled(errorString)) return;
748 if (!assertPaused(errorString)) return; 761 if (!assertPaused(errorString)) return;
749 InjectedScript::CallFrameScope scope( 762 InjectedScript::CallFrameScope scope(m_inspector, m_session->contextGroupId(),
750 errorString, m_inspector, m_session->contextGroupId(), callFrameId); 763 callFrameId);
751 if (!scope.initialize()) return; 764 Response response = scope.initialize();
752 765 if (!response.isSuccess()) {
766 *errorString = response.errorMessage();
767 return;
768 }
753 v8::Local<v8::Value> newValue; 769 v8::Local<v8::Value> newValue;
754 if (!scope.injectedScript() 770 response = scope.injectedScript()->resolveCallArgument(newValueArgument.get(),
755 ->resolveCallArgument(errorString, newValueArgument.get()) 771 &newValue);
756 .ToLocal(&newValue)) 772 if (!response.isSuccess()) {
773 *errorString = response.errorMessage();
757 return; 774 return;
775 }
758 776
759 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) { 777 if (scope.frameOrdinal() >= m_pausedCallFrames.size()) {
760 *errorString = "Could not find call frame with given id"; 778 *errorString = "Could not find call frame with given id";
761 return; 779 return;
762 } 780 }
763 v8::MaybeLocal<v8::Value> result = 781 v8::MaybeLocal<v8::Value> result =
764 m_pausedCallFrames[scope.frameOrdinal()]->setVariableValue( 782 m_pausedCallFrames[scope.frameOrdinal()]->setVariableValue(
765 scopeNumber, toV8String(m_isolate, variableName), newValue); 783 scopeNumber, toV8String(m_isolate, variableName), newValue);
766 if (scope.tryCatch().HasCaught() || result.IsEmpty()) { 784 if (scope.tryCatch().HasCaught() || result.IsEmpty()) {
767 *errorString = "Internal error"; 785 *errorString = "Internal error";
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 else if (m_scheduledDebuggerStep == StepOut) 918 else if (m_scheduledDebuggerStep == StepOut)
901 m_skipNextDebuggerStepOut = true; 919 m_skipNextDebuggerStepOut = true;
902 } 920 }
903 } 921 }
904 } 922 }
905 923
906 std::unique_ptr<Array<CallFrame>> V8DebuggerAgentImpl::currentCallFrames( 924 std::unique_ptr<Array<CallFrame>> V8DebuggerAgentImpl::currentCallFrames(
907 ErrorString* errorString) { 925 ErrorString* errorString) {
908 if (m_pausedContext.IsEmpty() || !m_pausedCallFrames.size()) 926 if (m_pausedContext.IsEmpty() || !m_pausedCallFrames.size())
909 return Array<CallFrame>::create(); 927 return Array<CallFrame>::create();
910 ErrorString ignored;
911 v8::HandleScope handles(m_isolate); 928 v8::HandleScope handles(m_isolate);
912 v8::Local<v8::Context> debuggerContext = 929 v8::Local<v8::Context> debuggerContext =
913 v8::DebugInterface::GetDebugContext(m_isolate); 930 v8::DebugInterface::GetDebugContext(m_isolate);
914 v8::Context::Scope contextScope(debuggerContext); 931 v8::Context::Scope contextScope(debuggerContext);
915 932
916 v8::Local<v8::Array> objects = v8::Array::New(m_isolate); 933 v8::Local<v8::Array> objects = v8::Array::New(m_isolate);
917 934
918 for (size_t frameOrdinal = 0; frameOrdinal < m_pausedCallFrames.size(); 935 for (size_t frameOrdinal = 0; frameOrdinal < m_pausedCallFrames.size();
919 ++frameOrdinal) { 936 ++frameOrdinal) {
920 const std::unique_ptr<JavaScriptCallFrame>& currentCallFrame = 937 const std::unique_ptr<JavaScriptCallFrame>& currentCallFrame =
921 m_pausedCallFrames[frameOrdinal]; 938 m_pausedCallFrames[frameOrdinal];
922 939
923 v8::Local<v8::Object> details = currentCallFrame->details(); 940 v8::Local<v8::Object> details = currentCallFrame->details();
924 if (hasInternalError(errorString, details.IsEmpty())) 941 if (hasInternalError(errorString, details.IsEmpty()))
925 return Array<CallFrame>::create(); 942 return Array<CallFrame>::create();
926 943
927 int contextId = currentCallFrame->contextId(); 944 int contextId = currentCallFrame->contextId();
928 InjectedScript* injectedScript = 945
929 contextId ? m_session->findInjectedScript(&ignored, contextId) 946 InjectedScript* injectedScript = nullptr;
930 : nullptr; 947 if (contextId) m_session->findInjectedScript(contextId, injectedScript);
931 948
932 String16 callFrameId = 949 String16 callFrameId =
933 RemoteCallFrameId::serialize(contextId, static_cast<int>(frameOrdinal)); 950 RemoteCallFrameId::serialize(contextId, static_cast<int>(frameOrdinal));
934 if (hasInternalError( 951 if (hasInternalError(
935 errorString, 952 errorString,
936 !details 953 !details
937 ->Set(debuggerContext, 954 ->Set(debuggerContext,
938 toV8StringInternalized(m_isolate, "callFrameId"), 955 toV8StringInternalized(m_isolate, "callFrameId"),
939 toV8String(m_isolate, callFrameId)) 956 toV8String(m_isolate, callFrameId))
940 .FromMaybe(false))) 957 .FromMaybe(false)))
941 return Array<CallFrame>::create(); 958 return Array<CallFrame>::create();
942 959
943 if (injectedScript) { 960 if (injectedScript) {
944 v8::Local<v8::Value> scopeChain; 961 v8::Local<v8::Value> scopeChain;
945 if (hasInternalError( 962 if (hasInternalError(
946 errorString, 963 errorString,
947 !details->Get(debuggerContext, 964 !details->Get(debuggerContext,
948 toV8StringInternalized(m_isolate, "scopeChain")) 965 toV8StringInternalized(m_isolate, "scopeChain"))
949 .ToLocal(&scopeChain) || 966 .ToLocal(&scopeChain) ||
950 !scopeChain->IsArray())) 967 !scopeChain->IsArray()))
951 return Array<CallFrame>::create(); 968 return Array<CallFrame>::create();
952 v8::Local<v8::Array> scopeChainArray = scopeChain.As<v8::Array>(); 969 v8::Local<v8::Array> scopeChainArray = scopeChain.As<v8::Array>();
953 if (!injectedScript->wrapPropertyInArray( 970 Response response = injectedScript->wrapPropertyInArray(
954 errorString, scopeChainArray, 971 scopeChainArray, toV8StringInternalized(m_isolate, "object"),
955 toV8StringInternalized(m_isolate, "object"), 972 backtraceObjectGroup);
956 backtraceObjectGroup)) 973 if (!response.isSuccess()) {
974 *errorString = response.errorMessage();
957 return Array<CallFrame>::create(); 975 return Array<CallFrame>::create();
958 if (!injectedScript->wrapObjectProperty( 976 }
959 errorString, details, toV8StringInternalized(m_isolate, "this"), 977 response = injectedScript->wrapObjectProperty(
960 backtraceObjectGroup)) 978 details, toV8StringInternalized(m_isolate, "this"),
979 backtraceObjectGroup);
980 if (!response.isSuccess()) {
981 *errorString = response.errorMessage();
961 return Array<CallFrame>::create(); 982 return Array<CallFrame>::create();
983 }
962 if (details 984 if (details
963 ->Has(debuggerContext, 985 ->Has(debuggerContext,
964 toV8StringInternalized(m_isolate, "returnValue")) 986 toV8StringInternalized(m_isolate, "returnValue"))
965 .FromMaybe(false)) { 987 .FromMaybe(false)) {
966 if (!injectedScript->wrapObjectProperty( 988 response = injectedScript->wrapObjectProperty(
967 errorString, details, 989 details, toV8StringInternalized(m_isolate, "returnValue"),
968 toV8StringInternalized(m_isolate, "returnValue"), 990 backtraceObjectGroup);
969 backtraceObjectGroup)) 991 if (!response.isSuccess()) {
992 *errorString = response.errorMessage();
970 return Array<CallFrame>::create(); 993 return Array<CallFrame>::create();
994 }
971 } 995 }
972 } else { 996 } else {
973 if (hasInternalError(errorString, !details 997 if (hasInternalError(errorString, !details
974 ->Set(debuggerContext, 998 ->Set(debuggerContext,
975 toV8StringInternalized( 999 toV8StringInternalized(
976 m_isolate, "scopeChain"), 1000 m_isolate, "scopeChain"),
977 v8::Array::New(m_isolate, 0)) 1001 v8::Array::New(m_isolate, 0))
978 .FromMaybe(false))) 1002 .FromMaybe(false)))
979 return Array<CallFrame>::create(); 1003 return Array<CallFrame>::create();
980 v8::Local<v8::Object> remoteObject = v8::Object::New(m_isolate); 1004 v8::Local<v8::Object> remoteObject = v8::Object::New(m_isolate);
(...skipping 22 matching lines...) Expand all
1003 } 1027 }
1004 1028
1005 if (hasInternalError( 1029 if (hasInternalError(
1006 errorString, 1030 errorString,
1007 !objects 1031 !objects
1008 ->Set(debuggerContext, static_cast<int>(frameOrdinal), details) 1032 ->Set(debuggerContext, static_cast<int>(frameOrdinal), details)
1009 .FromMaybe(false))) 1033 .FromMaybe(false)))
1010 return Array<CallFrame>::create(); 1034 return Array<CallFrame>::create();
1011 } 1035 }
1012 1036
1013 std::unique_ptr<protocol::Value> protocolValue = 1037 std::unique_ptr<protocol::Value> protocolValue;
1014 toProtocolValue(errorString, debuggerContext, objects); 1038 Response response = toProtocolValue(debuggerContext, objects, &protocolValue);
1015 if (!protocolValue) return Array<CallFrame>::create(); 1039 if (!response.isSuccess()) return Array<CallFrame>::create();
1016 protocol::ErrorSupport errorSupport; 1040 protocol::ErrorSupport errorSupport;
1017 std::unique_ptr<Array<CallFrame>> callFrames = 1041 std::unique_ptr<Array<CallFrame>> callFrames =
1018 Array<CallFrame>::parse(protocolValue.get(), &errorSupport); 1042 Array<CallFrame>::parse(protocolValue.get(), &errorSupport);
1019 if (hasInternalError(errorString, !callFrames)) 1043 if (hasInternalError(errorString, !callFrames))
1020 return Array<CallFrame>::create(); 1044 return Array<CallFrame>::create();
1021 return callFrames; 1045 return callFrames;
1022 } 1046 }
1023 1047
1024 std::unique_ptr<StackTrace> V8DebuggerAgentImpl::currentAsyncStackTrace() { 1048 std::unique_ptr<StackTrace> V8DebuggerAgentImpl::currentAsyncStackTrace() {
1025 if (m_pausedContext.IsEmpty()) return nullptr; 1049 if (m_pausedContext.IsEmpty()) return nullptr;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 // Skip pauses inside V8 internal scripts and on syntax errors. 1144 // Skip pauses inside V8 internal scripts and on syntax errors.
1121 if (!topCallFrame) return RequestContinue; 1145 if (!topCallFrame) return RequestContinue;
1122 1146
1123 DCHECK(m_pausedContext.IsEmpty()); 1147 DCHECK(m_pausedContext.IsEmpty());
1124 JavaScriptCallFrames frames = m_debugger->currentCallFrames(); 1148 JavaScriptCallFrames frames = m_debugger->currentCallFrames();
1125 m_pausedCallFrames.swap(frames); 1149 m_pausedCallFrames.swap(frames);
1126 m_pausedContext.Reset(m_isolate, context); 1150 m_pausedContext.Reset(m_isolate, context);
1127 v8::HandleScope handles(m_isolate); 1151 v8::HandleScope handles(m_isolate);
1128 1152
1129 if (!exception.IsEmpty()) { 1153 if (!exception.IsEmpty()) {
1130 ErrorString ignored; 1154 InjectedScript* injectedScript = nullptr;
1131 InjectedScript* injectedScript = 1155 m_session->findInjectedScript(V8Debugger::contextId(context),
1132 m_session->findInjectedScript(&ignored, V8Debugger::contextId(context)); 1156 injectedScript);
1133 if (injectedScript) { 1157 if (injectedScript) {
1134 m_breakReason = 1158 m_breakReason =
1135 isPromiseRejection 1159 isPromiseRejection
1136 ? protocol::Debugger::Paused::ReasonEnum::PromiseRejection 1160 ? protocol::Debugger::Paused::ReasonEnum::PromiseRejection
1137 : protocol::Debugger::Paused::ReasonEnum::Exception; 1161 : protocol::Debugger::Paused::ReasonEnum::Exception;
1138 ErrorString errorString; 1162 std::unique_ptr<protocol::Runtime::RemoteObject> obj;
1139 auto obj = injectedScript->wrapObject(&errorString, exception, 1163 injectedScript->wrapObject(exception, backtraceObjectGroup, false, false,
1140 backtraceObjectGroup); 1164 &obj);
1141 m_breakAuxData = obj ? obj->serialize() : nullptr; 1165 m_breakAuxData = obj ? obj->serialize() : nullptr;
1142 // m_breakAuxData might be null after this. 1166 // m_breakAuxData might be null after this.
1143 } 1167 }
1144 } 1168 }
1145 1169
1146 std::unique_ptr<Array<String16>> hitBreakpointIds = Array<String16>::create(); 1170 std::unique_ptr<Array<String16>> hitBreakpointIds = Array<String16>::create();
1147 1171
1148 for (const auto& point : hitBreakpoints) { 1172 for (const auto& point : hitBreakpoints) {
1149 DebugServerBreakpointToBreakpointIdAndSourceMap::iterator 1173 DebugServerBreakpointToBreakpointIdAndSourceMap::iterator
1150 breakpointIterator = m_serverBreakpoints.find(point); 1174 breakpointIterator = m_serverBreakpoints.find(point);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 1266
1243 void V8DebuggerAgentImpl::reset() { 1267 void V8DebuggerAgentImpl::reset() {
1244 if (!enabled()) return; 1268 if (!enabled()) return;
1245 m_scheduledDebuggerStep = NoStep; 1269 m_scheduledDebuggerStep = NoStep;
1246 m_scripts.clear(); 1270 m_scripts.clear();
1247 m_blackboxedPositions.clear(); 1271 m_blackboxedPositions.clear();
1248 m_breakpointIdToDebuggerBreakpointIds.clear(); 1272 m_breakpointIdToDebuggerBreakpointIds.clear();
1249 } 1273 }
1250 1274
1251 } // namespace v8_inspector 1275 } // namespace v8_inspector
OLDNEW
« no previous file with comments | « src/inspector/v8-console.cc ('k') | src/inspector/v8-heap-profiler-agent-impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698