]> git.saurik.com Git - cycript.git/commitdiff
Serialise JSON WebUndefined's in NSArray as JS elision.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 1 Oct 2009 22:13:09 +0000 (22:13 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 1 Oct 2009 22:13:09 +0000 (22:13 +0000)
Library.mm

index f56e14b1155a48d9bd9616297b84a9438d5028c2..61edf639dc6653952bbb5c40450d3f18d8be5c27 100644 (file)
@@ -113,6 +113,7 @@ JSObjectRef CYMakeObject(JSContextRef context, id object) {
 @end
 
 @interface NSObject (Cycript)
+- (bool) cy$isUndefined;
 - (NSString *) cy$toJSON;
 - (JSValueRef) cy$JSValueInContext:(JSContextRef)context;
 @end
@@ -127,6 +128,10 @@ JSObjectRef CYMakeObject(JSContextRef context, id object) {
 
 @implementation NSObject (Cycript)
 
+- (bool) cy$isUndefined {
+    return false;
+}
+
 - (NSString *) cy$toJSON {
     return [self description];
 }
@@ -139,6 +144,10 @@ JSObjectRef CYMakeObject(JSContextRef context, id object) {
 
 @implementation WebUndefined (Cycript)
 
+- (bool) cy$isUndefined {
+    return true;
+}
+
 - (NSString *) cy$toJSON {
     return @"undefined";
 }
@@ -161,7 +170,12 @@ JSObjectRef CYMakeObject(JSContextRef context, id object) {
             [json appendString:@","];
         else
             comma = true;
-        [json appendString:[object cy$toJSON]];
+        if (![object cy$isUndefined])
+            [json appendString:[object cy$toJSON]];
+        else {
+            [json appendString:@","];
+            comma = false;
+        }
     }
 
     [json appendString:@"]"];