You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (Assigned) (JIRA)" <ji...@apache.org> on 2011/10/24 16:51:33 UTC

[jira] [Assigned] (TAP5-1716) Zone updates fail due to underscore.js critical bug

     [ https://issues.apache.org/jira/browse/TAP5-1716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship reassigned TAP5-1716:
------------------------------------------

    Assignee: Howard M. Lewis Ship
    
> Zone updates fail due to underscore.js critical bug
> ---------------------------------------------------
>
>                 Key: TAP5-1716
>                 URL: https://issues.apache.org/jira/browse/TAP5-1716
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Lenny Primak
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>
> Zone updates that reload scripts fail due to scripts reloading multiple times.
> This is due to underscore.js _contains() bug which Tapestry just started using.
> When another JS library overrides Array.prototype.indexOf, the code that
> has the bug is executed.  It is not executed otherwise.
> Basically, _.contains() never returns true in this case, which leads
> to multiple reloads of stylesheets and scripts.
> I also submitted this patch to underscore.js developers.
> Patch is included.
> *** new/org/apache/tapestry5/underscore_1_1_7.js	2011-10-22 05:10:36.000000000 -0400
> --- old/org/apache/tapestry5/underscore_1_1_7.js	2011-08-06 12:27:18.000000000 -0400
> ***************
> *** 198,205 ****
>       var found = false;
>       if (obj == null) return found;
>       if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
> !     found = any(obj, function(value) {
> !       if (value === target) return true;
>       });
>       return found;
>     };
> --- 198,205 ----
>       var found = false;
>       if (obj == null) return found;
>       if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
> !     any(obj, function(value) {
> !       if (found = value === target) return true;
>       });
>       return found;
>     };

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira