Move JavaScriptCallFrame and ScriptDebugServer into JavaScriptCore for inspector
authorjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Jan 2014 04:42:25 +0000 (04:42 +0000)
committerjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Jan 2014 04:42:25 +0000 (04:42 +0000)
https://bugs.webkit.org/show_bug.cgi?id=127543

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
Add new files.

* inspector/ScriptDebugListener.h:
Extract WebCore knowledge from ScriptDebugServer. This will
eventually be made to work outside of WebCore.

* inspector/ScriptDebugServer.h: Renamed from Source/WebCore/bindings/js/ScriptDebugServer.h.
* inspector/ScriptDebugServer.cpp: Renamed from Source/WebCore/bindings/js/ScriptDebugServer.cpp.
(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::dispatchDidPause):
(Inspector::ScriptDebugServer::dispatchBreakpointActionLog):
(Inspector::ScriptDebugServer::dispatchBreakpointActionSound):
(Inspector::ScriptDebugServer::sourceParsed):
(Inspector::ScriptDebugServer::dispatchFunctionToListeners):
(Inspector::ScriptDebugServer::handlePause):
Modernize code, and call the new ScriptDebugListener callbacks where appropriate.

* inspector/JSJavaScriptCallFrame.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp.
(Inspector::JSJavaScriptCallFrame::JSJavaScriptCallFrame):
(Inspector::JSJavaScriptCallFrame::finishCreation):
(Inspector::JSJavaScriptCallFrame::createPrototype):
(Inspector::JSJavaScriptCallFrame::destroy):
(Inspector::JSJavaScriptCallFrame::releaseImpl):
(Inspector::JSJavaScriptCallFrame::~JSJavaScriptCallFrame):
(Inspector::JSJavaScriptCallFrame::evaluate):
(Inspector::JSJavaScriptCallFrame::scopeType):
(Inspector::JSJavaScriptCallFrame::caller):
(Inspector::JSJavaScriptCallFrame::sourceID):
(Inspector::JSJavaScriptCallFrame::line):
(Inspector::JSJavaScriptCallFrame::column):
(Inspector::JSJavaScriptCallFrame::functionName):
(Inspector::JSJavaScriptCallFrame::scopeChain):
(Inspector::JSJavaScriptCallFrame::thisObject):
(Inspector::JSJavaScriptCallFrame::type):
(Inspector::toJS):
(Inspector::toJSJavaScriptCallFrame):
* inspector/JSJavaScriptCallFrame.h: Added.
(Inspector::JSJavaScriptCallFrame::createStructure):
(Inspector::JSJavaScriptCallFrame::create):
(Inspector::JSJavaScriptCallFrame::impl):
* inspector/JSJavaScriptCallFramePrototype.cpp: Added.
(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluate):
(Inspector::jsJavaScriptCallFramePrototypeFunctionScopeType):
(Inspector::jsJavaScriptCallFrameAttributeCaller):
(Inspector::jsJavaScriptCallFrameAttributeSourceID):
(Inspector::jsJavaScriptCallFrameAttributeLine):
(Inspector::jsJavaScriptCallFrameAttributeColumn):
(Inspector::jsJavaScriptCallFrameAttributeFunctionName):
(Inspector::jsJavaScriptCallFrameAttributeScopeChain):
(Inspector::jsJavaScriptCallFrameAttributeThisObject):
(Inspector::jsJavaScriptCallFrameAttributeType):
(Inspector::jsJavaScriptCallFrameConstantGLOBAL_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantLOCAL_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantWITH_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantCLOSURE_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantCATCH_SCOPE):
* inspector/JSJavaScriptCallFramePrototype.h: Added.
(Inspector::JSJavaScriptCallFramePrototype::create):
(Inspector::JSJavaScriptCallFramePrototype::createStructure):
(Inspector::JSJavaScriptCallFramePrototype::JSJavaScriptCallFramePrototype):
* inspector/JavaScriptCallFrame.cpp: Renamed from Source/WebCore/bindings/js/JavaScriptCallFrame.cpp.
(Inspector::JavaScriptCallFrame::caller):
* inspector/JavaScriptCallFrame.h: Renamed from Source/WebCore/bindings/js/JavaScriptCallFrame.h.
Port of JavaScriptCallFrame.idl to a set of native JS classes.

Source/WebCore:

Covered by existing tests.

* ForwardingHeaders/inspector/ScriptDebugServer.h: Added.
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* inspector/JavaScriptCallFrame.idl: Removed.
Update builds now that ScriptDebugServer moved to JavaScriptCore.

* bindings/js/PageScriptDebugServer.h:
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):
* bindings/js/WorkerScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):
Handle ScriptDebugServer functionality depending on WebCore knowledge.

* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::breakpointActionSound):
Handle ScriptDebugServer functionality that depended on WebCore knowledge.
This will eventually be written in a non-WebCore specific way.

* inspector/InspectorRuntimeAgent.cpp:
* inspector/InspectorRuntimeAgent.h:
Update ScriptDebugServer type now that it is in namespace Inspector.

* workers/WorkerGlobalScope.h:
Make addConsoleMessage public again so the inspector can call it.

* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/PageDebuggerAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::breakpointActionLog):
* inspector/WorkerDebuggerAgent.h:
Let each of these handle console logs in their own way. Both of these
eventually go through the PageConsole and log through the InspectorConsoleAgent
and ChromeClient.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162757 268f45cc-cd09-0410-ab3c-d52691b4dbfc

40 files changed:
Source/JavaScriptCore/CMakeLists.txt
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/GNUmakefile.list.am
Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj
Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
Source/JavaScriptCore/inspector/JSInjectedScriptHost.h
Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp [moved from Source/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp with 53% similarity]
Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h [new file with mode: 0644]
Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.cpp [new file with mode: 0644]
Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.h [new file with mode: 0644]
Source/JavaScriptCore/inspector/JavaScriptCallFrame.cpp [moved from Source/WebCore/bindings/js/JavaScriptCallFrame.cpp with 94% similarity]
Source/JavaScriptCore/inspector/JavaScriptCallFrame.h [moved from Source/WebCore/bindings/js/JavaScriptCallFrame.h with 93% similarity]
Source/JavaScriptCore/inspector/ScriptDebugListener.h
Source/JavaScriptCore/inspector/ScriptDebugServer.cpp [moved from Source/WebCore/bindings/js/ScriptDebugServer.cpp with 86% similarity]
Source/JavaScriptCore/inspector/ScriptDebugServer.h [moved from Source/WebCore/bindings/js/ScriptDebugServer.h with 76% similarity]
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.cpp
Source/WebCore/DerivedSources.make
Source/WebCore/ForwardingHeaders/inspector/ScriptDebugServer.h [new file with mode: 0644]
Source/WebCore/GNUmakefile.list.am
Source/WebCore/UseJSC.cmake
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
Source/WebCore/bindings/js/PageScriptDebugServer.cpp
Source/WebCore/bindings/js/PageScriptDebugServer.h
Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp
Source/WebCore/bindings/js/WorkerScriptDebugServer.h
Source/WebCore/inspector/InspectorDebuggerAgent.cpp
Source/WebCore/inspector/InspectorDebuggerAgent.h
Source/WebCore/inspector/InspectorRuntimeAgent.cpp
Source/WebCore/inspector/InspectorRuntimeAgent.h
Source/WebCore/inspector/JavaScriptCallFrame.idl [deleted file]
Source/WebCore/inspector/PageDebuggerAgent.cpp
Source/WebCore/inspector/PageDebuggerAgent.h
Source/WebCore/inspector/WorkerDebuggerAgent.cpp
Source/WebCore/inspector/WorkerDebuggerAgent.h
Source/WebCore/workers/WorkerGlobalScope.h

index 9a1c699..1a3d365 100644 (file)
@@ -237,6 +237,10 @@ set(JavaScriptCore_SOURCES
     inspector/InspectorValues.cpp
     inspector/JSInjectedScriptHost.cpp
     inspector/JSInjectedScriptHostPrototype.cpp
+    inspector/JSJavaScriptCallFrame.cpp
+    inspector/JSJavaScriptCallFramePrototype.cpp
+    inspector/JavaScriptCallFrame.cpp
+    inspector/ScriptDebugServer.cpp
     inspector/agents/InspectorAgent.cpp
 
     interpreter/AbstractPC.cpp
index 2983467..6566a59 100644 (file)
@@ -1,3 +1,80 @@
+2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Move JavaScriptCallFrame and ScriptDebugServer into JavaScriptCore for inspector
+        https://bugs.webkit.org/show_bug.cgi?id=127543
+
+        Reviewed by Geoffrey Garen.
+
+        * CMakeLists.txt:
+        * GNUmakefile.list.am:
+        * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        Add new files.
+
+        * inspector/ScriptDebugListener.h:
+        Extract WebCore knowledge from ScriptDebugServer. This will
+        eventually be made to work outside of WebCore.
+
+        * inspector/ScriptDebugServer.h: Renamed from Source/WebCore/bindings/js/ScriptDebugServer.h.
+        * inspector/ScriptDebugServer.cpp: Renamed from Source/WebCore/bindings/js/ScriptDebugServer.cpp.
+        (Inspector::ScriptDebugServer::evaluateBreakpointAction):
+        (Inspector::ScriptDebugServer::dispatchDidPause):
+        (Inspector::ScriptDebugServer::dispatchBreakpointActionLog):
+        (Inspector::ScriptDebugServer::dispatchBreakpointActionSound):
+        (Inspector::ScriptDebugServer::sourceParsed):
+        (Inspector::ScriptDebugServer::dispatchFunctionToListeners):
+        (Inspector::ScriptDebugServer::handlePause):
+        Modernize code, and call the new ScriptDebugListener callbacks where appropriate.
+
+        * inspector/JSJavaScriptCallFrame.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp.
+        (Inspector::JSJavaScriptCallFrame::JSJavaScriptCallFrame):
+        (Inspector::JSJavaScriptCallFrame::finishCreation):
+        (Inspector::JSJavaScriptCallFrame::createPrototype):
+        (Inspector::JSJavaScriptCallFrame::destroy):
+        (Inspector::JSJavaScriptCallFrame::releaseImpl):
+        (Inspector::JSJavaScriptCallFrame::~JSJavaScriptCallFrame):
+        (Inspector::JSJavaScriptCallFrame::evaluate):
+        (Inspector::JSJavaScriptCallFrame::scopeType):
+        (Inspector::JSJavaScriptCallFrame::caller):
+        (Inspector::JSJavaScriptCallFrame::sourceID):
+        (Inspector::JSJavaScriptCallFrame::line):
+        (Inspector::JSJavaScriptCallFrame::column):
+        (Inspector::JSJavaScriptCallFrame::functionName):
+        (Inspector::JSJavaScriptCallFrame::scopeChain):
+        (Inspector::JSJavaScriptCallFrame::thisObject):
+        (Inspector::JSJavaScriptCallFrame::type):
+        (Inspector::toJS):
+        (Inspector::toJSJavaScriptCallFrame):
+        * inspector/JSJavaScriptCallFrame.h: Added.
+        (Inspector::JSJavaScriptCallFrame::createStructure):
+        (Inspector::JSJavaScriptCallFrame::create):
+        (Inspector::JSJavaScriptCallFrame::impl):
+        * inspector/JSJavaScriptCallFramePrototype.cpp: Added.
+        (Inspector::JSJavaScriptCallFramePrototype::finishCreation):
+        (Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluate):
+        (Inspector::jsJavaScriptCallFramePrototypeFunctionScopeType):
+        (Inspector::jsJavaScriptCallFrameAttributeCaller):
+        (Inspector::jsJavaScriptCallFrameAttributeSourceID):
+        (Inspector::jsJavaScriptCallFrameAttributeLine):
+        (Inspector::jsJavaScriptCallFrameAttributeColumn):
+        (Inspector::jsJavaScriptCallFrameAttributeFunctionName):
+        (Inspector::jsJavaScriptCallFrameAttributeScopeChain):
+        (Inspector::jsJavaScriptCallFrameAttributeThisObject):
+        (Inspector::jsJavaScriptCallFrameAttributeType):
+        (Inspector::jsJavaScriptCallFrameConstantGLOBAL_SCOPE):
+        (Inspector::jsJavaScriptCallFrameConstantLOCAL_SCOPE):
+        (Inspector::jsJavaScriptCallFrameConstantWITH_SCOPE):
+        (Inspector::jsJavaScriptCallFrameConstantCLOSURE_SCOPE):
+        (Inspector::jsJavaScriptCallFrameConstantCATCH_SCOPE):
+        * inspector/JSJavaScriptCallFramePrototype.h: Added.
+        (Inspector::JSJavaScriptCallFramePrototype::create):
+        (Inspector::JSJavaScriptCallFramePrototype::createStructure):
+        (Inspector::JSJavaScriptCallFramePrototype::JSJavaScriptCallFramePrototype):
+        * inspector/JavaScriptCallFrame.cpp: Renamed from Source/WebCore/bindings/js/JavaScriptCallFrame.cpp.
+        (Inspector::JavaScriptCallFrame::caller):
+        * inspector/JavaScriptCallFrame.h: Renamed from Source/WebCore/bindings/js/JavaScriptCallFrame.h.
+        Port of JavaScriptCallFrame.idl to a set of native JS classes.
+
 2014-01-24  Mark Lam  <mark.lam@apple.com>
 
         DebuggerCallFrame::evaluateWithCallFrame() should not execute a null executable.
index a6125da..c4143d6 100644 (file)
@@ -653,8 +653,16 @@ javascriptcore_sources += \
        Source/JavaScriptCore/inspector/JSInjectedScriptHost.h \
        Source/JavaScriptCore/inspector/JSInjectedScriptHostPrototype.cpp \
        Source/JavaScriptCore/inspector/JSInjectedScriptHostPrototype.h \
+       Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp \
+       Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h \
+       Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.cpp \
+       Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.h \
+       Source/JavaScriptCore/inspector/JavaScriptCallFrame.cpp \
+       Source/JavaScriptCore/inspector/JavaScriptCallFrame.h \
        Source/JavaScriptCore/inspector/ScriptBreakpoint.h \
        Source/JavaScriptCore/inspector/ScriptDebugListener.h \
+       Source/JavaScriptCore/inspector/ScriptDebugServer.cpp \
+       Source/JavaScriptCore/inspector/ScriptDebugServer.h \
        Source/JavaScriptCore/inspector/agents/InspectorAgent.h \
        Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp \
        Source/JavaScriptCore/interpreter/AbstractPC.cpp \
index bafe8b3..7f02cf0 100644 (file)
     <ClCompile Include="..\inspector\InspectorValues.cpp" />
     <ClCompile Include="..\inspector\JSInjectedScriptHost.cpp" />
     <ClCompile Include="..\inspector\JSInjectedScriptHostPrototype.cpp" />
+    <ClCompile Include="..\inspector\JSJavaScriptCallFrame.cpp" />
+    <ClCompile Include="..\inspector\JSJavaScriptCallFramePrototype.cpp" />
+    <ClCompile Include="..\inspector\JavaScriptCallFrame.cpp" />
+    <ClCompile Include="..\inspector\ScriptDebugServer.cpp" />
     <ClCompile Include="..\inspector\agents\InspectorAgent.cpp" />
     <ClCompile Include="..\interpreter\AbstractPC.cpp" />
     <ClCompile Include="..\interpreter\CallFrame.cpp" />
     <ClInclude Include="..\inspector\InspectorValues.h" />
     <ClInclude Include="..\inspector\JSInjectedScriptHost.h" />
     <ClInclude Include="..\inspector\JSInjectedScriptHostPrototype.h" />
+    <ClInclude Include="..\inspector\JSJavaScriptCallFrame.h" />
+    <ClInclude Include="..\inspector\JSJavaScriptCallFramePrototype.h" />
+    <ClInclude Include="..\inspector\JavaScriptCallFrame.h" />
     <ClInclude Include="..\inspector\ScriptBreakpoint.h" />
     <ClInclude Include="..\inspector\ScriptDebugListener.h" />
+    <ClInclude Include="..\inspector\ScriptDebugServer.h" />
     <ClInclude Include="..\inspector\agents\InspectorAgent.h" />
     <ClInclude Include="..\interpreter\AbstractPC.h" />
     <ClInclude Include="..\interpreter\CachedCall.h" />
index bb1ce96..1c7dbdd 100644 (file)
                A1712B4111C7B235007A5315 /* RegExpKey.h in Headers */ = {isa = PBXBuildFile; fileRef = A1712B4011C7B235007A5315 /* RegExpKey.h */; settings = {ATTRIBUTES = (Private, ); }; };
                A1A009C01831A22D00CF8711 /* MacroAssemblerARM64.h in Headers */ = {isa = PBXBuildFile; fileRef = 8640923C156EED3B00566CB2 /* MacroAssemblerARM64.h */; settings = {ATTRIBUTES = (Private, ); }; };
                A1A009C11831A26E00CF8711 /* ARM64Assembler.h in Headers */ = {isa = PBXBuildFile; fileRef = 8640923B156EED3B00566CB2 /* ARM64Assembler.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               A503FA19188E0FB000110F14 /* JavaScriptCallFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A503FA13188E0FAF00110F14 /* JavaScriptCallFrame.cpp */; };
+               A503FA1A188E0FB000110F14 /* JavaScriptCallFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA14188E0FAF00110F14 /* JavaScriptCallFrame.h */; };
+               A503FA1B188E0FB000110F14 /* JSJavaScriptCallFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A503FA15188E0FB000110F14 /* JSJavaScriptCallFrame.cpp */; };
+               A503FA1C188E0FB000110F14 /* JSJavaScriptCallFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA16188E0FB000110F14 /* JSJavaScriptCallFrame.h */; };
+               A503FA1D188E0FB000110F14 /* JSJavaScriptCallFramePrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A503FA17188E0FB000110F14 /* JSJavaScriptCallFramePrototype.cpp */; };
+               A503FA1E188E0FB000110F14 /* JSJavaScriptCallFramePrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA18188E0FB000110F14 /* JSJavaScriptCallFramePrototype.h */; };
                A503FA21188EFF6800110F14 /* ScriptBreakpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA1F188EFF6800110F14 /* ScriptBreakpoint.h */; settings = {ATTRIBUTES = (Private, ); }; };
                A503FA22188EFF6800110F14 /* ScriptDebugListener.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA20188EFF6800110F14 /* ScriptDebugListener.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               A503FA25188EFFFD00110F14 /* ScriptDebugServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A503FA23188EFFFD00110F14 /* ScriptDebugServer.cpp */; };
+               A503FA26188EFFFD00110F14 /* ScriptDebugServer.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA24188EFFFD00110F14 /* ScriptDebugServer.h */; settings = {ATTRIBUTES = (Private, ); }; };
                A51007C0187CC3C600B38879 /* JSGlobalObjectInspectorController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A51007BE187CC3C600B38879 /* JSGlobalObjectInspectorController.cpp */; };
                A51007C1187CC3C600B38879 /* JSGlobalObjectInspectorController.h in Headers */ = {isa = PBXBuildFile; fileRef = A51007BF187CC3C600B38879 /* JSGlobalObjectInspectorController.h */; };
                A513E5B7185B8BD3007E95AD /* InjectedScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A513E5B5185B8BD3007E95AD /* InjectedScript.cpp */; };
                A1712B3A11C7B212007A5315 /* RegExpCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RegExpCache.cpp; sourceTree = "<group>"; };
                A1712B3E11C7B228007A5315 /* RegExpCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegExpCache.h; sourceTree = "<group>"; };
                A1712B4011C7B235007A5315 /* RegExpKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegExpKey.h; sourceTree = "<group>"; };
+               A503FA13188E0FAF00110F14 /* JavaScriptCallFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JavaScriptCallFrame.cpp; sourceTree = "<group>"; };
+               A503FA14188E0FAF00110F14 /* JavaScriptCallFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JavaScriptCallFrame.h; sourceTree = "<group>"; };
+               A503FA15188E0FB000110F14 /* JSJavaScriptCallFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSJavaScriptCallFrame.cpp; sourceTree = "<group>"; };
+               A503FA16188E0FB000110F14 /* JSJavaScriptCallFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSJavaScriptCallFrame.h; sourceTree = "<group>"; };
+               A503FA17188E0FB000110F14 /* JSJavaScriptCallFramePrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSJavaScriptCallFramePrototype.cpp; sourceTree = "<group>"; };
+               A503FA18188E0FB000110F14 /* JSJavaScriptCallFramePrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSJavaScriptCallFramePrototype.h; sourceTree = "<group>"; };
                A503FA1F188EFF6800110F14 /* ScriptBreakpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptBreakpoint.h; sourceTree = "<group>"; };
                A503FA20188EFF6800110F14 /* ScriptDebugListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptDebugListener.h; sourceTree = "<group>"; };
+               A503FA23188EFFFD00110F14 /* ScriptDebugServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptDebugServer.cpp; sourceTree = "<group>"; };
+               A503FA24188EFFFD00110F14 /* ScriptDebugServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptDebugServer.h; sourceTree = "<group>"; };
                A51007BE187CC3C600B38879 /* JSGlobalObjectInspectorController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSGlobalObjectInspectorController.cpp; sourceTree = "<group>"; };
                A51007BF187CC3C600B38879 /* JSGlobalObjectInspectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSGlobalObjectInspectorController.h; sourceTree = "<group>"; };
                A513E5B5185B8BD3007E95AD /* InjectedScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedScript.cpp; sourceTree = "<group>"; };
                                A513E5BB185BFACC007E95AD /* JSInjectedScriptHost.h */,
                                A513E5BC185BFACC007E95AD /* JSInjectedScriptHostPrototype.cpp */,
                                A513E5BD185BFACC007E95AD /* JSInjectedScriptHostPrototype.h */,
+                               A503FA15188E0FB000110F14 /* JSJavaScriptCallFrame.cpp */,
+                               A503FA16188E0FB000110F14 /* JSJavaScriptCallFrame.h */,
+                               A503FA17188E0FB000110F14 /* JSJavaScriptCallFramePrototype.cpp */,
+                               A503FA18188E0FB000110F14 /* JSJavaScriptCallFramePrototype.h */,
+                               A503FA13188E0FAF00110F14 /* JavaScriptCallFrame.cpp */,
+                               A503FA14188E0FAF00110F14 /* JavaScriptCallFrame.h */,
                                A503FA1F188EFF6800110F14 /* ScriptBreakpoint.h */,
                                A503FA20188EFF6800110F14 /* ScriptDebugListener.h */,
+                               A503FA23188EFFFD00110F14 /* ScriptDebugServer.cpp */,
+                               A503FA24188EFFFD00110F14 /* ScriptDebugServer.h */,
                        );
                        path = inspector;
                        sourceTree = "<group>";
                                86D3B2C510156BDE002865E7 /* AssemblerBufferWithConstantPool.h in Headers */,
                                0F24E54117EA9F5900ABB217 /* AssemblyHelpers.h in Headers */,
                                A784A26111D16622005776AC /* ASTBuilder.h in Headers */,
+                               A503FA1A188E0FB000110F14 /* JavaScriptCallFrame.h in Headers */,
                                147B83AC0E6DB8C9004775A4 /* BatchedTransitionOptimizer.h in Headers */,
                                866739D213BFDE710023D87C /* BigInteger.h in Headers */,
                                14816E1C154CC56C00B8054C /* BlockAllocator.h in Headers */,
                                0F7B294D14C3CD4C007C3DB1 /* DFGCommon.h in Headers */,
                                0FEA0A32170D40BF00BB722C /* DFGCommonData.h in Headers */,
                                0F38B01817CFE75500B144D3 /* DFGCompilationKey.h in Headers */,
+                               A503FA1E188E0FB000110F14 /* JSJavaScriptCallFramePrototype.h in Headers */,
                                0F38B01A17CFE75500B144D3 /* DFGCompilationMode.h in Headers */,
                                0F3B3A1B153E68F4003ED0FF /* DFGConstantFoldingPhase.h in Headers */,
                                0FBE0F7316C1DB050082C5E8 /* DFGCPSRethreadingPhase.h in Headers */,
                                0F666EC1183566F900D017F1 /* FullBytecodeLiveness.h in Headers */,
                                C2E526BE1590EF000054E48D /* HeapTimer.h in Headers */,
                                0F4680D514BBD24B00BFE272 /* HostCallReturnValue.h in Headers */,
+                               A503FA26188EFFFD00110F14 /* ScriptDebugServer.h in Headers */,
                                BC18C40F0E16F5CD00B34460 /* Identifier.h in Headers */,
                                C25F8BCE157544A900245B71 /* IncrementalSweeper.h in Headers */,
                                0FB7F39915ED8E4600F167B2 /* IndexingHeader.h in Headers */,
                                0FF0F19F16B72A17005DF95B /* FunctionExecutableDump.cpp in Sources */,
                                147F39CC107EC37600427A48 /* FunctionPrototype.cpp in Sources */,
                                C2D58C3415912FEE0021A844 /* GCActivityCallback.cpp in Sources */,
+                               A503FA1D188E0FB000110F14 /* JSJavaScriptCallFramePrototype.cpp in Sources */,
                                0F766D2F15A8DCE0008F363E /* GCAwareJITStubRoutine.cpp in Sources */,
                                C2239D1A16262BDD005AC5FD /* GCThread.cpp in Sources */,
                                C21122E115DD9AB300790E3A /* GCThreadSharedData.cpp in Sources */,
                                0F766D2815A8CC1E008F363E /* JITStubRoutine.cpp in Sources */,
                                0F766D2B15A8CC38008F363E /* JITStubRoutineSet.cpp in Sources */,
                                14A23D750F4E1ABB0023CDAD /* JITStubs.cpp in Sources */,
+                               A503FA19188E0FB000110F14 /* JavaScriptCallFrame.cpp in Sources */,
                                0F5EF91E16878F7A003E5C25 /* JITThunks.cpp in Sources */,
                                0FC712E217CD8791008CC93C /* JITToDFGDeferredCompilationCallback.cpp in Sources */,
                                140B7D1D0DC69AF7009C42B8 /* JSActivation.cpp in Sources */,
                                A7CA3AE717DA41AE006538AF /* JSWeakMap.cpp in Sources */,
                                A7482B9411671147003B0712 /* JSWeakObjectMapRefPrivate.cpp in Sources */,
                                1442566115EDE98D0066A49B /* JSWithScope.cpp in Sources */,
