OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010-2011 Google Inc. All rights reserved. | 2 * Copyright (c) 2010-2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 private: | 74 private: |
75 Mutex m_mutex; | 75 Mutex m_mutex; |
76 Deque<OwnPtr<Task>> m_queue; | 76 Deque<OwnPtr<Task>> m_queue; |
77 }; | 77 }; |
78 | 78 |
79 v8::Local<v8::Value> ScriptDebugServer::callDebuggerMethod(const char* functionN
ame, int argc, v8::Local<v8::Value> argv[]) | 79 v8::Local<v8::Value> ScriptDebugServer::callDebuggerMethod(const char* functionN
ame, int argc, v8::Local<v8::Value> argv[]) |
80 { | 80 { |
81 v8::Local<v8::Object> debuggerScript = debuggerScriptLocal(); | 81 v8::Local<v8::Object> debuggerScript = debuggerScriptLocal(); |
82 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(debuggerScr
ipt->Get(v8InternalizedString(functionName))); | 82 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(debuggerScr
ipt->Get(v8InternalizedString(functionName))); |
83 ASSERT(m_isolate->InContext()); | 83 ASSERT(m_isolate->InContext()); |
84 return V8ScriptRunner::callInternalFunction(function, debuggerScript, argc,
argv, m_isolate); | 84 return V8ScriptRunner::callInternalFunction(function, debuggerScript, argc,
argv, m_isolate).ToLocalChecked(); |
85 } | 85 } |
86 | 86 |
87 ScriptDebugServer::ScriptDebugServer(v8::Isolate* isolate) | 87 ScriptDebugServer::ScriptDebugServer(v8::Isolate* isolate) |
88 : m_isolate(isolate) | 88 : m_isolate(isolate) |
89 , m_breakpointsActivated(true) | 89 , m_breakpointsActivated(true) |
90 , m_compiledScripts(isolate) | 90 , m_compiledScripts(isolate) |
91 , m_runningNestedMessageLoop(false) | 91 , m_runningNestedMessageLoop(false) |
92 , m_taskQueue(adoptPtr(new ThreadSafeTaskQueue)) | 92 , m_taskQueue(adoptPtr(new ThreadSafeTaskQueue)) |
93 { | 93 { |
94 } | 94 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 void ScriptDebugServer::reportCompiledScripts(const String& contextDebugDataSubs
tring, ScriptDebugListener* listener) | 133 void ScriptDebugServer::reportCompiledScripts(const String& contextDebugDataSubs
tring, ScriptDebugListener* listener) |
134 { | 134 { |
135 v8::HandleScope scope(m_isolate); | 135 v8::HandleScope scope(m_isolate); |
136 v8::Local<v8::Context> debuggerContext = v8::Debug::GetDebugContext(); | 136 v8::Local<v8::Context> debuggerContext = v8::Debug::GetDebugContext(); |
137 v8::Context::Scope contextScope(debuggerContext); | 137 v8::Context::Scope contextScope(debuggerContext); |
138 | 138 |
139 v8::Local<v8::Object> debuggerScript = debuggerScriptLocal(); | 139 v8::Local<v8::Object> debuggerScript = debuggerScriptLocal(); |
140 ASSERT(!debuggerScript->IsUndefined()); | 140 ASSERT(!debuggerScript->IsUndefined()); |
141 v8::Local<v8::Function> getScriptsFunction = v8::Local<v8::Function>::Cast(d
ebuggerScript->Get(v8InternalizedString("getScripts"))); | 141 v8::Local<v8::Function> getScriptsFunction = v8::Local<v8::Function>::Cast(d
ebuggerScript->Get(v8InternalizedString("getScripts"))); |
142 v8::Local<v8::Value> argv[] = { v8String(m_isolate, contextDebugDataSubstrin
g) }; | 142 v8::Local<v8::Value> argv[] = { v8String(m_isolate, contextDebugDataSubstrin
g) }; |
143 v8::Local<v8::Value> value = V8ScriptRunner::callInternalFunction(getScripts
Function, debuggerScript, WTF_ARRAY_LENGTH(argv), argv, m_isolate); | 143 v8::Local<v8::Value> value; |
144 if (value.IsEmpty()) | 144 if (!V8ScriptRunner::callInternalFunction(getScriptsFunction, debuggerScript
, WTF_ARRAY_LENGTH(argv), argv, m_isolate).ToLocal(&value)) |
145 return; | 145 return; |
146 ASSERT(value->IsArray()); | 146 ASSERT(value->IsArray()); |
147 v8::Local<v8::Array> scriptsArray = v8::Local<v8::Array>::Cast(value); | 147 v8::Local<v8::Array> scriptsArray = v8::Local<v8::Array>::Cast(value); |
148 for (unsigned i = 0; i < scriptsArray->Length(); ++i) | 148 for (unsigned i = 0; i < scriptsArray->Length(); ++i) |
149 dispatchDidParseSource(listener, v8::Local<v8::Object>::Cast(scriptsArra
y->Get(v8::Integer::New(m_isolate, i))), CompileSuccess); | 149 dispatchDidParseSource(listener, v8::Local<v8::Object>::Cast(scriptsArra
y->Get(v8::Integer::New(m_isolate, i))), CompileSuccess); |
150 } | 150 } |
151 | 151 |
152 String ScriptDebugServer::setBreakpoint(const String& sourceID, const ScriptBrea
kpoint& scriptBreakpoint, int* actualLineNumber, int* actualColumnNumber, bool i
nterstatementLocation) | 152 String ScriptDebugServer::setBreakpoint(const String& sourceID, const ScriptBrea
kpoint& scriptBreakpoint, int* actualLineNumber, int* actualColumnNumber, bool i
nterstatementLocation) |
153 { | 153 { |
154 v8::HandleScope scope(m_isolate); | 154 v8::HandleScope scope(m_isolate); |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 void ScriptDebugServer::v8DebugEventCallback(const v8::Debug::EventDetails& even
tDetails) | 573 void ScriptDebugServer::v8DebugEventCallback(const v8::Debug::EventDetails& even
tDetails) |
574 { | 574 { |
575 ScriptDebugServer* thisPtr = toScriptDebugServer(eventDetails.GetCallbackDat
a()); | 575 ScriptDebugServer* thisPtr = toScriptDebugServer(eventDetails.GetCallbackDat
a()); |
576 thisPtr->handleV8DebugEvent(eventDetails); | 576 thisPtr->handleV8DebugEvent(eventDetails); |
577 } | 577 } |
578 | 578 |
579 v8::Local<v8::Value> ScriptDebugServer::callInternalGetterFunction(v8::Local<v8:
:Object> object, const char* functionName) | 579 v8::Local<v8::Value> ScriptDebugServer::callInternalGetterFunction(v8::Local<v8:
:Object> object, const char* functionName) |
580 { | 580 { |
581 v8::Local<v8::Value> getterValue = object->Get(v8InternalizedString(function
Name)); | 581 v8::Local<v8::Value> getterValue = object->Get(v8InternalizedString(function
Name)); |
582 ASSERT(!getterValue.IsEmpty() && getterValue->IsFunction()); | 582 ASSERT(!getterValue.IsEmpty() && getterValue->IsFunction()); |
583 return V8ScriptRunner::callInternalFunction(v8::Local<v8::Function>::Cast(ge
tterValue), object, 0, 0, m_isolate); | 583 return V8ScriptRunner::callInternalFunction(v8::Local<v8::Function>::Cast(ge
tterValue), object, 0, 0, m_isolate).ToLocalChecked(); |
584 } | 584 } |
585 | 585 |
586 void ScriptDebugServer::handleV8DebugEvent(const v8::Debug::EventDetails& eventD
etails) | 586 void ScriptDebugServer::handleV8DebugEvent(const v8::Debug::EventDetails& eventD
etails) |
587 { | 587 { |
588 if (!enabled()) | 588 if (!enabled()) |
589 return; | 589 return; |
590 v8::DebugEvent event = eventDetails.GetEvent(); | 590 v8::DebugEvent event = eventDetails.GetEvent(); |
591 if (event != v8::AsyncTaskEvent && event != v8::Break && event != v8::Except
ion && event != v8::AfterCompile && event != v8::BeforeCompile && event != v8::C
ompileError && event != v8::PromiseEvent) | 591 if (event != v8::AsyncTaskEvent && event != v8::Break && event != v8::Except
ion && event != v8::AfterCompile && event != v8::BeforeCompile && event != v8::C
ompileError && event != v8::PromiseEvent) |
592 return; | 592 return; |
593 | 593 |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
814 *lineNumber = message->GetLineNumber(); | 814 *lineNumber = message->GetLineNumber(); |
815 *columnNumber = message->GetStartColumn(); | 815 *columnNumber = message->GetStartColumn(); |
816 v8::Local<v8::StackTrace> messageStackTrace = message->GetStackTrace
(); | 816 v8::Local<v8::StackTrace> messageStackTrace = message->GetStackTrace
(); |
817 if (!messageStackTrace.IsEmpty() && messageStackTrace->GetFrameCount
() > 0) | 817 if (!messageStackTrace.IsEmpty() && messageStackTrace->GetFrameCount
() > 0) |
818 *stackTrace = createScriptCallStack(m_isolate, messageStackTrace
, messageStackTrace->GetFrameCount()); | 818 *stackTrace = createScriptCallStack(m_isolate, messageStackTrace
, messageStackTrace->GetFrameCount()); |
819 } | 819 } |
820 } | 820 } |
821 } | 821 } |
822 | 822 |
823 } // namespace blink | 823 } // namespace blink |
OLD | NEW |