<?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>40067</bug_id>
          
          <creation_ts>2010-06-02 09:26:57 -0700</creation_ts>
          <short_desc>[Qt] The QScriptValuePrivate::CSpecial is too generic.</short_desc>
          <delta_ts>2010-06-03 22:57:58 -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>528+ (Nightly build)</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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233298</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-02 09:26:57 -0700</bug_when>
    <thetext>The QScriptValuePrivate::CSpecial should be divided into a separate states; CNull and CUndefined.
It would simplify the QScriptValue&apos;s design and implementation which should use the m_state member for distinguish between states not m_value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233300</commentid>
    <comment_count>1</comment_count>
      <attachid>57663</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-02 09:35:37 -0700</bug_when>
    <thetext>Created attachment 57663
Fix v1

No functional changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233371</commentid>
    <comment_count>2</comment_count>
      <attachid>57663</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-02 11:44:23 -0700</bug_when>
    <thetext>Comment on attachment 57663
Fix v1

JavaScriptCore/qt/api/qscriptvalue_p.h:54
 +      CUndefined -&gt; QSVP is undefined, but a JSC engine hasn&apos;t been associated yet.
So does this not change the behaviour of QtScript?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233640</commentid>
    <comment_count>3</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-03 00:16:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 57663 [details])
&gt; JavaScriptCore/qt/api/qscriptvalue_p.h:54
&gt;  +      CUndefined -&gt; QSVP is undefined, but a JSC engine hasn&apos;t been associated yet.
&gt; So does this not change the behaviour of QtScript?

True, It is a small design fix :-) The CSpecial state was a bad idea. From the beginning CNull and CUndefined should be separated.

Patch removes conversions between double and enum.
&gt; -    case CSpecial:
&gt; -        return m_number == static_cast&lt;int&gt;(QScriptValue::NullValue);
&gt; +    case CNull:
&gt; +        return true;

Code is simpler, and there is no need to check other variable then m_state to find the real state of QScriptValuePrivate
&gt; -    case CSpecial:
&gt; -        return m_number == QScriptValue::NullValue ? QString::fromLatin1(&quot;null&quot;) : QString::fromLatin1(&quot;undefined&quot;);
&gt; +    case CNull:
&gt; +        return QString::fromLatin1(&quot;null&quot;);
&gt; +    case CUndefined:
&gt; +        return QString::fromLatin1(&quot;undefined&quot;);

I planed to change it in Feb. but the patch touches too many functions in the QSVP, so it was difficult to apply it without conflicts. This is the first time when a QSVP patches are not waiting in bugzilla&apos;s commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234060</commentid>
    <comment_count>4</comment_count>
      <attachid>57663</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-03 22:57:52 -0700</bug_when>
    <thetext>Comment on attachment 57663
Fix v1

Clearing flags on attachment: 57663

Committed r60655: &lt;http://trac.webkit.org/changeset/60655&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234061</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-03 22:57:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57663</attachid>
            <date>2010-06-02 09:35:37 -0700</date>
            <delta_ts>2010-06-03 22:57:52 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>tmp.diff</filename>
            <type>text/plain</type>
            <size>5944</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlZDEyNTRlLi4xYjdjZDhkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTAtMDYtMDIgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3
