<?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>28665</bug_id>
          
          <creation_ts>2009-08-22 23:53:59 -0700</creation_ts>
          <short_desc>Inspector: Throws an Error on &quot;null&quot;</short_desc>
          <delta_ts>2009-08-23 14:42:18 -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>Web Inspector (Deprecated)</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>142193</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-08-22 23:53:59 -0700</bug_when>
    <thetext>The Console is throwing an error on &quot;null&quot;.  This seems to happen because after the result of an eval goes to InspectorController.wrapObject(), which doesn&apos;t handle null very well.

Current Behavior:

&gt; null
TypeError: Result of expression &apos;wrapper&apos; [null] is not an object.
&gt; [null, null]
[]
&gt; var o = { a: null }
Object
  a: null
&gt; o.a
TypeError: Result of expression &apos;wrapper&apos; [null] is not an object.


Expected Behavior (from Safari 4.0.3):

&gt; null
null
&gt; [null, null]
[null, null]
&gt; var o = { a:null }
undefined
&gt; o
Object
  a: null
&gt; o.a
null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142195</commentid>
    <comment_count>1</comment_count>
      <attachid>38447</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-08-23 00:04:03 -0700</bug_when>
    <thetext>Created attachment 38447
[PATCH] One Possible Solution

No other falsey value causes wrapObject() to return a null value (NaN, undefined, 0, &apos;&apos;).  This solution tackles null before calling wrapObject.  Another solution could be checking the result of wrapObject (wrapper).  And yet another solution could handle null differently inside InspectorController.wrapObject().  This approach seemed simplest.

Pavel, would there be a more appropriate solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142197</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-08-23 00:08:45 -0700</bug_when>
    <thetext>Actually that &quot;exception: false&quot; part isn&apos;t necessary, because thats the implicit default if its left out.  So I can remove that if this is an okay way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142214</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-23 02:11:03 -0700</bug_when>
    <thetext>
&gt; +            return { value: InjectedScript.createProxyObject(null, null), exception: false };

We don&apos;t wrap primitive values with proxy objects at the moment, why wrapping null. I would just do

    return { value: null };

However, that would require fixing ConsoleView&apos;s proxy detection:

    var isProxy = typeof output === &quot;object&quot;;

should be replaced with

    var isProxy = output !== null &amp;&amp; typeof output === &quot;object&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142218</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-23 02:26:53 -0700</bug_when>
    <thetext>Additional note: fixing InspectorController.wrapObject would be nicer, but you would need to do that in both bindings (comparing to null are returning argument). It will still require mentioned fix in the console though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142230</commentid>
    <comment_count>5</comment_count>
      <attachid>38453</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-08-23 07:55:23 -0700</bug_when>
    <thetext>Created attachment 38453
[PATCH] Pavel&apos;s JavaScript Approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142231</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-08-23 07:58:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Additional note: fixing InspectorController.wrapObject would be nicer, but you
&gt; would need to do that in both bindings (comparing to null are returning
&gt; argument). It will still require mentioned fix in the console though.

What I said earlier was not accurate.  wrapObject doesn&apos;t have trouble with null, it just ends up returning the value passed in, which was null, and a null value isn&apos;t handled well afterwards.  I like this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142246</commentid>
    <comment_count>7</comment_count>
      <attachid>38453</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-23 14:42:15 -0700</bug_when>
    <thetext>Comment on attachment 38453
[PATCH] Pavel&apos;s JavaScript Approach

Clearing flags on attachment: 38453

Committed r47696: &lt;http://trac.webkit.org/changeset/47696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142247</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-23 14:42:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38447</attachid>
            <date>2009-08-23 00:04:03 -0700</date>
            <delta_ts>2009-08-23 07:55:23 -0700</delta_ts>
            <desc>[PATCH] One Possible Solution</desc>
            <filename>special_case.patch</filename>
            <type>text/plain</type>
            <size>1264</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2M5Y2VhYi4uMDQ2NzZmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0wOC0yMiAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluc3BlY3RvcjogVGhyb3dzIGFuIEVycm9yIG9uICJudWxsIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2NjUKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanM6CisgICAgICAg
