<?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>190343</bug_id>
          
          <creation_ts>2018-10-07 17:27:13 -0700</creation_ts>
          <short_desc>[JSC] JSON.stringify can accept call-with-no-arguments</short_desc>
          <delta_ts>2018-10-15 06:48:16 -0700</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>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Prasanneswar Ramachandran">rvspeswar</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1466969</commentid>
    <comment_count>0</comment_count>
    <who name="Prasanneswar Ramachandran">rvspeswar</who>
    <bug_when>2018-10-07 17:27:13 -0700</bug_when>
    <thetext>In JSON3 , they have used to stringify the non passing parameter as JSON. Stringify () so in json object omits this due to non argument count. Herewith need to add the dummy stringify for the JSON3 object. If added that JSON works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466970</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-07 17:27:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/45077333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1467172</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-08 13:16:49 -0700</bug_when>
    <thetext>Can we have the code reproducing the issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468097</commentid>
    <comment_count>3</comment_count>
    <who name="Prasanneswar Ramachandran">rvspeswar</who>
    <bug_when>2018-10-11 11:39:14 -0700</bug_when>
    <thetext>Hi,

Just save a cookies in the name of &quot;{&quot;times:{&quot;time&quot; :&quot;0&quot;}&quot; with JSON3 library which already having in GITHUB  and stringify the mentioned JSON string . webkit enters with 0 argument count using the JSON3. 
Note:
If we dont use the JSON3 code in our testcode we can&apos;t reproduce the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468099</commentid>
    <comment_count>4</comment_count>
    <who name="Prasanneswar Ramachandran">rvspeswar</who>
    <bug_when>2018-10-11 11:43:35 -0700</bug_when>
    <thetext>Hi,

Just save a cookies in the name of &quot;{&quot;times:{&quot;time&quot; :&quot;0&quot;}&quot; with JSON3 library which already having in GITHUB  and stringify the mentioned JSON string . webkit enters with 0 argument count using the JSON3. 
Note:
If we dont use the JSON3 code in our testcode we can&apos;t reproduce the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468100</commentid>
    <comment_count>5</comment_count>
    <who name="Prasanneswar Ramachandran">rvspeswar</who>
    <bug_when>2018-10-11 11:45:51 -0700</bug_when>
    <thetext>For this I have fixed as below mentioned

// ECMA-262 v5 15.12.3
EncodedJSValue JSC_HOST_CALL JSONProtoFuncStringify(ExecState* exec)
{
    if (!exec-&gt;argumentCount())
        return throwVMError(exec, createError(exec, ASCIILiteral(&quot;No input to stringify&quot;)));
    LocalScope scope(exec-&gt;globalData());
    Local&lt;Unknown&gt; value(exec-&gt;globalData(), exec-&gt;argument(0));
    Local&lt;Unknown&gt; replacer(exec-&gt;globalData(), exec-&gt;argument(1));
    Local&lt;Unknown&gt; space(exec-&gt;globalData(), exec-&gt;argument(2));
    return JSValue::encode(Stringifier(exec, replacer, space).stringify(value).get());
}

Modified:
========
// ECMA-262 v5 15.12.3
EncodedJSValue JSC_HOST_CALL JSONProtoFuncStringify(ExecState* exec)
{
    if (!exec-&gt;argumentCount()){
   LocalScope scope(exec-&gt;globalData());
    Local&lt;Unknown&gt; value(exec-&gt;globalData(), jsnull());
    Local&lt;Unknown&gt; replacer(exec-&gt;globalData(), jsnull());
    Local&lt;Unknown&gt; space(exec-&gt;globalData(), jsnull());
    return JSValue::encode(Stringifier(exec, replacer, space).stringify(value).get()

}
    LocalScope scope(exec-&gt;globalData());
    Local&lt;Unknown&gt; value(exec-&gt;globalData(), exec-&gt;argument(0));
    Local&lt;Unknown&gt; replacer(exec-&gt;globalData(), exec-&gt;argument(1));
    Local&lt;Unknown&gt; space(exec-&gt;globalData(), exec-&gt;argument(2));
    return JSValue::encode(Stringifier(exec, replacer, space).stringify(value).get());
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468768</commentid>
    <comment_count>6</comment_count>
      <attachid>352254</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-13 08:29:57 -0700</bug_when>
    <thetext>Created attachment 352254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468774</commentid>
    <comment_count>7</comment_count>
      <attachid>352254</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-10-13 10:44:13 -0700</bug_when>
    <thetext>Comment on attachment 352254
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468779</commentid>
    <comment_count>8</comment_count>
    <who name="Prasanneswar Ramachandran">rvspeswar</who>
    <bug_when>2018-10-13 12:23:42 -0700</bug_when>
    <thetext>HI,

Yes this is correct and added as expected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469177</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-10-15 06:48:16 -0700</bug_when>
    <thetext>Committed r237095: &lt;https://trac.webkit.org/changeset/237095&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352254</attachid>
            <date>2018-10-13 08:29:57 -0700</date>
            <delta_ts>2018-10-13 10:44:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190343-20181014002956.patch</filename>
            <type>text/plain</type>
            <size>3101</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MGY1ZWJiYTY5Y2FhNDFjZDdlM2IyZWFlYjBkY2Q5MjY4MTcwNzk3Li4wMTJiZDI5NWQxZmRkYjNh
MTkzZDgxMWYyZTcwZDYyNzFlZjRiMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOC0xMC0xMyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93
c3RhcnQub3JnPgorCisgICAgICAgIFtKU0NdIEpTT04uc3RyaW5naWZ5IGNhbiBhY2NlcHQgY2Fs
bC13aXRoLW5vLWFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkwMzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSlNPTi5zdHJpbmdpZnkgY2FuIGFjY2VwdCBgSlNPTi5zdHJpbmdpZnkoKWAg
Y2FsbCAoY2FsbC13aXRoLW5vLWFyZ3VtZW50cykgYWNjb3JkaW5nIHRvIHRoZSBzcGVjWzFdLgor
ICAgICAgICBJbnN0ZWFkIG9mIHRocm93aW5nIGFuIGVycm9yLCB3ZSBzaG91bGQgdGFrZSB0aGUg
Zmlyc3QgYXJndW1lbnQgYXMgYHVuZGVmaW5lZGAgaWYgaXQgaXMgbm90IGdpdmVuLgorCisgICAg
ICAgIFsxXTogaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtanNvbi5zdHJpbmdp
ZnkKKworICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
T05Qcm90b0Z1bmNTdHJpbmdpZnkpOgorCiAyMDE4LTEwLTExICBHdWlsbGF1bWUgRW1vbnQgIDxn
dWlqZW1vbnRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgZ2NjIHdhcm5pbmdz
IG9uIG1pcHMgYW5kIGFybXY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCmluZGV4IDI5OTg3MDJjMjViZjQ3NjZhMjBhZDY0M2YzNzQ5NjFiOGRiYzQ5ZjYu
LjNkYzJiOGY3NmY2Y2IxN2QzNWFhMTRjZDQ1YTJiNWE2YjU2MjAzOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC04MjksMTEgKzgyOSw5IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1N0cmluZ2lmeShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQo
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBzY29wZSwgY3JlYXRlRXJyb3Io
ZXhlYywgIk5vIGlucHV0IHRvIHN0cmluZ2lmeSJfcykpOwogICAgIFN0cmluZ2lmaWVyIHN0cmlu
Z2lmaWVyKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpLCBleGVjLT5hcmd1bWVudCgyKSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShzdHJpbmdpZmllci5zdHJpbmdpZnkoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoc3RyaW5naWZpZXIuc3RyaW5naWZ5KGV4ZWMtPmFyZ3VtZW50KDApKSkpOwogfQog
CiBKU1ZhbHVlIEpTT05QYXJzZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYganNvbikK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ODE5NmIwMDYxZTI4OGJhMDdhMWUyOTFkNjZkNzFiMzViZTg4MmVjMC4uY2I5ZDUyYzYzNzZmNTU1
NjY4NjgxMWVkNDk2MGI1OGE2OWM2MzlmZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0xMC0xMyAgWXVz
dWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgorCisgICAgICAgIFtKU0Nd
IEpTT04uc3RyaW5naWZ5IGNhbiBhY2NlcHQgY2FsbC13aXRoLW5vLWFyZ3VtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMzQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvanNvbi1z
dHJpbmdpZnktbm8tYXJndW1lbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKwog
MjAxOC0xMC0wOCAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIFtKU0NdIEpTQyBzaG91bGQgaGF2ZSAicGFyc2VGdW5jdGlvbiIgdG8gb3B0aW1p
emUgRnVuY3Rpb24gY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2pzb24t
c3RyaW5naWZ5LW5vLWFyZ3VtZW50cy5qcyBiL0pTVGVzdHMvc3RyZXNzL2pzb24tc3RyaW5naWZ5
LW5vLWFyZ3VtZW50cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDVhYzI1MzkwNTUxMGMyZDkyY2EzMDVjMjBm
ZDE3MTAxZmRiZGIyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvanNvbi1zdHJp
bmdpZnktbm8tYXJndW1lbnRzLmpzCkBAIC0wLDAgKzEsNyBAQAorZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3Nob3VsZEJl
KEpTT04uc3RyaW5naWZ5KCksIHVuZGVmaW5lZCk7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeSh1
bmRlZmluZWQpLCB1bmRlZmluZWQpOwo=
</data>
<flag name="review"
          id="369560"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>