+                               A503FA1B188E0FB000110F14 /* JSJavaScriptCallFrame.cpp in Sources */,
                                86E3C618167BABEE006D760A /* JSWrapperMap.mm in Sources */,
                                14280870107EC1340013E7B2 /* JSWrapperObject.cpp in Sources */,
                                BCFD8C920EEB2EE700283848 /* JumpTable.cpp in Sources */,
                                A730B6131250068F009D25B1 /* StrictEvalActivation.cpp in Sources */,
                                14469DEB107EC7E700650446 /* StringConstructor.cpp in Sources */,
                                14469DEC107EC7E700650446 /* StringObject.cpp in Sources */,
+                               A503FA25188EFFFD00110F14 /* ScriptDebugServer.cpp in Sources */,
                                14469DED107EC7E700650446 /* StringPrototype.cpp in Sources */,
                                9335F24D12E6765B002B5553 /* StringRecursionChecker.cpp in Sources */,
                                BCDE3B430E6C832D001453A7 /* Structure.cpp in Sources */,
index 199dfca..dc23568 100644 (file)
@@ -69,7 +69,7 @@ public:
     JSC::JSValue getInternalProperties(JSC::ExecState*);
 
 protected:
-    static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | Base::StructureFlags;
+    static const unsigned StructureFlags = Base::StructureFlags;
 
     void finishCreation(JSC::VM&);
 
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  */
 
 #include "config.h"
+#include "JSJavaScriptCallFrame.h"
 
+#if ENABLE(INSPECTOR)
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
-#include "JSJavaScriptCallFrame.h"
-
-#include "JavaScriptCallFrame.h"
-#include <runtime/ArrayPrototype.h>
-#include <runtime/Error.h>
+#include "Error.h"
+#include "JSCJSValue.h"
+#include "JSCellInlines.h"
+#include "JSJavaScriptCallFramePrototype.h"
+#include "StructureInlines.h"
 
 using namespace JSC;
 
-namespace WebCore {
+namespace Inspector {
 
-JSValue JSJavaScriptCallFrame::evaluate(ExecState* exec)
+const ClassInfo JSJavaScriptCallFrame::s_info = { "JavaScriptCallFrame", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSJavaScriptCallFrame) };
+
+JSJavaScriptCallFrame::JSJavaScriptCallFrame(VM& vm, Structure* structure, PassRefPtr<JavaScriptCallFrame> impl)
+    : JSDestructibleObject(vm, structure)
+    , m_impl(impl.leakRef())
 {
-    JSValue exception;
-    JSValue result = impl().evaluate(exec->argument(0).toString(exec)->value(exec), exception);
+}
 
-    if (exception)
-        exec->vm().throwException(exec, exception);
+void JSJavaScriptCallFrame::finishCreation(VM& vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+}
 
-    return result;
+JSObject* JSJavaScriptCallFrame::createPrototype(VM& vm, JSGlobalObject* globalObject)
+{
+    return JSJavaScriptCallFramePrototype::create(vm, globalObject, JSJavaScriptCallFramePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
 }
 
-JSValue JSJavaScriptCallFrame::thisObject(ExecState*) const
+void JSJavaScriptCallFrame::destroy(JSC::JSCell* cell)
 {
-    return impl().thisValue();
+    JSJavaScriptCallFrame* thisObject = static_cast<JSJavaScriptCallFrame*>(cell);
+    thisObject->JSJavaScriptCallFrame::~JSJavaScriptCallFrame();
 }
 
-JSValue JSJavaScriptCallFrame::type(ExecState* exec) const
+void JSJavaScriptCallFrame::releaseImpl()
 {
-    switch (impl().type()) {
-    case DebuggerCallFrame::FunctionType:
-        return jsNontrivialString(exec, ASCIILiteral("function"));
-    case DebuggerCallFrame::ProgramType:
-        return jsNontrivialString(exec, ASCIILiteral("program"));
+    if (m_impl) {
+        m_impl->deref();
+        m_impl = nullptr;
     }
-
-    ASSERT_NOT_REACHED();
-    return jsNull();
 }
 
-JSValue JSJavaScriptCallFrame::scopeChain(ExecState* exec) const
+JSJavaScriptCallFrame::~JSJavaScriptCallFrame()
 {
-    if (!impl().scopeChain())
-        return jsNull();
-
-    JSScope* scopeChain = impl().scopeChain();
-    ScopeChainIterator iter = scopeChain->begin();
-    ScopeChainIterator end = scopeChain->end();
-
-    // we must always have something in the scope chain
-    ASSERT(iter != end);
+    releaseImpl();
+}
 
-    MarkedArgumentBuffer list;
-    do {
-        list.append(iter.get());
-        ++iter;
-    } while (iter != end);
+JSValue JSJavaScriptCallFrame::evaluate(ExecState* exec)
+{
+    JSValue exception;
+    JSValue result = impl().evaluate(exec->argument(0).toString(exec)->value(exec), exception);
+    if (exception)
+        exec->vm().throwException(exec, exception);
 
-    return constructArray(exec, 0, globalObject(), list);
+    return result;
 }
 
 JSValue JSJavaScriptCallFrame::scopeType(ExecState* exec)
@@ -99,6 +99,8 @@ JSValue JSJavaScriptCallFrame::scopeType(ExecState* exec)
     JSScope* scopeChain = impl().scopeChain();
     ScopeChainIterator end = scopeChain->end();
 
+    // FIXME: We should be identifying and returning CATCH_SCOPE appropriately.
+
     bool foundLocalScope = false;
     for (ScopeChainIterator iter = scopeChain->begin(); iter != end; ++iter) {
         JSObject* scope = iter.get();
@@ -106,24 +108,108 @@ JSValue JSJavaScriptCallFrame::scopeType(ExecState* exec)
             if (!foundLocalScope) {
                 // First activation object is local scope, each successive activation object is closure.
                 if (!index)
-                    return JSValue::decode(jsJavaScriptCallFrameLOCAL_SCOPE(exec, EncodedJSValue(), EncodedJSValue(), Identifier()));
+                    return jsNumber(JSJavaScriptCallFrame::LOCAL_SCOPE);
                 foundLocalScope = true;
             } else if (!index)
-                return JSValue::decode(jsJavaScriptCallFrameCLOSURE_SCOPE(exec, EncodedJSValue(), EncodedJSValue(), Identifier()));
+                return jsNumber(JSJavaScriptCallFrame::CLOSURE_SCOPE);
         }
 
         if (!index) {
             // Last in the chain is global scope.
             if (++iter == end)
-                return JSValue::decode(jsJavaScriptCallFrameGLOBAL_SCOPE(exec, EncodedJSValue(), EncodedJSValue(), Identifier()));
-            return JSValue::decode(jsJavaScriptCallFrameWITH_SCOPE(exec, EncodedJSValue(), EncodedJSValue(), Identifier()));
+                return jsNumber(JSJavaScriptCallFrame::GLOBAL_SCOPE);
+            return jsNumber(JSJavaScriptCallFrame::WITH_SCOPE);
         }
 
         --index;
     }
+
+    ASSERT_NOT_REACHED();
     return jsUndefined();
 }
 
-} // namespace WebCore
+JSValue JSJavaScriptCallFrame::caller(ExecState* exec) const
+{
+    return toJS(exec, globalObject(), impl().caller());
+}
+
+JSValue JSJavaScriptCallFrame::sourceID(ExecState*) const
+{
+    return jsNumber(impl().sourceID());
+}
+
+JSValue JSJavaScriptCallFrame::line(ExecState*) const
+{
+    return jsNumber(impl().line());
+}
+
+JSValue JSJavaScriptCallFrame::column(ExecState*) const
+{
+    return jsNumber(impl().column());
+}
+
+JSValue JSJavaScriptCallFrame::functionName(ExecState* exec) const
+{
+    return jsString(exec, impl().functionName());
+}
+
+JSValue JSJavaScriptCallFrame::scopeChain(ExecState* exec) const
+{
+    if (!impl().scopeChain())
+        return jsNull();
+
+    JSScope* scopeChain = impl().scopeChain();
+    ScopeChainIterator iter = scopeChain->begin();
+    ScopeChainIterator end = scopeChain->end();
+
+    // We must always have something in the scope chain.
+    ASSERT(iter != end);
+
+    MarkedArgumentBuffer list;
+    do {
+        list.append(iter.get());
+        ++iter;
+    } while (iter != end);
+
+    return constructArray(exec, nullptr, globalObject(), list);
+}
+
+JSValue JSJavaScriptCallFrame::thisObject(ExecState*) const
+{
+    return impl().thisValue();
+}
+
+JSValue JSJavaScriptCallFrame::type(ExecState* exec) const
+{
+    switch (impl().type()) {
+    case DebuggerCallFrame::FunctionType:
+        return jsNontrivialString(exec, ASCIILiteral("function"));
+    case DebuggerCallFrame::ProgramType:
+        return jsNontrivialString(exec, ASCIILiteral("program"));
+    }
+
+    ASSERT_NOT_REACHED();
+    return jsNull();
+}
+
+JSValue toJS(ExecState* exec, JSGlobalObject* globalObject, JavaScriptCallFrame* impl)
+{
+    if (!impl)
+        return jsNull();
+
+    JSObject* prototype = JSJavaScriptCallFrame::createPrototype(exec->vm(), globalObject);
+    Structure* structure = JSJavaScriptCallFrame::createStructure(exec->vm(), globalObject, prototype);
+    JSJavaScriptCallFrame* javaScriptCallFrame = JSJavaScriptCallFrame::create(exec->vm(), structure, impl);
+
+    return javaScriptCallFrame;
+}
+
+JSJavaScriptCallFrame* toJSJavaScriptCallFrame(JSValue value)
+{
+    return value.inherits(JSJavaScriptCallFrame::info()) ? jsCast<JSJavaScriptCallFrame*>(value) : nullptr;
+}
+
+} // namespace Inspector
 
 #endif // ENABLE(JAVASCRIPT_DEBUGGER)
