<?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>31367</bug_id>
          
          <creation_ts>2009-11-11 11:44:19 -0800</creation_ts>
          <short_desc>[V8] Make bindings return NULL handles instead of calling v8::Undefined().</short_desc>
          <delta_ts>2009-11-11 11:53: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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jens Alfke">jens</reporter>
          <assigned_to name="Jens Alfke">jens</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>162593</commentid>
    <comment_count>0</comment_count>
    <who name="Jens Alfke">jens</who>
    <bug_when>2009-11-11 11:44:19 -0800</bug_when>
    <thetext>The generated code for V8 bindings uses &quot;return v8::Undefined()&quot; when it needs to return from the binding without a specific return value (e.g. on error, or if the result is undefined.) This results in a function call. V8 interprets a return value of an empty/NULL handle as being the same as Undefined(), so I&apos;ve changed the bindings to do that. This makes the bindings slightly smaller and faster, as there are many instances of this construct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162595</commentid>
    <comment_count>1</comment_count>
      <attachid>42986</attachid>
    <who name="Jens Alfke">jens</who>
    <bug_when>2009-11-11 11:47:21 -0800</bug_when>
    <thetext>Created attachment 42986
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162599</commentid>
    <comment_count>2</comment_count>
      <attachid>42986</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-11 11:51:40 -0800</bug_when>
    <thetext>Comment on attachment 42986
patch

r=me. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162600</commentid>
    <comment_count>3</comment_count>
    <who name="Jens Alfke">jens</who>
    <bug_when>2009-11-11 11:53:40 -0800</bug_when>
    <thetext>Committed revision 50831.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42986</attachid>
            <date>2009-11-11 11:47:21 -0800</date>
            <delta_ts>2009-11-11 11:51:40 -0800</delta_ts>
            <desc>patch</desc>
            <filename>Undefined.patch</filename>
            <type>text/plain</type>
            <size>4352</size>
            <attacher name="Jens Alfke">jens</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDgyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsMTUgQEAKIDIwMDktMTEtMTEgIEplbnMgQWxma2UgIDxzbmVqQGNocm9taXVtLm9y
Zz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IFY4IGJpbmRpbmdzIHJldHVybiBOVUxMIGhhbmRsZXMgaW5zdGVhZCBvZiBjYWxsaW5nIHY4OjpV
bmRlZmluZWQoKS4gVGhpcyBoYXMgZXF1aXZhbGVudAorICAgICAgICBtZWFuaW5nIHRvIHRoZSBj
YWxsZXIsIHNhdmVzIGNvZGUsIGFuZCBhcHBlYXJzIHRvIHNhdmUgYSBmZXcgY3ljbGVzIGF0IHJ1
bnRpbWUgdG9vLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzEzNjcKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
OiBDaGFuZ2UgInY4OjpVbmRlZmluZWQoKSIgdG8gInY4OjpIYW5kbGU8djg6OlZhbHVlPigpIgor
CisyMDA5LTExLTExICBKZW5zIEFsZmtlICA8c25lakBjaHJvbWl1bS5vcmc+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgogCiAgICAgICAgIE9wdGltaXplIFY4IGdldERP
TU5vZGVNYXAoKSwgYSBob3QgZnVuY3Rpb24gaW4gRHJvbWFlbyBET00gdGVzdHMsIGJ5IGluY3Jl
YXNpbmcgaW5saW5pbmcuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0JKHJldmlzaW9uIDUwNzU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtNDQxLDcgKzQ0MSw3IEBACiAg
ICAgcmV0dXJuIFY4RE9NV3JhcHBlcjo6Z2V0Q29uc3RydWN0b3IodHlwZSwgd29ya2VyQ29udGV4
dCk7CiBFTkQKICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
ICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOyIpOwogICAgIH0KIAog
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKQEAgLTUyMiw3ICs1MjIsNyBAQAog
ICAgICAgICAjIHBlcmZvcm0gbG9va3VwIGZpcnN0CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsIDw8RU5EKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IFY4RE9N
V3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOENsYXNzSW5kZXg6OiRjbGFzc0luZGV4LCBpbmZv
LlRoaXMoKSk7Ci0gICAgaWYgKGhvbGRlci5Jc0VtcHR5KCkpIHJldHVybiB2ODo6VW5kZWZpbmVk
KCk7CisgICAgaWYgKGhvbGRlci5Jc0VtcHR5KCkpIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKIEVORAogICAgICAgfQogICAgICAgICBIb2xkZXJUb05hdGl2ZSgkZGF0YU5vZGUsICRp
bXBsQ2xhc3NOYW1lLCAkY2xhc3NJbmRleCk7CkBAIC01MzUsOSArNTM1LDkgQEAKIAogICAgICMg
R2VuZXJhdGUgc2VjdXJpdHkgY2hlY2tzIGlmIG5lY2Vzc2FyeQogICAgIGlmICgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja05vZGVTZWN1cml0eSJ9KSB7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFWOFByb3h5OjpjaGVj
a05vZGVTZWN1cml0eShpbXAtPiRhdHRyTmFtZSgpKSkgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTtc
blxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFWOFByb3h5
OjpjaGVja05vZGVTZWN1cml0eShpbXAtPiRhdHRyTmFtZSgpKSkgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OlZhbHVlPigpO1xuXG4iKTsKICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja0ZyYW1lU2VjdXJpdHkifSkgewotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmICghVjhQcm94eTo6Y2hlY2tOb2RlU2VjdXJp
dHkoaW1wLT5jb250ZW50RG9jdW1lbnQoKSkpIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7XG5cbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmICghVjhQcm94eTo6Y2hl
Y2tOb2RlU2VjdXJpdHkoaW1wLT5jb250ZW50RG9jdW1lbnQoKSkpIHJldHVybiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4oKTtcblxuIik7CiAgICAgfQogCiAgICAgbXkgJHVzZUV4Y2VwdGlvbnMgPSAx
IGlmIEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30gYW5kICEoJGlzUG9kVHlwZSk7CkBA
IC02MTcsNyArNjE3LDcgQEAKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIiAmJiAkZGF0YU5vZGUtPm5hbWUgZXEg
IkRPTVdpbmRvdyIpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAg
aWYgKCFpbXAtPmRvY3VtZW50KCkpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsKQEAg
LTg0OSw3ICs4NDksNyBAQAogCiAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiUmVxdWlyZXNBbGxBcmd1bWVudHMifSkgewogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLAotICAgICAgICAgICAgIiAgICBpZiAoYXJncy5MZW5ndGgoKSA8ICRu
dW1QYXJhbWV0ZXJzKSByZXR1cm4gdjg6OlVuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICAi
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgJG51bVBhcmFtZXRlcnMpIHJldHVybiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4oKTtcbiIpOwogICAgIH0KIAogICAgIGlmIChJc1BvZFR5cGUoJGltcGxDbGFz
c05hbWUpKSB7CkBAIC04NzEsNyArODcxLDcgQEAKICAgICAjIFdlIGhhdmUgbm90IGZpbmQgcmVh
bCB1c2UgY2FzZXMgeWV0LgogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsCiAiICAgIGlmICgh
VjhQcm94eTo6Y2FuQWNjZXNzRnJhbWUoaW1wLT5mcmFtZSgpLCB0cnVlKSkge1xuIi4KLSIgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpO1xuIiAuCisiICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OlZhbHVlPigpO1xuIiAuCiAiICAgIH1cbiIpOwogICAgIH0KIApAQCAtODkxLDcgKzg5MSw3
IEBACiAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
U1ZHQ2hlY2tTZWN1cml0eURvY3VtZW50In0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywKICIgICAgaWYgKCFWOFByb3h5OjpjaGVja05vZGVTZWN1cml0eShpbXAtPmdldFNWR0Rv
Y3VtZW50KGVjKSkpXG4iIC4KLSIgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpO1xuIik7Cisi
ICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpO1xuIik7CiAgICAgfQogCiAgICAg
bXkgJHBhcmFtSW5kZXggPSAwOwpAQCAtMjEyNCw3ICsyMTI0LDcgQEAKIAogICAgIHJldHVybiAi
cmV0dXJuIHY4OjpEYXRlOjpOZXcoc3RhdGljX2Nhc3Q8ZG91YmxlPigkdmFsdWUpKSIgaWYgJHR5
cGUgZXEgIkRPTVRpbWVTdGFtcCI7CiAgICAgcmV0dXJuICJyZXR1cm4gJHZhbHVlID8gdjg6OlRy
dWUoKSA6IHY4OjpGYWxzZSgpIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7Ci0gICAgcmV0dXJuICJy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpIiBpZiAkdHlwZSBlcSAidm9pZCI7CisgICAgcmV0dXJuICJy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCkiIGlmICR0eXBlIGVxICJ2b2lkIjsKIAogICAg
ICMgRm9yIGFsbCB0aGUgdHlwZXMgd2hlcmUgd2UgdXNlICdpbnQnIGFzIHRoZSByZXByZXNlbnRh
dGlvbiB0eXBlLAogICAgICMgd2UgdXNlIEludGVnZXI6Ok5ldyB3aGljaCBoYXMgYSBmYXN0IFNt
aSBjb252ZXJzaW9uIGNoZWNrLgo=
</data>
<flag name="review"
          id="24634"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>