Move -functionName from WebCoreScriptCallFrame to WebScriptCallFrame
authoraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 5 Mar 2008 19:34:13 +0000 (19:34 +0000)
committeraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 5 Mar 2008 19:34:13 +0000 (19:34 +0000)
         Reviewed by Darin.

         * WebView/WebCoreScriptDebugger.h:
           - Removed #else case of #ifdef __cplusplus since this file is only
             ever used by C++ Objective-C files
           - Removed 'using KJS::ExecState' statement since we prefer not to
             have using statements in header files
           - Consequently prefixed uses of ExecState with KJS::
           - Added declaration of toNSString method that takes a const
             UString&
           - Added declaration of -[WebCoreScriptCallFrame state]
           - Removed declaration of -[WebCoreScriptCallFrame functionName]
         * WebView/WebCoreScriptDebugger.mm:
         (toNSString): Made this no longer static.
         (-[WebCoreScriptCallFrame state]): Added.
         * WebView/WebScriptDebugDelegate.mm:
         (-[WebScriptCallFrame functionName]): Added. Code came from
         -[WebCoreScriptCallFrame functionName], though I changed some nested
         ifs into early returns.

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

WebKit/mac/ChangeLog
WebKit/mac/WebView/WebCoreScriptDebugger.h
WebKit/mac/WebView/WebCoreScriptDebugger.mm
WebKit/mac/WebView/WebScriptDebugDelegate.mm

index 61c676340424f4f389769ba4256e912971818a46..d415f1600e10fd4f340178ef2d0b6877e36c9734 100644 (file)
@@ -1,3 +1,27 @@
+2008-03-05  Adam Roben  <aroben@apple.com>
+
+        Move -functionName from WebCoreScriptCallFrame to WebScriptCallFrame
+
+        Reviewed by Darin.
+
+        * WebView/WebCoreScriptDebugger.h:
+          - Removed #else case of #ifdef __cplusplus since this file is only
+            ever used by C++ Objective-C files
+          - Removed 'using KJS::ExecState' statement since we prefer not to
+            have using statements in header files
+          - Consequently prefixed uses of ExecState with KJS::
+          - Added declaration of toNSString method that takes a const
+            UString&
+          - Added declaration of -[WebCoreScriptCallFrame state]
+          - Removed declaration of -[WebCoreScriptCallFrame functionName]
+        * WebView/WebCoreScriptDebugger.mm:
+        (toNSString): Made this no longer static.
+        (-[WebCoreScriptCallFrame state]): Added.
+        * WebView/WebScriptDebugDelegate.mm:
+        (-[WebScriptCallFrame functionName]): Added. Code came from
+        -[WebCoreScriptCallFrame functionName], though I changed some nested
+        ifs into early returns.
+
 2008-03-05  Adam Roben  <aroben@apple.com>
 
         Move WebCoreScriptDebugger to WebKit
index 53c814966257127eb5ca82522803de1af551f955..e8273830598bbfb23801b38f8c9cb30a273a9442 100644 (file)
 @class WebScriptObject;         // from JavaScriptCore
 @class WebCoreScriptCallFrame;  // below
 
-#ifdef __cplusplus
 class WebCoreScriptDebuggerImp;
-namespace KJS { class ExecState; }
-using KJS::ExecState;
-#else
-@class WebCoreScriptDebuggerImp;
-@class ExecState;
-#endif
-
+namespace KJS {
+    class ExecState;
+    class UString;
+}
 
+NSString *toNSString(const KJS::UString&);
 
 // "WebScriptDebugger" protocol - must be implemented by a delegate
 
@@ -84,14 +81,14 @@ using KJS::ExecState;
     id                        _wrapper;       // WebKit's version of this object
     WebScriptObject          *_globalObj;     // the global object's proxy (not retained)
     WebCoreScriptCallFrame   *_caller;        // previous stack frame
-    ExecState                *_state;         // [KJS::ExecState]
+    KJS::ExecState           *_state;
 }
 
 - (id)wrapper;
 - (WebCoreScriptCallFrame *)caller;
+- (KJS::ExecState*)state;
 
 - (NSArray *)scopeChain;
-- (NSString *)functionName;
 - (id)exception;
 - (id)evaluateWebScript:(NSString *)script;
 
index 5a3a88103904da8bd6e8c029315bba9850b4650e..431e0c68b7d4dcf70f9f952bda28d11bbeea6345 100644 (file)
@@ -62,7 +62,7 @@ using namespace WebCore;
 @end
 
 // convert UString to NSString
-static NSString *toNSString(const UString& s)
+NSString *toNSString(const UString& s)
 {
     if (s.isEmpty())
         return nil;
@@ -273,6 +273,11 @@ class WebCoreScriptDebuggerImp : public KJS::Debugger {
     return _caller;
 }
 
+- (ExecState*)state
+{
+    return _state;
+}
+
 // Returns an array of scope objects (most local first).
 // The properties of each scope object are the variables for that scope.
 // Note that the last entry in the array will _always_ be the global object (windowScriptObject),
@@ -297,21 +302,6 @@ class WebCoreScriptDebuggerImp : public KJS::Debugger {
     return result;
 }
 
-// Returns the name of the function for this frame, if available.
-// Returns nil for anonymous functions and for the global frame.
-
-- (NSString *)functionName
-{
-    if (_state->scopeNode()) {
-        FunctionImp* func = _state->function();
-        if (func) {
-            Identifier fn = func->functionName();
-            return toNSString(fn.ustring());
-        }
-    }
-    return nil;
-}
-
 // Returns the pending exception for this frame (nil if none).
 
 - (id)exception
index 1c4ed736c82a1f04666141d05eaefe09e7be766c..0da51257bb89d5e311d224c74a46f7608320113e 100644 (file)
 #import "WebFrameInternal.h"
 #import "WebScriptDebugServerPrivate.h"
 #import "WebViewInternal.h"
+#import <JavaScriptCore/ExecState.h>
+#import <JavaScriptCore/function.h>
 #import <WebCore/Frame.h>
 
+using namespace KJS;
 using namespace WebCore;
 
 // FIXME: these error strings should be public for future use by WebScriptObject and in WebScriptObject.h
@@ -177,9 +180,21 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber";
     return [_private scopeChain];
 }
 
+// Returns the name of the function for this frame, if available.
+// Returns nil for anonymous functions and for the global frame.
+
 - (NSString *)functionName
 {
-    return [_private functionName];
+    ExecState* state = [_private state];
+    if (!state->scopeNode())
+        return nil;
+
+    FunctionImp* func = state->function();
+    if (!func)
+        return nil;
+
+    Identifier fn = func->functionName();
+    return toNSString(fn.ustring());
 }
 
 - (id)exception