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 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 void ScriptDebugServer::stepIntoStatement() | 210 void ScriptDebugServer::stepIntoStatement() |
211 { | 211 { |
212 ASSERT(isPaused()); | 212 ASSERT(isPaused()); |
213 ASSERT(!m_executionState.IsEmpty()); | 213 ASSERT(!m_executionState.IsEmpty()); |
214 v8::HandleScope handleScope(m_isolate); | 214 v8::HandleScope handleScope(m_isolate); |
215 v8::Handle<v8::Value> argv[] = { m_executionState }; | 215 v8::Handle<v8::Value> argv[] = { m_executionState }; |
216 callDebuggerMethod(stepIntoV8MethodName, 1, argv); | 216 callDebuggerMethod(stepIntoV8MethodName, 1, argv); |
217 continueProgram(); | 217 continueProgram(); |
218 } | 218 } |
219 | 219 |
220 void ScriptDebugServer::stepCommandWithFrame(const char* functionName, const Scr
iptValue& frame) | 220 void ScriptDebugServer::stepOverStatement() |
221 { | 221 { |
222 ASSERT(isPaused()); | 222 ASSERT(isPaused()); |
223 ASSERT(!m_executionState.IsEmpty()); | 223 ASSERT(!m_executionState.IsEmpty()); |
224 v8::HandleScope handleScope(m_isolate); | 224 v8::HandleScope handleScope(m_isolate); |
225 v8::Handle<v8::Value> callFrame; | 225 v8::Handle<v8::Value> argv[] = { m_executionState }; |
226 if (frame.isEmpty()) { | 226 callDebuggerMethod("stepOverStatement", 1, argv); |
227 callFrame = v8::Undefined(m_isolate); | |
228 } else { | |
229 JavaScriptCallFrame* impl = V8JavaScriptCallFrame::toNative(v8::Handle<v
8::Object>::Cast(frame.v8Value())); | |
230 callFrame = impl->innerCallFrame(); | |
231 } | |
232 | |
233 v8::Handle<v8::Value> argv[] = { m_executionState, callFrame }; | |
234 callDebuggerMethod(functionName, 2, argv); | |
235 continueProgram(); | 227 continueProgram(); |
236 } | 228 } |
237 | 229 |
238 void ScriptDebugServer::stepOverStatement(const ScriptValue& frame) | 230 void ScriptDebugServer::stepOutOfFunction() |
239 { | 231 { |
240 stepCommandWithFrame("stepOverStatement", frame); | 232 ASSERT(isPaused()); |
241 } | 233 ASSERT(!m_executionState.IsEmpty()); |
242 | 234 v8::HandleScope handleScope(m_isolate); |
243 void ScriptDebugServer::stepOutOfFunction(const ScriptValue& frame) | 235 v8::Handle<v8::Value> argv[] = { m_executionState }; |
244 { | 236 callDebuggerMethod(stepOutV8MethodName, 1, argv); |
245 stepCommandWithFrame(stepOutV8MethodName, frame); | 237 continueProgram(); |
246 } | 238 } |
247 | 239 |
248 bool ScriptDebugServer::setScriptSource(const String& sourceID, const String& ne
wContent, bool preview, String* error, RefPtr<TypeBuilder::Debugger::SetScriptSo
urceError>& errorData, ScriptValue* newCallFrames, RefPtr<JSONObject>* result) | 240 bool ScriptDebugServer::setScriptSource(const String& sourceID, const String& ne
wContent, bool preview, String* error, RefPtr<TypeBuilder::Debugger::SetScriptSo
urceError>& errorData, ScriptValue* newCallFrames, RefPtr<JSONObject>* result) |
249 { | 241 { |
250 class EnableLiveEditScope { | 242 class EnableLiveEditScope { |
251 public: | 243 public: |
252 explicit EnableLiveEditScope(v8::Isolate* isolate) : m_isolate(isolate)
{ v8::Debug::SetLiveEditEnabled(m_isolate, true); } | 244 explicit EnableLiveEditScope(v8::Isolate* isolate) : m_isolate(isolate)
{ v8::Debug::SetLiveEditEnabled(m_isolate, true); } |
253 ~EnableLiveEditScope() { v8::Debug::SetLiveEditEnabled(m_isolate, false)
; } | 245 ~EnableLiveEditScope() { v8::Debug::SetLiveEditEnabled(m_isolate, false)
; } |
254 private: | 246 private: |
255 v8::Isolate* m_isolate; | 247 v8::Isolate* m_isolate; |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 { | 628 { |
637 return PassOwnPtr<ScriptSourceCode>(); | 629 return PassOwnPtr<ScriptSourceCode>(); |
638 } | 630 } |
639 | 631 |
640 String ScriptDebugServer::preprocessEventListener(LocalFrame*, const String& sou
rce, const String& url, const String& functionName) | 632 String ScriptDebugServer::preprocessEventListener(LocalFrame*, const String& sou
rce, const String& url, const String& functionName) |
641 { | 633 { |
642 return source; | 634 return source; |
643 } | 635 } |
644 | 636 |
645 } // namespace WebCore | 637 } // namespace WebCore |
OLD | NEW |