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

         * WebView/WebCoreScriptDebugger.h:
           - Added declarations of -globalObject and -_convertValueToObjcValue:
             to WebCoreScriptCallFrame
           - Removed declaration of -scopeChain.
         * WebView/WebCoreScriptDebugger.mm: Moved -_convertValueToObjcValue
         within the main WebCoreScriptCallFrame implementation.
         (-[WebCoreScriptCallFrame globalObject]): Added.
         * WebView/WebScriptDebugDelegate.mm:
         (-[WebScriptCallFrame scopeChain]): Added. Code came from
         -[WebCoreScriptCallFrame scopeChain].

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

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

index d415f1600e10fd4f340178ef2d0b6877e36c9734..e4c81705498b8bfb66f7c401c8993b02b8695be5 100644 (file)
@@ -1,3 +1,20 @@
+2008-03-05  Adam Roben  <aroben@apple.com>
+
+        Move -scopeChain to WebScriptCallFrame
+
+        Reviewed by Darin.
+
+        * WebView/WebCoreScriptDebugger.h:
+          - Added declarations of -globalObject and -_convertValueToObjcValue:
+            to WebCoreScriptCallFrame
+          - Removed declaration of -scopeChain.
+        * WebView/WebCoreScriptDebugger.mm: Moved -_convertValueToObjcValue
+        within the main WebCoreScriptCallFrame implementation.
+        (-[WebCoreScriptCallFrame globalObject]): Added.
+        * WebView/WebScriptDebugDelegate.mm:
+        (-[WebScriptCallFrame scopeChain]): Added. Code came from
+        -[WebCoreScriptCallFrame scopeChain].
+
 2008-03-05  Adam Roben  <aroben@apple.com>
 
         Move -functionName from WebCoreScriptCallFrame to WebScriptCallFrame
index e8273830598bbfb23801b38f8c9cb30a273a9442..16125705abac4b0ef17314ea991fec11a5544d78 100644 (file)
@@ -36,6 +36,7 @@
 class WebCoreScriptDebuggerImp;
 namespace KJS {
     class ExecState;
+    class JSValue;
     class UString;
 }
 
@@ -85,11 +86,12 @@ NSString *toNSString(const KJS::UString&);
 }
 
 - (id)wrapper;
+- (WebScriptObject *)globalObject;
 - (WebCoreScriptCallFrame *)caller;
 - (KJS::ExecState*)state;
 
-- (NSArray *)scopeChain;
 - (id)exception;
 - (id)evaluateWebScript:(NSString *)script;
+- (id)_convertValueToObjcValue:(KJS::JSValue*)value;
 
 @end
index 431e0c68b7d4dcf70f9f952bda28d11bbeea6345..3410d13f4b80dcc33408b0800b6fc7e2e9dee852 100644 (file)
@@ -57,7 +57,6 @@ using namespace WebCore;
 
 - (WebCoreScriptCallFrame *)_initWithGlobalObject:(WebScriptObject *)globalObj caller:(WebCoreScriptCallFrame *)caller state:(ExecState *)state;
 - (void)_setWrapper:(id)wrapper;
-- (id)_convertValueToObjcValue:(JSValue *)value;
 
 @end
 
@@ -233,6 +232,10 @@ class WebCoreScriptDebuggerImp : public KJS::Debugger {
     _wrapper = wrapper;     // (already retained)
 }
 
+@end
+
+@implementation WebCoreScriptCallFrame
+
 - (id)_convertValueToObjcValue:(JSValue *)value
 {
     if (!value)
@@ -252,10 +255,6 @@ class WebCoreScriptDebuggerImp : public KJS::Debugger {
     return [WebScriptObject _convertValueToObjcValue:value originRootObject:root1 rootObject:root2];
 }
 
-@end
-
-@implementation WebCoreScriptCallFrame
-
 - (void)dealloc
 {
     [_wrapper release];
@@ -268,6 +267,11 @@ class WebCoreScriptDebuggerImp : public KJS::Debugger {
     return _wrapper;
 }
 
+- (WebScriptObject *)globalObject
+{
+    return _globalObj;
+}
+
 - (WebCoreScriptCallFrame *)caller
 {
     return _caller;
@@ -278,30 +282,6 @@ class WebCoreScriptDebuggerImp : public KJS::Debugger {
     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),
-// whose properties are the global variables.
-
-- (NSArray *)scopeChain
-{
-    if (!_state->scopeNode()) {  // global frame
-        return [NSArray arrayWithObject:_globalObj];
-    }
-
-    ScopeChain      chain  = _state->scopeChain();
-    NSMutableArray *scopes = [[NSMutableArray alloc] init];
-
-    while (!chain.isEmpty()) {
-        [scopes addObject:[self _convertValueToObjcValue:chain.top()]];
-        chain.pop();
-    }
-
-    NSArray *result = [NSArray arrayWithArray:scopes];
-    [scopes release];
-    return result;
-}
-
 // Returns the pending exception for this frame (nil if none).
 
 - (id)exception
index 0da51257bb89d5e311d224c74a46f7608320113e..0af559cc73c5a1d9b09e51f11d3aac55ba135c5c 100644 (file)
@@ -175,9 +175,28 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber";
     return [[_private caller] wrapper];
 }
 
+// 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),
+// whose properties are the global variables.
+
 - (NSArray *)scopeChain
 {
-    return [_private scopeChain];
+    ExecState* state = [_private state];
+    if (!state->scopeNode())  // global frame
+        return [NSArray arrayWithObject:[_private globalObject]];
+
+    ScopeChain      chain  = state->scopeChain();
+    NSMutableArray *scopes = [[NSMutableArray alloc] init];
+
+    while (!chain.isEmpty()) {
+        [scopes addObject:[_private _convertValueToObjcValue:chain.top()]];
+        chain.pop();
+    }
+
+    NSArray *result = [NSArray arrayWithArray:scopes];
+    [scopes release];
+    return result;
 }
 
 // Returns the name of the function for this frame, if available.