2006-12-21 Mark Rowe <bdash@webkit.org>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 Dec 2006 02:20:51 +0000 (02:20 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 Dec 2006 02:20:51 +0000 (02:20 +0000)
        Reviewed by Tim Hatcher.

        http://bugs.webkit.org/show_bug.cgi?id=11922
        Bug 11922: REGRESSION(r17128): Drosera no longer shows local variables in stack frame

        * Drosera/DebuggerDocument.m:
        (-[WebScriptObject webScriptAttributeKeysForScriptObject:]): Use an anonymous function with function.call to
        ensure that the properties are being retrieved from the correct scope object.

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

WebKitTools/ChangeLog
WebKitTools/Drosera/DebuggerDocument.m

index 083915d..08d1102 100644 (file)
@@ -1,3 +1,14 @@
+2006-12-21  Mark Rowe  <bdash@webkit.org>
+
+        Reviewed by Tim Hatcher.
+
+        http://bugs.webkit.org/show_bug.cgi?id=11922
+        Bug 11922: REGRESSION(r17128): Drosera no longer shows local variables in stack frame
+
+        * Drosera/DebuggerDocument.m:
+        (-[WebScriptObject webScriptAttributeKeysForScriptObject:]): Use an anonymous function with function.call to
+        ensure that the properties are being retrieved from the correct scope object.
+
 2006-12-21  Lars Knoll <lars@trolltech.com>
 
         Reviewed by Zack
index b844366..d8a9806 100644 (file)
@@ -113,19 +113,16 @@ static NSString *DebuggerStepOutToolbarItem = @"DebuggerStepOutToolbarItem";
 
 - (NSArray *)webScriptAttributeKeysForScriptObject:(WebScriptObject *)object
 {
-    [object evaluateWebScript:@"this.__drosera_introspection = function () { var result = new Array(); for (var x in this) { result.push(x); } return result; }"];
+    WebScriptObject *enumerateAttributes = [object evaluateWebScript:@"(function () { var result = new Array(); for (var x in this) { result.push(x); } return result; })"];
 
     NSMutableArray *result = [[NSMutableArray alloc] init];
-    WebScriptObject *variables = [object callWebScriptMethod:@"__drosera_introspection" withArguments:nil];
+    WebScriptObject *variables = [enumerateAttributes callWebScriptMethod:@"call" withArguments:[NSArray arrayWithObject:object]];
     unsigned length = [variables count];
     for (unsigned i = 0; i < length; i++) {
         NSString *key = [variables webScriptValueAtIndex:i];
-        if (![key isEqualToString:@"__drosera_introspection"])
-            [result addObject:key];
+        [result addObject:key];
     }
 
-    [object removeWebScriptKey:@"__drosera_introspection"];
-
     [result sortUsingSelector:@selector(compare:)];
     return [result autorelease];
 }