This document contains information crucial for running the iASP pre-Compiler.
We strongly recommend you spend a few minutes and read this file in its
entirety.
- Some error messages will be different from ASP, for example: Referencing
the Session, Request, or Response objects in the Application_OnStart
event script causes an error, but the error description in Pre-Compiler
will be different from ASP.
- The servlets generated by the iASP pre-compiler can run as the standalone
servlets, but if the ASP page links some other files, such as an image
file, and if the servlet isn't generated in the same directory with
the ASP, the servlet won't find the linked file.
- If the size of the ASP code is too large, the Service method can not
be compiled by Javac, because the method size can not exceed 64K
in JDK1.2 virtual machine.
- The iASP pre-compiler can run ONLY with JSDK2.1.
- The IIS ASP engine can pass strange syntax, but the iASP pre-compiler
will report an error:
int i = 987
-
The IIS ASP engine declares variables at run-time, while
the iASP pre-compiler declares variables at compile-time. This difference
will cause some codes that can run with IIS, to not run with the iASP
pre-compiler.
For example, if an undefined variable is used in codes that never
execute, the IIS ASP engine won't report an error but the iASP pre-compiler
will as the following sample code shows:
<%option explicit %>
<%if false then
a = 888
else
dim b = 90
end if
%>
-
Because the IIS ASP engine declares variable at run-time,
the 'twoscope' variable will have two scopes (local and global)
in IIS, but the iASP pre-compiler has only one scope (global) as the
following sample code shows:
<%
test
Response.Write("after call 1 = " &
towscope)
sub test()
towscope = 888
end sub
towscope = 999
test
Response.Write(towscope)
%>
-
The IIS ASP engine has a computation bug ( "-2^2"
is "4") that the iASP pre-compiler fixes.
- The iASP pre-compiler does not support the getObject function.
- The iASP pre-compiler handles the option explicit error at compilation
time, but IIS handles the option explicit error at runtime. The following
codes can work well with IIS , but do not work with iASP pre-compiler.
<%
option explicit
on error resume next
response.write typename(var1)
%>
-
The IIS ASP engine incorrectly allows strings such as
"[22]" to be used as the name of a variable. The iASP pre-compiler
does not.
-
With "On Error resume next" code, if an error
occurs in a condition statement (e.g.: if 3/0 then, while(3/0) ...),
IIS will jump to the next statement, but the iASP pre-compiler cannot.
For example:
<% On Error resume next
if 3/0 then
Response.write("execute here ")
else
Response.write("doesn't execute here ")
end if %>
- The iASP pre-compiler doesn't support the execution of Jscript codes
dynamically.
The following codes cannot be executed in the pre-compiler :
<%
var b = new Function("Response.Write(\"new
Function\");");
c = new b.constructor("Response.Write(\"new
constructor\");");
b();
c();
eval("Response.Write(\"invoked by eval statement\")");
%>
- The iASP pre-compiler doesn't support Eval.
- Expression of JScript cannot be used as a statement in the iASP pre-compiler.
-
The iASP pre-compiler's ASP2JSP does not support the
BinaryWrite method.
NOTE: If you require immediate
support for an unsupported function, please email support@halcyonsoft.com.
|