<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>111487</bug_id>
          
          <creation_ts>2013-03-05 15:05:37 -0800</creation_ts>
          <short_desc>Objective-C API: JSValue should implement init and return nil in exceptional cases</short_desc>
          <delta_ts>2013-03-05 16:18:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848124</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-05 15:05:37 -0800</bug_when>
    <thetext>In keeping with good Objective-C practice, JSValue should override init and throw an exception since there&apos;s not really a way to put the returned object in a coherent state that won&apos;t crash at some point later in time. Better to fail fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848129</commentid>
    <comment_count>1</comment_count>
      <attachid>191576</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-05 15:07:49 -0800</bug_when>
    <thetext>Created attachment 191576
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848130</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-05 15:09:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/13351901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848132</commentid>
    <comment_count>3</comment_count>
      <attachid>191576</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-05 15:12:54 -0800</bug_when>
    <thetext>Comment on attachment 191576
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=191576&amp;action=review

&gt; Source/JavaScriptCore/API/JSValue.mm:955
&gt; +    @throw [NSException exceptionWithName:@&quot;InvalidMessageException&quot;
&gt; +                        reason:@&quot;JSValue cannot safely support init.&quot;
&gt; +                        userInfo:nil];

Why throw? Just return nil. And the initWithValue method should also return nil when the arguments are nil. That’s how Cocoa init functions normally work. Unless I’m missing some compelling argument for throwing exceptions instead.

Please don’t align the lines like this. WebKit coding style says just indent 4 spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848144</commentid>
    <comment_count>4</comment_count>
      <attachid>191579</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-05 15:20:00 -0800</bug_when>
    <thetext>Created attachment 191579
return nil</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848146</commentid>
    <comment_count>5</comment_count>
      <attachid>191579</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-05 15:21:10 -0800</bug_when>
    <thetext>Comment on attachment 191579
return nil

Need to update ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848151</commentid>
    <comment_count>6</comment_count>
      <attachid>191582</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-05 15:24:19 -0800</bug_when>
    <thetext>Created attachment 191582
updated change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848213</commentid>
    <comment_count>7</comment_count>
      <attachid>191582</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 16:18:37 -0800</bug_when>
    <thetext>Comment on attachment 191582
updated change log

Clearing flags on attachment: 191582

Committed r144843: &lt;http://trac.webkit.org/changeset/144843&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848214</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 16:18:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191576</attachid>
            <date>2013-03-05 15:07:49 -0800</date>
            <delta_ts>2013-03-05 15:20:00 -0800</delta_ts>
            <desc>patch</desc>
            <filename>the.patch</filename>
            <type>text/plain</type>
            <size>1545</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0ODI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTAzLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiBKU1ZhbHVlIHNob3VsZCBpbXBsZW1lbnQgaW5pdCBh
bmQgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTE0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiBrZWVwaW5nIHdpdGggZ29vZCBPYmplY3RpdmUtQyBwcmFjdGljZSwg
SlNWYWx1ZSBzaG91bGQgb3ZlcnJpZGUgaW5pdCBhbmQgdGhyb3cgYW4gZXhjZXB0aW9uIHNpbmNl
IAorICAgICAgICB0aGVyZSdzIG5vdCByZWFsbHkgYSB3YXkgdG8gcHV0IHRoZSByZXR1cm5lZCBv
YmplY3QgaW4gYSBjb2hlcmVudCBzdGF0ZSB0aGF0IHdvbid0IGNyYXNoIGF0IHNvbWUgcG9pbnQg
CisgICAgICAgIGxhdGVyIGluIHRpbWUuIEJldHRlciB0byBmYWlsIGZhc3QuCisKKyAgICAgICAg
KiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKC1bSlNWYWx1ZSBpbml0XSk6CisKIDIwMTMtMDMt
MDUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDQ3MDguCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTVmFsdWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLm1tCShyZXZpc2lvbiAxNDQ4MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmFsdWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTk0OCw2ICs5NDgsMTMgQEAgKyAo
SlNWYWx1ZSAqKXZhbHVlV2l0aFZhbHVlOihKU1ZhbHVlUmVmKQogICAgIHJldHVybiBbY29udGV4
dCB3cmFwcGVyRm9ySlNPYmplY3Q6dmFsdWVdOwogfQogCistIChKU1ZhbHVlICopaW5pdAorewor
ICAgIEB0aHJvdyBbTlNFeGNlcHRpb24gZXhjZXB0aW9uV2l0aE5hbWU6QCJJbnZhbGlkTWVzc2Fn
ZUV4Y2VwdGlvbiIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjpAIkpTVmFsdWUgY2Fu
bm90IHNhZmVseSBzdXBwb3J0IGluaXQuIgorICAgICAgICAgICAgICAgICAgICAgICAgdXNlcklu
Zm86bmlsXTsKK30KKwogLSAoSlNWYWx1ZSAqKWluaXRXaXRoVmFsdWU6KEpTVmFsdWVSZWYpdmFs
dWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0CiB7CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0XTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191579</attachid>
            <date>2013-03-05 15:20:00 -0800</date>
            <delta_ts>2013-03-05 15:24:19 -0800</delta_ts>
            <desc>return nil</desc>
            <filename>the.patch</filename>
            <type>text/plain</type>
            <size>1608</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0ODI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTAzLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiBKU1ZhbHVlIHNob3VsZCBpbXBsZW1lbnQgaW5pdCBh
bmQgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTE0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiBrZWVwaW5nIHdpdGggZ29vZCBPYmplY3RpdmUtQyBwcmFjdGljZSwg
SlNWYWx1ZSBzaG91bGQgb3ZlcnJpZGUgaW5pdCBhbmQgdGhyb3cgYW4gZXhjZXB0aW9uIHNpbmNl
IAorICAgICAgICB0aGVyZSdzIG5vdCByZWFsbHkgYSB3YXkgdG8gcHV0IHRoZSByZXR1cm5lZCBv
YmplY3QgaW4gYSBjb2hlcmVudCBzdGF0ZSB0aGF0IHdvbid0IGNyYXNoIGF0IHNvbWUgcG9pbnQg
CisgICAgICAgIGxhdGVyIGluIHRpbWUuIEJldHRlciB0byBmYWlsIGZhc3QuCisKKyAgICAgICAg
KiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKC1bSlNWYWx1ZSBpbml0XSk6CisKIDIwMTMtMDMt
MDUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDQ3MDguCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTVmFsdWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLm1tCShyZXZpc2lvbiAxNDQ4MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmFsdWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTk0OCwxMyArOTQ4LDIwIEBAICsg
KEpTVmFsdWUgKil2YWx1ZVdpdGhWYWx1ZTooSlNWYWx1ZVJlZikKICAgICByZXR1cm4gW2NvbnRl
eHQgd3JhcHBlckZvckpTT2JqZWN0OnZhbHVlXTsKIH0KIAorLSAoSlNWYWx1ZSAqKWluaXQKK3sK
KyAgICByZXR1cm4gbmlsOworfQorCiAtIChKU1ZhbHVlICopaW5pdFdpdGhWYWx1ZTooSlNWYWx1
ZVJlZil2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQKIHsKKyAgICBpZiAoIXZh
bHVlIHx8ICFjb250ZXh0KQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgc2VsZiA9IFtzdXBl
ciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBU1NF
UlQodmFsdWUpOwogICAgIF9jb250ZXh0ID0gW2NvbnRleHQgcmV0YWluXTsKICAgICBtX3ZhbHVl
ID0gdmFsdWU7CiAgICAgSlNWYWx1ZVByb3RlY3QoW19jb250ZXh0IGdsb2JhbENvbnRleHRSZWZd
LCBtX3ZhbHVlKTsK
</data>
<flag name="review"
          id="212582"
          type_id="1"
          status="-"
          setter="mhahnenberg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191582</attachid>
            <date>2013-03-05 15:24:19 -0800</date>
            <delta_ts>2013-03-05 16:18:37 -0800</delta_ts>
            <desc>updated change log</desc>
            <filename>the.patch</filename>
            <type>text/plain</type>
            <size>1588</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0ODI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDEzLTAzLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiBKU1ZhbHVlIHNob3VsZCBpbXBsZW1lbnQgaW5pdCBh
bmQgcmV0dXJuIG5pbCBpbiBleGNlcHRpb25hbCBjYXNlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKC1b
SlNWYWx1ZSBpbml0XSk6IFdlIHJldHVybiBuaWwgaGVyZSBiZWNhdXNlIHRoZXJlIGlzIG5vIHdh
eSB0byBnZXQgdGhlIGluc3RhbmNlIGludG8gYSBjb2hlcmVudCBzdGF0ZQorICAgICAgICB3aXRo
b3V0IGEgSlNDb250ZXh0LgorICAgICAgICAoLVtKU1ZhbHVlIGluaXRXaXRoVmFsdWU6aW5Db250
ZXh0Ol0pOiBTaW1pbGFybHksIHdlIHNob3VsZCBhbHNvIHJldHVybiBuaWwgaGVyZSBpZiBlaXRo
ZXIgb2YgdGhlIGFyZ3VtZW50cyBpcyAwLgorCiAyMDEzLTAzLTA1ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTQ0NzA4LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQkocmV2
aXNpb24gMTQ0ODI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC05NDgsMTMgKzk0OCwyMCBAQCArIChKU1ZhbHVlICopdmFsdWVXaXRo
VmFsdWU6KEpTVmFsdWVSZWYpCiAgICAgcmV0dXJuIFtjb250ZXh0IHdyYXBwZXJGb3JKU09iamVj
dDp2YWx1ZV07CiB9CiAKKy0gKEpTVmFsdWUgKilpbml0Cit7CisgICAgcmV0dXJuIG5pbDsKK30K
KwogLSAoSlNWYWx1ZSAqKWluaXRXaXRoVmFsdWU6KEpTVmFsdWVSZWYpdmFsdWUgaW5Db250ZXh0
OihKU0NvbnRleHQgKiljb250ZXh0CiB7CisgICAgaWYgKCF2YWx1ZSB8fCAhY29udGV4dCkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFz
ZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVNTRVJUKHZhbHVlKTsKICAgICBfY29u
dGV4dCA9IFtjb250ZXh0IHJldGFpbl07CiAgICAgbV92YWx1ZSA9IHZhbHVlOwogICAgIEpTVmFs
dWVQcm90ZWN0KFtfY29udGV4dCBnbG9iYWxDb250ZXh0UmVmXSwgbV92YWx1ZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>