logo       

Re: Eval Limitations in IE7: msg#00229

java.dwr.user

Subject: Re: Eval Limitations in IE7

Mike,
I made a mistake. The older version of the script engine does not have this problem. You are right, 5.7 does.

Quoting Mike Cantrell <m.j.cantrell-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx>:

I'm running the same version. I wonder if it's operating system related
then?

On 2/28/07, David Marginian
<david-IUT0uLTrdk7ZrEr2eKs0CtBPR1lH4CV8@xxxxxxxxxxxxxxxx> wrote:

Mike,
This is not common across IE 7. It depends on the scripting
engine. You can check this via the following:

<html>
<body>
<script>
/*@cc_on @*/
function GetScriptEngineInfo(){
var s;
s = ""; // Build string with necessary info.
s += ScriptEngine() + " Version ";
s += ScriptEngineMajorVersion() + ".";
s += ScriptEngineMinorVersion() + ".";
s += ScriptEngineBuildVersion();
return(s);
}

alert("Javascript version is "+@_jscript_version+" build
"+@_jscript_build);
alert(GetScriptEngineInfo());
</script>
</body>
</html>

I don't see the problem you mention. I am on Version 5.7, build 5730.

Quoting Mike Cantrell <m.j.cantrell-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx>:

DWR uses a lot of evals to de-serialize data into javascript data
structures. After experiencing several odd errors in IE7 with DWR and
large
sets of data, I started to do some digging. It seems that IE7 limits the
number of variables that can be assigned in a single eval to 327687 (the
max
value of a signed short). If you cross that threshold, it gives you a
generic 'Syntax Error' message.

The following code demonstrates the problem:

function StringBuffer() { this.buffer = []; }

StringBuffer.prototype.append = function(string) {
this.buffer.push(string);
return this;
}

StringBuffer.prototype.toString = function() {
return this.buffer.join("");
}



var max = 32768;
testEval();

function testEval() {
var sb = new StringBuffer();

for (var i=0; i < max; i++) {
sb.append("s" + i + " = 'foo';");
}
eval(sb.toString());
}

I've opened a support case with MS but I don't have high hopes of them
changing the behavior (I'm assuming that it's intentional). The most I'm
hoping for is a little better error message.

With that said, is there any hope of seeing DWR less reliant on large
evals
in the future?


---------------------------------------------------------------------
To unsubscribe, e-mail:
users-unsubscribe-EyPigyGktj4FDOXUYO6UHQ@xxxxxxxxxxxxxxxx
For additional commands, e-mail:
users-help-EyPigyGktj4FDOXUYO6UHQ@xxxxxxxxxxxxxxxx




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise