Changeset 34351 in webkit
- Timestamp:
- Jun 3, 2008 3:48:52 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r34338 r34351 1 2008-06-03 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Tim. 4 5 Bug 12983: Web Inspector break on the debugger keyword 6 <https://bugs.webkit.org/show_bug.cgi?id=12983> 7 8 Added a DebuggerStatementNode to handle codegen, and added a new 9 DidReachBreakPoint debug event (which will hopefully be useful 10 if we ever move breakpoint management into JSC proper). Also 11 added didReachBreakpoint to Debugger to allow us to actually respond 12 to this event. 13 14 * VM/CodeBlock.cpp: 15 (KJS::debugHookName): 16 * VM/Machine.cpp: 17 (KJS::Machine::debug): 18 * VM/Machine.h: 19 (KJS::): 20 * kjs/debugger.h: 21 * kjs/grammar.y: 22 * kjs/nodes.cpp: 23 (KJS::DebuggerStatementNode::emitCode): 24 (KJS::DebuggerStatementNode::execute): 25 * kjs/nodes.h: 26 (KJS::DebuggerStatementNode::): 27 * kjs/nodes2string.cpp: 28 (KJS::DebuggerStatementNode::streamTo): 29 1 30 2008-06-03 Maciej Stachowiak <mjs@apple.com> 2 31 -
trunk/JavaScriptCore/VM/CodeBlock.cpp
r34182 r34351 109 109 case DidExecuteProgram: 110 110 return "didExecuteProgram"; 111 case DidReachBreakpoint: 112 return "didReachBreakpoint"; 111 113 } 112 114 -
trunk/JavaScriptCore/VM/Machine.cpp
r34338 r34351 862 862 return; 863 863 } 864 case DidReachBreakpoint: { 865 debugger->didReachBreakpoint(debuggerCallFrame, codeBlock->ownerNode->sourceId(), lastLine); 866 return; 867 } 864 868 } 865 869 } -
trunk/JavaScriptCore/VM/Machine.h
r34304 r34351 51 51 DidExecuteProgram, 52 52 DidEnterCallFrame, 53 DidReachBreakpoint, 53 54 WillLeaveCallFrame, 54 55 WillExecuteStatement -
trunk/JavaScriptCore/kjs/debugger.h
r34182 r34351 167 167 virtual void willExecuteProgram(const DebuggerCallFrame&, int sourceId, int lineno) = 0; 168 168 virtual void didExecuteProgram(const DebuggerCallFrame&, int sourceId, int lineno) = 0; 169 virtual void didReachBreakpoint(const DebuggerCallFrame&, int sourceId, int lineno) = 0; 169 170 170 171 private: -
trunk/JavaScriptCore/kjs/grammar.y
r33979 r34351 1021 1021 1022 1022 DebuggerStatement: 1023 DEBUGGER ';' { $$ = createNodeDeclarationInfo<StatementNode*>(new EmptyStatementNode(), 0, 0, 0);1023 DEBUGGER ';' { $$ = createNodeDeclarationInfo<StatementNode*>(new DebuggerStatementNode(), 0, 0, 0); 1024 1024 DBG($$.m_node, @1, @2); } 1025 | DEBUGGER error { $$ = createNodeDeclarationInfo<StatementNode*>(new EmptyStatementNode(), 0, 0, 0);1025 | DEBUGGER error { $$ = createNodeDeclarationInfo<StatementNode*>(new DebuggerStatementNode(), 0, 0, 0); 1026 1026 DBG($$.m_node, @1, @1); AUTO_SEMICOLON; } 1027 1027 ; -
trunk/JavaScriptCore/kjs/nodes.cpp
r34334 r34351 4845 4845 } 4846 4846 4847 // ------------------------------ DebuggerStatementNode --------------------------- 4848 4849 RegisterID* DebuggerStatementNode::emitCode(CodeGenerator& generator, RegisterID* dst) 4850 { 4851 generator.emitDebugHook(DidReachBreakpoint, firstLine(), lastLine()); 4852 return dst; 4853 } 4854 4855 JSValue* DebuggerStatementNode::execute(OldInterpreterExecState* exec) 4856 { 4857 return exec->setNormalCompletion(); 4858 } 4859 4847 4860 // ------------------------------ ExprStatementNode ---------------------------- 4848 4861 -
trunk/JavaScriptCore/kjs/nodes.h
r34319 r34351 2639 2639 virtual bool isEmptyStatement() const KJS_FAST_CALL { return true; } 2640 2640 }; 2641 2642 class DebuggerStatementNode : public StatementNode { 2643 public: 2644 DebuggerStatementNode() KJS_FAST_CALL 2645 { 2646 } 2647 2648 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) KJS_FAST_CALL; 2649 2650 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 2651 virtual JSValue* execute(OldInterpreterExecState*) KJS_FAST_CALL; 2652 }; 2641 2653 2642 2654 class ExprStatementNode : public StatementNode { -
trunk/JavaScriptCore/kjs/nodes2string.cpp
r31149 r34351 821 821 } 822 822 823 void DebuggerStatementNode::streamTo(SourceStream& s) const 824 { 825 s << Endl << "debugger;"; 826 } 827 823 828 void ExprStatementNode::streamTo(SourceStream& s) const 824 829 { -
trunk/WebCore/ChangeLog
r34349 r34351 1 2008-06-03 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Tim. 4 5 Bug 12983: Web Inspector break on the debugger keyword 6 <https://bugs.webkit.org/show_bug.cgi?id=12983> 7 8 Added support for the new debugger didReachBreakpoint 9 callback so that WebInspector receives the debugger event 10 and breaks. 11 12 * page/JavaScriptDebugServer.cpp: 13 (WebCore::JavaScriptDebugServer::didReachBreakpoint): 14 * page/JavaScriptDebugServer.h: 15 1 16 2008-06-03 Darin Adler <darin@apple.com> 2 17 -
trunk/WebCore/page/JavaScriptDebugServer.cpp
r34182 r34351 500 500 } 501 501 502 void JavaScriptDebugServer::didReachBreakpoint(const DebuggerCallFrame& debuggerCallFrame, int sourceID, int lineNumber) 503 { 504 if (m_paused) 505 return; 506 507 ASSERT(m_currentCallFrame); 508 if (!m_currentCallFrame) 509 return; 510 511 m_pauseOnNextStatement = true; 512 m_currentCallFrame->update(debuggerCallFrame, sourceID, lineNumber); 513 pauseIfNeeded(toPage(debuggerCallFrame.dynamicGlobalObject())); 514 } 515 502 516 } // namespace WebCore -
trunk/WebCore/page/JavaScriptDebugServer.h
r34182 r34351 103 103 virtual void willExecuteProgram(const KJS::DebuggerCallFrame&, int sourceId, int lineno); 104 104 virtual void didExecuteProgram(const KJS::DebuggerCallFrame&, int sourceId, int lineno); 105 virtual void didReachBreakpoint(const KJS::DebuggerCallFrame&, int sourceId, int lineno); 105 106 106 107 typedef HashMap<Page*, ListenerSet*> PageListenersMap; -
trunk/WebKit/mac/ChangeLog
r34347 r34351 1 2008-06-03 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Tim. 4 5 Bug 12983: Web Inspector break on the debugger keyword 6 <https://bugs.webkit.org/show_bug.cgi?id=12983> 7 8 Add stubs to allow old webkit debugger interface to build. 9 10 * WebView/WebScriptDebugger.h: 11 * WebView/WebScriptDebugger.mm: 12 1 13 2008-06-03 Anders Carlsson <andersca@apple.com> 2 14 -
trunk/WebKit/mac/WebView/WebScriptDebugger.h
r34182 r34351 59 59 virtual void willExecuteProgram(const KJS::DebuggerCallFrame&, int sourceId, int lineno); 60 60 virtual void didExecuteProgram(const KJS::DebuggerCallFrame&, int sourceId, int lineno); 61 virtual void didReachBreakpoint(const KJS::DebuggerCallFrame&, int sourceId, int lineno); 61 62 62 63 private: -
trunk/WebKit/mac/WebView/WebScriptDebugger.mm
r34182 r34351 189 189 [m_topCallFrame.get() _clearDebuggerCallFrame]; 190 190 } 191 192 void WebScriptDebugger::didReachBreakpoint(const DebuggerCallFrame&, int, int) 193 { 194 return; 195 }
Note: See TracChangeset
for help on using the changeset viewer.