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

Side by Side Diff: third_party/WebKit/Source/platform/v8_inspector/V8DebuggerImpl.cpp

Issue 1804043002: Revert of Remove V8RecrusionScope, cleanup call sites. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
OLDNEW
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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 56
57 } 57 }
58 58
59 static bool inLiveEditScope = false; 59 static bool inLiveEditScope = false;
60 60
61 v8::MaybeLocal<v8::Value> V8DebuggerImpl::callDebuggerMethod(const char* functio nName, int argc, v8::Local<v8::Value> argv[]) 61 v8::MaybeLocal<v8::Value> V8DebuggerImpl::callDebuggerMethod(const char* functio nName, int argc, v8::Local<v8::Value> argv[])
62 { 62 {
63 v8::Local<v8::Object> debuggerScript = m_debuggerScript.Get(m_isolate); 63 v8::Local<v8::Object> debuggerScript = m_debuggerScript.Get(m_isolate);
64 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(debuggerScr ipt->Get(v8InternalizedString(functionName))); 64 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(debuggerScr ipt->Get(v8InternalizedString(functionName)));
65 ASSERT(m_isolate->InContext()); 65 ASSERT(m_isolate->InContext());
66 return function->Call(m_isolate->GetCurrentContext(), debuggerScript, argc, argv); 66 return m_client->callInternalFunction(function, debuggerScript, argc, argv);
67 } 67 }
68 68
69 PassOwnPtr<V8Debugger> V8Debugger::create(v8::Isolate* isolate, V8DebuggerClient * client) 69 PassOwnPtr<V8Debugger> V8Debugger::create(v8::Isolate* isolate, V8DebuggerClient * client)
70 { 70 {
71 return adoptPtr(new V8DebuggerImpl(isolate, client)); 71 return adoptPtr(new V8DebuggerImpl(isolate, client));
72 } 72 }
73 73
74 V8DebuggerImpl::V8DebuggerImpl(v8::Isolate* isolate, V8DebuggerClient* client) 74 V8DebuggerImpl::V8DebuggerImpl(v8::Isolate* isolate, V8DebuggerClient* client)
75 : m_isolate(isolate) 75 : m_isolate(isolate)
76 , m_client(client) 76 , m_client(client)
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 { 203 {
204 int groupId = getGroupId(context); 204 int groupId = getGroupId(context);
205 if (!groupId) 205 if (!groupId)
206 return nullptr; 206 return nullptr;
207 return m_runtimeAgentsMap.get(groupId); 207 return m_runtimeAgentsMap.get(groupId);
208 } 208 }
209 209
210 void V8DebuggerImpl::getCompiledScripts(int contextGroupId, protocol::Vector<V8D ebuggerParsedScript>& result) 210 void V8DebuggerImpl::getCompiledScripts(int contextGroupId, protocol::Vector<V8D ebuggerParsedScript>& result)
211 { 211 {
212 v8::HandleScope scope(m_isolate); 212 v8::HandleScope scope(m_isolate);
213 v8::Context::Scope contextScope(debuggerContext());
214
213 v8::Local<v8::Object> debuggerScript = m_debuggerScript.Get(m_isolate); 215 v8::Local<v8::Object> debuggerScript = m_debuggerScript.Get(m_isolate);
214 ASSERT(!debuggerScript->IsUndefined()); 216 ASSERT(!debuggerScript->IsUndefined());
215 v8::Local<v8::Function> getScriptsFunction = v8::Local<v8::Function>::Cast(d ebuggerScript->Get(v8InternalizedString("getScripts"))); 217 v8::Local<v8::Function> getScriptsFunction = v8::Local<v8::Function>::Cast(d ebuggerScript->Get(v8InternalizedString("getScripts")));
216 v8::Local<v8::Value> argv[] = { v8::Integer::New(m_isolate, contextGroupId) }; 218 v8::Local<v8::Value> argv[] = { v8::Integer::New(m_isolate, contextGroupId) };
217 v8::Local<v8::Value> value; 219 v8::Local<v8::Value> value;
218 if (!getScriptsFunction->Call(debuggerContext(), debuggerScript, WTF_ARRAY_L ENGTH(argv), argv).ToLocal(&value)) 220 if (!m_client->callInternalFunction(getScriptsFunction, debuggerScript, WTF_ ARRAY_LENGTH(argv), argv).ToLocal(&value))
219 return; 221 return;
220 ASSERT(value->IsArray()); 222 ASSERT(value->IsArray());
221 v8::Local<v8::Array> scriptsArray = v8::Local<v8::Array>::Cast(value); 223 v8::Local<v8::Array> scriptsArray = v8::Local<v8::Array>::Cast(value);
222 result.resize(scriptsArray->Length()); 224 result.resize(scriptsArray->Length());
223 for (unsigned i = 0; i < scriptsArray->Length(); ++i) 225 for (unsigned i = 0; i < scriptsArray->Length(); ++i)
224 result[i] = createParsedScript(v8::Local<v8::Object>::Cast(scriptsArray- >Get(v8::Integer::New(m_isolate, i))), true); 226 result[i] = createParsedScript(v8::Local<v8::Object>::Cast(scriptsArray- >Get(v8::Integer::New(m_isolate, i))), true);
225 } 227 }
226 228
227 String16 V8DebuggerImpl::setBreakpoint(const String16& sourceID, const ScriptBre akpoint& scriptBreakpoint, int* actualLineNumber, int* actualColumnNumber, bool interstatementLocation) 229 String16 V8DebuggerImpl::setBreakpoint(const String16& sourceID, const ScriptBre akpoint& scriptBreakpoint, int* actualLineNumber, int* actualColumnNumber, bool interstatementLocation)
228 { 230 {
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 if (m_executionState.IsEmpty()) { 485 if (m_executionState.IsEmpty()) {
484 v8::Local<v8::Function> currentCallFrameFunction = v8::Local<v8::Functio n>::Cast(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("currentCallF rame"))); 486 v8::Local<v8::Function> currentCallFrameFunction = v8::Local<v8::Functio n>::Cast(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("currentCallF rame")));
485 currentCallFrameV8 = v8::Debug::Call(debuggerContext(), currentCallFrame Function).ToLocalChecked(); 487 currentCallFrameV8 = v8::Debug::Call(debuggerContext(), currentCallFrame Function).ToLocalChecked();
486 } else { 488 } else {
487 v8::Local<v8::Value> argv[] = { m_executionState }; 489 v8::Local<v8::Value> argv[] = { m_executionState };
488 currentCallFrameV8 = callDebuggerMethod("currentCallFrame", WTF_ARRAY_LE NGTH(argv), argv).ToLocalChecked(); 490 currentCallFrameV8 = callDebuggerMethod("currentCallFrame", WTF_ARRAY_LE NGTH(argv), argv).ToLocalChecked();
489 } 491 }
490 ASSERT(!currentCallFrameV8.IsEmpty()); 492 ASSERT(!currentCallFrameV8.IsEmpty());
491 if (!currentCallFrameV8->IsObject()) 493 if (!currentCallFrameV8->IsObject())
492 return nullptr; 494 return nullptr;
493 return JavaScriptCallFrame::create(debuggerContext(), v8::Local<v8::Object>: :Cast(currentCallFrameV8)); 495 return JavaScriptCallFrame::create(m_client, debuggerContext(), v8::Local<v8 ::Object>::Cast(currentCallFrameV8));
494 } 496 }
495 497
496 v8::Local<v8::Object> V8DebuggerImpl::currentCallFrames() 498 v8::Local<v8::Object> V8DebuggerImpl::currentCallFrames()
497 { 499 {
498 if (!m_isolate->InContext()) 500 if (!m_isolate->InContext())
499 return v8::Local<v8::Object>(); 501 return v8::Local<v8::Object>();
500 502
501 // Filter out stack traces entirely consisting of V8's internal scripts. 503 // Filter out stack traces entirely consisting of V8's internal scripts.
502 v8::Local<v8::StackTrace> stackTrace = v8::StackTrace::CurrentStackTrace(m_i solate, 1); 504 v8::Local<v8::StackTrace> stackTrace = v8::StackTrace::CurrentStackTrace(m_i solate, 1);
503 if (!stackTrace->GetFrameCount()) 505 if (!stackTrace->GetFrameCount())
504 return v8::Local<v8::Object>(); 506 return v8::Local<v8::Object>();
505 507
506 OwnPtr<JavaScriptCallFrame> currentCallFrame = wrapCallFrames(); 508 OwnPtr<JavaScriptCallFrame> currentCallFrame = wrapCallFrames();
507 if (!currentCallFrame) 509 if (!currentCallFrame)
508 return v8::Local<v8::Object>(); 510 return v8::Local<v8::Object>();
509 511
510 v8::Local<v8::FunctionTemplate> wrapperTemplate = v8::Local<v8::FunctionTemp late>::New(m_isolate, m_callFrameWrapperTemplate); 512 v8::Local<v8::FunctionTemplate> wrapperTemplate = v8::Local<v8::FunctionTemp late>::New(m_isolate, m_callFrameWrapperTemplate);
511 v8::Local<v8::Context> context = m_pausedContext.IsEmpty() ? m_isolate->GetC urrentContext() : m_pausedContext; 513 v8::Local<v8::Context> context = m_pausedContext.IsEmpty() ? m_isolate->GetC urrentContext() : m_pausedContext;
512 v8::Context::Scope scope(context); 514 v8::Context::Scope scope(context);
513 v8::Local<v8::Object> wrapper = V8JavaScriptCallFrame::wrap(wrapperTemplate, context, currentCallFrame.release()); 515 v8::Local<v8::Object> wrapper = V8JavaScriptCallFrame::wrap(m_client, wrappe rTemplate, context, currentCallFrame.release());
514 return wrapper; 516 return wrapper;
515 } 517 }
516 518
517 PassOwnPtr<JavaScriptCallFrame> V8DebuggerImpl::callFrameNoScopes(int index) 519 PassOwnPtr<JavaScriptCallFrame> V8DebuggerImpl::callFrameNoScopes(int index)
518 { 520 {
519 if (!m_isolate->InContext()) 521 if (!m_isolate->InContext())
520 return nullptr; 522 return nullptr;
521 v8::HandleScope handleScope(m_isolate); 523 v8::HandleScope handleScope(m_isolate);
522 524
523 v8::Local<v8::Value> currentCallFrameV8; 525 v8::Local<v8::Value> currentCallFrameV8;
524 if (m_executionState.IsEmpty()) { 526 if (m_executionState.IsEmpty()) {
525 v8::Local<v8::Function> currentCallFrameFunction = v8::Local<v8::Functio n>::Cast(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("currentCallF rameByIndex"))); 527 v8::Local<v8::Function> currentCallFrameFunction = v8::Local<v8::Functio n>::Cast(m_debuggerScript.Get(m_isolate)->Get(v8InternalizedString("currentCallF rameByIndex")));
526 currentCallFrameV8 = v8::Debug::Call(debuggerContext(), currentCallFrame Function, v8::Integer::New(m_isolate, index)).ToLocalChecked(); 528 currentCallFrameV8 = v8::Debug::Call(debuggerContext(), currentCallFrame Function, v8::Integer::New(m_isolate, index)).ToLocalChecked();
527 } else { 529 } else {
528 v8::Local<v8::Value> argv[] = { m_executionState, v8::Integer::New(m_iso late, index) }; 530 v8::Local<v8::Value> argv[] = { m_executionState, v8::Integer::New(m_iso late, index) };
529 currentCallFrameV8 = callDebuggerMethod("currentCallFrameByIndex", WTF_A RRAY_LENGTH(argv), argv).ToLocalChecked(); 531 currentCallFrameV8 = callDebuggerMethod("currentCallFrameByIndex", WTF_A RRAY_LENGTH(argv), argv).ToLocalChecked();
530 } 532 }
531 ASSERT(!currentCallFrameV8.IsEmpty()); 533 ASSERT(!currentCallFrameV8.IsEmpty());
532 if (!currentCallFrameV8->IsObject()) 534 if (!currentCallFrameV8->IsObject())
533 return nullptr; 535 return nullptr;
534 return JavaScriptCallFrame::create(debuggerContext(), v8::Local<v8::Object>: :Cast(currentCallFrameV8)); 536 return JavaScriptCallFrame::create(m_client, debuggerContext(), v8::Local<v8 ::Object>::Cast(currentCallFrameV8));
535 } 537 }
536 538
537 static V8DebuggerImpl* toV8DebuggerImpl(v8::Local<v8::Value> data) 539 static V8DebuggerImpl* toV8DebuggerImpl(v8::Local<v8::Value> data)
538 { 540 {
539 void* p = v8::Local<v8::External>::Cast(data)->Value(); 541 void* p = v8::Local<v8::External>::Cast(data)->Value();
540 return static_cast<V8DebuggerImpl*>(p); 542 return static_cast<V8DebuggerImpl*>(p);
541 } 543 }
542 544
543 void V8DebuggerImpl::breakProgramCallback(const v8::FunctionCallbackInfo<v8::Val ue>& info) 545 void V8DebuggerImpl::breakProgramCallback(const v8::FunctionCallbackInfo<v8::Val ue>& info)
544 { 546 {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 void V8DebuggerImpl::v8DebugEventCallback(const v8::Debug::EventDetails& eventDe tails) 604 void V8DebuggerImpl::v8DebugEventCallback(const v8::Debug::EventDetails& eventDe tails)
603 { 605 {
604 V8DebuggerImpl* thisPtr = toV8DebuggerImpl(eventDetails.GetCallbackData()); 606 V8DebuggerImpl* thisPtr = toV8DebuggerImpl(eventDetails.GetCallbackData());
605 thisPtr->handleV8DebugEvent(eventDetails); 607 thisPtr->handleV8DebugEvent(eventDetails);
606 } 608 }
607 609
608 v8::Local<v8::Value> V8DebuggerImpl::callInternalGetterFunction(v8::Local<v8::Ob ject> object, const char* functionName) 610 v8::Local<v8::Value> V8DebuggerImpl::callInternalGetterFunction(v8::Local<v8::Ob ject> object, const char* functionName)
609 { 611 {
610 v8::Local<v8::Value> getterValue = object->Get(v8InternalizedString(function Name)); 612 v8::Local<v8::Value> getterValue = object->Get(v8InternalizedString(function Name));
611 ASSERT(!getterValue.IsEmpty() && getterValue->IsFunction()); 613 ASSERT(!getterValue.IsEmpty() && getterValue->IsFunction());
612 return v8::Local<v8::Function>::Cast(getterValue)->Call(m_isolate->GetCurren tContext(), object, 0, 0).ToLocalChecked(); 614 return m_client->callInternalFunction(v8::Local<v8::Function>::Cast(getterVa lue), object, 0, 0).ToLocalChecked();
613 } 615 }
614 616
615 void V8DebuggerImpl::handleV8DebugEvent(const v8::Debug::EventDetails& eventDeta ils) 617 void V8DebuggerImpl::handleV8DebugEvent(const v8::Debug::EventDetails& eventDeta ils)
616 { 618 {
617 if (!enabled()) 619 if (!enabled())
618 return; 620 return;
619 v8::DebugEvent event = eventDetails.GetEvent(); 621 v8::DebugEvent event = eventDetails.GetEvent();
620 if (event != v8::AsyncTaskEvent && event != v8::Break && event != v8::Except ion && event != v8::AfterCompile && event != v8::BeforeCompile && event != v8::C ompileError && event != v8::PromiseEvent) 622 if (event != v8::AsyncTaskEvent && event != v8::Break && event != v8::Except ion && event != v8::AfterCompile && event != v8::BeforeCompile && event != v8::C ompileError && event != v8::PromiseEvent)
621 return; 623 return;
622 624
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 if (!m_debuggerScript.IsEmpty()) { 714 if (!m_debuggerScript.IsEmpty()) {
713 ASSERT_NOT_REACHED(); 715 ASSERT_NOT_REACHED();
714 return; 716 return;
715 } 717 }
716 718
717 v8::HandleScope scope(m_isolate); 719 v8::HandleScope scope(m_isolate);
718 v8::Context::Scope contextScope(debuggerContext()); 720 v8::Context::Scope contextScope(debuggerContext());
719 721
720 v8::Local<v8::String> scriptValue = v8::String::NewFromUtf8(m_isolate, Debug gerScript_js, v8::NewStringType::kInternalized, sizeof(DebuggerScript_js)).ToLoc alChecked(); 722 v8::Local<v8::String> scriptValue = v8::String::NewFromUtf8(m_isolate, Debug gerScript_js, v8::NewStringType::kInternalized, sizeof(DebuggerScript_js)).ToLoc alChecked();
721 v8::Local<v8::Value> value; 723 v8::Local<v8::Value> value;
722 if (!compileAndRunInternalScript(debuggerContext(), scriptValue).ToLocal(&va lue)) 724 if (!m_client->compileAndRunInternalScript(scriptValue).ToLocal(&value))
723 return; 725 return;
724 ASSERT(value->IsObject()); 726 ASSERT(value->IsObject());
725 m_debuggerScript.Reset(m_isolate, value.As<v8::Object>()); 727 m_debuggerScript.Reset(m_isolate, value.As<v8::Object>());
726 } 728 }
727 729
728 v8::Local<v8::Context> V8DebuggerImpl::debuggerContext() const 730 v8::Local<v8::Context> V8DebuggerImpl::debuggerContext() const
729 { 731 {
730 ASSERT(!m_debuggerContext.IsEmpty()); 732 ASSERT(!m_debuggerContext.IsEmpty());
731 return m_debuggerContext.Get(m_isolate); 733 return m_debuggerContext.Get(m_isolate);
732 } 734 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 }; 783 };
782 return callDebuggerMethod("setFunctionVariableValue", 4, argv); 784 return callDebuggerMethod("setFunctionVariableValue", 4, argv);
783 } 785 }
784 786
785 787
786 bool V8DebuggerImpl::isPaused() 788 bool V8DebuggerImpl::isPaused()
787 { 789 {
788 return !m_pausedContext.IsEmpty(); 790 return !m_pausedContext.IsEmpty();
789 } 791 }
790 792
791 v8::MaybeLocal<v8::Value> V8DebuggerImpl::runCompiledScript(v8::Local<v8::Contex t> context, v8::Local<v8::Script> script) 793 v8::Local<v8::Script> V8DebuggerImpl::compileInternalScript(v8::Local<v8::Contex t>, v8::Local<v8::String> code, const String16& fileName)
792 {
793 // TODO(dgozman): get rid of this check.
794 if (!m_client->isExecutionAllowed())
795 return v8::MaybeLocal<v8::Value>();
796
797 v8::MicrotasksScope microtasksScope(m_isolate, v8::MicrotasksScope::kRunMicr otasks);
798 int groupId = getGroupId(context);
799 V8DebuggerAgentImpl* agent = groupId ? m_debuggerAgentsMap.get(groupId) : nu llptr;
800 if (agent)
801 agent->willExecuteScript(script->GetUnboundScript()->GetId());
802 v8::MaybeLocal<v8::Value> result = script->Run(context);
803 // Get agent from the map again, since it could have detached during script execution.
804 agent = groupId ? m_debuggerAgentsMap.get(groupId) : nullptr;
805 if (agent)
806 agent->didExecuteScript();
807 return result;
808 }
809
810 v8::MaybeLocal<v8::Value> V8DebuggerImpl::callFunction(v8::Local<v8::Function> f unction, v8::Local<v8::Context> context, v8::Local<v8::Value> receiver, int argc , v8::Local<v8::Value> info[])
811 {
812 // TODO(dgozman): get rid of this check.
813 if (!m_client->isExecutionAllowed())
814 return v8::MaybeLocal<v8::Value>();
815
816 v8::MicrotasksScope microtasksScope(m_isolate, v8::MicrotasksScope::kRunMicr otasks);
817 int groupId = getGroupId(context);
818 V8DebuggerAgentImpl* agent = groupId ? m_debuggerAgentsMap.get(groupId) : nu llptr;
819 if (agent)
820 agent->willExecuteScript(function->ScriptId());
821 v8::MaybeLocal<v8::Value> result = function->Call(context, receiver, argc, i nfo);
822 // Get agent from the map again, since it could have detached during script execution.
823 agent = groupId ? m_debuggerAgentsMap.get(groupId) : nullptr;
824 if (agent)
825 agent->didExecuteScript();
826 return result;
827 }
828
829 v8::MaybeLocal<v8::Value> V8DebuggerImpl::compileAndRunInternalScript(v8::Local< v8::Context> context, v8::Local<v8::String> source)
830 {
831 v8::Local<v8::Script> script = compileInternalScript(context, source, String ());
832 if (script.IsEmpty())
833 return v8::MaybeLocal<v8::Value>();
834 v8::MicrotasksScope microtasksScope(m_isolate, v8::MicrotasksScope::kDoNotRu nMicrotasks);
835 return script->Run(context);
836 }
837
838 v8::Local<v8::Script> V8DebuggerImpl::compileInternalScript(v8::Local<v8::Contex t> context, v8::Local<v8::String> code, const String16& fileName)
839 { 794 {
840 // NOTE: For compatibility with WebCore, ScriptSourceCode's line starts at 795 // NOTE: For compatibility with WebCore, ScriptSourceCode's line starts at
841 // 1, whereas v8 starts at 0. 796 // 1, whereas v8 starts at 0.
842 v8::ScriptOrigin origin( 797 v8::ScriptOrigin origin(
843 toV8String(m_isolate, fileName), 798 toV8String(m_isolate, fileName),
844 v8::Integer::New(m_isolate, 0), 799 v8::Integer::New(m_isolate, 0),
845 v8::Integer::New(m_isolate, 0), 800 v8::Integer::New(m_isolate, 0),
846 v8::False(m_isolate), // sharable 801 v8::False(m_isolate), // sharable
847 v8::Local<v8::Integer>(), 802 v8::Local<v8::Integer>(),
848 v8::True(m_isolate), // internal 803 v8::True(m_isolate), // internal
849 toV8String(m_isolate, String16()), // sourceMap 804 toV8String(m_isolate, String16()), // sourceMap
850 v8::True(m_isolate)); // opaqueresource 805 v8::True(m_isolate)); // opaqueresource
851 v8::ScriptCompiler::Source source(code, origin); 806 v8::ScriptCompiler::Source source(code, origin);
852 v8::Local<v8::Script> script; 807 v8::Local<v8::Script> script;
853 if (!v8::ScriptCompiler::Compile(context, &source, v8::ScriptCompiler::kNoCo mpileOptions).ToLocal(&script)) 808 if (!v8::ScriptCompiler::Compile(m_isolate->GetCurrentContext(), &source, v8 ::ScriptCompiler::kNoCompileOptions).ToLocal(&script))
854 return v8::Local<v8::Script>(); 809 return v8::Local<v8::Script>();
855 return script; 810 return script;
856 } 811 }
857 812
858 PassOwnPtr<V8StackTrace> V8DebuggerImpl::createStackTrace(v8::Local<v8::StackTra ce> stackTrace, size_t maxStackSize) 813 PassOwnPtr<V8StackTrace> V8DebuggerImpl::createStackTrace(v8::Local<v8::StackTra ce> stackTrace, size_t maxStackSize)
859 { 814 {
860 V8DebuggerAgentImpl* agent = getDebuggerAgentForContext(m_isolate->GetCurren tContext()); 815 V8DebuggerAgentImpl* agent = getDebuggerAgentForContext(m_isolate->GetCurren tContext());
861 return V8StackTraceImpl::create(agent, stackTrace, maxStackSize); 816 return V8StackTraceImpl::create(agent, stackTrace, maxStackSize);
862 } 817 }
863 818
(...skipping 18 matching lines...) Expand all
882 } 837 }
883 838
884 v8::Local<v8::Context> V8DebuggerImpl::regexContext() 839 v8::Local<v8::Context> V8DebuggerImpl::regexContext()
885 { 840 {
886 if (m_regexContext.IsEmpty()) 841 if (m_regexContext.IsEmpty())
887 m_regexContext.Reset(m_isolate, v8::Context::New(m_isolate)); 842 m_regexContext.Reset(m_isolate, v8::Context::New(m_isolate));
888 return m_regexContext.Get(m_isolate); 843 return m_regexContext.Get(m_isolate);
889 } 844 }
890 845
891 } // namespace blink 846 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698