[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:27:06 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 68ba4660d2c2577adc972794b33099f2b964706a
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Feb 18 22:30:23 2004 +0000

    	Added NSNumber/Number conversion.
    
    	Removed some unnecessary KJS:: namespace specifiers.
    
            Reviewed by Ken.
    
            * bindings/objc/objc_utility.mm:
            (KJS::Bindings::convertValueToObjcValue):
            (KJS::Bindings::convertObjcValueToValue):
            * bindings/runtime_array.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6098 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 82e69bf..efe54b3 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,5 +1,18 @@
 2004-02-18  Richard Williamson   <rjw at apple.com>
 
+	Added NSNumber/Number conversion.
+
+	Removed some unnecessary KJS:: namespace specifiers.
+
+        Reviewed by Ken.
+
+        * bindings/objc/objc_utility.mm:
+        (KJS::Bindings::convertValueToObjcValue):
+        (KJS::Bindings::convertObjcValueToValue):
+        * bindings/runtime_array.h:
+
+2004-02-18  Richard Williamson   <rjw at apple.com>
+
 	Added support for export NSArrays.
 
 	Updated valueAt() to take an ExecState so we can throw
diff --git a/JavaScriptCore/bindings/objc/objc_utility.mm b/JavaScriptCore/bindings/objc/objc_utility.mm
index 01adc68..600ccd6 100644
--- a/JavaScriptCore/bindings/objc/objc_utility.mm
+++ b/JavaScriptCore/bindings/objc/objc_utility.mm
@@ -26,6 +26,7 @@
 
 #include <JavascriptCore/internal.h>
 
+#include <runtime_array.h>
 #include <runtime_object.h>
 #include <objc_instance.h>
 #include <objc_utility.h>
@@ -101,9 +102,9 @@ ObjcValue KJS::Bindings::convertValueToObjcValue (KJS::ExecState *exec, KJS::Val
             
             // First see if we have a ObjC instance.
             if (value.type() == KJS::ObjectType){
-                KJS::ObjectImp *objectImp = static_cast<KJS::ObjectImp*>(value.imp());
+                ObjectImp *objectImp = static_cast<ObjectImp*>(value.imp());
                 if (strcmp(objectImp->classInfo()->className, "RuntimeObject") == 0) {
-                    KJS::RuntimeObjectImp *imp = static_cast<KJS::RuntimeObjectImp *>(value.imp());
+                    RuntimeObjectImp *imp = static_cast<RuntimeObjectImp *>(value.imp());
                     ObjcInstance *instance = static_cast<ObjcInstance*>(imp->getInternalInstance());
                     if (instance)
                         result.objectValue = instance->getObject();
@@ -112,14 +113,18 @@ ObjcValue KJS::Bindings::convertValueToObjcValue (KJS::ExecState *exec, KJS::Val
             
             // Convert JavaScript String value to NSString?
             else if (value.type() == KJS::StringType) {
-                KJS::StringImp *s = static_cast<KJS::StringImp*>(value.imp());
+                StringImp *s = static_cast<KJS::StringImp*>(value.imp());
                 UString u = s->value();
                 
                 NSString *string = [NSString stringWithCharacters:(const unichar*)u.data() length:u.size()];
                 result.objectValue = string;
             }
             
-            // FIXME:  Convert scalars to NSNumber.
+            // Convert JavaScript Number value to NSNumber?
+            else if (value.type() == KJS::NumberType) {
+                Number n = Number::dynamicCast(value);
+                result.objectValue = [NSNumber numberWithDouble:n.value()];
+            }
             
             // FIXME:  Deal with other Object types by creating a JavaScriptObjects
         }
@@ -183,9 +188,9 @@ ObjcValue KJS::Bindings::convertValueToObjcValue (KJS::ExecState *exec, KJS::Val
     float
     double
     NSNumber        Number
-    NSString        string
-    NSArray         []
-    id              wrapper
+    NSString        String
+    NSArray         Array
+    id              Object wrapper
     other           should not happen
 
 */
@@ -197,7 +202,13 @@ Value KJS::Bindings::convertObjcValueToValue (KJS::ExecState *exec, void *buffer
         case ObjcObjectType:
             {
                 ObjectStructPtr *obj = (ObjectStructPtr *)buffer;
-                
+
+                /*
+                    NSNumber to Number
+                    NSString to String
+                    NSArray  to Array
+                    id       to Object wrapper
+                */
                 if ([*obj isKindOfClass:[NSString class]]){
                     NSString *string = (NSString *)*obj;
                     unichar *chars;
@@ -208,11 +219,11 @@ Value KJS::Bindings::convertObjcValueToValue (KJS::ExecState *exec, void *buffer
                     aValue = String (u);
                     free((void *)chars);
                 }
-                else if ([*obj isKindOfClass:[NSArray class]]) {
-                    // FIXME:  Deal with NSArray to Array conversions.
-                }
                 else if ([*obj isKindOfClass:[NSNumber class]]) {
-                    // FIXME:  Deal with NSNumber to Number conversions.
+                    aValue = Number([*obj doubleValue]);
+                }
+                else if ([*obj isKindOfClass:[NSArray class]]) {
+                    aValue = Object(new RuntimeArrayImp(new ObjcArray (*obj)));
                 }
                 else {
                     aValue = Object(new RuntimeObjectImp(new ObjcInstance (*obj)));
diff --git a/JavaScriptCore/bindings/runtime_array.h b/JavaScriptCore/bindings/runtime_array.h
index edd08f2..366c871 100644
--- a/JavaScriptCore/bindings/runtime_array.h
+++ b/JavaScriptCore/bindings/runtime_array.h
@@ -26,6 +26,7 @@
 #define _RUNTIME_ARRAY_H_
 
 #include <object.h>
+#include <runtime.h>
 
 
 namespace KJS {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list