+#endif // ENABLE(INSPECTOR)
diff --git a/Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h b/Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.h
new file mode 100644 (file)
index 0000000..225edba
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef JSJavaScriptCallFrame_h
+#define JSJavaScriptCallFrame_h
+
+#if ENABLE(INSPECTOR)
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+
+#include "JSDestructibleObject.h"
+#include "JavaScriptCallFrame.h"
+
+namespace Inspector {
+
+class JSJavaScriptCallFrame : public JSC::JSDestructibleObject {
+public:
+    typedef JSC::JSDestructibleObject Base;
+
+    DECLARE_INFO;
+
+    static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
+    }
+
+    static JSJavaScriptCallFrame* create(JSC::VM& vm, JSC::Structure* structure, PassRefPtr<JavaScriptCallFrame> impl)
+    {
+        JSJavaScriptCallFrame* instance = new (NotNull, JSC::allocateCell<JSJavaScriptCallFrame>(vm.heap)) JSJavaScriptCallFrame(vm, structure, impl);
+        instance->finishCreation(vm);
+        return instance;
+    }
+
+    static JSC::JSObject* createPrototype(JSC::VM&, JSC::JSGlobalObject*);
+    static void destroy(JSC::JSCell*);
+
+    JavaScriptCallFrame& impl() const { return *m_impl; }
+    void releaseImpl();
+
+    // Functions.
+    JSC::JSValue evaluate(JSC::ExecState*);
+    JSC::JSValue scopeType(JSC::ExecState*);
+
+    // Attributes.
+    JSC::JSValue caller(JSC::ExecState*) const;
+    JSC::JSValue sourceID(JSC::ExecState*) const;
+    JSC::JSValue line(JSC::ExecState*) const;
+    JSC::JSValue column(JSC::ExecState*) const;
+    JSC::JSValue functionName(JSC::ExecState*) const;
+    JSC::JSValue scopeChain(JSC::ExecState*) const;
+    JSC::JSValue thisObject(JSC::ExecState*) const;
+    JSC::JSValue type(JSC::ExecState*) const;
+
+    // Constants.
+    static const unsigned short GLOBAL_SCOPE = 0;
+    static const unsigned short LOCAL_SCOPE = 1;
+    static const unsigned short WITH_SCOPE = 2;
+    static const unsigned short CLOSURE_SCOPE = 3;
+    static const unsigned short CATCH_SCOPE = 4;
+
+protected:
+    static const unsigned StructureFlags = Base::StructureFlags;
+
+    void finishCreation(JSC::VM&);
+
+private:
+    JSJavaScriptCallFrame(JSC::VM&, JSC::Structure*, PassRefPtr<JavaScriptCallFrame>);
+    ~JSJavaScriptCallFrame();
+
+    JavaScriptCallFrame* m_impl;
+};
+
+JSC::JSValue toJS(JSC::ExecState*, JSC::JSGlobalObject*, JavaScriptCallFrame*);
+JSJavaScriptCallFrame* toJSJavaScriptCallFrame(JSC::JSValue);
+
+} // namespace Inspector
+
+#endif // ENABLE(JAVASCRIPT_DEBUGGER)
+#endif // ENABLE(INSPECTOR)
+
+#endif // !defined(JSJavaScriptCallFrame_h)
diff --git a/Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.cpp b/Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.cpp
new file mode 100644 (file)
index 0000000..acb2b06
--- /dev/null
@@ -0,0 +1,238 @@
+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "JSJavaScriptCallFramePrototype.h"
+
+#if ENABLE(INSPECTOR)
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+
+#include "Error.h"
+#include "GetterSetter.h"
+#include "Identifier.h"
+#include "JSCJSValueInlines.h"
+#include "JSFunction.h"
+#include "JSJavaScriptCallFrame.h"
+
+using namespace JSC;
+
+namespace Inspector {
+
+// Functions.
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFramePrototypeFunctionEvaluate(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFramePrototypeFunctionScopeType(ExecState*);
+
+// Attributes.
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeCaller(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeSourceID(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeLine(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeColumn(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeFunctionName(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeScopeChain(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeThisObject(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeType(ExecState*);
+
+// Constants.
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantGLOBAL_SCOPE(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantLOCAL_SCOPE(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantWITH_SCOPE(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantCLOSURE_SCOPE(ExecState*);
+static EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantCATCH_SCOPE(ExecState*);
+
+const ClassInfo JSJavaScriptCallFramePrototype::s_info = { "JavaScriptCallFrame", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSJavaScriptCallFramePrototype) };
+
+#define JSC_NATIVE_NON_INDEX_ACCESSOR(jsName, cppName, attributes) \
+    { \
+        Identifier identifier(&vm, jsName); \
+        GetterSetter* accessor = GetterSetter::create(vm); \
+        JSFunction* function = JSFunction::create(vm, globalObject, 0, identifier.string(), cppName); \
+        accessor->setGetter(vm, function); \
+        putDirectNonIndexAccessor(vm, identifier, accessor, (attributes)); \
+    }
+
+void JSJavaScriptCallFramePrototype::finishCreation(VM& vm, JSGlobalObject* globalObject)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+    vm.prototypeMap.addPrototype(this);
+
+    JSC_NATIVE_FUNCTION("evaluate", jsJavaScriptCallFramePrototypeFunctionEvaluate, DontEnum, 1);
+    JSC_NATIVE_FUNCTION("scopeType", jsJavaScriptCallFramePrototypeFunctionScopeType, DontEnum, 1);
+
+    JSC_NATIVE_NON_INDEX_ACCESSOR("caller", jsJavaScriptCallFrameAttributeCaller, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("sourceID", jsJavaScriptCallFrameAttributeSourceID, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("line", jsJavaScriptCallFrameAttributeLine, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("column", jsJavaScriptCallFrameAttributeColumn, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("functionName", jsJavaScriptCallFrameAttributeFunctionName, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("scopeChain", jsJavaScriptCallFrameAttributeScopeChain, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("thisObject", jsJavaScriptCallFrameAttributeThisObject, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("type", jsJavaScriptCallFrameAttributeType, DontEnum | Accessor);
+
+    JSC_NATIVE_NON_INDEX_ACCESSOR("GLOBAL_SCOPE", jsJavaScriptCallFrameConstantGLOBAL_SCOPE, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("LOCAL_SCOPE", jsJavaScriptCallFrameConstantLOCAL_SCOPE, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("WITH_SCOPE", jsJavaScriptCallFrameConstantWITH_SCOPE, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("CLOSURE_SCOPE", jsJavaScriptCallFrameConstantCLOSURE_SCOPE, DontEnum | Accessor);
+    JSC_NATIVE_NON_INDEX_ACCESSOR("CATCH_SCOPE", jsJavaScriptCallFrameConstantCATCH_SCOPE, DontEnum | Accessor);
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFramePrototypeFunctionEvaluate(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->evaluate(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFramePrototypeFunctionScopeType(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->scopeType(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeCaller(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->caller(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeSourceID(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->sourceID(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeLine(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->line(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeColumn(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->column(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeFunctionName(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->functionName(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeScopeChain(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->scopeChain(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeThisObject(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->thisObject(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameAttributeType(ExecState* exec)
+{
+    JSValue thisValue = exec->hostThisValue();
+    JSJavaScriptCallFrame* castedThis = jsDynamicCast<JSJavaScriptCallFrame*>(thisValue);
+    if (!castedThis)
+        return throwVMTypeError(exec);
+
+    ASSERT_GC_OBJECT_INHERITS(castedThis, JSJavaScriptCallFrame::info());
+    return JSValue::encode(castedThis->type(exec));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantGLOBAL_SCOPE(ExecState*)
+{
+    return JSValue::encode(jsNumber(JSJavaScriptCallFrame::GLOBAL_SCOPE));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantLOCAL_SCOPE(ExecState*)
+{
+    return JSValue::encode(jsNumber(JSJavaScriptCallFrame::LOCAL_SCOPE));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantWITH_SCOPE(ExecState*)
+{
+    return JSValue::encode(jsNumber(JSJavaScriptCallFrame::WITH_SCOPE));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantCLOSURE_SCOPE(ExecState*)
+{
+    return JSValue::encode(jsNumber(JSJavaScriptCallFrame::CLOSURE_SCOPE));
+}
+
+EncodedJSValue JSC_HOST_CALL jsJavaScriptCallFrameConstantCATCH_SCOPE(ExecState*)
+{
+    return JSValue::encode(jsNumber(JSJavaScriptCallFrame::CATCH_SCOPE));
+}
+
+} // namespace Inspector
+
+#endif // ENABLE(JAVASCRIPT_DEBUGGER)
+#endif // ENABLE(INSPECTOR)
diff --git a/Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.h b/Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.h
new file mode 100644 (file)
index 0000000..faa74a9
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef JSJavaScriptCallFramePrototype_h
+#define JSJavaScriptCallFramePrototype_h
+
+#if ENABLE(INSPECTOR)
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+
+#include "JSObject.h"
+
+namespace Inspector {
+
+class JSJavaScriptCallFramePrototype : public JSC::JSNonFinalObject {
+public:
+    typedef JSC::JSNonFinalObject Base;
+
+    DECLARE_INFO;
+
+    static JSJavaScriptCallFramePrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
+    {
+        JSJavaScriptCallFramePrototype* ptr = new (NotNull, JSC::allocateCell<JSJavaScriptCallFramePrototype>(vm.heap)) JSJavaScriptCallFramePrototype(vm, globalObject, structure);
+        ptr->finishCreation(vm, globalObject);
+        return ptr;
+    }
+
+    static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
+    {
+        return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
+    }
+
+protected:
+    static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
+
+private:
+    JSJavaScriptCallFramePrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure)
+        : JSC::JSNonFinalObject(vm, structure)
+    {
+    }
+    void finishCreation(JSC::VM&, JSC::JSGlobalObject*);
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(JAVASCRIPT_DEBUGGER)
+#endif // ENABLE(INSPECTOR)
+
+#endif // !defined(JSJavaScriptCallFramePrototype_h)
  */
 
 #include "config.h"
-
-#if ENABLE(JAVASCRIPT_DEBUGGER)
-
 #include "JavaScriptCallFrame.h"
 
-#include <debugger/DebuggerCallFrame.h>
+#if ENABLE(INSPECTOR)
+#if ENABLE(JAVASCRIPT_DEBUGGER)
 
 using namespace JSC;
 
-namespace WebCore {
+namespace Inspector {
 
 JavaScriptCallFrame::JavaScriptCallFrame(PassRefPtr<DebuggerCallFrame> debuggerCallFrame)
     : m_debuggerCallFrame(debuggerCallFrame)
@@ -47,12 +45,13 @@ JavaScriptCallFrame* JavaScriptCallFrame::caller()
 
     RefPtr<DebuggerCallFrame> debuggerCallerFrame = m_debuggerCallFrame->callerFrame();
     if (!debuggerCallerFrame)
-        return 0;
+        return nullptr;
 
     m_caller = create(debuggerCallerFrame);
     return m_caller.get();
 }
 
-} // namespace WebCore
+} // namespace Inspector
 
 #endif // ENABLE(JAVASCRIPT_DEBUGGER)
+#endif // ENABLE(INSPECTOR)
 #ifndef JavaScriptCallFrame_h
 #define JavaScriptCallFrame_h
 
+#if ENABLE(INSPECTOR)
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
-#include <debugger/DebuggerCallFrame.h>
-#include <interpreter/CallFrame.h>
+#include "JSCJSValueInlines.h"
+#include "debugger/DebuggerCallFrame.h"
+#include "interpreter/CallFrame.h"
 #include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/text/TextPosition.h>
 
-namespace WebCore {
+namespace Inspector {
 
 class JavaScriptCallFrame : public RefCounted<JavaScriptCallFrame> {
 public:
@@ -57,7 +59,7 @@ public:
 
     JSC::JSValue thisValue() const { return m_debuggerCallFrame->thisValue(); }
     JSC::JSValue evaluate(const String& script, JSC::JSValue& exception) const  { return m_debuggerCallFrame->evaluate(script, exception); }
-    
+
 private:
     JavaScriptCallFrame(PassRefPtr<JSC::DebuggerCallFrame>);
 
@@ -65,8 +67,9 @@ private:
     RefPtr<JavaScriptCallFrame> m_caller;
 };
 
-} // namespace WebCore
+} // namespace Inspector
 
 #endif // ENABLE(JAVASCRIPT_DEBUGGER)
+#endif // ENABLE(INSPECTOR)
 
 #endif // JavaScriptCallFrame_h
index 73f8588..d1fda11 100644 (file)
@@ -73,6 +73,9 @@ public:
     virtual void didPause(JSC::ExecState*, const Deprecated::ScriptValue& callFrames, const Deprecated::ScriptValue& exception) = 0;
     virtual void didSampleProbe(JSC::ExecState*, int probeIdentifier, int hitCount, const Deprecated::ScriptValue& result) = 0;
     virtual void didContinue() = 0;
+
+    virtual void breakpointActionLog(JSC::ExecState*, const String&) = 0;
+    virtual void breakpointActionSound() = 0;
 };
 
 } // namespace Inspector
  */
 
 #include "config.h"
+#include "ScriptDebugServer.h"
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
-#include "ScriptDebugServer.h"
-
-#include "EventLoop.h"
-#include "JSDOMWindowCustom.h"
+#include "DebuggerCallFrame.h"
 #include "JSJavaScriptCallFrame.h"
+#include "JSLock.h"
 #include "JavaScriptCallFrame.h"
-#include "PageConsole.h"
-#include "Sound.h"
-#include "Timer.h"
-#include <bindings/ScriptValue.h>
-#include <debugger/DebuggerCallFrame.h>
-#include <parser/SourceProvider.h>
-#include <runtime/JSLock.h>
+#include "ScriptValue.h"
+#include "SourceProvider.h"
 #include <wtf/MainThread.h>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/TemporaryChange.h>
@@ -53,7 +47,7 @@
 using namespace JSC;
 using namespace Inspector;
 
-namespace WebCore {
+namespace Inspector {
 
 ScriptDebugServer::ScriptDebugServer(bool isInWorkerThread)
     : Debugger(isInWorkerThread)
@@ -97,11 +91,10 @@ void ScriptDebugServer::removeBreakpoint(JSC::BreakpointID id)
 bool ScriptDebugServer::evaluateBreakpointAction(const ScriptBreakpointAction& breakpointAction)
 {
     DebuggerCallFrame* debuggerCallFrame = currentDebuggerCallFrame();
+
     switch (breakpointAction.type) {
     case ScriptBreakpointActionTypeLog: {
-        DOMWindow& window = asJSDOMWindow(debuggerCallFrame->vmEntryGlobalObject())->impl();
-        if (PageConsole* console = window.pageConsole())
-            console->addMessage(JSMessageSource, LogMessageLevel, breakpointAction.data);
+        dispatchBreakpointActionLog(debuggerCallFrame->exec(), breakpointAction.data);
         break;
     }
     case ScriptBreakpointActionTypeEvaluate: {
@@ -112,19 +105,21 @@ bool ScriptDebugServer::evaluateBreakpointAction(const ScriptBreakpointAction& b
         break;
     }
     case ScriptBreakpointActionTypeSound:
-        systemBeep();
+        dispatchBreakpointActionSound(debuggerCallFrame->exec());
         break;
     case ScriptBreakpointActionTypeProbe: {
         JSValue exception;
         JSValue result = debuggerCallFrame->evaluate(breakpointAction.data, exception);
         if (exception)
             reportException(debuggerCallFrame->exec(), exception);
-
+        
         JSC::ExecState* state = debuggerCallFrame->scope()->globalObject()->globalExec();
         Deprecated::ScriptValue wrappedResult = Deprecated::ScriptValue(state->vm(), exception ? exception : result);
         dispatchDidSampleProbe(state, breakpointAction.identifier, wrappedResult);
         break;
     }
+    default:
+        ASSERT_NOT_REACHED();
     }
 
     return true;
@@ -143,18 +138,46 @@ void ScriptDebugServer::dispatchDidPause(ScriptDebugListener* listener)
     JSGlobalObject* globalObject = debuggerCallFrame->scope()->globalObject();
     JSC::ExecState* state = globalObject->globalExec();
     RefPtr<JavaScriptCallFrame> javaScriptCallFrame = JavaScriptCallFrame::create(debuggerCallFrame);
-    JSValue jsCallFrame;
-    {
-        if (globalObject->inherits(JSDOMGlobalObject::info())) {
-            JSDOMGlobalObject* domGlobalObject = jsCast<JSDOMGlobalObject*>(globalObject);
-            JSLockHolder lock(state);
-            jsCallFrame = toJS(state, domGlobalObject, javaScriptCallFrame.get());
-        } else
-            jsCallFrame = jsUndefined();
-    }
+    JSValue jsCallFrame = toJS(state, globalObject, javaScriptCallFrame.get());
     listener->didPause(state, Deprecated::ScriptValue(state->vm(), jsCallFrame), Deprecated::ScriptValue());
 }
 
+void ScriptDebugServer::dispatchBreakpointActionLog(ExecState* exec, const String& message)
+{
+    if (m_callingListeners)
+        return;
+
+    ListenerSet* listeners = getListenersForGlobalObject(exec->lexicalGlobalObject());
+    if (!listeners)
+        return;
+    ASSERT(!listeners->isEmpty());
+
+    TemporaryChange<bool> change(m_callingListeners, true);
+
+    Vector<ScriptDebugListener*> listenersCopy;
+    copyToVector(*listeners, listenersCopy);
+    for (auto listener : listenersCopy)
+        listener->breakpointActionLog(exec, message);
+}
+
+void ScriptDebugServer::dispatchBreakpointActionSound(ExecState* exec)
+{
+    if (m_callingListeners)
+        return;
+
+    ListenerSet* listeners = getListenersForGlobalObject(exec->lexicalGlobalObject());
+    if (!listeners)
+        return;
+    ASSERT(!listeners->isEmpty());
+
+    TemporaryChange<bool> change(m_callingListeners, true);
+
+    Vector<ScriptDebugListener*> listenersCopy;
+    copyToVector(*listeners, listenersCopy);
+    for (auto listener : listenersCopy)
+        listener->breakpointActionSound();
+}
+
 void ScriptDebugServer::dispatchDidSampleProbe(ExecState* exec, int identifier, const Deprecated::ScriptValue& sample)
 {
     if (m_callingListeners)
@@ -223,11 +246,6 @@ void ScriptDebugServer::dispatchFailedToParseSource(const ListenerSet& listeners
         copy[i]->failedToParseSource(url, data, firstLine, errorLine, errorMessage);
 }
 
-bool ScriptDebugServer::isContentScript(ExecState* exec)
-{
-    return &currentWorld(exec) != &mainThreadNormalWorld();
-}
-
 void ScriptDebugServer::sourceParsed(ExecState* exec, SourceProvider* sourceProvider, int errorLine, const String& errorMessage)
 {
     if (m_callingListeners)
@@ -238,15 +256,13 @@ void ScriptDebugServer::sourceParsed(ExecState* exec, SourceProvider* sourceProv
         return;
     ASSERT(!listeners->isEmpty());
 
-    m_callingListeners = true;
+    TemporaryChange<bool> change(m_callingListeners, true);
 
     bool isError = errorLine != -1;
     if (isError)
         dispatchFailedToParseSource(*listeners, sourceProvider, errorLine, errorMessage);
     else
         dispatchDidParseSource(*listeners, sourceProvider, isContentScript(exec));
-
-    m_callingListeners = false;
 }
 
 void ScriptDebugServer::dispatchFunctionToListeners(const ListenerSet& listeners, JavaScriptExecutionCallback callback)
@@ -262,14 +278,12 @@ void ScriptDebugServer::dispatchFunctionToListeners(JavaScriptExecutionCallback
     if (m_callingListeners)
         return;
 
-    m_callingListeners = true;
+    TemporaryChange<bool> change(m_callingListeners, true);
 
     if (ListenerSet* listeners = getListenersForGlobalObject(globalObject)) {
         ASSERT(!listeners->isEmpty());
         dispatchFunctionToListeners(*listeners, callback);
     }
-
-    m_callingListeners = false;
 }
 
 void ScriptDebugServer::notifyDoneProcessingDebuggerEvents()
@@ -305,8 +319,6 @@ void ScriptDebugServer::handlePause(Debugger::ReasonForPause, JSGlobalObject* vm
     dispatchFunctionToListeners(&ScriptDebugServer::dispatchDidPause, vmEntryGlobalObject);
     didPause(vmEntryGlobalObject);
 
-    TimerBase::fireTimersInNestedEventLoop();
-
     m_doneProcessingDebuggerEvents = false;
     runEventLoopWhilePaused();
 
@@ -325,6 +337,6 @@ const Vector<ScriptBreakpointAction>& ScriptDebugServer::getActionsForBreakpoint
     return emptyActionVector;
 }
 
-} // namespace WebCore
+} // namespace Inspector
 
 #endif // ENABLE(JAVASCRIPT_DEBUGGER)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2008, 2013, 2014 Apple Inc. All rights reserved.
  * Copyright (C) 2010-2011 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
-#include <bindings/ScriptObject.h>
-#include <debugger/Debugger.h>
-#include <inspector/ScriptBreakpoint.h>
-#include <inspector/ScriptDebugListener.h>
+#include "ScriptBreakpoint.h"
+#include "ScriptDebugListener.h"
+#include "bindings/ScriptObject.h"
+#include "debugger/Debugger.h"
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
 #include <wtf/RefPtr.h>
 #include <wtf/text/WTFString.h>
 
 namespace JSC {
-class DebuggerCallFrame;
-class JSGlobalObject;
 class ExecState;
+class JSGlobalObject;
 }
 
-namespace WebCore {
+namespace Inspector {
 
-class ScriptDebugServer : public JSC::Debugger {
-    WTF_MAKE_NONCOPYABLE(ScriptDebugServer); WTF_MAKE_FAST_ALLOCATED;
+class JS_EXPORT_PRIVATE ScriptDebugServer : public JSC::Debugger {
+    WTF_MAKE_NONCOPYABLE(ScriptDebugServer);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
-    JSC::BreakpointID setBreakpoint(JSC::SourceID, const Inspector::ScriptBreakpoint&, unsigned* actualLineNumber, unsigned* actualColumnNumber);
+    JSC::BreakpointID setBreakpoint(JSC::SourceID, const ScriptBreakpoint&, unsigned* actualLineNumber, unsigned* actualColumnNumber);
     void removeBreakpoint(JSC::BreakpointID);
     void clearBreakpoints();
 
     virtual void recompileAllJSFunctions() = 0;
 
-    const Vector<Inspector::ScriptBreakpointAction>& getActionsForBreakpoint(JSC::BreakpointID);
+    const Vector<ScriptBreakpointAction>& getActionsForBreakpoint(JSC::BreakpointID);
 
     class Task {
         WTF_MAKE_FAST_ALLOCATED;
@@ -70,8 +70,8 @@ public:
     };
 
 protected:
-    typedef HashSet<Inspector::ScriptDebugListener*> ListenerSet;
-    typedef void (ScriptDebugServer::*JavaScriptExecutionCallback)(Inspector::ScriptDebugListener*);
+    typedef HashSet<ScriptDebugListener*> ListenerSet;
+    typedef void (ScriptDebugServer::*JavaScriptExecutionCallback)(ScriptDebugListener*);
 
     ScriptDebugServer(bool isInWorkerThread = false);
     ~ScriptDebugServer();
@@ -79,25 +79,26 @@ protected:
     virtual ListenerSet* getListenersForGlobalObject(JSC::JSGlobalObject*) = 0;
     virtual void didPause(JSC::JSGlobalObject*) = 0;
     virtual void didContinue(JSC::JSGlobalObject*) = 0;
-
     virtual void runEventLoopWhilePaused() = 0;
+    virtual bool isContentScript(JSC::ExecState*) const = 0;
+    virtual void reportException(JSC::ExecState*, JSC::JSValue) const = 0;
 
-    virtual bool isContentScript(JSC::ExecState*);
-
-    bool evaluateBreakpointAction(const Inspector::ScriptBreakpointAction&);
+    bool evaluateBreakpointAction(const ScriptBreakpointAction&);
 
     void dispatchFunctionToListeners(JavaScriptExecutionCallback, JSC::JSGlobalObject*);
-    void dispatchFunctionToListeners(const ListenerSet& listeners, JavaScriptExecutionCallback callback);
-    void dispatchDidPause(Inspector::ScriptDebugListener*);
-    void dispatchDidContinue(Inspector::ScriptDebugListener*);
+    void dispatchFunctionToListeners(const ListenerSet& listeners, JavaScriptExecutionCallback);
+    void dispatchDidPause(ScriptDebugListener*);
+    void dispatchDidContinue(ScriptDebugListener*);
     void dispatchDidParseSource(const ListenerSet& listeners, JSC::SourceProvider*, bool isContentScript);
     void dispatchFailedToParseSource(const ListenerSet& listeners, JSC::SourceProvider*, int errorLine, const String& errorMessage);
+    void dispatchBreakpointActionLog(JSC::ExecState*, const String&);
+    void dispatchBreakpointActionSound(JSC::ExecState*);
     void dispatchDidSampleProbe(JSC::ExecState*, int probeIdentifier, const Deprecated::ScriptValue& sample);
 
     bool m_doneProcessingDebuggerEvents;
 
 private:
-    typedef Vector<Inspector::ScriptBreakpointAction> BreakpointActions;
+    typedef Vector<ScriptBreakpointAction> BreakpointActions;
     typedef HashMap<JSC::BreakpointID, BreakpointActions> BreakpointIDToActionsMap;
 
     virtual void sourceParsed(JSC::ExecState*, JSC::SourceProvider*, int errorLine, const String& errorMsg) override final;
@@ -110,11 +111,9 @@ private:
     unsigned m_hitCount;
     bool m_callingListeners;
     BreakpointIDToActionsMap m_breakpointIDToActions;
-
-    friend class DebuggerCallFrameScope;
 };
 
-} // namespace WebCore
+} // namespace Inspector
 
 #endif // ENABLE(JAVASCRIPT_DEBUGGER)
 
index b94a9a9..c909687 100644 (file)
@@ -533,7 +533,6 @@ set(WebCore_IDL_FILES
 
     inspector/CommandLineAPIHost.idl
     inspector/InspectorFrontendHost.idl
-    inspector/JavaScriptCallFrame.idl
     inspector/ScriptProfile.idl
     inspector/ScriptProfileNode.idl
 
index c75cd98..5c4fc4f 100644 (file)
@@ -1,3 +1,56 @@
+2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Move JavaScriptCallFrame and ScriptDebugServer into JavaScriptCore for inspector
+        https://bugs.webkit.org/show_bug.cgi?id=127543
+
+        Reviewed by Geoffrey Garen.
+
+        Covered by existing tests.
+
+        * ForwardingHeaders/inspector/ScriptDebugServer.h: Added.
+        * GNUmakefile.list.am:
+        * UseJSC.cmake:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSBindingsAllInOne.cpp:
+        * inspector/JavaScriptCallFrame.idl: Removed.
+        Update builds now that ScriptDebugServer moved to JavaScriptCore.
+
+        * bindings/js/PageScriptDebugServer.h:
+        * bindings/js/PageScriptDebugServer.cpp:
+        (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
+        (WebCore::PageScriptDebugServer::isContentScript):
+        (WebCore::PageScriptDebugServer::reportException):
+        * bindings/js/WorkerScriptDebugServer.h:
+        * bindings/js/WorkerScriptDebugServer.cpp:
+        (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
+        (WebCore::WorkerScriptDebugServer::reportException):
+        Handle ScriptDebugServer functionality depending on WebCore knowledge.
+
+        * inspector/InspectorDebuggerAgent.h:
+        * inspector/InspectorDebuggerAgent.cpp:
+        (WebCore::InspectorDebuggerAgent::breakpointActionSound):
+        Handle ScriptDebugServer functionality that depended on WebCore knowledge.
+        This will eventually be written in a non-WebCore specific way.
+
+        * inspector/InspectorRuntimeAgent.cpp:
+        * inspector/InspectorRuntimeAgent.h:
+        Update ScriptDebugServer type now that it is in namespace Inspector.
+
+        * workers/WorkerGlobalScope.h:
+        Make addConsoleMessage public again so the inspector can call it.
+
+        * inspector/PageDebuggerAgent.cpp:
+        (WebCore::PageDebuggerAgent::breakpointActionLog):
+        * inspector/PageDebuggerAgent.h:
+        * inspector/WorkerDebuggerAgent.cpp:
+        (WebCore::WorkerDebuggerAgent::breakpointActionLog):
+        * inspector/WorkerDebuggerAgent.h:
+        Let each of these handle console logs in their own way. Both of these
+        eventually go through the PageConsole and log through the InspectorConsoleAgent
+        and ChromeClient.
+
 2014-01-24  Brent Fulgham  <bfulgham@apple.com>
 
         Improve latching behavior for wheel events
index 06fe972..57344c1 100644 (file)
 #include "JSIDBTransaction.cpp"
 #include "JSImageData.cpp"
 #include "JSInspectorFrontendHost.cpp"
-#include "JSJavaScriptCallFrame.cpp"
 #include "JSKeyboardEvent.cpp"
 #include "JSLocation.cpp"
 #include "JSMediaController.cpp"
index 272c727..62a3156 100644 (file)
@@ -727,8 +727,6 @@ all : \
     $(JS_DOM_HEADERS) \
     $(WEB_DOM_HEADERS) \
     \
-    JSJavaScriptCallFrame.h \
-    \
     CSSGrammar.cpp \
     CSSPropertyNames.h \
     CSSValueKeywords.h \
@@ -1085,7 +1083,6 @@ WORKERGLOBALSCOPE_CONSTRUCTORS_FILE = ./WorkerGlobalScopeConstructors.idl
 SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE = ./SharedWorkerGlobalScopeConstructors.idl
 DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE = ./DedicatedWorkerGlobalScopeConstructors.idl
 IDL_FILES_TMP = ./idl_files.tmp
-ADDITIONAL_IDLS = $(WebCore)/inspector/JavaScriptCallFrame.idl
 IDL_ATTRIBUTES_FILE = $(WebCore)/bindings/scripts/IDLAttributes.txt
 
 # The following two lines get a space character stored in a variable.
@@ -1093,8 +1090,8 @@ IDL_ATTRIBUTES_FILE = $(WebCore)/bindings/scripts/IDLAttributes.txt
 space :=
 space +=
 
-$(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(ADDITIONAL_IDLS) $(PLATFORM_FEATURE_DEFINES)
-       printf "$(subst $(space),,$(patsubst %,%\n,$(BINDING_IDLS) $(ADDITIONAL_IDLS)))" > $(IDL_FILES_TMP)
+$(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(PLATFORM_FEATURE_DEFINES)
+       printf "$(subst $(space),,$(patsubst %,%\n,$(BINDING_IDLS)))" > $(IDL_FILES_TMP)
        $(call preprocess_idls_script, $(PREPROCESS_IDLS_SCRIPTS)) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --windowConstructorsFile $(WINDOW_CONSTRUCTORS_FILE) --workerGlobalScopeConstructorsFile $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --sharedWorkerGlobalScopeConstructorsFile $(SHAREDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --dedicatedWorkerGlobalScopeConstructorsFile $(DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --supplementalMakefileDeps $@
        rm -f $(IDL_FILES_TMP)
 
diff --git a/Source/WebCore/ForwardingHeaders/inspector/ScriptDebugServer.h b/Source/WebCore/ForwardingHeaders/inspector/ScriptDebugServer.h
new file mode 100644 (file)
index 0000000..a9442a2
--- /dev/null
@@ -0,0 +1,4 @@
+#ifndef WebCore_FWD_ScriptDebugServer_h
+#define WebCore_FWD_ScriptDebugServer_h
+#include <JavaScriptCore/ScriptDebugServer.h>
+#endif
index 9684952..fa7f1a0 100644 (file)
@@ -457,8 +457,6 @@ webcore_built_sources += \
        DerivedSources/WebCore/JSInspectorFrontendHost.h \
        DerivedSources/WebCore/JSScriptProcessorNode.cpp \
        DerivedSources/WebCore/JSScriptProcessorNode.h \
-       DerivedSources/WebCore/JSJavaScriptCallFrame.cpp \
-       DerivedSources/WebCore/JSJavaScriptCallFrame.h \
        DerivedSources/WebCore/JSKeyboardEvent.cpp \
        DerivedSources/WebCore/JSKeyboardEvent.h \
        DerivedSources/WebCore/JSLocation.cpp \
@@ -1549,7 +1547,6 @@ dom_binding_idls += \
        $(WebCore)/html/track/VideoTrackList.idl \
        $(WebCore)/inspector/CommandLineAPIHost.idl \
        $(WebCore)/inspector/InspectorFrontendHost.idl \
-       $(WebCore)/inspector/JavaScriptCallFrame.idl \
        $(WebCore)/inspector/ScriptProfile.idl \
        $(WebCore)/inspector/ScriptProfileNode.idl \
        $(WebCore)/loader/appcache/DOMApplicationCache.idl \
@@ -2370,7 +2367,6 @@ webcore_sources += \
        Source/WebCore/bindings/js/JSImageConstructor.h \
        Source/WebCore/bindings/js/JSImageDataCustom.cpp \
        Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp \
-       Source/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp \
        Source/WebCore/bindings/js/JSLazyEventListener.cpp \
        Source/WebCore/bindings/js/JSLazyEventListener.h \
        Source/WebCore/bindings/js/JSLocationCustom.cpp \
@@ -2434,8 +2430,6 @@ webcore_sources += \
        Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp \
        Source/WebCore/bindings/js/JSXPathResultCustom.cpp \
        Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp \
-       Source/WebCore/bindings/js/JavaScriptCallFrame.cpp \
-       Source/WebCore/bindings/js/JavaScriptCallFrame.h \
        Source/WebCore/bindings/js/Dictionary.cpp \
        Source/WebCore/bindings/js/Dictionary.h \
        Source/WebCore/bindings/js/PageScriptDebugServer.cpp \
@@ -2448,8 +2442,6 @@ webcore_sources += \
        Source/WebCore/bindings/js/ScriptCallStackFactory.h \
        Source/WebCore/bindings/js/ScriptController.cpp \
        Source/WebCore/bindings/js/ScriptController.h \
-       Source/WebCore/bindings/js/ScriptDebugServer.cpp \
-       Source/WebCore/bindings/js/ScriptDebugServer.h \
        Source/WebCore/bindings/js/ScriptHeapSnapshot.h \
        Source/WebCore/bindings/js/ScriptGlobalObject.cpp \
        Source/WebCore/bindings/js/ScriptGlobalObject.h \
index 6f5801f..2db0fbd 100644 (file)
@@ -97,7 +97,6 @@ list(APPEND WebCore_SOURCES
     bindings/js/JSImageConstructor.cpp
     bindings/js/JSImageDataCustom.cpp
     bindings/js/JSInspectorFrontendHostCustom.cpp
-    bindings/js/JSJavaScriptCallFrameCustom.cpp
     bindings/js/JSLazyEventListener.cpp
     bindings/js/JSLocationCustom.cpp
     bindings/js/JSMainThreadExecState.cpp
@@ -154,13 +153,11 @@ list(APPEND WebCore_SOURCES
     bindings/js/JSXMLHttpRequestCustom.cpp
     bindings/js/JSXPathResultCustom.cpp
     bindings/js/JSXSLTProcessorCustom.cpp
-    bindings/js/JavaScriptCallFrame.cpp
     bindings/js/PageScriptDebugServer.cpp
     bindings/js/ScheduledAction.cpp
     bindings/js/ScriptCachedFrameData.cpp
     bindings/js/ScriptCallStackFactory.cpp
     bindings/js/ScriptController.cpp
-    bindings/js/ScriptDebugServer.cpp
     bindings/js/ScriptGlobalObject.cpp
     bindings/js/ScriptProfile.cpp
     bindings/js/ScriptProfiler.cpp
index 01e0cb3..c555b76 100644 (file)
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSJavaScriptCallFrame.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
-    </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSKeyboardEvent.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\bindings\js\JavaScriptCallFrame.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
-    </ClCompile>
     <ClCompile Include="..\bindings\js\JSAttrCustom.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\bindings\js\JSJavaScriptCallFrameCustom.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
-    </ClCompile>
     <ClCompile Include="..\bindings\js\JSLazyEventListener.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\bindings\js\ScriptDebugServer.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
-    </ClCompile>
     <ClCompile Include="..\bindings\js\ScriptGlobalObject.cpp" />
     <ClCompile Include="..\bindings\js\ScriptProfile.cpp" />
     <ClCompile Include="..\bindings\js\ScriptProfiler.cpp">
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSIDBTransaction.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSImageData.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSInspectorFrontendHost.h" />
-    <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSJavaScriptCallFrame.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSKeyboardEvent.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSLocation.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSMediaControlsHost.h" />
     <ClInclude Include="..\bindings\js\DOMWrapperWorld.h" />
     <ClInclude Include="..\bindings\js\GCController.h" />
     <ClInclude Include="..\bindings\js\IDBBindingUtilities.h" />
-    <ClInclude Include="..\bindings\js\JavaScriptCallFrame.h" />
     <ClInclude Include="..\bindings\js\JSCallbackData.h" />
     <ClInclude Include="..\bindings\js\JSCSSStyleDeclarationCustom.h" />
     <ClInclude Include="..\bindings\js\JSCustomXPathNSResolver.h" />
     <ClInclude Include="..\bindings\js\ScriptCachedFrameData.h" />
     <ClInclude Include="..\bindings\js\ScriptCallStackFactory.h" />
     <ClInclude Include="..\bindings\js\ScriptController.h" />
-    <ClInclude Include="..\bindings\js\ScriptDebugServer.h" />
     <ClInclude Include="..\bindings\js\ScriptHeapSnapshot.h" />
     <ClInclude Include="..\bindings\js\ScriptGlobalObject.h" />
     <ClInclude Include="..\bindings\js\ScriptProfile.h" />
index c65d67f..57e37ea 100644 (file)
     <ClCompile Include="..\bindings\js\IDBBindingUtilities.cpp">
       <Filter>bindings\js</Filter>
     </ClCompile>
-    <ClCompile Include="..\bindings\js\JavaScriptCallFrame.cpp">
-      <Filter>bindings\js</Filter>
-    </ClCompile>
     <ClCompile Include="..\bindings\js\JSAttrCustom.cpp">
       <Filter>bindings\js</Filter>
     </ClCompile>
     <ClCompile Include="..\bindings\js\JSInspectorFrontendHostCustom.cpp">
       <Filter>bindings\js</Filter>
     </ClCompile>
-    <ClCompile Include="..\bindings\js\JSJavaScriptCallFrameCustom.cpp">
-      <Filter>bindings\js</Filter>
-    </ClCompile>
     <ClCompile Include="..\bindings\js\JSLazyEventListener.cpp">
       <Filter>bindings\js</Filter>
     </ClCompile>
     <ClCompile Include="..\bindings\js\ScriptController.cpp">
       <Filter>bindings\js</Filter>
     </ClCompile>
-    <ClCompile Include="..\bindings\js\ScriptDebugServer.cpp">
-      <Filter>bindings\js</Filter>
-    </ClCompile>
     <ClCompile Include="..\bindings\js\ScriptGlobalObject.cpp">
       <Filter>bindings\js</Filter>
     </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSInspectorFrontendHost.cpp">
       <Filter>DerivedSources</Filter>
     </ClCompile>
-    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSJavaScriptCallFrame.cpp">
-      <Filter>DerivedSources</Filter>
-    </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSKeyboardEvent.cpp">
       <Filter>DerivedSources</Filter>
     </ClCompile>
     <ClInclude Include="..\bindings\js\IDBBindingUtilities.h">
       <Filter>bindings\js</Filter>
     </ClInclude>
-    <ClInclude Include="..\bindings\js\JavaScriptCallFrame.h">
-      <Filter>bindings\js</Filter>
-    </ClInclude>
     <ClInclude Include="..\bindings\js\JSCallbackData.h">
       <Filter>bindings\js</Filter>
     </ClInclude>
     <ClInclude Include="..\bindings\js\ScriptController.h">
       <Filter>bindings\js</Filter>
     </ClInclude>
-    <ClInclude Include="..\bindings\js\ScriptDebugServer.h">
-      <Filter>bindings\js</Filter>
-    </ClInclude>
     <ClInclude Include="..\bindings\js\ScriptHeapSnapshot.h">
       <Filter>bindings\js</Filter>
     </ClInclude>
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSInspectorFrontendHost.h">
       <Filter>DerivedSources</Filter>
     </ClInclude>
-    <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSJavaScriptCallFrame.h">
-      <Filter>DerivedSources</Filter>
-    </ClInclude>
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSKeyboardEvent.h">
       <Filter>DerivedSources</Filter>
     </ClInclude>
index adc3022..58f279a 100644 (file)
                1C26497C0D7E24EC00BD10F2 /* PageMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C26497B0D7E24EC00BD10F2 /* PageMac.cpp */; };
                1C4C8F020AD85D87009475CE /* DeleteButtonController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4C8F000AD85D87009475CE /* DeleteButtonController.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1C4C8F660AD8655D009475CE /* DeleteButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4C8F640AD8655D009475CE /* DeleteButton.h */; };
-               1C5FAED10DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C5FAECF0DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp */; };
-               1C5FAED20DCFD90100D58F78 /* JSJavaScriptCallFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5FAED00DCFD90100D58F78 /* JSJavaScriptCallFrame.h */; };
-               1C5FAEE70DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C5FAEE60DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp */; };
                1C81B95A0E97330800266E07 /* InspectorController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C81B9560E97330800266E07 /* InspectorController.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1C81B95B0E97330800266E07 /* InspectorController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C81B9570E97330800266E07 /* InspectorController.cpp */; };
                1C81B95C0E97330800266E07 /* InspectorClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C81B9580E97330800266E07 /* InspectorClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               1C81BA090E97348300266E07 /* JavaScriptCallFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C81BA030E97348300266E07 /* JavaScriptCallFrame.cpp */; };
-               1C81BA0A0E97348300266E07 /* JavaScriptCallFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C81BA040E97348300266E07 /* JavaScriptCallFrame.h */; };
                1CA19E050DC255950065A994 /* EventLoopMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CA19E030DC255950065A994 /* EventLoopMac.mm */; };
                1CA19E160DC255CA0065A994 /* EventLoop.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CA19E150DC255CA0065A994 /* EventLoop.h */; };
                1CAF34810A6C405200ABE06E /* WebScriptObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CAF347E0A6C405200ABE06E /* WebScriptObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
                9F0D6B2E121BFEBA006C0288 /* InspectorProfilerAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9F0D6B2C121BFEBA006C0288 /* InspectorProfilerAgent.cpp */; };
                9F0D6B2F121BFEBA006C0288 /* InspectorProfilerAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F0D6B2D121BFEBA006C0288 /* InspectorProfilerAgent.h */; };
                9F3B947E12241758005304E7 /* ScriptHeapSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F3B947D12241758005304E7 /* ScriptHeapSnapshot.h */; };
-               9F6FC1961122E82A00E80196 /* ScriptDebugServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9F6FC1941122E82A00E80196 /* ScriptDebugServer.cpp */; };
-               9F6FC1971122E82A00E80196 /* ScriptDebugServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F6FC1951122E82A00E80196 /* ScriptDebugServer.h */; settings = {ATTRIBUTES = (Private, ); }; };
                9F72304F11184B4100AD0126 /* ScriptProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F72304C11184B4100AD0126 /* ScriptProfile.h */; settings = {ATTRIBUTES = (Private, ); }; };
                9F72305011184B4100AD0126 /* ScriptProfiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9F72304D11184B4100AD0126 /* ScriptProfiler.cpp */; };
                9F72305111184B4100AD0126 /* ScriptProfiler.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F72304E11184B4100AD0126 /* ScriptProfiler.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1C4C8F000AD85D87009475CE /* DeleteButtonController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeleteButtonController.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                1C4C8F630AD8655D009475CE /* DeleteButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeleteButton.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                1C4C8F640AD8655D009475CE /* DeleteButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeleteButton.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               1C5FAECF0DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSJavaScriptCallFrame.cpp; sourceTree = "<group>"; };
-               1C5FAED00DCFD90100D58F78 /* JSJavaScriptCallFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSJavaScriptCallFrame.h; sourceTree = "<group>"; };
-               1C5FAEE60DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSJavaScriptCallFrameCustom.cpp; sourceTree = "<group>"; };
                1C81B9560E97330800266E07 /* InspectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorController.h; sourceTree = "<group>"; };
                1C81B9570E97330800266E07 /* InspectorController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorController.cpp; sourceTree = "<group>"; };
                1C81B9580E97330800266E07 /* InspectorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorClient.h; sourceTree = "<group>"; };
-               1C81BA030E97348300266E07 /* JavaScriptCallFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JavaScriptCallFrame.cpp; sourceTree = "<group>"; };
-               1C81BA040E97348300266E07 /* JavaScriptCallFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JavaScriptCallFrame.h; sourceTree = "<group>"; };
-               1C81BA050E97348300266E07 /* JavaScriptCallFrame.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = JavaScriptCallFrame.idl; sourceTree = "<group>"; };
                1C904DF90BA9D2C80081E9D0 /* Version.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = "<group>"; };
                1CA19E030DC255950065A994 /* EventLoopMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EventLoopMac.mm; sourceTree = "<group>"; };
                1CA19E150DC255CA0065A994 /* EventLoop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventLoop.h; sourceTree = "<group>"; };
                9F0D6B2C121BFEBA006C0288 /* InspectorProfilerAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorProfilerAgent.cpp; sourceTree = "<group>"; };
                9F0D6B2D121BFEBA006C0288 /* InspectorProfilerAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorProfilerAgent.h; sourceTree = "<group>"; };
                9F3B947D12241758005304E7 /* ScriptHeapSnapshot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptHeapSnapshot.h; sourceTree = "<group>"; };
-               9F6FC1941122E82A00E80196 /* ScriptDebugServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptDebugServer.cpp; sourceTree = "<group>"; };
-               9F6FC1951122E82A00E80196 /* ScriptDebugServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptDebugServer.h; sourceTree = "<group>"; };
                9F72304C11184B4100AD0126 /* ScriptProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptProfile.h; sourceTree = "<group>"; };
                9F72304D11184B4100AD0126 /* ScriptProfiler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptProfiler.cpp; sourceTree = "<group>"; };
                9F72304E11184B4100AD0126 /* ScriptProfiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptProfiler.h; sourceTree = "<group>"; };
                                A584FE3A1864E2D800843B10 /* JSCommandLineAPIHost.h */,
                                7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */,
                                7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */,
-                               1C5FAECF0DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp */,
-                               1C5FAED00DCFD90100D58F78 /* JSJavaScriptCallFrame.h */,
                                9FA37EF61172FD9300C4CD55 /* JSScriptProfile.cpp */,
                                9FA37EF71172FD9300C4CD55 /* JSScriptProfile.h */,
                                9FA37EF81172FD9300C4CD55 /* JSScriptProfileNode.cpp */,
                                F375CC061150D300008DDB81 /* InspectorWorkerResource.h */,
                                F350B73413F1377D00880C43 /* InstrumentingAgents.cpp */,
                                F3ABFE0B130E9DA000E7F7D1 /* InstrumentingAgents.h */,
-                               1C81BA050E97348300266E07 /* JavaScriptCallFrame.idl */,
                                59C27F04138D28C10079B7E2 /* NetworkResourcesData.cpp */,
                                59C27F06138D28CF0079B7E2 /* NetworkResourcesData.h */,
                                F382088A147D35F90010BC06 /* PageConsoleAgent.cpp */,
                                1432E8460C51493800B1500F /* GCController.h */,
                                C585A66011D4FAC5004C3E4B /* IDBBindingUtilities.cpp */,
                                C585A66111D4FAC5004C3E4B /* IDBBindingUtilities.h */,
-                               1C81BA030E97348300266E07 /* JavaScriptCallFrame.cpp */,
-                               1C81BA040E97348300266E07 /* JavaScriptCallFrame.h */,
                                E157A8EE18185425009F821D /* JSCryptoAlgorithmBuilder.cpp */,
                                E157A8EF18185425009F821D /* JSCryptoAlgorithmBuilder.h */,
                                E125F83B182411E700D84CD9 /* JSCryptoOperationData.cpp */,
                                93B70D5309EB0C7C009D8468 /* ScriptController.cpp */,
                                93B70D5409EB0C7C009D8468 /* ScriptController.h */,
                                A83E1C720E49042B00140B9C /* ScriptControllerMac.mm */,
-                               9F6FC1941122E82A00E80196 /* ScriptDebugServer.cpp */,
-                               9F6FC1951122E82A00E80196 /* ScriptDebugServer.h */,
                                9F3B947D12241758005304E7 /* ScriptHeapSnapshot.h */,
                                41F066E30F64BCF600A07EAC /* ScriptGlobalObject.cpp */,
                                41F066E20F64BCF600A07EAC /* ScriptGlobalObject.h */,
                                511EF2CE17F0FDF100E4FA16 /* JSIDBObjectStoreCustom.cpp */,
                                A7D0318D0E93540300E24ACD /* JSImageDataCustom.cpp */,
                                7A74ECBC101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp */,
-                               1C5FAEE60DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp */,
                                BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */,
                                AD726FE716D9F204003A4E6D /* JSMediaListCustom.h */,
                                E1A5F99A0E7EAA2500AF85EA /* JSMessageChannelCustom.cpp */,
                                E134F5AB12EE343F004EC58D /* IntRectHash.h in Headers */,
                                B27535750B053814002CE64F /* IntSize.h in Headers */,
                                B27535760B053814002CE64F /* IntSizeHash.h in Headers */,
-                               1C81BA0A0E97348300266E07 /* JavaScriptCallFrame.h in Headers */,
                                418F88050FF957AF0080F045 /* JSAbstractWorker.h in Headers */,
                                FDA15ECA12B03F50003A583A /* JSAnalyserNode.h in Headers */,
                                65DF31DB09D1C123000BE325 /* JSAttr.h in Headers */,
                                BC6C49F40D7DBA0500FFA558 /* JSImageConstructor.h in Headers */,
                                A77979290D6B9E64003851B9 /* JSImageData.h in Headers */,
                                7A0E771F10C00DB100A0276E /* JSInspectorFrontendHost.h in Headers */,
-                               1C5FAED20DCFD90100D58F78 /* JSJavaScriptCallFrame.h in Headers */,
                                A86629D309DA2B48009633A5 /* JSKeyboardEvent.h in Headers */,
                                1AE00D59182DAC8D00087DD7 /* KeyedCoding.h in Headers */,
                                935F45430F7C3B5F00D7C1FB /* JSLazyEventListener.h in Headers */,
                                416E75BE0EDF8FD700360E1D /* ScriptCallStack.h in Headers */,
                                F392249D126F11AE00A926D9 /* ScriptCallStackFactory.h in Headers */,
                                93B70D7009EB0C7C009D8468 /* ScriptController.h in Headers */,
-                               9F6FC1971122E82A00E80196 /* ScriptDebugServer.h in Headers */,
                                4998AED213FB224D0090B1AA /* ScriptedAnimationController.h in Headers */,
                                08A484780E5272C500C3FE76 /* ScriptElement.h in Headers */,
                                E11C9D9B0EB3681200E409DB /* ScriptExecutionContext.h in Headers */,
                                B275357D0B053814002CE64F /* IntRectMac.mm in Sources */,
                                B27535620B053814002CE64F /* IntSizeCG.cpp in Sources */,
                                B275357E0B053814002CE64F /* IntSizeMac.mm in Sources */,
-                               1C81BA090E97348300266E07 /* JavaScriptCallFrame.cpp in Sources */,
                                418F88040FF957AE0080F045 /* JSAbstractWorker.cpp in Sources */,
                                073BE34F17D18183002BD431 /* RTCIceCandidateDescriptor.cpp in Sources */,
                                E172AF6D180F24C600FBADB9 /* CryptoAlgorithm.cpp in Sources */,
                                A7D0318E0E93540300E24ACD /* JSImageDataCustom.cpp in Sources */,
                                7A0E771E10C00DB100A0276E /* JSInspectorFrontendHost.cpp in Sources */,
                                7A74ECBD101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp in Sources */,
-                               1C5FAED10DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp in Sources */,
                                076306E017E16089005A7C4E /* JSSourceInfo.cpp in Sources */,
                                07969DB717D14151007FF842 /* JSRTCIceCandidateEvent.cpp in Sources */,
-                               1C5FAEE70DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp in Sources */,
                                A86629D409DA2B48009633A5 /* JSKeyboardEvent.cpp in Sources */,
                                935F45420F7C3B5F00D7C1FB /* JSLazyEventListener.cpp in Sources */,
                                BCE1C43B0D9830D3003B02F2 /* JSLocation.cpp in Sources */,
                                F392249C126F11AE00A926D9 /* ScriptCallStackFactory.cpp in Sources */,
                                93B70D6F09EB0C7C009D8468 /* ScriptController.cpp in Sources */,
                                A83E1C740E49042C00140B9C /* ScriptControllerMac.mm in Sources */,
-                               9F6FC1961122E82A00E80196 /* ScriptDebugServer.cpp in Sources */,
                                4998AED113FB224D0090B1AA /* ScriptedAnimationController.cpp in Sources */,
                                08A484770E5272C500C3FE76 /* ScriptElement.cpp in Sources */,
                                E11C9DB00EB3699500E409DB /* ScriptExecutionContext.cpp in Sources */,
index 7bb1969..0428e83 100644 (file)
@@ -20,7 +20,7 @@
  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // This all-in-one cpp file cuts down on template bloat to allow us to build our Windows release build.
@@ -95,7 +95,6 @@
 #include "JSImageConstructor.cpp"
 #include "JSImageDataCustom.cpp"
 #include "JSInspectorFrontendHostCustom.cpp"
-#include "JSJavaScriptCallFrameCustom.cpp"
 #include "JSLazyEventListener.cpp"
 #include "JSLocationCustom.cpp"
 #include "JSMainThreadExecState.cpp"
 #include "JSXMLHttpRequestCustom.cpp"
 #include "JSXPathResultCustom.cpp"
 #include "JSXSLTProcessorCustom.cpp"
-#include "JavaScriptCallFrame.cpp"
 #include "PageScriptDebugServer.cpp"
 #include "ScheduledAction.cpp"
 #include "ScriptCachedFrameData.cpp"
 #include "ScriptCallStackFactory.cpp"
 #include "ScriptController.cpp"
-#include "ScriptDebugServer.cpp"
 #include "ScriptProfiler.cpp"
 #include "ScriptState.cpp"
 #include "SerializedScriptValue.cpp"
index 06b666d..c7eefbf 100644 (file)
@@ -43,6 +43,7 @@
 #include "PageGroup.h"
 #include "PluginView.h"
 #include "ScriptController.h"
+#include "Timer.h"
 #include "Widget.h"
 #include <runtime/JSLock.h>
 #include <wtf/MainThread.h>
@@ -193,6 +194,8 @@ void PageScriptDebugServer::runEventLoopWhilePaused()
         WebRunLoopEnableNested();
 #endif
 
+    TimerBase::fireTimersInNestedEventLoop();
+
     EventLoop loop;
     while (!m_doneProcessingDebuggerEvents && !loop.ended())
         loop.cycle();
@@ -204,6 +207,16 @@ void PageScriptDebugServer::runEventLoopWhilePaused()
 #endif
 }
 
+bool PageScriptDebugServer::isContentScript(ExecState* exec) const
+{
+    return &currentWorld(exec) != &mainThreadNormalWorld();
+}
+
+void PageScriptDebugServer::reportException(ExecState* exec, JSValue exception) const
+{
+    WebCore::reportException(exec, exception);
+}
+
 void PageScriptDebugServer::setJavaScriptPaused(const PageGroup& pageGroup, bool paused)
 {
     setMainThreadCallbacksPaused(paused);
index 47a17d9..46b2dd1 100644 (file)
@@ -33,7 +33,7 @@
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
-#include "ScriptDebugServer.h"
+#include <inspector/ScriptDebugServer.h>
 #include <wtf/Forward.h>
 
 namespace WebCore {
@@ -43,7 +43,7 @@ class FrameView;
 class Page;
 class PageGroup;
 
-class PageScriptDebugServer : public ScriptDebugServer {
+class PageScriptDebugServer : public Inspector::ScriptDebugServer {
     WTF_MAKE_NONCOPYABLE(PageScriptDebugServer);
 public:
     static PageScriptDebugServer& shared();
@@ -62,8 +62,10 @@ private:
     virtual ListenerSet* getListenersForGlobalObject(JSC::JSGlobalObject*);
     virtual void didPause(JSC::JSGlobalObject*);
     virtual void didContinue(JSC::JSGlobalObject*);
-
     virtual void runEventLoopWhilePaused();
+    virtual bool isContentScript(JSC::ExecState*) const override;
+    virtual void reportException(JSC::ExecState*, JSC::JSValue) const override;
+
 
     void didAddFirstListener(Page*);
     void didRemoveLastListener(Page*, bool skipRecompile);
index 5319e4a..da1eb3a 100644 (file)
@@ -34,6 +34,8 @@
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
+#include "JSDOMBinding.h"
+#include "Timer.h"
 #include "WorkerDebuggerAgent.h"
 #include "WorkerGlobalScope.h"
 #include "WorkerRunLoop.h"
@@ -90,6 +92,8 @@ void WorkerScriptDebugServer::recompileAllJSFunctions()
 
 void WorkerScriptDebugServer::runEventLoopWhilePaused()
 {
+    TimerBase::fireTimersInNestedEventLoop();
+
     MessageQueueWaitResult result;
     do {
         result = m_workerGlobalScope->thread()->runLoop().runInMode(m_workerGlobalScope, m_debuggerTaskMode);
@@ -97,6 +101,11 @@ void WorkerScriptDebugServer::runEventLoopWhilePaused()
     } while (result != MessageQueueTerminated && !m_doneProcessingDebuggerEvents);
 }
 
+void WorkerScriptDebugServer::reportException(JSC::ExecState* exec, JSC::JSValue exception) const
+{
+    WebCore::reportException(exec, exception);
+}
+
 void WorkerScriptDebugServer::interruptAndRunTask(PassOwnPtr<ScriptDebugServer::Task>)
 {
 }
index 64dd22e..b5c614f 100644 (file)
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
-#include "ScriptDebugServer.h"
+#include <inspector/ScriptDebugServer.h>
 
 namespace WebCore {
 
 class WorkerGlobalScope;
 
-class WorkerScriptDebugServer final : public ScriptDebugServer {
+class WorkerScriptDebugServer final : public Inspector::ScriptDebugServer {
     WTF_MAKE_NONCOPYABLE(WorkerScriptDebugServer);
 public:
     WorkerScriptDebugServer(WorkerGlobalScope*, const String&);
@@ -57,6 +57,8 @@ private:
     virtual void didPause(JSC::JSGlobalObject*) override { }
     virtual void didContinue(JSC::JSGlobalObject*) override { }
     virtual void runEventLoopWhilePaused() override;
+    virtual bool isContentScript(JSC::ExecState*) const override { return false; }
+    virtual void reportException(JSC::ExecState*, JSC::JSValue) const override;
 
     WorkerGlobalScope* m_workerGlobalScope;
     ListenerSet m_listeners;
index 3b2ae06..b317bdb 100644 (file)
 #include "CachedResource.h"
 #include "InspectorPageAgent.h"
 #include "InstrumentingAgents.h"
-#include "ScriptDebugServer.h"
+#include "ScriptArguments.h"
+#include "Sound.h"
 #include <bindings/ScriptObject.h>
 #include <bindings/ScriptValue.h>
 #include <inspector/ContentSearchUtilities.h>
 #include <inspector/InjectedScript.h>
 #include <inspector/InjectedScriptManager.h>
 #include <inspector/InspectorValues.h>
+#include <inspector/ScriptDebugServer.h>
 #include <wtf/text/WTFString.h>
 #include <yarr/RegularExpression.h>
 
@@ -690,6 +692,12 @@ void InspectorDebuggerAgent::didSampleProbe(JSC::ExecState* scriptState, int pro
     m_frontendDispatcher->didSampleProbe(result.release());
 }
 
+void InspectorDebuggerAgent::breakpointActionSound()
+{
+    // FIXME: We should send a message to the frontend to make the frontend beep.
+    systemBeep();
+}
+
 void InspectorDebuggerAgent::didContinue()
 {
     m_pausedScriptState = nullptr;
index dbef56c..8fe6136 100644 (file)
@@ -54,12 +54,12 @@ class InjectedScriptManager;
 class InspectorArray;
 class InspectorObject;
 class InspectorValue;
+class ScriptDebugServer;
 }
 
 namespace WebCore {
 
 class InstrumentingAgents;
-class ScriptDebugServer;
 
 typedef String ErrorString;
 
@@ -122,7 +122,7 @@ public:
     };
     void setListener(Listener* listener) { m_listener = listener; }
 
-    virtual ScriptDebugServer& scriptDebugServer() = 0;
+    virtual Inspector::ScriptDebugServer& scriptDebugServer() = 0;
 
 protected:
     InspectorDebuggerAgent(InstrumentingAgents*, Inspector::InjectedScriptManager*);
@@ -146,6 +146,7 @@ private:
     virtual void didParseSource(JSC::SourceID, const Script&) override final;
     virtual void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage) override final;
     virtual void didSampleProbe(JSC::ExecState*, int probeIdentifier, int hitCount, const Deprecated::ScriptValue& sample) override final;
+    virtual void breakpointActionSound() override final;
 
     PassRefPtr<Inspector::TypeBuilder::Debugger::Location> resolveBreakpoint(const String& breakpointIdentifier, JSC::SourceID, const Inspector::ScriptBreakpoint&);
     bool assertPaused(ErrorString*);
index a2a34fe..28657e9 100644 (file)
@@ -45,7 +45,7 @@
 #include <wtf/PassRefPtr.h>
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
-#include "ScriptDebugServer.h"
+#include <inspector/ScriptDebugServer.h>
 #endif
 
 using namespace JSC;
index c840e31..e15865b 100644 (file)
@@ -46,12 +46,12 @@ class InjectedScriptManager;
 class InspectorArray;
 class InspectorObject;
 class InspectorValue;
+class ScriptDebugServer;
 }
 
 namespace WebCore {
 
 class InstrumentingAgents;
-class ScriptDebugServer;
 class WorkerGlobalScope;
 
 typedef String ErrorString;
@@ -90,7 +90,7 @@ public:
     virtual void run(ErrorString*) override;
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
-    void setScriptDebugServer(ScriptDebugServer*);
+    void setScriptDebugServer(Inspector::ScriptDebugServer*);
 #endif
 
 protected:
@@ -106,7 +106,7 @@ protected:
 private:
     Inspector::InjectedScriptManager* m_injectedScriptManager;
 #if ENABLE(JAVASCRIPT_DEBUGGER)
-    ScriptDebugServer* m_scriptDebugServer;
+    Inspector::ScriptDebugServer* m_scriptDebugServer;
 #endif
 };
 
diff --git a/Source/WebCore/inspector/JavaScriptCallFrame.idl b/Source/WebCore/inspector/JavaScriptCallFrame.idl
deleted file mode 100644 (file)
index 7b4894a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    NoInterfaceObject,
-    Conditional=JAVASCRIPT_DEBUGGER,
-    DoNotCheckConstants,
-    ImplementationLacksVTable
-] interface JavaScriptCallFrame {
-
-    // Scope type
-    const unsigned short GLOBAL_SCOPE = 0;
-    const unsigned short LOCAL_SCOPE = 1;
-    const unsigned short WITH_SCOPE = 2;
-    const unsigned short CLOSURE_SCOPE = 3;
-    const unsigned short CATCH_SCOPE = 4;
-
-    [Custom] void evaluate(DOMString script);
-    
-    readonly attribute JavaScriptCallFrame caller;
-    readonly attribute long sourceID;
-    readonly attribute long line;
-    readonly attribute long column;
-    [CustomGetter] readonly attribute Array scopeChain;
-    [Custom] unsigned short scopeType(int scopeIndex);
-    [CustomGetter] readonly attribute Object thisObject;
-    readonly attribute DOMString functionName;
-    [CustomGetter] readonly attribute DOMString type;
-};
index 5a735e4..d01585a 100644 (file)
@@ -96,6 +96,11 @@ void PageDebuggerAgent::unmuteConsole()
     PageConsole::unmute();
 }
 
+void PageDebuggerAgent::breakpointActionLog(JSC::ExecState*, const String& message)
+{
+    m_pageAgent->page()->console().addMessage(JSMessageSource, LogMessageLevel, message);
+}
+
 InjectedScript PageDebuggerAgent::injectedScriptForEval(ErrorString* errorString, const int* executionContextId)
 {
     if (!executionContextId) {
index 4dd1733..bbaf3d5 100644 (file)
@@ -43,7 +43,7 @@ class InspectorPageAgent;
 class Page;
 class PageScriptDebugServer;
 
-class PageDebuggerAgent : public InspectorDebuggerAgent {
+class PageDebuggerAgent final : public InspectorDebuggerAgent {
     WTF_MAKE_NONCOPYABLE(PageDebuggerAgent);
     WTF_MAKE_FAST_ALLOCATED;
 public:
@@ -63,6 +63,8 @@ private:
     virtual void muteConsole() override;
     virtual void unmuteConsole() override;
 
+    virtual void breakpointActionLog(JSC::ExecState*, const String&) override;
+
     virtual Inspector::InjectedScript injectedScriptForEval(ErrorString*, const int* executionContextId) override;
     virtual void setOverlayMessage(ErrorString*, const String*) override;
 
index f948d84..f4c4cf0 100644 (file)
 
 #if ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
 
-#include "ScriptDebugServer.h"
 #include "WorkerGlobalScope.h"
 #include "WorkerThread.h"
 #include <inspector/InjectedScript.h>
 #include <inspector/InjectedScriptManager.h>
+#include <inspector/ScriptDebugServer.h>
 #include <mutex>
 #include <wtf/MessageQueue.h>
 #include <wtf/NeverDestroyed.h>
@@ -127,6 +127,11 @@ void WorkerDebuggerAgent::stopListeningScriptDebugServer(bool isBeingDestroyed)
     scriptDebugServer().removeListener(this, isBeingDestroyed);
 }
 
+void WorkerDebuggerAgent::breakpointActionLog(JSC::ExecState*, const String& message)
+{
+    m_inspectedWorkerGlobalScope->addConsoleMessage(JSMessageSource, LogMessageLevel, message);
+}
+
 WorkerScriptDebugServer& WorkerDebuggerAgent::scriptDebugServer()
 {
     return m_scriptDebugServer;
index 8a032b2..08b032b 100644 (file)
@@ -40,7 +40,7 @@ namespace WebCore {
 class WorkerGlobalScope;
 class WorkerThread;
 
-class WorkerDebuggerAgent : public InspectorDebuggerAgent {
+class WorkerDebuggerAgent final : public InspectorDebuggerAgent {
     WTF_MAKE_NONCOPYABLE(WorkerDebuggerAgent);
     WTF_MAKE_FAST_ALLOCATED;
 public:
@@ -57,6 +57,8 @@ public:
     virtual void muteConsole() override;
     virtual void unmuteConsole() override;
 
+    virtual void breakpointActionLog(JSC::ExecState*, const String&) override;
+
 private:
     WorkerScriptDebugServer m_scriptDebugServer;
     WorkerGlobalScope* m_inspectedWorkerGlobalScope;
index 597122c..5819965 100644 (file)
@@ -133,6 +133,8 @@ namespace WebCore {
 
         virtual SecurityOrigin* topOrigin() const override { return m_topOrigin.get(); }
 
+        virtual void addConsoleMessage(MessageSource, MessageLevel, const String& message, unsigned long requestIdentifier = 0) override;
+
     protected:
         WorkerGlobalScope(const URL&, const String& userAgent, std::unique_ptr<GroupSettings>, WorkerThread*, PassRefPtr<SecurityOrigin> topOrigin);
         void applyContentSecurityPolicyFromString(const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType);
@@ -148,7 +150,6 @@ namespace WebCore {
         virtual void derefEventTarget() override final { deref(); }
 
         virtual void addMessage(MessageSource, MessageLevel, const String& message, const String& sourceURL, unsigned lineNumber, unsigned columnNumber, PassRefPtr<ScriptCallStack>, JSC::ExecState* = 0, unsigned long requestIdentifier = 0) override;
-        virtual void addConsoleMessage(MessageSource, MessageLevel, const String& message, unsigned long requestIdentifier = 0) override;
 
         virtual EventTarget* errorEventTarget() override;