<?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>7924</bug_id>
          
          <creation_ts>2006-03-22 18:18:59 -0800</creation_ts>
          <short_desc>Cant create inline function using &quot;new Function()&quot; syntax</short_desc>
          <delta_ts>2008-02-22 17:26:23 -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>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Parag Shah">pshah</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ian</cc>
    
    <cc>marcus</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>37387</commentid>
    <comment_count>0</comment_count>
    <who name="Parag Shah">pshah</who>
    <bug_when>2006-03-22 18:18:59 -0800</bug_when>
    <thetext>See attached (siimplified) testcase for example.

Basically, Safari chokes when trying to assign a new inline function to a variable using &quot;new Function()&quot;.

The attached testcase creates a dummy object and then attempts to create a &quot;proxy&quot; object or copy of that object by assigning the prototype of the proxied object to the original object (its simpler than it sounds).

The workaround is to make the assignment using &quot;function() {}&quot; instead.

I.e., this does not work:
var proxyCtor = new Function();

This does work:
var proxyCtor = function() {};

Both cases work in IEv6 and FFv1.5 (both on win and Mac).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37388</commentid>
    <comment_count>1</comment_count>
      <attachid>7243</attachid>
    <who name="Parag Shah">pshah</who>
    <bug_when>2006-03-22 18:20:29 -0800</bug_when>
    <thetext>Created attachment 7243
Testcase exposing bug in question

Clicking on the link should alert &quot;doit&quot; twice. Safari only alerts once :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58428</commentid>
    <comment_count>2</comment_count>
      <attachid>16654</attachid>
    <who name="Garrett Smith">xk1t</who>
    <bug_when>2007-10-13 16:25:14 -0700</bug_when>
    <thetext>Created attachment 16654
Test ReadOnly attribute

FIXED.


The function instance was given a prototype property.

with Function() and new Function(), this property was incorrectly flagged ReadOnly.

This has been fixed in Webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71538</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-02-22 17:26:23 -0800</bug_when>
    <thetext>Both test cases work for me with a local debug build of Webkit r30458.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7243</attachid>
            <date>2006-03-22 18:20:29 -0800</date>
            <delta_ts>2006-05-03 03:48:45 -0700</delta_ts>
            <desc>Testcase exposing bug in question</desc>
            <filename>proxy.html</filename>
            <type>text/html</type>
            <size>1437</size>
            <attacher name="Parag Shah">pshah</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8aGVhZD4NCjx0aXRsZT48L3RpdGxlPg0KDQo8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
