Reviewed by Anders.
authorthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Oct 2006 05:02:54 +0000 (05:02 +0000)
committerthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Oct 2006 05:02:54 +0000 (05:02 +0000)
        Bug 10851: Crash with Drosera
        http://bugs.webkit.org/show_bug.cgi?id=10851

        This crash results in an assert in debug builds.

        assert(implementsCall());

        The __drosera_introspection propery was not callable. Now we just assign
        this.__drosera_introspection in the evaluateWebScript call.
        This change also removes one DO message.

        * Drosera/DebuggerDocument.m:
        (-[WebScriptObject webScriptAttributeKeysForScriptObject:]):

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

WebKitTools/ChangeLog
WebKitTools/Drosera/DebuggerDocument.m

index 4576a3f7b441dac4c1763b60e98c4846f9792023..4e6173d6936a6cc58899e1bc4f1f074158d31839 100644 (file)
@@ -1,3 +1,21 @@
+2006-10-18  Timothy Hatcher  <timothy@apple.com>
+
+        Reviewed by Anders.
+
+        Bug 10851: Crash with Drosera
+        http://bugs.webkit.org/show_bug.cgi?id=10851
+
+        This crash results in an assert in debug builds.
+
+        assert(implementsCall());
+
+        The __drosera_introspection propery was not callable. Now we just assign
+        this.__drosera_introspection in the evaluateWebScript call.
+        This change also removes one DO message.
+
+        * Drosera/DebuggerDocument.m:
+        (-[WebScriptObject webScriptAttributeKeysForScriptObject:]):
+
 2006-10-18  Mark Rowe  <bdash@webkit.org>
 
         Reviewed by Tim H.
index a0dae56ee2b124fd5cc80c24c32674dde10dc222..b0303668f0e7a33abb805ca5113f752bf5c9b50e 100644 (file)
@@ -112,8 +112,7 @@ static NSString *DebuggerStepOutToolbarItem = @"DebuggerStepOutToolbarItem";
 
 - (NSArray *)webScriptAttributeKeysForScriptObject:(WebScriptObject *)object
 {
-    WebScriptObject *func = [object evaluateWebScript:@"(function () { var result = new Array(); for (var x in this) { result.push(x); } return result; })"];
-    [object setValue:func forKey:@"__drosera_introspection"];
+    [object evaluateWebScript:@"this.__drosera_introspection = 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];