This document contains information crucial for running Instant ASP 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 iASP pre-compiler can run as the standalone servlets, but if the ASP page links some other files, such as 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 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.
- Pre-compiler can ONLY run with JSDK2.1.
- Strange syntax can be passed by IIS ASP engine, but we will report error:
int i = 987
IIS declares variable at run-time , but iASP pre-compiler declares variable at compile-time, this will cause some codes that can only run with IIS, but can not run with iASP pre-compiler.
For example : IIS won't report error if an undefined variable is used in codes that never execute, but our iASP pre-compiler will report error.
<%option explicit %>
<%if false then
a = 888 ' this will report error in iASP pre-compiler, but work with IIS.
else
dim b = 90
end if
%>
Because IIS declares variable at run-time, the 'twoscope' variable will have two scope(local and global) in IIS , but there is only one scope(global) in iASP pre-compiler.
<%
test
Response.Write("after call 1 = " & towscope) 'this will output nothing to 'client in IIS , but in our iASP pre-compiler will output 888 .
sub test()
towscope = 888
end sub
towscope = 999
test
Response.Write(towscope) 'this will output 888 to client in IIS .
%>
In IIS, It's definitely wrong that the result of "-2^2" is "4", fortunately, in our iASP, we has fixed this bug.
iASP doesn't support getObject Function now.
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 can not work with iASP pre-compiler.
<%
option explicit
on error resume next
response.write typename(var1)
%>
In IIS, It's definitely wrong that "[22]" can be used as the name of variable. But iASP doesn't allow this.
On error resume next statement problem, if an error occurs in an condition statement (e.g.: if 3/0 then, while(3/0) ...), IIS will jump to the next statement, our pre-compiler can not.
For example:<% On Error resume next if 3/0 then Response.write("execute here ") else Response.write("doesn't execute here ") end if %>- iASP pre-compiler doesn't support the execution of Jscript codes dynamically.
For example:
- The following codes can not be executed in 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\")");
%>- iASP pre-compiler doesn't support Eval .
- Expression of JScript can not be used as a statement in pre-compiler.
iASP pre-compiler's ASP2JSP doesn't support BinaryWrite method.
Copyright © 1998-2000, Halcyon
Software Inc. All rights reserved.