Pg0KPC9zdHlsZT4NCg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQoNCi8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KLy8gRm9vIG9i
amVjdA0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vDQpmdW5jdGlvbiBGb28oKSB7DQoJdGhpcy5fZm9vYmFyID0gImhlbGxvIHdvcmxkIjsNCn07
DQoNCkZvby5wcm90b3R5cGUuZG9pdCA9IA0KZnVuY3Rpb24oKSB7DQoJYWxlcnQoImRvaXQgY2Fs
bGVkIik7DQp9Ow0KDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLw0KLy8gc3RhdGljIFV0aWwgY2xhc3MNCi8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZnVuY3Rpb24gVXRpbCgpIHsNCn07
DQoNClV0aWwuY3JlYXRlUHJveHkgPSANCmZ1bmN0aW9uKG9iamVjdCkgew0KCXZhciBwcm94eUN0
b3IgPSBuZXcgRnVuY3Rpb24oKTsJCQkvLyAxOiB0aGlzIERPRVMgTk9UIHdvcmsNCgkvL3ZhciBw
cm94eUN0b3IgPSBmdW5jdGlvbigpIHt9OyAJCQkvLyAyOiB0aGlzIERPRVMgd29yaw0KCXByb3h5
Q3Rvci5wcm90b3R5cGUgPSBvYmplY3Q7DQoNCglyZXR1cm4gbmV3IHByb3h5Q3RvcjsNCn07DQoN
ClV0aWwuc2hvd1Byb3BzID0gZnVuY3Rpb24ob2JqZWN0KSB7DQoJdmFyIGEgPSBbXTsNCglmb3Ig
KHZhciBwIGluIG9iamVjdCkgew0KCQlhLnB1c2gocCk7DQoJfTsNCglhbGVydChhLmpvaW4oIiwg
IikpOw0KfQ0KDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLw0KLy8gdGVzdE9uZQ0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vDQpmdW5jdGlvbiB0ZXN0T25lKCkgew0KCXZhciB4ID0gbmV3
IEZvbygpOw0KCS8vVXRpbC5zaG93UHJvcHMoeCk7DQoJeC5kb2l0KCk7DQoNCgkvLyBjcmVhdGUg
cHJveHkgaGVyZToNCgl2YXIgeSA9IFV0aWwuY3JlYXRlUHJveHkoeCk7DQoJLy9VdGlsLnNob3dQ
cm9wcyh5KTsNCgl5LmRvaXQoKTsJCQkJCQkJLy8gWFhYOiB0aGlzIGZhaWxzIGluIFNhZmFyaSBp
ZiBsaW5lIDMxIGlzIHJlcGxhY2VkIHcvIGxpbmUgMzINCgkJCQkJCQkJCQkvLyBCdXQgaXQgd29y
a3MgaW4gSUUgYW5kIEZGIChib3RoIHdpbiBhbmQgTWFjKQ0KfTsNCg0KDQo8L3NjcmlwdD4NCg0K
PC9oZWFkPg0KDQo8Ym9keT4NCg0KPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBvbmNsaWNrPSJ0ZXN0
T25lKCkiPmNyZWF0ZSBwcm94eSB0aGVuIGNhbGwgZG9pdCBvbiBpdDwvYT48cD4NCg0KPC9ib2R5
Pg0KPC9odG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>16654</attachid>
            <date>2007-10-13 16:25:14 -0700</date>
            <delta_ts>2007-10-13 16:25:14 -0700</delta_ts>
            <desc>Test ReadOnly attribute</desc>
            <filename>readonlyFunctionPrototype.html</filename>
            <type>text/html</type>
            <size>611</size>
            <attacher name="Garrett Smith">xk1t</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+PC90aXRsZT4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cjwv
c3R5bGU+CgoKCjwvaGVhZD4KCjxib2R5Pgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBz
dHlsZT0iZGlzcGxheTpibG9jazt2aXNpYmlsaXR5OnZpc2libGU7d2hpdGUtc3BhY2U6cHJlIj4K
CnZhciB4ID0gW107CnZhciBmID0gRnVuY3Rpb24oKTsKZi5wcm90b3R5cGUgPSB4OwoKdmFyIGYy
ID0gRnVuY3Rpb24oKTsKZjIucHJvdG90eXBlID0geDsKCnZhciBmMyA9IGZ1bmN0aW9uKCl7fTsK
ZjMucHJvdG90eXBlID0geDsKCgo8L3NjcmlwdD4KPHByZT4KcHJvdG90eXBlID09IHg7CjwvcHJl
Pgo8YSBocmVmPSJqYXZhc2NyaXB0OjsiIG9uY2xpY2s9ImFsZXJ0KGYucHJvdG90eXBlID09IHgp
OyI+Zi5wcm90b3R5cGUgPT0geDwvYT48cD4KPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBvbmNsaWNr
PSJhbGVydChmMi5wcm90b3R5cGUgPT0geCk7Ij5mMi5wcm90b3R5cGUgPT0geDwvYT48cD4KPGEg
aHJlZj0iamF2YXNjcmlwdDo7IiBvbmNsaWNrPSJhbGVydChmMy5wcm90b3R5cGUgPT0geCk7Ij5m
My5wcm90b3R5cGUgPT0geDwvYT48cD4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>