IHN0YXRlcyBpbiBRU2NyaXB0VmFsdWVQcml2YXRlLgorCisgICAgICAgIFRoZSBDU3BlY2lhbCBz
dGF0ZSB3YXMgZGl2aWRlZCBpbnRvIENOdWxsIGFuZCBDVW5kZWZpbmVkLiBJdCBzaW1wbGlmeQor
ICAgICAgICB0aGUgUVNjcmlwdFZhbHVlIGNvZGUgYnkgYXZvaWRpbmcgYSBmZXcgImNhc3QiIGFu
ZCAiaWYiLgorICAgICAgICBNb3Jlb3ZlciB0aGUgTVNWUyBjb21waWxlciBkaWRuJ3QgbGlrZSBj
YXN0aW5nIGJldHdlZW4gYSBkb3VibGUgYW5kIGFuCisgICAgICAgIGVudW0gd2hpY2ggaXMgYXZv
aWRlZCBub3cuCisKKyAgICAgICAgW1F0XSBUaGUgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Q1NwZWNp
YWwgaXMgdG9vIGdlbmVyaWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDA2NworCisgICAgICAgICogcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmg6Cisg
ICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjopOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJp
dmF0ZTo6UVNjcmlwdFZhbHVlUHJpdmF0ZSk6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRl
Ojppc051bGwpOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aXNVbmRlZmluZWQpOgor
ICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9TdHJpbmcpOgorICAgICAgICAoUVNjcmlw
dFZhbHVlUHJpdmF0ZTo6dG9OdW1iZXIpOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
dG9Cb29sKToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvT2JqZWN0KToKKyAgICAg
ICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmFzc2lnbkVuZ2luZSk6CisgICAgICAgIChRU2NyaXB0
VmFsdWVQcml2YXRlOjppc051bWJlckJhc2VkKToKKwogMjAxMC0wNi0wMiAgU3RlcmxpbmcgU3dp
Z2FydCAgPHNzd2lnYXJ0QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
TGV2aW4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3Au
aCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCmluZGV4IDU5NTljMDMu
LmI0YjY5ZWMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVf
cC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCkBAIC01MCw4
ICs1MCw4IEBAIGNsYXNzIFFTY3JpcHRWYWx1ZTsKICAgICAgICAgdmFsdWUgaXMga2VwdCBpbiBt
X251bWJlcgogICAgIENCb29sIC0+IFFTVlAgaXMgY3JlYXRlZCBmcm9tIGJvb2wgYW5kIG5vIEpT
QyBlbmdpbmUgaGFzIGJlZW4gYXNzb2NpYXRlZCB5ZXQuIEN1cnJlbnQgdmFsdWUgaXMga2VwdAog
ICAgICAgICBpbiBtX251bWJlcgotICAgIENTcGVjaWFsIC0+IFFTVlAgaXMgVW5kZWZpbmVkIG9y
IE51bGwsIGJ1dCBhIEpTQyBlbmdpbmUgaGFzbid0IGJlZW4gYXNzb2NpYXRlZCB5ZXQsIGN1cnJl
bnQgdmFsdWUKLSAgICAgICAgaXMga2VwdCBpbiBtX251bWJlciAoY2FzdCBvZiBRU2NyaXB0VmFs
dWU6OlNwZWNpYWxWYWx1ZSkKKyAgICBDTnVsbCAtPiBRU1ZQIGlzIG51bGwsIGJ1dCBhIEpTQyBl
bmdpbmUgaGFzbid0IGJlZW4gYXNzb2NpYXRlZCB5ZXQuCisgICAgQ1VuZGVmaW5lZCAtPiBRU1ZQ
IGlzIHVuZGVmaW5lZCwgYnV0IGEgSlNDIGVuZ2luZSBoYXNuJ3QgYmVlbiBhc3NvY2lhdGVkIHll
dC4KICAgICBKU1ZhbHVlIC0+IFFTVlAgaXMgYXNzb2NpYXRlZCB3aXRoIGVuZ2luZSwgYnV0IHRo
ZXJlIGlzIG5vIGluZm9ybWF0aW9uIGFib3V0IHJlYWwgdHlwZSwgdGhlIHN0YXRlCiAgICAgICAg
IGhhdmUgcmVhbGx5IHNob3J0IGxpdmUgY3ljbGUuIE5vcm1hbGx5IGl0IGlzIGNyZWF0ZWQgYXMg
YSBmdW5jdGlvbiBjYWxsIHJlc3VsdC4KICAgICBKU1ByaW1pdGl2ZSAtPiBRU1ZQIGlzIGFzc29j
aWF0ZWQgd2l0aCBlbmdpbmUsIGFuZCBpdCBpcyBzdXJlIHRoYXQgaXQgaXNuJ3QgYSBKYXZhU2Ny
aXB0IG9iamVjdC4KQEAgLTEyNSw3ICsxMjUsOCBAQCBwcml2YXRlOgogICAgICAgICBDU3RyaW5n
ID0gMHgxMDAwLAogICAgICAgICBDTnVtYmVyLAogICAgICAgICBDQm9vbCwKLSAgICAgICAgQ1Nw
ZWNpYWwsCisgICAgICAgIENOdWxsLAorICAgICAgICBDVW5kZWZpbmVkLAogICAgICAgICBKU1Zh
bHVlID0gMHgyMDAwLCAvLyBKUyB2YWx1ZXMgYXJlIGVxdWFsIG9yIGhpZ2hlciB0aGVuIHRoaXMg
dmFsdWUuCiAgICAgICAgIEpTUHJpbWl0aXZlLAogICAgICAgICBKU09iamVjdApAQCAtMjA2LDgg
KzIwNyw3IEBAIFFTY3JpcHRWYWx1ZVByaXZhdGU6OlFTY3JpcHRWYWx1ZVByaXZhdGUocXNyZWFs
IG51bWJlcikKIH0KIAogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6UVNjcmlwdFZhbHVlUHJpdmF0ZShR
U2NyaXB0VmFsdWU6OlNwZWNpYWxWYWx1ZSB2YWx1ZSkKLSAgICA6IG1fc3RhdGUoQ1NwZWNpYWwp
Ci0gICAgLCBtX251bWJlcih2YWx1ZSkKKyAgICA6IG1fc3RhdGUodmFsdWUgPT0gUVNjcmlwdFZh
bHVlOjpOdWxsVmFsdWUgPyBDTnVsbCA6IENVbmRlZmluZWQpCiAgICAgLCBtX3ZhbHVlKDApCiB7
CiB9CkBAIC0zMjUsOCArMzI1LDggQEAgYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjppc051bWJl
cigpCiBib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzTnVsbCgpCiB7CiAgICAgc3dpdGNoICht
X3N0YXRlKSB7Ci0gICAgY2FzZSBDU3BlY2lhbDoKLSAgICAgICAgcmV0dXJuIG1fbnVtYmVyID09
IHN0YXRpY19jYXN0PGludD4oUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpOworICAgIGNhc2UgQ051
bGw6CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgSlNWYWx1ZToKICAgICAgICAgaWYg
KHJlZmluZWRKU1ZhbHVlKCkgIT0gSlNQcmltaXRpdmUpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0zNTcsOCArMzU3LDggQEAgYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjppc1N0cmlu
ZygpCiBib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzVW5kZWZpbmVkKCkKIHsKICAgICBzd2l0
Y2ggKG1fc3RhdGUpIHsKLSAgICBjYXNlIENTcGVjaWFsOgotICAgICAgICByZXR1cm4gbV9udW1i
ZXIgPT0gc3RhdGljX2Nhc3Q8aW50PihRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKTsKKyAg
ICBjYXNlIENVbmRlZmluZWQ6CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgSlNWYWx1
ZToKICAgICAgICAgaWYgKHJlZmluZWRKU1ZhbHVlKCkgIT0gSlNQcmltaXRpdmUpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC00MjIsOCArNDIyLDEwIEBAIFFTdHJpbmcgUVNjcmlwdFZh
bHVlUHJpdmF0ZTo6dG9TdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gbV9zdHJpbmc7CiAg
ICAgY2FzZSBDTnVtYmVyOgogICAgICAgICByZXR1cm4gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJp
bmcobV9udW1iZXIpOwotICAgIGNhc2UgQ1NwZWNpYWw6Ci0gICAgICAgIHJldHVybiBtX251bWJl
ciA9PSBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSA/IFFTdHJpbmc6OmZyb21MYXRpbjEoIm51bGwi
KSA6IFFTdHJpbmc6OmZyb21MYXRpbjEoInVuZGVmaW5lZCIpOworICAgIGNhc2UgQ051bGw6Cisg
ICAgICAgIHJldHVybiBRU3RyaW5nOjpmcm9tTGF0aW4xKCJudWxsIik7CisgICAgY2FzZSBDVW5k
ZWZpbmVkOgorICAgICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbUxhdGluMSgidW5kZWZpbmVkIik7
CiAgICAgY2FzZSBKU1ZhbHVlOgogICAgIGNhc2UgSlNQcmltaXRpdmU6CiAgICAgY2FzZSBKU09i
amVjdDoKQEAgLTQ0NiwxMCArNDQ4LDExIEBAIHFzcmVhbCBRU2NyaXB0VmFsdWVQcml2YXRlOjp0
b051bWJlcigpIGNvbnN0CiAgICAgICAgIHJldHVybiBtX251bWJlcjsKICAgICBjYXNlIENCb29s
OgogICAgICAgICByZXR1cm4gbV9udW1iZXIgPyAxIDogMDsKKyAgICBjYXNlIENOdWxsOgogICAg
IGNhc2UgSW52YWxpZDoKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBDU3BlY2lhbDoKLSAg
ICAgICAgcmV0dXJuIG1fbnVtYmVyID09IFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlID8gMCA6IHFR
TmFOKCk7CisgICAgY2FzZSBDVW5kZWZpbmVkOgorICAgICAgICByZXR1cm4gcVFOYU4oKTsKICAg
ICBjYXNlIENTdHJpbmc6CiAgICAgICAgIGJvb2wgb2s7CiAgICAgICAgIHFzcmVhbCByZXN1bHQg
PSBtX3N0cmluZy50b0RvdWJsZSgmb2spOwpAQCAtNDgwLDcgKzQ4Myw4IEBAIGJvb2wgUVNjcmlw
dFZhbHVlUHJpdmF0ZTo6dG9Cb29sKCkgY29uc3QKICAgICBjYXNlIENCb29sOgogICAgICAgICBy
ZXR1cm4gbV9udW1iZXI7CiAgICAgY2FzZSBJbnZhbGlkOgotICAgIGNhc2UgQ1NwZWNpYWw6Cisg
ICAgY2FzZSBDTnVsbDoKKyAgICBjYXNlIENVbmRlZmluZWQ6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBjYXNlIENTdHJpbmc6CiAgICAgICAgIHJldHVybiBtX3N0cmluZy5sZW5ndGgoKTsK
QEAgLTUzNiw3ICs1NDAsOCBAQCBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2
YXRlOjp0b09iamVjdChRU2NyaXB0RW5naW5lUHJpdmF0ZSogZW5naW5lKQogewogICAgIHN3aXRj
aCAobV9zdGF0ZSkgewogICAgIGNhc2UgSW52YWxpZDoKLSAgICBjYXNlIENTcGVjaWFsOgorICAg
IGNhc2UgQ051bGw6CisgICAgY2FzZSBDVW5kZWZpbmVkOgogICAgICAgICByZXR1cm4gbmV3IFFT
Y3JpcHRWYWx1ZVByaXZhdGU7CiAgICAgY2FzZSBDU3RyaW5nOgogICAgICAgICB7CkBAIC02NTYs
OCArNjYxLDExIEBAIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6YXNzaWduRW5naW5lKFFTY3Jp
cHRFbmdpbmVQcml2YXRlKiBlbmdpbmUpCiAgICAgY2FzZSBDTnVtYmVyOgogICAgICAgICB2YWx1
ZSA9IGVuZ2luZS0+bWFrZUpTVmFsdWUobV9udW1iZXIpOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIENTcGVjaWFsOgotICAgICAgICB2YWx1ZSA9IGVuZ2luZS0+bWFrZUpTVmFsdWUoc3RhdGlj
X2Nhc3Q8UVNjcmlwdFZhbHVlOjpTcGVjaWFsVmFsdWU+KG1fbnVtYmVyKSk7CisgICAgY2FzZSBD
TnVsbDoKKyAgICAgICAgdmFsdWUgPSBlbmdpbmUtPm1ha2VKU1ZhbHVlKFFTY3JpcHRWYWx1ZTo6
TnVsbFZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVW5kZWZpbmVkOgorICAgICAg
ICB2YWx1ZSA9IGVuZ2luZS0+bWFrZUpTVmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmICghaXNKU0Jhc2Vk
KCkpCkBAIC03ODUsNyArNzkzLDcgQEAgYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjppc0pTQmFz
ZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlID49IEpTVmFsdWU7IH0KICAgXGludGVybmFsCiAg
IFJldHVybnMgdHJ1ZSBpZiBjdXJyZW50IHZhbHVlIG9mIFFTViBpcyBwbGFjZWQgaW4gbV9udW1i
ZXIuCiAqLwotYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjppc051bWJlckJhc2VkKCkgY29uc3Qg
eyByZXR1cm4gIWlzSlNCYXNlZCgpICYmICFpc1N0cmluZ0Jhc2VkKCkgJiYgbV9zdGF0ZSAhPSBJ
bnZhbGlkOyB9Citib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzTnVtYmVyQmFzZWQoKSBjb25z
dCB7IHJldHVybiBtX3N0YXRlID09IENOdW1iZXIgfHwgbV9zdGF0ZSA9PSBDQm9vbDsgfQogCiAv
KiEKICAgXGludGVybmFsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>