[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