[ 
http://issues.apache.org/jira/browse/TAPESTRY-669?page=comments#action_12357438 
] 

Howard M. Lewis Ship commented on TAPESTRY-669:
-----------------------------------------------

I'm putting this in place as suggested ... but couldn't we iterate over the 
keys in bits and skip over the ones that weren't simple strings (i.e., the ones 
that were functions, such as the flatten function added to Array)?

> DatePicker.js line 781 javascript error when Array is customized using 
> Prototype.js from http://prototype.conio.net/
> --------------------------------------------------------------------------------------------------------------------
>
>          Key: TAPESTRY-669
>          URL: http://issues.apache.org/jira/browse/TAPESTRY-669
>      Project: Tapestry
>         Type: Bug
>   Components: Framework
>     Versions: 4.0
>  Environment: Windows XP, Internet Explorer 6
>     Reporter: Herbert Hui
>     Assignee: Howard M. Lewis Ship
>     Priority: Minor

>
> Line 781 in DatePicker.js fails when thirdparty methods are added to Array 
> using Prototype.js from http://prototype.conio.net/
> For example if you add the flatten method from 
> http://www.schuerig.de/michael/javascript/stdext.js
> then line 781 will attempt to execute the 
> "frm.replace(/\bflatten\b/,'function(excludeUndefined) {return 
> Array.flatten(this, excludeUndefined);}');"
> Suggested modification to DatePicker.js:
>     var keys = new 
> Array('d','dd','ddd','dddd','M','MM','MMM','MMMM','yyyy','yy');
>     for (var i = 0; i < keys.length; i++) {
>       frm = eval("frm.replace(/\\b" + keys[i] + "\\b/,'" + bits[keys[i]] + 
> "');");
>     }
> // borrowed from http://www.schuerig.de/michael/javascript/stdext.js
> // Copyright (c) 2005, Michael Schuerig, [EMAIL PROTECTED]
> Array.flatten = function(array, excludeUndefined) {
>   if (excludeUndefined === undefined) {
>     excludeUndefined = false;
>   }
>   var result = [];
>   var len = array.length;
>   for (var i = 0; i < len; i++) {
>     var el = array[i];
>     if (el instanceof Array) {
>       var flat = el.flatten(excludeUndefined);
>       result = result.concat(flat);
>     } else if (!excludeUndefined || el != undefined) {
>       result.push(el);
>     }
>   }
>   return result;
> };
> if (!Array.prototype.flatten) {
>   Array.prototype.flatten = function(excludeUndefined) {
>     return Array.flatten(this, excludeUndefined);
>   }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to