<?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>23250</bug_id>
          
          <creation_ts>2009-01-12 07:14:48 -0800</creation_ts>
          <short_desc>[Qt] NULL string should not be arbitrarily converted to empty string</short_desc>
          <delta_ts>2014-04-24 16:44:55 -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>DUPLICATE</resolution>
          <dup_id>31863</dup_id>
          
          <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>
          <dependson>31863</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jedrzej.nowacki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>105325</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-01-12 07:14:48 -0800</bug_when>
    <thetext>When a QtWebKit based application returns a null string, it is converted to an empty string. From the JavaScript side, it is not possible to tell if the return value was an empty string or null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105326</commentid>
    <comment_count>1</comment_count>
      <attachid>26630</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-01-12 07:16:51 -0800</bug_when>
    <thetext>Created attachment 26630
change qt-runtime so it does not convert a null string to an empty string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105492</commentid>
    <comment_count>2</comment_count>
      <attachid>26630</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-01-13 08:20:47 -0800</bug_when>
    <thetext>Comment on attachment 26630
change qt-runtime so it does not convert a null string to an empty string.

&gt; -    QCOMPARE(evalJS(&quot;myObject.stringProperty&quot;), QString());
&gt; +    QCOMPARE(evalJS(&quot;myObject.stringProperty&quot;), sUndefined);

As discussed on IRC this behavior should apply to QVariants instead.

&gt; +    if (variant.isNull() ) {
&gt; +        if (type == QMetaType::QString)
&gt; +            return jsUndefined();

So that if !variant.isValid() then return jsUndefined();

A default-constructed QVarant is not valid, i.e has the type set to QMetaType::Invalid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105575</commentid>
    <comment_count>3</comment_count>
      <attachid>26684</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-01-13 14:50:22 -0800</bug_when>
    <thetext>Created attachment 26684
Return jsundefined instead of jsnull.

This patch is not a solution to the bug, it was created to allow others to continue experimenting with the problem. In fact it breaks the test case evalJSV(&quot;myObject.myInvokableWithVariantArg(null)&quot;, type);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166684</commentid>
    <comment_count>4</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2009-11-26 01:50:17 -0800</bug_when>
    <thetext>Closing as duplicate of bug 31863. Integration between QtWebKit - QtScript is a nicer and more generic solution.

If I&apos;m wrong feel free to reopen the bug.

*** This bug has been marked as a duplicate of bug 31863 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003837</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-24 16:44:55 -0700</bug_when>
    <thetext>Moving all JavaScriptGlue bugs to JavaScriptCore. The JavaScriptGlue framework itself is long gone. And most of the more recent bugs put in this component were put there by people who thought this was for some other aspect of “JavaScript glue” and have nothing to do with the actual original reason for the existence of this component, which was an OS-X-only framework named JavaScriptGlue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26630</attachid>
            <date>2009-01-12 07:16:51 -0800</date>
            <delta_ts>2009-01-13 08:20:47 -0800</delta_ts>
            <desc>change qt-runtime so it does not convert a null string to an empty string.</desc>
            <filename>null.patch</filename>
            <type>text/plain</type>
            <size>3018</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcAkocmV2
aXNpb24gMzk4MTEpCisrKyBXZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODIsMTAgKzc4MiwxMCBAQAogICAgICAgICAgICAgICAg
ICAgICAibXlPYmplY3Quc3RyaW5nUHJvcGVydHkiKSwgUUxhdGluMVN0cmluZygiMTIzIikpOwog
ICAgIFFDT01QQVJFKG1fbXlPYmplY3QtPnN0cmluZ1Byb3BlcnR5KCksIFFMYXRpbjFTdHJpbmco
IjEyMyIpKTsKICAgICBRQ09NUEFSRShldmFsSlMoIm15T2JqZWN0LnN0cmluZ1Byb3BlcnR5ID0g
bnVsbCIpLCBRU3RyaW5nKCkpOwotICAgIFFDT01QQVJFKGV2YWxKUygibXlPYmplY3Quc3RyaW5n
UHJvcGVydHkiKSwgUVN0cmluZygpKTsKKyAgICBRQ09NUEFSRShldmFsSlMoIm15T2JqZWN0LnN0
cmluZ1Byb3BlcnR5IiksIHNVbmRlZmluZWQpOwogICAgIFFDT01QQVJFKG1fbXlPYmplY3QtPnN0
cmluZ1Byb3BlcnR5KCksIFFTdHJpbmcoKSk7CiAgICAgUUNPTVBBUkUoZXZhbEpTKCJteU9iamVj
dC5zdHJpbmdQcm9wZXJ0eSA9IHVuZGVmaW5lZCIpLCBzVW5kZWZpbmVkKTsKLSAgICBRQ09NUEFS
RShldmFsSlMoIm15T2JqZWN0LnN0cmluZ1Byb3BlcnR5IiksIFFTdHJpbmcoKSk7CisgICAgUUNP
TVBBUkUoZXZhbEpTKCJteU9iamVjdC5zdHJpbmdQcm9wZXJ0eSIpLCBzVW5kZWZpbmVkKTsKICAg
ICBRQ09NUEFSRShtX215T2JqZWN0LT5zdHJpbmdQcm9wZXJ0eSgpLCBRU3RyaW5nKCkpOwogCiAg
ICAgUUNPTVBBUkUoZXZhbEpTKCJteU9iamVjdC52YXJpYW50UHJvcGVydHkgPSBuZXcgTnVtYmVy
KDEyMzQpOyIKSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gMzk4MjYpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAorMjAwOS0wMS0xMiAgWWFlbCBBaGFyb24gIDx5
YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIFVwZGF0ZSBleHBlY3RlZCB0ZXN0IHJlc3VsdHMsIHNpbmNlIGEgTlVMTCBz
dHJpbmcgbm93IHJldHVybnMganN1bmRlZmluZWQgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcu
CisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwOgorCiAyMDA5LTAx
LTEyICBUb3IgQXJuZSBWZXN0YsO4ICA8dGF2ZXN0Ym9AdHJvbGx0ZWNoLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAzOTgyNikKKysrIFdlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDktMDEtMTIg
IFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBXaGVuIHRoZSBhcHBsaWNhdGlvbiByZXR1cm5z
IGEgTlVMTCBzdHJpbmcsIGl0IHNob3VsZCByZXR1cm4ganN1bmRlZmluZWQgdG8gSmF2YVNjcmlw
dCwgbm90IGFuIGVtcHR5IHN0cmluZy4KKworICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1l
LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgor
CiAyMDA5LTAxLTEyICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEBwbGV5by5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmNwcAkocmV2aXNpb24gMzk4MTEpCisrKyBXZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ1LDEyICs3NDUsMTMgQEAKICAgICBRTWV0YVR5cGU6
OlR5cGUgdHlwZSA9IChRTWV0YVR5cGU6OlR5cGUpIHZhcmlhbnQudXNlclR5cGUoKTsKIAogICAg
IHFDb252RGVidWcoKSA8PCAiY29udmVydFFWYXJpYW50VG9WYWx1ZTogbWV0YXR5cGU6IiA8PCB0
eXBlIDw8ICIsIGlzbnVsbDogIiA8PCB2YXJpYW50LmlzTnVsbCgpOwotICAgIGlmICh2YXJpYW50
LmlzTnVsbCgpICYmCi0gICAgICAgIHR5cGUgIT0gUU1ldGFUeXBlOjpRT2JqZWN0U3RhciAmJgot
ICAgICAgICB0eXBlICE9IFFNZXRhVHlwZTo6Vm9pZFN0YXIgJiYKLSAgICAgICAgdHlwZSAhPSBR
TWV0YVR5cGU6OlFXaWRnZXRTdGFyICYmCi0gICAgICAgIHR5cGUgIT0gUU1ldGFUeXBlOjpRU3Ry
aW5nKSB7Ci0gICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICBpZiAodmFyaWFudC5pc051bGwo
KSApIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gUU1ldGFUeXBlOjpRU3RyaW5nKQorICAgICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIGlmICh0eXBlICE9IFFNZXRhVHlwZTo6
UU9iamVjdFN0YXIgJiYKKyAgICAgICAgICAgIHR5cGUgIT0gUU1ldGFUeXBlOjpWb2lkU3RhciAm
JgorICAgICAgICAgICAgdHlwZSAhPSBRTWV0YVR5cGU6OlFXaWRnZXRTdGFyKQorICAgICAgICAg
ICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIH0KIAogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsK
</data>
<flag name="review"
          id="12667"
          type_id="1"
          status="-"
          setter="vestbo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26684</attachid>
            <date>2009-01-13 14:50:22 -0800</date>
            <delta_ts>2009-05-28 17:20:34 -0700</delta_ts>
            <desc>Return jsundefined instead of jsnull.</desc>
            <filename>null.patch</filename>
            <type>text/plain</type>
            <size>1265</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTgyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEgQEAKKzIwMDktMDEtMTIgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBX
aGVuIHRoZSBhcHBsaWNhdGlvbiByZXR1cm5zIGEgTlVMTCBzdHJpbmcsIGl0IHNob3VsZCByZXR1
cm4ganN1bmRlZmluZWQgdG8gSmF2YVNjcmlwdCwgbm90IGFuIGVtcHR5IHN0cmluZy4KKworICAg
ICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorCiAyMDA5LTAxLTEyICBKdWxpZW4gQ2hhZmZyYWl4
ICA8amNoYWZmcmFpeEBwbGV5by5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAkocmV2aXNpb24gMzk4MTEpCisrKyBX
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQzLDgg
Kzc0Myw5IEBACiAgICAgLy8gVmFyaWFudHMgd2l0aCBRT2JqZWN0ICogY2FuIGJlIGlzTnVsbCBi
dXQgbm90IGEgbnVsbCBwb2ludGVyCiAgICAgLy8gQW4gZW1wdHkgUVN0cmluZyB2YXJpYW50IGlz
IGFsc28gbnVsbAogICAgIFFNZXRhVHlwZTo6VHlwZSB0eXBlID0gKFFNZXRhVHlwZTo6VHlwZSkg
dmFyaWFudC51c2VyVHlwZSgpOwotCiAgICAgcUNvbnZEZWJ1ZygpIDw8ICJjb252ZXJ0UVZhcmlh
bnRUb1ZhbHVlOiBtZXRhdHlwZToiIDw8IHR5cGUgPDwgIiwgaXNudWxsOiAiIDw8IHZhcmlhbnQu
aXNOdWxsKCk7CisgICAgaWYgKCF2YXJpYW50LmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAgICAgaWYgKHZhcmlhbnQuaXNOdWxsKCkgJiYKICAgICAgICAgdHlwZSAh
PSBRTWV0YVR5cGU6OlFPYmplY3RTdGFyICYmCiAgICAgICAgIHR5cGUgIT0gUU1ldGFUeXBlOjpW
b2lkU3RhciAmJgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>