Objective-C API: JSValue should implement init and return nil in exceptional cases
authormhahnenberg@apple.com <mhahnenberg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Mar 2013 00:16:30 +0000 (00:16 +0000)
committermhahnenberg@apple.com <mhahnenberg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Mar 2013 00:16:30 +0000 (00:16 +0000)
https://bugs.webkit.org/show_bug.cgi?id=111487

Reviewed by Darin Adler.

* API/JSValue.mm:
(-[JSValue init]): We return nil here because there is no way to get the instance into a coherent state
without a JSContext.
(-[JSValue initWithValue:inContext:]): Similarly, we should also return nil here if either of the arguments is 0.

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

Source/JavaScriptCore/API/JSValue.mm
Source/JavaScriptCore/ChangeLog

index 3fff92d..6958f68 100644 (file)
@@ -948,13 +948,20 @@ JSValueRef valueInternalValue(JSValue * value)
     return [context wrapperForJSObject:value];
 }
 
+- (JSValue *)init
+{
+    return nil;
+}
+
 - (JSValue *)initWithValue:(JSValueRef)value inContext:(JSContext *)context
 {
+    if (!value || !context)
+        return nil;
+
     self = [super init];
     if (!self)
         return nil;
 
-    ASSERT(value);
     _context = [context retain];
     m_value = value;
     JSValueProtect([_context globalContextRef], m_value);
index 177e0c4..2574fc8 100644 (file)
@@ -1,3 +1,15 @@
+2013-03-05  Mark Hahnenberg  <mhahnenberg@apple.com>
+
+        Objective-C API: JSValue should implement init and return nil in exceptional cases
+        https://bugs.webkit.org/show_bug.cgi?id=111487
+
+        Reviewed by Darin Adler.
+
+        * API/JSValue.mm:
+        (-[JSValue init]): We return nil here because there is no way to get the instance into a coherent state
+        without a JSContext.
+        (-[JSValue initWithValue:inContext:]): Similarly, we should also return nil here if either of the arguments is 0.
+
 2013-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>
 
         Unreviewed, rolling out r144708.