Hi Frederic,
I have trouble when compiling with string/variable optimization the
following JS code :

myClass.myFunction=function(vData){
var test=".getValue()";
alert(vData);
alert(eval("vData."+test));
}

vData seems the same in eval() function after compiling with opt whereas
vData in alert(vData) seems converted in $XXX value.

Is it a bug ? to avoid the pb I have desactived the var/string opts.
this is not a bug, and it has nothing to do with string optimization: its'a limit of the variable optimizer due to the dynamic nature of the _javascript_ language.

This is what's happening here: the variable optimizer replaces every occurrence of  the variable "vData" with a shorter identifier, let's say $x; this works as long as vData can be identified as a variable at compile time, i.e. if it is used in "static" code, such as the function argument declaration and the first alert().

On the other hand, vData is simply a string inside the second alert(), and as such it doesn't get substituted by $x: it only becomes a variable at runtime, when it is interpreted by eval(), but since the string passed to eval() can be constructed in arbitrary ways and can contain arbitrary code, there's no way for the variable optimizer to apply the same identifier replacements at compile time as those found in "static" code.

If you want to use the variable optimizer, I would suggest you modify your code so to avoid using eval() in this way:
myClass.myFunction=function(vData){
var test="getValue";
alert(vData);
alert(vData[test]());
}
This way you won't have trouble with the variable optimizer and you are still able to dynamically select the method to be called.

Cheers,
Alessandro



begin:vcard
fn:Alessandro Sala
n:Sala;Alessandro
email;internet:alessandro {dot} sala {at} mclink {dot} net
version:2.1
end:vcard

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to