IChJbmplY3RlZFNjcmlwdC5ldmFsdWF0ZSk6IHNwZWNpYWwgY2FzZSB3aGVuIGV2YWx1YXRlIHJl
c3VsdHMgaW4gbnVsbAorCiAyMDA5LTA4LTIyICBBZGVsZSBQZXRlcnNvbiAgPGFkZWxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggZGZmZWQ2NS4uNGI5
ZWRlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2Ny
aXB0LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5q
cwpAQCAtNDk4LDYgKzQ5OCw4IEBAIEluamVjdGVkU2NyaXB0LmV2YWx1YXRlID0gZnVuY3Rpb24o
ZXhwcmVzc2lvbikKICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgdHJ5IHsKICAgICAgICAgdmFy
IHZhbHVlID0gSW5qZWN0ZWRTY3JpcHQuX3dpbmRvdygpLmV2YWwoZXhwcmVzc2lvbik7CisgICAg
ICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBJbmpl
Y3RlZFNjcmlwdC5jcmVhdGVQcm94eU9iamVjdChudWxsLCBudWxsKSwgZXhjZXB0aW9uOiBmYWxz
ZSB9OwogICAgICAgICB2YXIgd3JhcHBlciA9IEluc3BlY3RvckNvbnRyb2xsZXIud3JhcE9iamVj
dCh2YWx1ZSk7CiAgICAgICAgIGlmICh0eXBlb2Ygd3JhcHBlciA9PT0gIm9iamVjdCIgJiYgd3Jh
cHBlci5leGNlcHRpb24pCiAgICAgICAgICAgICByZXN1bHQuZXhjZXB0aW9uID0gd3JhcHBlci5l
eGNlcHRpb247Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38453</attachid>
            <date>2009-08-23 07:55:23 -0700</date>
            <delta_ts>2009-08-23 14:42:15 -0700</delta_ts>
            <desc>[PATCH] Pavel&apos;s JavaScript Approach</desc>
            <filename>pavels_way.patch</filename>
            <type>text/plain</type>
            <size>1700</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2M5Y2VhYi4uOGZjMWVjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0wOC0yMiAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluc3BlY3RvcjogVGhyb3dzIGFuIEVycm9yIG9uICJudWxsIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2NjUKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanM6CisgICAgICAg
IChJbmplY3RlZFNjcmlwdC5ldmFsdWF0ZSk6CisKIDIwMDktMDgtMjIgIEFkZWxlIFBldGVyc29u
ICA8YWRlbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nv
bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCBmYjVl
MWMxLi42ZmUxOTJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3
LmpzCkBAIC0zODQsNyArMzg0LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSA9IHsKIAogICAgIF9mb3JtYXQ6IGZ1bmN0aW9uKG91dHB1dCwgZm9yY2VPYmplY3RGb3JtYXQp
CiAgICAgewotICAgICAgICB2YXIgaXNQcm94eSA9IHR5cGVvZiBvdXRwdXQgPT09ICJvYmplY3Qi
OworICAgICAgICB2YXIgaXNQcm94eSA9IChvdXRwdXQgIT0gbnVsbCAmJiB0eXBlb2Ygb3V0cHV0
ID09PSAib2JqZWN0Iik7CiAKICAgICAgICAgaWYgKGZvcmNlT2JqZWN0Rm9ybWF0KQogICAgICAg
ICAgICAgdmFyIHR5cGUgPSAib2JqZWN0IjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbmplY3RlZFNjcmlwdC5qcwppbmRleCBkZmZlZDY1Li4wYjNjMjBjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCkBAIC00OTgsNiArNDk4LDgg
QEAgSW5qZWN0ZWRTY3JpcHQuZXZhbHVhdGUgPSBmdW5jdGlvbihleHByZXNzaW9uKQogICAgIHZh
ciByZXN1bHQgPSB7fTsKICAgICB0cnkgewogICAgICAgICB2YXIgdmFsdWUgPSBJbmplY3RlZFNj
cmlwdC5fd2luZG93KCkuZXZhbChleHByZXNzaW9uKTsKKyAgICAgICAgaWYgKHZhbHVlID09PSBu
dWxsKQorICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG51bGwgfTsKICAgICAgICAgdmFyIHdy
YXBwZXIgPSBJbnNwZWN0b3JDb250cm9sbGVyLndyYXBPYmplY3QodmFsdWUpOwogICAgICAgICBp
ZiAodHlwZW9mIHdyYXBwZXIgPT09ICJvYmplY3QiICYmIHdyYXBwZXIuZXhjZXB0aW9uKQogICAg
ICAgICAgICAgcmVzdWx0LmV4Y2VwdGlvbiA9IHdyYXBwZXIuZXhjZXB0aW9uOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>