Index: mozilla-src/mozilla/client.mk
diff -u mozilla-src/mozilla/client.mk:1.1 mozilla-src/mozilla/client.mk:1.2
--- mozilla-src/mozilla/client.mk:1.1	Sat Nov 13 12:59:36 2004
+++ mozilla-src/mozilla/client.mk	Tue Sep 27 15:44:55 2005
@@ -67,6 +67,7 @@
 MAIL_CO_TAG = FIREFOX_0_10_1_RELEASE
 STANDALONE_COMPOSER_CO_TAG = FIREFOX_0_10_1_RELEASE
 LOCALES_CO_TAG = FIREFOX_0_10_1_RELEASE
+MOZ_OBJDIR = d:/mozilla-src/mozilla/firefox_obj_dir
 BUILD_MODULES = all
 
 #######################################################################
Index: mozilla-src/mozilla/mozilla.ncb
Index: mozilla-src/mozilla/mozilla.sln
diff -u /dev/null mozilla-src/mozilla/mozilla.sln:1.1
--- /dev/null	Sun Mar 19 00:40:51 2006
+++ mozilla-src/mozilla/mozilla.sln	Sat Nov 13 14:06:06 2004
@@ -0,0 +1,32 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mozilla", "mozilla.vcproj", "{D8FE28BC-4100-4546-93BB-1ABA0CB31C7A}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsshell", "js\src\Debug\jsshell\jsshell.vcproj", "{38F517F2-78CD-45DF-A403-A833378F80E4}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{D8FE28BC-4100-4546-93BB-1ABA0CB31C7A}.Debug.ActiveCfg = Debug|Win32
+		{D8FE28BC-4100-4546-93BB-1ABA0CB31C7A}.Debug.Build.0 = Debug|Win32
+		{D8FE28BC-4100-4546-93BB-1ABA0CB31C7A}.Release.ActiveCfg = Release|Win32
+		{D8FE28BC-4100-4546-93BB-1ABA0CB31C7A}.Release.Build.0 = Release|Win32
+		{38F517F2-78CD-45DF-A403-A833378F80E4}.Debug.ActiveCfg = Debug|Win32
+		{38F517F2-78CD-45DF-A403-A833378F80E4}.Debug.Build.0 = Debug|Win32
+		{38F517F2-78CD-45DF-A403-A833378F80E4}.Release.ActiveCfg = Release|Win32
+		{38F517F2-78CD-45DF-A403-A833378F80E4}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionItems) = postSolution
+		mozilla.vsd = mozilla.vsd
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
Index: mozilla-src/mozilla/mozilla.vcproj
diff -u /dev/null mozilla-src/mozilla/mozilla.vcproj:1.3
--- /dev/null	Sun Mar 19 00:40:51 2006
+++ mozilla-src/mozilla/mozilla.vcproj	Tue Nov 22 16:25:59 2005
@@ -0,0 +1,700 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="mozilla"
+	ProjectGUID="{D8FE28BC-4100-4546-93BB-1ABA0CB31C7A}"
+	Keyword="MakeFileProj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="0"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			>
+			<Tool
+				Name="VCNMakeTool"
+				BuildCommandLine=""
+				ReBuildCommandLine=""
+				CleanCommandLine=""
+				Output="firefox_obj_dir\dist\bin\firefox.exe"
+				PreprocessorDefinitions="XSS"
+				IncludeSearchPath=""
+				ForcedIncludes=""
+				AssemblySearchPath=""
+				ForcedUsingAssemblies=""
+				CompileAsManaged=""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="0"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			>
+			<Tool
+				Name="VCNMakeTool"
+				BuildCommandLine=""
+				ReBuildCommandLine=""
+				CleanCommandLine=""
+				Output="dist\bin\firefox.exe"
+				PreprocessorDefinitions=""
+				IncludeSearchPath=""
+				ForcedIncludes=""
+				AssemblySearchPath=""
+				ForcedUsingAssemblies=""
+				CompileAsManaged=""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<Filter
+				Name="jsd"
+				>
+				<File
+					RelativePath=".\js\jsd\jsd_atom.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_high.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_hook.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_java.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_lock.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_obj.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_scpt.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_stak.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_step.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_text.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_val.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_xpc.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsdebug.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsdstubs.c"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="js"
+				>
+				<File
+					RelativePath="..\..\Microsoft Visual Studio .NET 2003\Vc7\crt\src\dbgheap.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\js.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsapi.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsarena.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsarray.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsatom.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsbool.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jscntxt.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jscpucfg.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdate.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdbgapi.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdhash.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdtoa.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsemit.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsexn.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsfile.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsfun.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsgc.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jshash.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsinterp.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jslock.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jslog2.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jslong.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsmath.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsnum.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsobj.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsopcode.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsparse.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsprf.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsregexp.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsscan.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsscope.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsscript.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsstr.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsutil.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsxdrapi.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\nsDispatchSupport.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\nsScriptError.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\nsXPConnect.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\prmjtime.c"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpccallcontext.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpccomponents.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpccontext.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcconvert.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcdebug.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCDispConvert.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCDispInterface.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCDispObject.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCDispParamPropJSClass.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCDispParams.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCDispTearOff.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCDispTypeInfo.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcexception.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCIDispatchClassInfo.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\XPCIDispatchExtension.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcjsid.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcjsruntime.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpclog.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcmaps.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcmodule.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcruntimesvc.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcstack.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcstring.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcthreadcontext.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcthrower.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcvariant.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcwrappedjs.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcwrappedjsclass.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcwrappednative.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcwrappednativeinfo.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcwrappednativejsops.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcwrappednativeproto.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\xpconnect\src\xpcwrappednativescope.cpp"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="moz_int"
+				>
+				<File
+					RelativePath=".\content\html\document\src\nsHTMLDocument.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\xpcom\string\src\nsTAString.cpp"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath=".\js\src\xpconnect\src\xpcprivate.h"
+				>
+			</File>
+			<File
+				RelativePath=".\js\src\xssdbg.h"
+				>
+			</File>
+			<File
+				RelativePath=".\js\src\xsstaint.h"
+				>
+			</File>
+			<Filter
+				Name="js"
+				>
+				<File
+					RelativePath=".\js\src\xpconnect\src\dependentLibs.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsapi.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsarena.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsarray.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsatom.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsautocfg.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsbit.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsbool.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsclist.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jscntxt.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jscompat.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsconfig.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jscpucfg.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdate.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdbgapi.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdhash.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsdtoa.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsemit.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsexn.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsfile.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsfun.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsgc.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jshash.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsinterp.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jslibmath.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jslock.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jslong.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsmath.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsnum.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsobj.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsopcode.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsosdep.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsparse.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsprf.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsprvtd.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jspubtd.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsregexp.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsscan.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsscope.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsscript.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsstddef.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsstr.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jstypes.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsutil.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\jsxdrapi.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\prmjtime.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\src\resource.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="jsd"
+				>
+				<File
+					RelativePath=".\js\jsd\dependentLibs.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_lock.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsd_xpc.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\jsdebug.h"
+					>
+				</File>
+				<File
+					RelativePath=".\js\jsd\resource.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="moz_int"
+				>
+				<File
+					RelativePath=".\xpcom\string\public\nsTAString.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+		<File
+			RelativePath=".\js\src\jsopcode.tbl"
+			>
+		</File>
+		<File
+			RelativePath=".\readme.txt"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Index: mozilla-src/mozilla/mozilla.vsd
Index: mozilla-src/mozilla/myclean.bat
diff -u /dev/null mozilla-src/mozilla/myclean.bat:1.1
--- /dev/null	Sun Mar 19 00:40:52 2006
+++ mozilla-src/mozilla/myclean.bat	Tue Sep 27 15:45:18 2005
@@ -0,0 +1 @@
+make -f client.mk distclean >..\clean.log 2>&1
\ No newline at end of file
Index: mozilla-src/mozilla/mymake.bat
diff -u /dev/null mozilla-src/mozilla/mymake.bat:1.1
--- /dev/null	Sun Mar 19 00:40:52 2006
+++ mozilla-src/mozilla/mymake.bat	Tue Sep 27 15:45:18 2005
@@ -0,0 +1,9 @@
+date /T
+time /T
+date /T >>..\build.log
+time /T >>..\build.log
+make -f client.mk build >>..\build.log 2>&1
+date /T >>..\build.log
+time /T >>..\build.log
+date /T
+time /T
Index: mozilla-src/mozilla/config/autoconf.mk.in
diff -u mozilla-src/mozilla/config/autoconf.mk.in:1.1 mozilla-src/mozilla/config/autoconf.mk.in:1.2
--- mozilla-src/mozilla/config/autoconf.mk.in:1.1	Sat Nov 13 12:19:45 2004
+++ mozilla-src/mozilla/config/autoconf.mk.in	Wed Dec 14 14:54:23 2005
@@ -195,7 +195,7 @@
 
 OS_INCLUDES	= $(NSPR_CFLAGS) $(JPEG_CFLAGS) $(PNG_CFLAGS) $(ZLIB_CFLAGS)
 OS_LIBS		= @LIBS@
-ACDEFINES	= @MOZ_DEFINES@
+ACDEFINES	= @MOZ_DEFINES@ -DXSS=1
 
 MOZ_OPTIMIZE	= @MOZ_OPTIMIZE@
 MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@
Index: mozilla-src/mozilla/config/rules.mk
diff -u mozilla-src/mozilla/config/rules.mk:1.1 mozilla-src/mozilla/config/rules.mk:1.2
--- mozilla-src/mozilla/config/rules.mk:1.1	Sat Nov 13 12:19:45 2004
+++ mozilla-src/mozilla/config/rules.mk	Tue Jul  5 18:53:59 2005
@@ -46,6 +46,8 @@
 #	LIBRARY_NAME	-- the target library name to create from $OBJS
 #
 ################################################################################
+DEFINES		+= -DXSS=1
+
 ifndef topsrcdir
 topsrcdir		= $(DEPTH)
 endif
Index: mozilla-src/mozilla/content/base/src/nsContentPolicy.cpp
diff -u mozilla-src/mozilla/content/base/src/nsContentPolicy.cpp:1.1 mozilla-src/mozilla/content/base/src/nsContentPolicy.cpp:1.10
--- mozilla-src/mozilla/content/base/src/nsContentPolicy.cpp:1.1	Sat Nov 13 12:20:29 2004
+++ mozilla-src/mozilla/content/base/src/nsContentPolicy.cpp	Thu Mar  9 18:43:05 2006
@@ -51,6 +51,23 @@
 
 NS_IMPL_ISUPPORTS1(nsContentPolicy, nsIContentPolicy)
 
+#ifdef XSS /* XSS */
+
+#include "nsIPrompt.h"
+#include "nsIDOMWindowInternal.h"
+#include "nsIStringBundle.h"
+#include "nsIDOMHTMLDocument.h"
+#include "nsIXSSHostConnectPermissionManager.h"
+
+#define xssDialogsProperties "chrome://global/locale/commonDialogs.properties"
+static NS_DEFINE_CID(kCStringBundleServiceCID,  NS_STRINGBUNDLESERVICE_CID);
+static NS_DEFINE_CID(kXSSHostConnectPermissionManagerCID,  NS_XSSHOSTCONNECTPERMISSIONMANAGER_CID);
+
+#include "xsstaint.h"
+#include "prenv.h"
+
+#endif /* XSS */
+
 #ifdef PR_LOGGING
 static PRLogModuleInfo* gConPolLog;
 #endif
@@ -168,6 +185,296 @@
     WARN_IF_URI_UNINITIALIZED(contentLocation, "Request URI");
     WARN_IF_URI_UNINITIALIZED(requestingLocation, "Requesting URI");
 
+
+#ifdef XSS /* XSS */
+	// ASCII encoded URL spec
+    nsCString mSpec; 
+	// flag if domains are equal
+    PRBool isDomainEqual = PR_FALSE; 
+	// what the rule said 
+	PRUint32 xssRuleResult = nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT; 
+	// hosts, domains and uris
+	nsCString calledURI, callerURI, calledHost, callerHost, calledDomain, callerDomain, mSpecTaintedstr;
+	// the permissionmanager
+	nsCOMPtr<nsIXSSHostConnectPermissionManager> xssPermissionManager;
+	// prompt to interact with user
+	nsCOMPtr<nsIPrompt> prompt;
+	// if not 0, a error while initializing occured
+	int initerror = 0;
+	// flag if the contentLocation is tainted (=1) or not (=0)
+	int mSpecIstainted = 0;
+	// initialize string if mSpec is tainted
+	mSpecTaintedstr = ToNewCString(NS_LITERAL_STRING("untainted")); 
+
+	// initialize the variables
+	nsCOMPtr<nsIDOMNode> node(do_QueryInterface(requestingContext));
+	if (node) {
+		// for return values
+		nsresult rv;
+		nsCOMPtr<nsIDOMDocument> doc;
+		node->GetOwnerDocument(getter_AddRefs(doc));
+		nsCOMPtr<nsIDocument> thedoc = do_QueryInterface(doc);
+
+		// we need the doc to do something useful
+		if (thedoc) {
+			nsCOMPtr<nsIDOMWindowInternal> window (do_QueryInterface(thedoc->GetScriptGlobalObject()));
+
+			if (window) {
+				// get the prompt-service
+				window->GetPrompter(getter_AddRefs(prompt));
+				if (!prompt)
+					initerror = 1;
+			} else {
+				initerror = 2;
+			}
+
+			if (contentLocation) {
+				rv = contentLocation->GetSpec(calledURI);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to get calledURI\n", "");
+					initerror = 3;
+				}
+				rv = contentLocation->GetHost(calledHost);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to get calledHost\n", "");
+					initerror = 5;
+				}
+				rv = contentLocation->GetDomain(calledDomain);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to get domain of called uri\n", "");
+					initerror = 7;
+				}
+				rv = contentLocation->GetAsciiSpec(mSpec);
+				if (!NS_FAILED(rv) && mSpec.xssGetTainted()) {
+					mSpecIstainted = 1;
+					mSpecTaintedstr = ToNewCString(NS_LITERAL_STRING("tainted!")); 
+				}
+			} else {
+				XSS_LOG("failed because contentLocation is 0\n", "");
+				initerror = 11;
+			}
+
+			if (requestingLocation) {
+				rv = requestingLocation->GetSpec(callerURI);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to get callerURI\n", "");
+					initerror = 4;
+				}
+				rv = requestingLocation->GetHost(callerHost);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to get callerHost\n", "");
+					initerror = 6;
+				}
+				rv = requestingLocation->GetDomain(callerDomain);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to get domain of caller\n", "");
+					initerror = 8;
+				}
+			} else {
+				XSS_LOG("failed because requestingLocation is 0\n", "");
+				initerror = 12;
+			}
+
+			if (initerror == 0) {
+				xssPermissionManager = do_GetService(NS_XSSHOSTCONNECTPERMISSIONMANAGER_CONTRACTID, &rv);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to get permissionmanager\n", "");
+					initerror = 9;
+				} else {
+					// check if we already have a stored permission
+					rv = xssPermissionManager->TestPermission(callerDomain, calledDomain, &xssRuleResult);
+					if (NS_FAILED(rv)) {
+						XSS_LOG("failed to test permission\n", "");
+						initerror = 10;
+					}
+				}
+
+				// check if the questioning is switched off (XSS_USERINTERACTION==XSS_ENV_USERINTERACTION_FALSE) by the environment
+				char* env = PR_GetEnv(XSS_ENV_USERINTERACTION_STR);
+				if (env) {
+					PRInt32 num;
+					if (sscanf(env, "%d", &num) > 0) {
+						// XSS_USERINTERACTION must be XSS_ENV_USERINTERACTION_FALSE and not persistent settings
+						if ((num == XSS_ENV_USERINTERACTION_FALSE) && (xssRuleResult == nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT)) {
+							xssRuleResult = nsIXSSHostConnectPermissionManager::ALLOW_CONNECT;
+							XSS_LOG("domaincheck: environment allowed %s\n", ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+						}
+					}
+				}
+
+				// check if permanent rules are always used regardless of tainted status
+				env = PR_GetEnv(XSS_ENV_DONTCHECKTAINT);
+				if (env) {
+					PRInt32 num;
+					if (sscanf(env, "%d", &num) > 0) {
+						// XSS_ENV_DONTCHECKTAINT must be XSS_ENV_DONTCHECKTAINT_TRUE
+						if (num == XSS_ENV_DONTCHECKTAINT_TRUE) {
+							xssRuleResult = nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT;
+							XSS_LOG("domaincheck: environment delayed stored decision %s\n", ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+						}
+					}
+				}
+			} // end of initerror = 0
+
+			// to this point the variables are initialized or initerror is now != 0
+
+			// if an error occured on initializing, we don't want to check.
+			// breaking expected behaviour is bad
+			if (initerror == 0) {
+				nsresult xss_rv = contentLocation->DomainEquals(requestingLocation, &isDomainEqual);
+				// check if this are different domains
+				if (!NS_FAILED(xss_rv) &&!isDomainEqual) {
+					
+					// if we have a stored decision use it regardless of the taintstate
+					if (xssRuleResult == nsIXSSHostConnectPermissionManager::ALLOW_CONNECT) {
+
+						XSS_LOG("domaincheck: user allowed it always tainted: %s\n",
+							ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") + 
+							NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+
+					} else if (xssRuleResult == nsIXSSHostConnectPermissionManager::DENY_CONNECT) {
+
+						XSS_LOG("domaincheck: user stopped it always tainted=%d: %s\n", 
+							ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") + 
+							NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+						*decision = nsIContentPolicy::REJECT_REQUEST;
+						return NS_OK;
+
+					// no decision, so ask if it is tainted
+					} else {						
+						if (mSpecIstainted) {
+
+							// for return values
+							nsresult rv;
+
+							// check again if we already have a stored permission
+							// it is possible that the env-variable overrides the initial test so
+							// do it again
+							rv = xssPermissionManager->TestPermission(callerDomain, calledDomain, &xssRuleResult);
+							if (NS_FAILED(rv)) {
+								XSS_LOG("failed to test permission\n", "");
+								*decision = nsIContentPolicy::REJECT_REQUEST;
+								return NS_OK;
+							}
+
+							// if there isn't a permanent rule for it, ask the user
+							if (xssRuleResult == nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT) {
+
+								XSS_LOG("domaincheck: ask %s\n", ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+
+								// get the question-string
+								nsString xss_question_str;
+
+								nsCOMPtr<nsIStringBundleService> stringBundleService =
+									do_GetService(kCStringBundleServiceCID, &rv);
+
+								if (NS_SUCCEEDED(rv) && stringBundleService) {
+									nsCOMPtr<nsIStringBundle> stringBundle;
+									rv = stringBundleService->CreateBundle(xssDialogsProperties,
+										getter_AddRefs(stringBundle));
+
+									if (stringBundle) {
+										nsXPIDLString tempString;
+										const PRUnichar *formatStrings[2];
+										formatStrings[0] = ToNewUnicode(callerHost);
+										formatStrings[1] = ToNewUnicode(calledHost);
+										rv = stringBundle->FormatStringFromName(
+											NS_LITERAL_STRING("ConfirmExXSS").get(),
+											formatStrings, 2, getter_Copies(tempString));
+										if (tempString)
+											xss_question_str = tempString.get();
+									}
+								}
+
+								// Just in case
+								if (xss_question_str.IsEmpty()) {
+									NS_WARNING("could not get ConfirmExXSS string from string bundle");
+									xss_question_str.Assign(NS_LITERAL_STRING("[ConfirmExXSS] from "));
+									xss_question_str.Append(NS_ConvertUTF8toUTF16(callerURI));
+									xss_question_str.Append(NS_LITERAL_STRING(" to "));
+									xss_question_str.Append(NS_ConvertUTF8toUTF16(calledURI));
+								}
+								PRUnichar *xss_question = ToNewUnicode(xss_question_str);
+
+								// ask the question
+								PRInt32 xss_choice;
+								rv = prompt->ConfirmExXSS(nsnull, xss_question,
+									nsIPrompt::BUTTON_TITLE_NO * nsIPrompt::BUTTON_POS_0 +
+									nsIPrompt::BUTTON_TITLE_NO_ALWAYS  * nsIPrompt::BUTTON_POS_1 +
+									nsIPrompt::BUTTON_TITLE_YES_ALWAYS  * nsIPrompt::BUTTON_POS_2,
+									nsIPrompt::BUTTON_TITLE_YES  * nsIPrompt::BUTTON_POS_0,
+									nsnull, nsnull, nsnull, nsnull, nsnull, nsnull, &xss_choice);
+								if (NS_FAILED(rv)) {
+									*decision = nsIContentPolicy::REJECT_REQUEST;
+									return NS_OK;
+								}
+
+								// evaluate the answer
+								switch (xss_choice) {
+									// yes-button
+									case 3:
+										XSS_LOG("domaincheck: user allowed it: %s\n", 
+											ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+											+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)) );
+										break;
+										// yes, always-button
+									case 2:
+										XSS_LOG("domaincheck: user allowed it always: %s\n", 
+											ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+											+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+										xssPermissionManager->Add(callerDomain, calledDomain, nsIXSSHostConnectPermissionManager::ALLOW_CONNECT);
+										break;
+										// no-always-button
+									case 1:
+										XSS_LOG("domaincheck: user stopped it always: %s\n", 
+											ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+											+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+										xssPermissionManager->Add(callerDomain, calledDomain, nsIXSSHostConnectPermissionManager::DENY_CONNECT);
+										*decision = nsIContentPolicy::REJECT_REQUEST;
+										return NS_OK;
+										break;
+										// no-button
+									case 0:
+										XSS_LOG("domaincheck: user stopped it: %s\n", 
+											ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+											+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+										*decision = nsIContentPolicy::REJECT_REQUEST;
+										return NS_OK;
+										break;
+									default:
+										XSS_LOG("domaincheck: error! %s\n", 
+											ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) 
+											+ NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+										*decision = nsIContentPolicy::REJECT_REQUEST;
+										return NS_OK;
+										break;
+								}
+							// we already have a user decision
+							} else {
+								if (xssRuleResult == nsIXSSHostConnectPermissionManager::DENY_CONNECT) {
+									*decision = nsIContentPolicy::REJECT_REQUEST;
+									XSS_LOG("domaincheck: stored always deny! %s\n", 
+										ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) 
+										+ NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+									return NS_OK;
+								} else {
+									XSS_LOG("domaincheck: stored always allow! %s\n", 
+										ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) 
+										+ NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+								}
+							}
+						} // end of tainted
+					} // end of question
+					/* If no node is found, just continue and let the other handlers do their job.
+					   node could be null if the googlebar is used to search for something.
+					*/
+				} // end of domains are not equal
+			} // end of initerror
+		} // end of thedoc
+	} // end of node
+#endif /* XSS */
+    
+
 #ifdef DEBUG
     {
         nsCOMPtr<nsIDOMNode> node(do_QueryInterface(requestingContext));
Index: mozilla-src/mozilla/content/base/src/nsDocument.cpp
diff -u mozilla-src/mozilla/content/base/src/nsDocument.cpp:1.1 mozilla-src/mozilla/content/base/src/nsDocument.cpp:1.4
--- mozilla-src/mozilla/content/base/src/nsDocument.cpp:1.1	Sat Nov 13 12:20:30 2004
+++ mozilla-src/mozilla/content/base/src/nsDocument.cpp	Wed Dec 14 14:55:19 2005
@@ -128,6 +128,11 @@
 #include "nsICharsetAlias.h"
 static NS_DEFINE_CID(kCharsetAliasCID, NS_CHARSETALIAS_CID);
 
+#ifdef XSS
+#include "xsstaint.h"
+#include "prlog.h"
+#endif /* XSS */
+
 // Helper structs for the content->subdoc map
 
 class SubDocMapEntry : public PLDHashEntryHdr
@@ -851,6 +856,21 @@
     // (or even the current time), fall back to what NS4.x returned.
     CopyASCIItoUCS2(NS_LITERAL_CSTRING("January 1, 1970 GMT"), aLastModified);
   }
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  if (mDocumentBaseURI) {
+		  mDocumentBaseURI->GetSpec(xss_doc_uri);
+	  }	  
+	  XSS_LOG("xsstaintstring nsDocument::GetLastModified: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aLastModified + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aLastModified.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
 
   return NS_OK;
 }
@@ -912,6 +932,21 @@
 nsDocument::GetReferrer(nsAString& aReferrer)
 {
   CopyUTF8toUTF16(mReferrer, aReferrer);
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  if (mDocumentBaseURI) {
+		  mDocumentBaseURI->GetSpec(xss_doc_uri);
+	  }	  
+	  XSS_LOG("xsstaintstring nsDocument::GetReferrer: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aReferrer + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aReferrer.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
   return NS_OK;
 }
 
@@ -2720,6 +2755,21 @@
 nsDocument::GetTitle(nsAString& aTitle)
 {
   aTitle.Assign(mDocumentTitle);
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  if (mDocumentBaseURI) {
+		  mDocumentBaseURI->GetSpec(xss_doc_uri);
+	  }	  
+	  XSS_LOG("xsstaintstring nsDocument::GetTitle: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aTitle + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aTitle.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
 
   return NS_OK;
 }
Index: mozilla-src/mozilla/content/base/src/nsGenericDOMDataNode.cpp
diff -u mozilla-src/mozilla/content/base/src/nsGenericDOMDataNode.cpp:1.1 mozilla-src/mozilla/content/base/src/nsGenericDOMDataNode.cpp:1.4
--- mozilla-src/mozilla/content/base/src/nsGenericDOMDataNode.cpp:1.1	Sat Nov 13 12:20:29 2004
+++ mozilla-src/mozilla/content/base/src/nsGenericDOMDataNode.cpp	Wed Dec 14 14:55:28 2005
@@ -58,6 +58,11 @@
 #include "pldhash.h"
 #include "prprf.h"
 
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#include "prlog.h"
+#endif /* XSS */
+
 nsGenericDOMDataNode::nsGenericDOMDataNode()
   : mText()
 {
@@ -338,6 +343,24 @@
     }
   }
 
+#ifdef XSS /* XSS */
+  if (mText.xssGetTainted() == XSS_TAINTED)
+  {
+	  nsCString xss_doc_uri;
+	  nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+	  if (baseURI) {
+		baseURI->GetSpec(xss_doc_uri);
+	  }
+	  XSS_LOG("xsstaintstring nsGenericDOMDataNode::GetData: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aData + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aData.xssSetTainted(mText.xssGetTainted());
+#endif /* XSS */
+
   return NS_OK;
 }
 
@@ -353,6 +376,23 @@
   }
 
   nsCOMPtr<nsITextContent> textContent = do_QueryInterface(this);
+#ifdef XSS /* XSS */
+  if (aData.xssGetTainted() == XSS_TAINTED)
+  {
+	  nsCString xss_doc_uri;
+	  nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+	  if (baseURI) {
+		baseURI->GetSpec(xss_doc_uri);
+	  }
+	  XSS_LOG("xsstaintstring nsGenericDOMDataNode::SetData: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aData + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  mText.xssSetTainted(aData.xssGetTainted());
+#endif /* XSS */
 
   return SetText(aData, PR_TRUE);
 }
@@ -413,6 +453,24 @@
     // we'll just have to copy for now. See bug 121841 for details.
     old_data.Append(aData);
     rv = SetText(old_data, PR_FALSE);
+#ifdef XSS /* XSS */
+	if (old_data.xssGetTainted() == XSS_TAINTED) {
+		{
+			nsCString xss_doc_uri;
+			nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+			if (baseURI) {
+				baseURI->GetSpec(xss_doc_uri);
+			}
+			XSS_LOG("xsstaintstring nsGenericDOMDataNode::AppendData: %s\n",
+				ToNewCString(
+				NS_LITERAL_STRING("'") +
+				aData + 
+				NS_LITERAL_STRING("' ") + 
+				NS_ConvertUTF8toUTF16(xss_doc_uri)));
+		} while (0);
+		mText.xssSetTainted(XSS_TAINTED);
+	}
+#endif /* XSS */
   } else {
     // We know aData and the current data is ASCII, so use a
     // nsC*String, no need for any fancy unicode stuff here.
@@ -421,6 +479,24 @@
     length = old_data.Length();
     old_data.AppendWithConversion(aData);
     rv = SetText(old_data.get(), old_data.Length(), PR_FALSE);
+#ifdef XSS /* XSS */
+	if (old_data.xssGetTainted() == XSS_TAINTED) {
+		{
+			nsCString xss_doc_uri;
+			nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+			if (baseURI) {
+				baseURI->GetSpec(xss_doc_uri);
+			}
+			XSS_LOG("xsstaintstring nsGenericDOMDataNode::AppendData: %s\n",
+				ToNewCString(
+				NS_LITERAL_STRING("'") +
+				aData + 
+				NS_LITERAL_STRING("' ") + 
+				NS_ConvertUTF8toUTF16(xss_doc_uri)));
+		} while (0);
+		mText.xssSetTainted(XSS_TAINTED);
+	}
+#endif /* XSS */
   }
 
   NS_ENSURE_SUCCESS(rv, rv);
Index: mozilla-src/mozilla/content/base/src/nsGenericElement.cpp
diff -u mozilla-src/mozilla/content/base/src/nsGenericElement.cpp:1.1 mozilla-src/mozilla/content/base/src/nsGenericElement.cpp:1.3
--- mozilla-src/mozilla/content/base/src/nsGenericElement.cpp:1.1	Sat Nov 13 12:20:30 2004
+++ mozilla-src/mozilla/content/base/src/nsGenericElement.cpp	Fri Nov 25 18:35:33 2005
@@ -101,6 +101,10 @@
 
 #include "nsIDOMXPathEvaluator.h"
 
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#endif /* XSS */
+
 #ifdef DEBUG_waterson
 
 /**
@@ -803,6 +807,9 @@
 nsGenericElement::nsGenericElement()
   : mFlagsOrSlots(GENERIC_ELEMENT_DOESNT_HAVE_DOMSLOTS)
 {
+#ifdef XSS /* XSS */
+	xss_istainted = XSS_NOT_TAINTED;
+#endif /* XSS */
 }
 
 nsGenericElement::~nsGenericElement()
Index: mozilla-src/mozilla/content/base/src/nsGenericElement.h
diff -u mozilla-src/mozilla/content/base/src/nsGenericElement.h:1.1 mozilla-src/mozilla/content/base/src/nsGenericElement.h:1.2
--- mozilla-src/mozilla/content/base/src/nsGenericElement.h:1.1	Sat Nov 13 12:20:30 2004
+++ mozilla-src/mozilla/content/base/src/nsGenericElement.h	Tue Jul 12 13:46:33 2005
@@ -639,6 +639,18 @@
   static PLDHashTable sEventListenerManagersHash;
   static PLDHashTable sRangeListsHash;
 
+#ifdef XSS /* XSS */
+
+	int xssGetTainted() {
+		return xss_istainted;
+	}
+
+	void xssSetTainted(int tainted) {
+		xss_istainted = tainted;
+	}
+
+#endif /* XSS */
+
 protected:
   /**
    * Copy attributes and children from another content object
@@ -769,6 +781,14 @@
    * Array containing all attributes and children for this element
    */
   nsAttrAndChildArray mAttrsAndChildren;
+
+#ifdef XSS /* XSS */
+	  
+	// flag if the string is tainted
+	int xss_istainted;
+
+#endif /* XSS */
+
 };
 
 // Internal non-public interface
Index: mozilla-src/mozilla/content/base/src/nsPlainTextSerializer.cpp
diff -u mozilla-src/mozilla/content/base/src/nsPlainTextSerializer.cpp:1.1 mozilla-src/mozilla/content/base/src/nsPlainTextSerializer.cpp:1.4
--- mozilla-src/mozilla/content/base/src/nsPlainTextSerializer.cpp:1.1	Sat Nov 13 12:20:30 2004
+++ mozilla-src/mozilla/content/base/src/nsPlainTextSerializer.cpp	Wed Dec 14 14:55:39 2005
@@ -57,6 +57,11 @@
 #include "nsCRT.h"
 #include "nsIParserService.h"
 
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#include "prlog.h"
+#endif /* XSS */
+
 static NS_DEFINE_CID(kLWBrkCID, NS_LWBRK_CID);
 
 #define PREF_STRUCTS "converter.html2txt.structs"
@@ -338,6 +343,18 @@
       textstr.AssignWithConversion(frag->Get1b()+aStartOffset, length);
     }
   }
+#ifdef XSS /* XSS */
+  if (frag->xssGetTainted() == XSS_TAINTED)
+  {
+	  XSS_LOG("xsstaintstring nsPlainTextSerializer::AppendText: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  textstr +
+		  NS_LITERAL_STRING("'")
+		  ));
+  } while (0);
+  textstr.xssSetTainted(frag->xssGetTainted());
+#endif /* XSS */
 
   mOutputString = &aStr;
 
@@ -1643,6 +1660,20 @@
   
   PRInt32 totLen = aString.Length();
 
+#ifdef XSS /* XSS */
+  if (aString.xssGetTainted() == XSS_TAINTED) {
+	  {
+		  XSS_LOG("xsstaintstring nsPlainTextSerializer::Write: %s\n",
+			  ToNewCString(
+		      NS_LITERAL_STRING("'") +
+			  mCurrentLine +
+			  NS_LITERAL_STRING("' aString: ") +
+			  aString));
+	  } while (0);
+	  mCurrentLine.xssSetTainted(XSS_TAINTED);
+  }
+#endif /* XSS */
+
   // If the string is empty, do nothing:
   if (totLen <= 0) return;
 
Index: mozilla-src/mozilla/content/html/content/public/nsIFormSubmission.h
diff -u mozilla-src/mozilla/content/html/content/public/nsIFormSubmission.h:1.1 mozilla-src/mozilla/content/html/content/public/nsIFormSubmission.h:1.2
--- mozilla-src/mozilla/content/html/content/public/nsIFormSubmission.h:1.1	Sat Nov 13 12:20:40 2004
+++ mozilla-src/mozilla/content/html/content/public/nsIFormSubmission.h	Mon Nov 14 16:29:23 2005
@@ -117,6 +117,26 @@
                                const nsACString& aContentType,
                                PRBool aMoreFilesToCome) = 0;
 
+#ifdef XSS /* XSS */
+
+protected:
+
+	// flag if the submission form is tainted
+	int xss_istainted;
+
+public:
+
+	int xssGetTainted() {
+		return xss_istainted;
+	}
+
+	void xssSetTainted(int tainted) {
+		xss_istainted = tainted;
+	}
+
+
+#endif /* XSS */
+
 };
 
 //
Index: mozilla-src/mozilla/content/html/content/src/nsFormSubmission.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsFormSubmission.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsFormSubmission.cpp:1.3
--- mozilla-src/mozilla/content/html/content/src/nsFormSubmission.cpp:1.1	Sat Nov 13 12:20:32 2004
+++ mozilla-src/mozilla/content/html/content/src/nsFormSubmission.cpp	Fri Nov 25 18:35:54 2005
@@ -56,6 +56,11 @@
 #include "nsIScriptError.h"
 #include "nsIStringBundle.h"
 
+
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#endif /* XSS */
+
 //BIDI
 #include "nsBidiUtils.h"
 //end
@@ -87,6 +92,9 @@
       mFormProcessor(aFormProcessor),
       mBidiOptions(aBidiOptions)
   {
+#ifdef XSS /* XSS */
+	xss_istainted = XSS_NOT_TAINTED;
+#endif /* XSS */
   };
   virtual ~nsFormSubmission()
   {
@@ -1475,3 +1483,4 @@
 
   return retval;
 }
+
Index: mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.cpp:1.3
--- mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.cpp:1.1	Sat Nov 13 12:20:32 2004
+++ mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.cpp	Wed Dec 14 14:56:48 2005
@@ -136,6 +136,11 @@
 #include "nsAutoPtr.h"
 #include "nsCOMArray.h"
 
+#ifdef XSS /* XSS */
+#include "nsPrintfCString.h"
+#include "prlog.h"
+#endif /* XSS */
+
 static NS_DEFINE_CID(kPresStateCID,  NS_PRESSTATE_CID);
 // XXX todo: add in missing out-of-memory checks
 
@@ -1592,6 +1597,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+  // first added for anchor.href
+  if (aValue.xssGetTainted()) {
+	  {
+		  nsCString xss_doc_uri;
+          nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		  if (baseURI) {
+			  baseURI->GetSpec(xss_doc_uri);
+		  }	  
+		  XSS_LOG("xsstaintstring nsGenericHTMLElement::SetAttr: %s\n",
+			  ToNewCString(
+			  NS_LITERAL_STRING("'") +
+			  NS_ConvertUTF8toUTF16(nsPrintfCString("%d", aNamespaceID)) + 
+			  NS_LITERAL_STRING("' '") + 
+			  aValue + 
+			  NS_LITERAL_STRING("' ") + 
+			  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	  } while (0);
+	  xssSetTainted(aValue.xssGetTainted());
+  }
+#endif /* XSS */
+
   // Parse into a nsAttrValue
   nsAttrValue attrValue;
   if (aNamespaceID == kNameSpaceID_None) {
@@ -1792,6 +1819,28 @@
 
   attrValue->ToString(aResult);
 
+#ifdef XSS /* XSS */
+  // first added for anchor.href
+  if (xss_istainted != XSS_NOT_TAINTED) {
+	  {
+		  nsCString xss_doc_uri;
+          nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		  if (baseURI) {
+			  baseURI->GetSpec(xss_doc_uri);
+		  }	  
+		  XSS_LOG("xsstaintstring nsGenericHTMLElement::GetAttr: %s\n",
+			  ToNewCString(
+			  NS_LITERAL_STRING("'") +
+			  NS_ConvertUTF8toUTF16(nsPrintfCString("%d", aNameSpaceID)) + 
+			  NS_LITERAL_STRING("' '") + 
+			  aResult + 
+			  NS_LITERAL_STRING("' ") + 
+			  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	  } while (0);
+	  aResult.xssSetTainted(XSS_TAINTED);
+  }
+#endif /* XSS */
+
   return NS_CONTENT_ATTR_HAS_VALUE;
 }
 
Index: mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.h
diff -u mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.h:1.1 mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.h:1.5
--- mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.h:1.1	Sat Nov 13 12:20:35 2004
+++ mozilla-src/mozilla/content/html/content/src/nsGenericHTMLElement.h	Sat Jan  7 17:35:40 2006
@@ -904,6 +904,82 @@
                    PR_TRUE);                                         \
   }
 
+#ifdef XSS /* XSS */
+/**
+ * A macro to implement the getter and setter for a given string
+ * valued content property. The method uses the generic GetAttr and
+ * SetAttr methods.
+ */
+#define NS_IMPL_STRING_ATTR_XSS(_class, _method, _atom)              \
+  NS_IMETHODIMP                                                      \
+  _class::Get##_method(nsAString& aValue)                            \
+  {                                                                  \
+    GetAttr(kNameSpaceID_None, nsHTMLAtoms::_atom, aValue);          \
+	{																 \
+		nsCString xss_doc_uri;										 \
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();					 \
+		if (baseURI) {												 \
+			baseURI->GetSpec(xss_doc_uri);							 \
+		}															 \
+		XSS_LOG("xsstaintstring " #_class "::" #_method ": %s\n",	 \
+			ToNewCString(											 \
+		    NS_LITERAL_STRING("'") +								 \
+			aValue +												 \
+			NS_LITERAL_STRING("' ") +								 \
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));					 \
+	} while (0);													 \
+	aValue.xssSetTainted(XSS_TAINTED);								 \
+                                                                     \
+    return NS_OK;                                                    \
+  }                                                                  \
+  NS_IMETHODIMP                                                      \
+  _class::Set##_method(const nsAString& aValue)                      \
+  {                                                                  \
+    return SetAttr(kNameSpaceID_None, nsHTMLAtoms::_atom, aValue,    \
+                   PR_TRUE);                                         \
+  }
+
+/**
+ * A macro to implement the getter and setter for a given string
+ * valued content property. The method uses the generic GetAttr and
+ * SetAttr methods.
+ */
+#define NS_IMPL_URI_ATTR_XSS_HREFPARAM(_class, _method, _atom)       \
+  NS_IMETHODIMP                                                      \
+  _class::Get##_method(nsAString& aValue)                            \
+  {                                                                  \
+    GetURIAttr(nsHTMLAtoms::_atom, aValue);                          \
+    /* only taint if the url contains a '?'. i.e. there are */       \
+	/* parameters */												 \
+    if (aValue.FindChar('?') >= 0) {							     \
+		{															 \
+			nsCString xss_doc_uri;									 \
+			nsCOMPtr<nsIURI> baseURI = GetBaseURI();				 \
+			if (baseURI) {											 \
+				baseURI->GetSpec(xss_doc_uri);						 \
+			}														 \
+			XSS_LOG("xsstaintstring " #_class "::" #_method ": %s\n",\
+				ToNewCString(										 \
+				NS_LITERAL_STRING("'") +							 \
+				aValue +											 \
+				NS_LITERAL_STRING("' ") +							 \
+				NS_ConvertUTF8toUTF16(xss_doc_uri)));				 \
+		} while (0);												 \
+	  aValue.xssSetTainted(XSS_TAINTED);							 \
+    }																 \
+                                                                     \
+    return NS_OK;                                                    \
+  }                                                                  \
+  NS_IMETHODIMP                                                      \
+  _class::Set##_method(const nsAString& aValue)                      \
+  {                                                                  \
+    return SetAttr(kNameSpaceID_None, nsHTMLAtoms::_atom, aValue,    \
+                   PR_TRUE);                                         \
+  }
+
+#endif /* XSS */
+
+
 /**
  * A macro to implement the getter and setter for a given string
  * valued content property with a default value.
@@ -989,6 +1065,47 @@
                    PR_TRUE);                                        \
   }
 
+#ifdef XSS /* XSS */
+/**
+ * A macro to implement the getter and setter for a given content
+ * property that needs to return a URI in string form.  The method
+ * uses the generic GetAttr and SetAttr methods.  This macro is much
+ * like the NS_IMPL_STRING_ATTR macro, except we make sure the URI is
+ * absolute.
+ */
+#define NS_IMPL_URI_ATTR_XSS(_class, _method, _atom)                \
+  NS_IMETHODIMP                                                     \
+  _class::Get##_method(nsAString& aValue)                           \
+  {                                                                 \
+    GetURIAttr(nsHTMLAtoms::_atom, aValue);                         \
+    /* only taint location, if it contains a '?' */					\
+	if (aValue.FindChar('?') >= 0) {								\
+	{																\
+		nsCString xss_doc_uri;										\
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();					\
+		if (baseURI) {												\
+			baseURI->GetSpec(xss_doc_uri);							\
+		}															\
+		XSS_LOG("xsstaintstring " #_class "::" #_method ": %s\n",	\
+			ToNewCString(											\
+			NS_LITERAL_STRING("'") +								\
+			aValue +												\
+			NS_LITERAL_STRING("' ") +								\
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));					\
+	} while (0);													\
+		aValue.xssSetTainted(XSS_TAINTED);							\
+	}																\
+                                                                    \
+    return NS_OK;                                                   \
+  }                                                                 \
+  NS_IMETHODIMP                                                     \
+  _class::Set##_method(const nsAString& aValue)                     \
+  {                                                                 \
+    return SetAttr(kNameSpaceID_None, nsHTMLAtoms::_atom, aValue,   \
+                   PR_TRUE);                                        \
+  }
+#endif /* XSS */
+
 /**
  * QueryInterface() implementation helper macros
  */
Index: mozilla-src/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp:1.3
--- mozilla-src/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp:1.1	Sat Nov 13 12:20:34 2004
+++ mozilla-src/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp	Wed Dec 14 14:56:48 2005
@@ -66,6 +66,10 @@
 #include "nsIPresShell.h"
 #include "nsIDocument.h"
 
+#ifdef XSS /* XSS */
+#include "prlog.h"
+#endif /* XSS */
+
 nsresult NS_NewContentIterator(nsIContentIterator** aInstancePtrResult);
 
 class nsHTMLAnchorElement : public nsGenericHTMLElement,
@@ -209,7 +213,11 @@
 
 NS_IMPL_STRING_ATTR(nsHTMLAnchorElement, Charset, charset)
 NS_IMPL_STRING_ATTR(nsHTMLAnchorElement, Coords, coords)
+#ifndef XSS /* original */
 NS_IMPL_URI_ATTR(nsHTMLAnchorElement, Href, href)
+#else /* XSS */
+NS_IMPL_URI_ATTR_XSS_HREFPARAM(nsHTMLAnchorElement, Href, href)
+#endif /* XSS */
 NS_IMPL_STRING_ATTR(nsHTMLAnchorElement, Hreflang, hreflang)
 NS_IMPL_STRING_ATTR(nsHTMLAnchorElement, Name, name)
 NS_IMPL_STRING_ATTR(nsHTMLAnchorElement, Rel, rel)
@@ -353,9 +361,34 @@
   if (NS_FAILED(rv))
     return rv;
 
+#ifndef XSS /* original */
+
   // XXX this should really use GetHrefURI and not do so much string stuff
   return GetProtocolFromHrefString(href, aProtocol,
                                    nsGenericHTMLElement::GetOwnerDocument());
+
+#else /* XSS */
+  
+  // XXX this should really use GetHrefURI and not do so much string stuff
+  rv = GetProtocolFromHrefString(href, aProtocol,
+								 nsGenericHTMLElement::GetOwnerDocument());
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::GetProtocol: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aProtocol + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aProtocol.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
@@ -383,7 +416,30 @@
   if (NS_FAILED(rv))
     return rv;
 
+#ifndef XSS /* original */
+
   return GetHostFromHrefString(href, aHost);
+
+#else /* XSS */
+
+  rv = GetHostFromHrefString(href, aHost);
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::GetHost: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aHost + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aHost.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
@@ -410,7 +466,30 @@
   if (NS_FAILED(rv))
     return rv;
 
+#ifndef XSS /* original */
+
   return GetHostnameFromHrefString(href, aHostname);
+
+#else /* XSS */
+
+  rv = GetHostnameFromHrefString(href, aHostname);
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::GetHostname: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aHostname + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aHostname.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
@@ -438,7 +517,30 @@
   if (NS_FAILED(rv))
     return rv;
 
+#ifndef XSS /* original */
+
   return GetPathnameFromHrefString(href, aPathname);
+
+#else /* XSS */
+
+  rv = GetPathnameFromHrefString(href, aPathname);
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::GetPathname: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aPathname + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aPathname.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
@@ -466,7 +568,30 @@
   if (NS_FAILED(rv))
     return rv;
 
+#ifndef XSS /* original */
+
   return GetSearchFromHrefString(href, aSearch);
+
+#else /* XSS */
+  
+  rv = GetSearchFromHrefString(href, aSearch);
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::GetSearch: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aSearch + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aSearch.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
@@ -495,7 +620,30 @@
   if (NS_FAILED(rv))
     return rv;
 
+#ifndef XSS /* original */
+
   return GetPortFromHrefString(href, aPort);
+
+#else /* XSS */
+  
+  rv = GetPortFromHrefString(href, aPort);
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::GetPort: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aPort + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aPort.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
@@ -524,7 +672,30 @@
   if (NS_FAILED(rv))
     return rv;
 
+#ifndef XSS /* original */
+
   return GetHashFromHrefString(href, aHash);
+
+#else /* XSS */
+
+  rv = GetHashFromHrefString(href, aHash);
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::GetHash: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aHash + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aHash.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
@@ -584,7 +755,30 @@
 NS_IMETHODIMP
 nsHTMLAnchorElement::ToString(nsAString& aSource)
 {
+#ifndef XSS /* original */
+
   return GetHref(aSource);
+
+#else /* XSS */
+  
+  nsresult rv = GetHref(aSource);
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLAnchorElement::ToString: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aSource + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aSource.xssSetTainted(XSS_TAINTED);
+  return rv;
+
+#endif /* XSS */
 }
 
 NS_IMETHODIMP
Index: mozilla-src/mozilla/content/html/content/src/nsHTMLFormElement.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsHTMLFormElement.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsHTMLFormElement.cpp:1.11
--- mozilla-src/mozilla/content/html/content/src/nsHTMLFormElement.cpp:1.1	Sat Nov 13 12:20:34 2004
+++ mozilla-src/mozilla/content/html/content/src/nsHTMLFormElement.cpp	Thu Mar  9 18:43:04 2006
@@ -85,6 +85,24 @@
 #include "nsIRadioVisitor.h"
 #include "nsIRadioGroupContainer.h"
 
+
+#ifdef XSS /* XSS */
+#include "nsIDOMHTMLDocument.h"
+#include "nsIPrompt.h"
+#include "nsReadableUtils.h"
+#include "nsIStringBundle.h"
+#include "nsIXSSHostConnectPermissionManager.h"
+
+#define xssDialogsProperties "chrome://global/locale/commonDialogs.properties"
+static NS_DEFINE_CID(kCStringBundleServiceCID,  NS_STRINGBUNDLESERVICE_CID);
+static NS_DEFINE_CID(kXSSHostConnectPermissionManagerCID,  NS_XSSHOSTCONNECTPERMISSIONMANAGER_CID);
+
+#include "xsstaint.h"
+#include "prenv.h"
+#include "prlog.h"
+
+#endif /* XSS */
+
 static const int NS_FORM_CONTROL_LIST_HASHTABLE_SIZE = 16;
 
 class nsFormControlList;
@@ -556,7 +574,11 @@
 }
 
 NS_IMPL_STRING_ATTR(nsHTMLFormElement, AcceptCharset, acceptcharset)
+#ifndef XSS /* original */
 NS_IMPL_STRING_ATTR(nsHTMLFormElement, Action, action)
+#else /* XSS */
+NS_IMPL_STRING_ATTR_XSS(nsHTMLFormElement, Action, action)
+#endif /* XSS */
 NS_IMPL_STRING_ATTR(nsHTMLFormElement, Enctype, enctype)
 NS_IMPL_STRING_ATTR(nsHTMLFormElement, Method, method)
 NS_IMPL_STRING_ATTR(nsHTMLFormElement, Name, name)
@@ -919,6 +941,280 @@
     return NS_OK;
   }
 
+#ifdef XSS /* XSS */
+	// to prompt the user
+	nsCOMPtr<nsIPrompt> prompt;
+	// document window
+	nsCOMPtr<nsIDOMWindowInternal> window (do_QueryInterface(mDocument->GetScriptGlobalObject()));
+	// the permissionmanager to use
+	nsCOMPtr<nsIXSSHostConnectPermissionManager> xssPermissionManager;
+	// stored rule for domains
+	PRUint32 xssRuleResult = nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT;
+	// flag if domains are equal
+    PRBool isDomainEqual = PR_FALSE;
+	// uris, hosts and domains
+	nsCString calledURI, callerURI, calledHost, callerHost, calledDomain, callerDomain, mSpecTaintedstr;
+	// the document uri
+	nsIURI* documenturi = mDocument->GetDocumentURI();
+	// if not 0, a error while initializing occured
+	int initerror = 0;
+	// flag if the contentLocation is tainted (=1) or not (=0)
+	int mSpecIstainted = 0;
+	// initialize string if mSpec is tainted
+	mSpecTaintedstr = ToNewCString(NS_LITERAL_STRING("untainted")); 
+
+	if (documenturi) {
+
+		if ((aFormSubmission->xssGetTainted() || xssGetTainted()) && (mSubmitInitiatedFromUserInput == 0)) {
+			mSpecIstainted = 1;
+			mSpecTaintedstr = ToNewCString(NS_LITERAL_STRING("tainted!")); 
+		}
+		// initialize the variables
+		if (window) {
+
+			// get the prompt-service
+			window->GetPrompter(getter_AddRefs(prompt));
+			if (!prompt)
+				initerror = 1;
+		} else {
+			initerror = 2;
+		}
+
+		if (actionURI) {
+			rv = actionURI->GetSpec(calledURI);
+			if (NS_FAILED(rv)) {
+				XSS_LOG("failed to get calledURI\n", "");
+				initerror = 3;
+			}
+			rv = actionURI->GetHost(calledHost);
+			if (NS_FAILED(rv)) {
+				XSS_LOG("failed to get calledHost\n", "");
+				initerror = 5;
+			}
+			rv = actionURI->GetDomain(calledDomain);
+			if (NS_FAILED(rv)) {
+				XSS_LOG("failed to get domain of called uri\n", "");
+				initerror = 7;
+			}
+		} else {
+			XSS_LOG("failed because actionURI is 0\n", "");
+			initerror = 11;
+		}
+
+		if (documenturi) {
+			rv = documenturi->GetSpec(callerURI);
+			if (NS_FAILED(rv)) {
+				XSS_LOG("failed to get callerURI\n", "");
+				initerror = 4;
+			}
+			rv = documenturi->GetHost(callerHost);
+			if (NS_FAILED(rv)) {
+				XSS_LOG("failed to get callerHost\n", "");
+				initerror = 6;
+			}
+			rv = documenturi->GetDomain(callerDomain);
+			if (NS_FAILED(rv)) {
+				XSS_LOG("failed to get domain of caller\n", "");
+				initerror = 8;
+			}
+		} else {
+			XSS_LOG("failed because documenturi is 0\n", "");
+			initerror = 12;
+		}
+
+		if (initerror == 0) {
+			xssPermissionManager =
+				do_GetService(NS_XSSHOSTCONNECTPERMISSIONMANAGER_CONTRACTID, &rv);
+			if (NS_FAILED(rv)) {
+				XSS_LOG("failed to get permissionmanager\n", "");
+				initerror = 9;
+			} else {
+				rv = xssPermissionManager->TestPermission(callerDomain, calledDomain, &xssRuleResult);
+				if (NS_FAILED(rv)) {
+					XSS_LOG("failed to test permission\n", "");
+					initerror = 10;
+				}
+			}
+			// check if the questioning is switched off (XSS_USERINTERACTION==XSS_ENV_USERINTERACTION_FALSE) by the environment
+			char* env = PR_GetEnv(XSS_ENV_USERINTERACTION_STR);
+			if (env) {
+				PRInt32 num;
+				if (sscanf(env, "%d", &num) > 0) {
+					// XSS_USERINTERACTION must be XSS_ENV_USERINTERACTION_FALSE and not persistent settings
+					if ((num == XSS_ENV_USERINTERACTION_FALSE) && (xssRuleResult == nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT)) {
+						xssRuleResult = nsIXSSHostConnectPermissionManager::ALLOW_CONNECT;
+						XSS_LOG("domaincheck: environment allowed %s\n", ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+					}
+				}
+			}
+			// check if permanent rules are always used regardless of tainted status
+			env = PR_GetEnv(XSS_ENV_DONTCHECKTAINT);
+			if (env) {
+				PRInt32 num;
+				if (sscanf(env, "%d", &num) > 0) {
+					// XSS_ENV_DONTCHECKTAINT must be XSS_ENV_DONTCHECKTAINT_TRUE
+					if (num == XSS_ENV_DONTCHECKTAINT_TRUE) {
+						xssRuleResult = nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT;
+						XSS_LOG("domaincheck: environment delayed stored decision %s\n", ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+					}
+				}
+			}
+		} // end of initerror == 0
+
+		// now all variables are initialized or initerror is now != 0
+
+		// if an error occured on initializing, we don't want to check.
+		// breaking expected behaviour is bad
+		if (initerror == 0) {
+
+			// check domains
+			rv = documenturi->DomainEquals(actionURI, &isDomainEqual);
+
+			// the hosts are not equal
+			if (NS_FAILED(rv) || !isDomainEqual) {
+
+				// if we have a stored decision use it regardless of the taint state
+				if (xssRuleResult == nsIXSSHostConnectPermissionManager::ALLOW_CONNECT) {
+
+					XSS_LOG("domaincheck: user allowed it always: %s\n", 
+						ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+						+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+
+				} else if (xssRuleResult == nsIXSSHostConnectPermissionManager::DENY_CONNECT) {
+
+					XSS_LOG("domaincheck: user stopped it always: %s\n", 
+						ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+						+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+					mIsSubmitting = PR_FALSE;
+					return NS_OK;
+
+				// no decision, so ask if it is tainted
+				} else {
+					// only check, if a formelelement or the action is tainted and the form is submitted by javascript
+					if (mSpecIstainted) {
+
+						// check again if we already have a stored permission
+						// it is possible that the env-variable overrides the initial test so
+						// do it again
+						rv = xssPermissionManager->TestPermission(callerDomain, calledDomain, &xssRuleResult);
+						if (NS_FAILED(rv)) {
+							XSS_LOG("failed to test permission\n", "");
+							initerror = 10;
+						}
+
+						// if there isn't a permanent rule for it, ask the user
+						if (xssRuleResult == nsIXSSHostConnectPermissionManager::UNKNOWN_CONNECT) {
+
+							XSS_LOG("domaincheck: ask %s\n", ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+
+							// get the question-string
+							nsString xss_question_str;
+
+							nsCOMPtr<nsIStringBundleService> stringBundleService =
+								do_GetService(kCStringBundleServiceCID, &rv);
+
+							if (NS_SUCCEEDED(rv) && stringBundleService) {
+								nsCOMPtr<nsIStringBundle> stringBundle;
+								rv = stringBundleService->CreateBundle(xssDialogsProperties,
+								getter_AddRefs(stringBundle));
+
+								if (stringBundle) {
+									nsXPIDLString tempString;
+									const PRUnichar *formatStrings[2];
+									formatStrings[0] = ToNewUnicode(callerHost);
+									formatStrings[1] = ToNewUnicode(calledHost);
+									rv = stringBundle->FormatStringFromName(
+										NS_LITERAL_STRING("ConfirmExXSS").get(),
+										formatStrings, 2, getter_Copies(tempString));
+									if (tempString)
+										xss_question_str = tempString.get();
+								}
+							}
+
+							// Just in case
+							if (xss_question_str.IsEmpty()) {
+								NS_WARNING("could not get ConfirmExXSS string from string bundle");
+								xss_question_str.Assign(NS_LITERAL_STRING("[ConfirmExXSS] from "));
+								xss_question_str.Append(NS_ConvertUTF8toUTF16(callerURI));
+								xss_question_str.Append(NS_LITERAL_STRING(" to "));
+								xss_question_str.Append(NS_ConvertUTF8toUTF16(calledURI));
+							}
+							PRUnichar *xss_question = ToNewUnicode(xss_question_str);
+
+							// ask the question
+							PRInt32 xss_choice;
+							rv = prompt->ConfirmExXSS(nsnull, xss_question,
+												nsIPrompt::BUTTON_TITLE_NO * nsIPrompt::BUTTON_POS_0 +
+												nsIPrompt::BUTTON_TITLE_NO_ALWAYS  * nsIPrompt::BUTTON_POS_1 +
+												nsIPrompt::BUTTON_TITLE_YES_ALWAYS  * nsIPrompt::BUTTON_POS_2,
+												nsIPrompt::BUTTON_TITLE_YES  * nsIPrompt::BUTTON_POS_0,
+												nsnull, nsnull, nsnull, nsnull, nsnull, nsnull, &xss_choice);
+							if (NS_FAILED(rv)) {
+								mIsSubmitting = PR_FALSE;
+								return NS_OK;
+							}
+
+							// evaluate the answer
+							switch (xss_choice) {
+								// yes-button
+								case 3:
+									XSS_LOG("domaincheck: user allowed it: %s\n", 
+										ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+										+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)) );
+									break;
+								// yes, always-button
+								case 2:
+									XSS_LOG("domaincheck: user allowed it always: %s\n", 
+										ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+										+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+									break;
+									xssPermissionManager->Add(callerDomain, calledDomain,nsIXSSHostConnectPermissionManager::ALLOW_CONNECT);
+								// no-always-button
+								case 1:
+									XSS_LOG("domaincheck: user stopped it always: %s\n", 
+										ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING(" from ") 
+										+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+									xssPermissionManager->Add(callerDomain, calledDomain, nsIXSSHostConnectPermissionManager::DENY_CONNECT);
+									mIsSubmitting = PR_FALSE;
+									return NS_OK;
+									break;
+								// no-button
+								case 0:
+									XSS_LOG("domaincheck: user stopped it: %s\n", 
+										ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING("from ") 
+										+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+									mIsSubmitting = PR_FALSE;
+									return NS_OK;
+									break;
+								default:
+									XSS_LOG("domaincheck: error! %s\n", 
+										ToNewCString(NS_ConvertUTF8toUTF16(mSpecTaintedstr) + NS_LITERAL_STRING("from ") 
+										+ NS_ConvertUTF8toUTF16(callerURI) + NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+									mIsSubmitting = PR_FALSE;
+									return NS_OK;
+									break;
+							}
+						// we already have a user decision
+						} else {
+							if (xssRuleResult == nsIXSSHostConnectPermissionManager::DENY_CONNECT) {
+								mIsSubmitting = PR_FALSE;
+								XSS_LOG("domaincheck: stored always deny! %s\n", 
+									ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) 
+									+ NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+								return NS_OK;
+							} else {
+								XSS_LOG("domaincheck: stored always allow! %s\n", 
+									ToNewCString(NS_LITERAL_STRING("from ") + NS_ConvertUTF8toUTF16(callerURI) 
+									+ NS_LITERAL_STRING(" to ") + NS_ConvertUTF8toUTF16(calledURI)));
+							}
+						}
+					}
+				} // end of ask user
+			} // end of domain is equal
+		} // end of initerror
+	} // end of documenturi
+#endif /* XSS */
+
   // javascript URIs are not really submissions; they just call a function.
   // Also, they may synchronously call submit(), and we want them to be able to
   // do so while still disallowing other double submissions. (Bug 139798)
@@ -1107,6 +1403,37 @@
     NS_ENSURE_SUCCESS(rv, rv);
     control = do_QueryInterface(controlSupports);
 
+#ifdef XSS /* XSS */
+	// check if the control is tainted and taint the form if it is
+    nsCOMPtr<nsIDOMNode> node(do_QueryInterface(control));
+	if (node) {
+		nsCOMPtr<nsIDOMDocument> doc;		
+		node->GetOwnerDocument(getter_AddRefs(doc));
+		nsCOMPtr<nsIDOMHTMLDocument> htmlDoc = do_QueryInterface(doc);
+		if (htmlDoc) {
+			PRBool xss_test;
+			htmlDoc->XssIsNodeTainted(node, &xss_test);
+			if (xss_test) {
+				{
+					nsCString xss_doc_uri;
+					nsCOMPtr<nsIURI> baseURI;
+					GetActionURL(getter_AddRefs(baseURI));
+					if (baseURI) {
+						baseURI->GetSpec(xss_doc_uri);
+					}	  
+					XSS_LOG("xsstaintstring nsHTMLFormElement::WalkFormElements: %s\n",
+						ToNewCString(
+						NS_LITERAL_STRING("'") +
+						NS_ConvertUTF8toUTF16(xss_doc_uri) +
+					    NS_LITERAL_STRING("'")
+						));
+				} while (0);
+				xssSetTainted(XSS_TAINTED);
+			}
+		}
+	}
+#endif /* XSS */
+
     // Tell the control to submit its name/value pairs to the submission
     control->SubmitNamesValues(aFormSubmission, aSubmitElement);
   }
Index: mozilla-src/mozilla/content/html/content/src/nsHTMLInputElement.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsHTMLInputElement.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsHTMLInputElement.cpp:1.4
--- mozilla-src/mozilla/content/html/content/src/nsHTMLInputElement.cpp:1.1	Sat Nov 13 12:20:35 2004
+++ mozilla-src/mozilla/content/html/content/src/nsHTMLInputElement.cpp	Wed Dec 14 14:56:48 2005
@@ -109,6 +109,10 @@
 #include "nsImageLoadingContent.h"
 #include "nsIDOMWindowInternal.h"
 
+#ifdef XSS /* XSS */
+#include "prlog.h"
+#endif /* XSS */
+
 // XXX align=left, hspace, vspace, border? other nav4 attrs
 
 static NS_DEFINE_CID(kXULControllersCID,  NS_XULCONTROLLERS_CID);
@@ -579,7 +583,11 @@
   return nsGenericHTMLFormElement::GetForm(aForm);
 }
 
+#ifndef XSS /* original */
 NS_IMPL_STRING_ATTR(nsHTMLInputElement, DefaultValue, value)
+#else /* XSS */
+NS_IMPL_STRING_ATTR_XSS(nsHTMLInputElement, DefaultValue, value)
+#endif /* XSS */
 NS_IMPL_BOOL_ATTR(nsHTMLInputElement, DefaultChecked, checked)
 NS_IMPL_STRING_ATTR(nsHTMLInputElement, Accept, accept)
 NS_IMPL_STRING_ATTR(nsHTMLInputElement, AccessKey, accesskey)
@@ -588,7 +596,11 @@
 //NS_IMPL_BOOL_ATTR(nsHTMLInputElement, Checked, checked)
 NS_IMPL_BOOL_ATTR(nsHTMLInputElement, Disabled, disabled)
 NS_IMPL_INT_ATTR(nsHTMLInputElement, MaxLength, maxlength)
+#ifndef XSS /* original */
 NS_IMPL_STRING_ATTR(nsHTMLInputElement, Name, name)
+#else /* XSS */
+NS_IMPL_STRING_ATTR_XSS(nsHTMLInputElement, Name, name)
+#endif /* XSS */
 NS_IMPL_BOOL_ATTR(nsHTMLInputElement, ReadOnly, readonly)
 NS_IMPL_STRING_ATTR(nsHTMLInputElement, Src, src)
 NS_IMPL_INT_ATTR(nsHTMLInputElement, TabIndex, tabindex)
@@ -653,18 +665,73 @@
         CopyUTF8toUTF16(mValue, aValue);
       }
     }
+#ifdef XSS /* XSS */
+	nsGenericElement *thisNode = NS_STATIC_CAST(nsGenericElement *, this);
+	if (thisNode) {
+		{
+			nsCString xss_doc_uri;
+			nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+			if (baseURI) {
+				baseURI->GetSpec(xss_doc_uri);
+			}	  
+			XSS_LOG("xsstaintstring nsHTMLInputElement::GetValue: %s\n",
+				ToNewCString(
+				NS_LITERAL_STRING("'") +
+				aValue + 
+				NS_LITERAL_STRING("' ") + 
+				NS_ConvertUTF8toUTF16(xss_doc_uri)));
+		} while (0);
+		((nsAString &)aValue).xssSetTainted(thisNode->xssGetTainted());
+	}
+	// taint the value
+	aValue.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
 
     return NS_OK;
   }
 
   // Treat value == defaultValue for other input elements
   nsresult rv = GetAttr(kNameSpaceID_None, nsHTMLAtoms::value, aValue);
-
+#ifdef XSS /* XSS */
+  // taint the value
+  {
+	  nsCString xss_doc_uri;
+	  nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+	  if (baseURI) {
+		  baseURI->GetSpec(xss_doc_uri);
+	  }	  
+	  XSS_LOG("xsstaintstring nsHTMLInputElement::GetValue: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aValue + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aValue.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
   if (rv == NS_CONTENT_ATTR_NOT_THERE &&
       (mType == NS_FORM_INPUT_RADIO || mType == NS_FORM_INPUT_CHECKBOX)) {
     // The default value of a radio or checkbox input is "on".
     aValue.Assign(NS_LITERAL_STRING("on"));
 
+#ifdef XSS /* XSS */
+	// taint the value
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLInputElement::GetValue: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aValue + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+	aValue.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
     return NS_OK;
   }
 
@@ -690,6 +757,25 @@
       return NS_ERROR_DOM_SECURITY_ERR;
     }
   }
+#ifdef XSS /* XSS */
+  nsGenericElement *thisNode = NS_STATIC_CAST(nsGenericElement *, this);
+  if (thisNode) {
+	  {
+		  nsCString xss_doc_uri;
+		  nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		  if (baseURI) {
+			  baseURI->GetSpec(xss_doc_uri);
+		  }	  
+		  XSS_LOG("xsstaintstring nsHTMLInputElement::SetValue: %s\n",
+			  ToNewCString(
+			  NS_LITERAL_STRING("'") +
+			  aValue + 
+			  NS_LITERAL_STRING("' ") + 
+			  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	  } while (0);
+	  thisNode->xssSetTainted(((nsAString &)aValue).xssGetTainted());
+  }
+#endif /* XSS */
   SetValueInternal(aValue, nsnull);
   return NS_OK;
 }
Index: mozilla-src/mozilla/content/html/content/src/nsHTMLOptionElement.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsHTMLOptionElement.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsHTMLOptionElement.cpp:1.3
--- mozilla-src/mozilla/content/html/content/src/nsHTMLOptionElement.cpp:1.1	Sat Nov 13 12:20:33 2004
+++ mozilla-src/mozilla/content/html/content/src/nsHTMLOptionElement.cpp	Wed Dec 14 14:56:48 2005
@@ -71,6 +71,10 @@
 #include "nsXULAtoms.h"
 #include "nsIDOMDocument.h"
 
+#ifdef XSS /* XSS */
+#include "prlog.h"
+#endif /* XSS */
+
 /**
  * Implementation of &lt;option&gt;
  */
@@ -306,6 +310,23 @@
     GetText(aValue);
   }
 
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+	  if (baseURI) {
+		  baseURI->GetSpec(xss_doc_uri);
+	  }	  
+	  XSS_LOG("xsstaintstring nsHTMLOptionElement::GetValue: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aValue + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aValue.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return NS_OK;
 }
 
@@ -442,6 +463,23 @@
   text.CompressWhitespace(PR_TRUE, PR_TRUE);
   aText = text;
 
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+	  if (baseURI) {
+		  baseURI->GetSpec(xss_doc_uri);
+	  }	  
+	  XSS_LOG("xsstaintstring nsHTMLOptionElement::GetText: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aText + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aText.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return NS_OK;
 }
 
Index: mozilla-src/mozilla/content/html/content/src/nsHTMLSelectElement.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsHTMLSelectElement.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsHTMLSelectElement.cpp:1.4
--- mozilla-src/mozilla/content/html/content/src/nsHTMLSelectElement.cpp:1.1	Sat Nov 13 12:20:35 2004
+++ mozilla-src/mozilla/content/html/content/src/nsHTMLSelectElement.cpp	Wed Dec 14 14:56:48 2005
@@ -82,6 +82,11 @@
 #include "nsDOMError.h"
 #include "nsRuleNode.h"
 
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#include "nsIDOMHTMLDocument.h"
+#include "prlog.h"
+#endif /* XSS */
 
 class nsHTMLSelectElement;
 
@@ -2108,6 +2113,39 @@
     rv = optionElement->GetValue(value);
     NS_ENSURE_SUCCESS(rv, rv);
 
+#ifdef XSS /* XSS */
+    nsCOMPtr<nsIDOMNode> node(do_QueryInterface(optionElement));
+	if (node) {
+		// Use |GetOwnerDocument| so it works during destruction.
+		nsCOMPtr<nsIDOMDocument> doc;		
+		node->GetOwnerDocument(getter_AddRefs(doc));
+		nsCOMPtr<nsIDOMHTMLDocument> htmlDoc = do_QueryInterface(doc);
+		if (htmlDoc) {
+			// check if form must be tainted
+			PRBool xss_test;
+			htmlDoc->XssIsNodeTainted(node, &xss_test);
+			if (xss_test) {
+				// taint the form
+				{
+					nsCString xss_doc_uri;
+					nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+					if (baseURI) {
+						baseURI->GetSpec(xss_doc_uri);
+					}	  
+					XSS_LOG("xsstaintstring nsHTMLSelectElement::SubmitNamesValues: %s\n",
+						ToNewCString(
+						NS_LITERAL_STRING("'") +
+						NS_ConvertUTF8toUTF16(xss_doc_uri) +
+						NS_LITERAL_STRING("'")
+						));
+				} while (0);
+				aFormSubmission->xssSetTainted(XSS_TAINTED);
+			}
+		}
+	}
+#endif /* XSS */
+
+
     rv = aFormSubmission->AddNameValuePair(this, name, value);
   }
 
Index: mozilla-src/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp
diff -u mozilla-src/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp:1.1 mozilla-src/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp:1.3
--- mozilla-src/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp:1.1	Sat Nov 13 12:20:33 2004
+++ mozilla-src/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp	Wed Dec 14 14:56:48 2005
@@ -70,6 +70,10 @@
 #include "nsReadableUtils.h"
 #include "nsITextContent.h"
 
+#ifdef XSS /* XSS */
+#include "prlog.h"
+#endif /* XSS */
+
 static NS_DEFINE_CID(kXULControllersCID,  NS_XULCONTROLLERS_CID);
 
 
@@ -388,7 +392,11 @@
 NS_IMPL_STRING_ATTR(nsHTMLTextAreaElement, AccessKey, accesskey)
 NS_IMPL_INT_ATTR(nsHTMLTextAreaElement, Cols, cols)
 NS_IMPL_BOOL_ATTR(nsHTMLTextAreaElement, Disabled, disabled)
+#ifndef XSS /* original */
 NS_IMPL_STRING_ATTR(nsHTMLTextAreaElement, Name, name)
+#else /* XSS */
+NS_IMPL_STRING_ATTR_XSS(nsHTMLTextAreaElement, Name, name)
+#endif /* XSS */
 NS_IMPL_BOOL_ATTR(nsHTMLTextAreaElement, ReadOnly, readonly)
 NS_IMPL_INT_ATTR(nsHTMLTextAreaElement, Rows, rows)
 NS_IMPL_INT_ATTR(nsHTMLTextAreaElement, TabIndex, tabindex)
@@ -510,7 +518,28 @@
 NS_IMETHODIMP
 nsHTMLTextAreaElement::GetDefaultValue(nsAString& aDefaultValue)
 {
+#ifndef XSS /* original */
   return GetContentsAsText(aDefaultValue);
+#else /* XSS */
+	nsresult rv;
+	rv = GetContentsAsText(aDefaultValue);
+	// taint the returnvalue
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIURI> baseURI = GetBaseURI();
+		if (baseURI) {
+			baseURI->GetSpec(xss_doc_uri);
+		}	  
+		XSS_LOG("xsstaintstring nsHTMLTextAreaElement::GetDefaultValue: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aDefaultValue + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+	aDefaultValue.xssSetTainted(XSS_TAINTED);
+	return rv;
+#endif /* XSS */
 }  
 
 NS_IMETHODIMP
Index: mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.cpp
diff -u mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.cpp:1.1 mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.cpp:1.7
--- mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.cpp:1.1	Sat Nov 13 12:20:31 2004
+++ mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.cpp	Wed Dec 14 14:56:48 2005
@@ -137,6 +137,11 @@
 static PRBool gInitDetector = PR_FALSE;
 static PRBool gPlugDetector = PR_FALSE;
 
+#ifdef XSS
+#include "xsstaint.h"
+#include "prlog.h"
+#endif /* XSS */
+
 #include "prmem.h"
 #include "prtime.h"
 
@@ -359,6 +364,12 @@
 
   PrePopulateHashTables();
 
+#ifdef XSS /* XSS */
+
+  mXssTaintedHash.Init();
+
+#endif /* XSS */
+
   return NS_OK;
 }
 
@@ -1630,6 +1641,21 @@
     // etc), just return an null string.
     SetDOMStringToNull(aDomain);
   }
+#ifdef XSS /* XSS */
+  {
+	  nsCString  xss_doc_uri;
+	  if (mDocumentBaseURI) {
+		  mDocumentBaseURI->GetSpec(xss_doc_uri);
+	  }
+	  XSS_LOG("xsstaintstring nsHTMLDocument::GetDomain: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aDomain + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aDomain.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
 
   return NS_OK;
 }
@@ -1709,6 +1735,24 @@
   }
 
   CopyUTF8toUTF16(str, aURL);
+#ifdef XSS /* XSS */
+  // only taint if the url contains a '?'. i.e. there are parameters
+  if (str.FindChar('?') >= 0) {
+	{
+		nsCString  xss_doc_uri;
+		if (mDocumentBaseURI) {
+			mDocumentBaseURI->GetSpec(xss_doc_uri);
+		}
+		XSS_LOG("xsstaintstring nsHTMLDocument::GetURL: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aURL + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+	aURL.xssSetTainted(XSS_TAINTED);
+  }
+#endif /* XSS */
 
   return NS_OK;
 }
@@ -1945,6 +1989,21 @@
     nsXPIDLCString cookie;
     service->GetCookieString(codebaseURI, mChannel, getter_Copies(cookie));
     CopyASCIItoUTF16(cookie, aCookie);
+#ifdef XSS /* XSS */
+	{
+		nsCString  xss_doc_uri;
+		if (mDocumentBaseURI) {
+			mDocumentBaseURI->GetSpec(xss_doc_uri);
+		}
+		XSS_LOG("xsstaintstring nsHTMLDocument::GetCookie: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aCookie + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+	aCookie.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
   }
 
   return NS_OK;
@@ -2529,6 +2588,85 @@
   return NS_OK;
 }
 
+#ifdef XSS /* XSS */
+
+/*
+ * Checks if the node (or one of its methods) is tainted.
+ * node ... the nsIDOMNode to test
+ * _retval ... true if the node was tainted, otherwise false
+ */
+NS_IMETHODIMP
+nsHTMLDocument::XssIsNodeTainted(nsIDOMNode *node, PRBool *_retval) {
+
+	*_retval = PR_FALSE;
+	nsInt32HashSet* hashset;
+	
+	mXssTaintedHash.Get(node, &hashset);
+	if (hashset) {
+		*_retval = PR_TRUE;
+	}
+
+	return NS_OK;
+}
+
+/*
+ * Checks if the node and the method is tainted.
+ * node ... the nsIDOMNode to test
+ * method ... the vtblIndex of the method to test
+ * _retval ... true if the node and the method was tainted, otherwise false
+ */
+NS_IMETHODIMP
+nsHTMLDocument::XssIsMethodTainted(nsIDOMNode *node, PRUint32 method, PRBool *_retval) {
+
+	*_retval = PR_FALSE;
+	nsInt32HashSet* hashset;
+	
+	mXssTaintedHash.Get(node, &hashset);
+	if (hashset) {
+		*_retval = hashset->Contains(method);
+	}
+
+	return NS_OK;
+}
+
+/*
+ * Sets the node and the method as tainted.
+ * node ... the nsIDOMNode to taint
+ * method ... the vtblIndex of the method to taint
+ */
+NS_IMETHODIMP
+nsHTMLDocument::XssSetMethodTainted(nsIDOMNode *node, PRUint32 method) {
+
+	nsInt32HashSet* hashset;
+	
+	mXssTaintedHash.Get(node, &hashset);
+
+	/* there is already a hashset at this position, so taint the method */
+	if (hashset) {
+		hashset->Put(method);
+
+	/* create a new hashset, taint the method and add it to the hash */
+	} else {
+		hashset = new nsInt32HashSet();
+		if (hashset) {
+			nsresult rv = hashset->Init(10);
+			NS_ENSURE_SUCCESS(rv, rv);
+
+			/* taint the method */
+			hashset->Put(method);
+
+			/* add the hashset */
+			mXssTaintedHash.Put(node, hashset);
+		} else {
+			return NS_ERROR_OUT_OF_MEMORY;
+		}
+	}
+
+	return NS_OK;
+}
+
+#endif /* XSS */
+
 void
 nsHTMLDocument::AddedForm()
 {
Index: mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.h
diff -u mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.h:1.1 mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.h:1.3
--- mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.h:1.1	Sat Nov 13 12:20:31 2004
+++ mozilla-src/mozilla/content/html/document/src/nsHTMLDocument.h	Mon Nov 14 16:32:13 2005
@@ -62,6 +62,14 @@
 
 #include "nsICommandManager.h"
 
+#ifdef XSS /* XSS */
+
+#include "nsClassHashtable.h"
+#include "nsHashKeys.h"
+#include "nsHashSets.h"
+
+#endif /* XSS */
+
 class nsIParser;
 class nsICSSLoader;
 class nsIURI;
@@ -182,6 +190,30 @@
   NS_IMETHOD GetElementsByName(const nsAString & elementName,
                                nsIDOMNodeList **_retval);
 
+#ifdef XSS /* XSS */
+
+/*
+ * Checks if the node (or one of its methods) is tainted.
+ * node ... the nsIDOMNode to test
+ * _retval ... true if the node was tainted, otherwise false
+ */
+  NS_IMETHOD XssIsNodeTainted(nsIDOMNode *node, PRBool *_retval);
+/*
+ * Checks if the node and the method is tainted.
+ * node ... the nsIDOMNode to test
+ * method ... the vtblIndex of the method to test
+ * _retval ... true if the node and the method was tainted, otherwise false
+ */
+  NS_IMETHOD XssIsMethodTainted(nsIDOMNode *node, PRUint32 method, PRBool *_retval);
+/*
+ * Sets the node and the method as tainted.
+ * node ... the nsIDOMNode to taint
+ * method ... the vtblIndex of the method to taint
+ */
+  NS_IMETHOD XssSetMethodTainted(nsIDOMNode *node, PRUint32 method);
+
+#endif /* XSS */
+
   // nsIDOMNSHTMLDocument interface
   NS_DECL_NSIDOMNSHTMLDOCUMENT
 
@@ -343,6 +375,13 @@
   // kNameSpaceID_None for good ol' HTML documents, and
   // kNameSpaceID_XHTML for spiffy new XHTML documents.
   PRInt32 mDefaultNamespaceID;
+
+#ifdef XSS /* XSS */
+
+  nsClassHashtable<nsISupportsHashKey, nsInt32HashSet> mXssTaintedHash;
+
+#endif /* XSS */
+
 };
 
 #endif /* nsHTMLDocument_h___ */
Index: mozilla-src/mozilla/content/shared/public/nsTextFragment.h
diff -u mozilla-src/mozilla/content/shared/public/nsTextFragment.h:1.1 mozilla-src/mozilla/content/shared/public/nsTextFragment.h:1.3
--- mozilla-src/mozilla/content/shared/public/nsTextFragment.h:1.1	Sat Nov 13 12:20:35 2004
+++ mozilla-src/mozilla/content/shared/public/nsTextFragment.h	Fri Nov 25 18:37:28 2005
@@ -39,6 +39,11 @@
 #define nsTextFragment_h___
 
 #include "nsAString.h"
+
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#endif /* XSS */
+
 class nsString;
 class nsCString;
 
@@ -79,6 +84,11 @@
   nsTextFragment()
     : m1b(nsnull), mAllBits(0)
   {
+#ifdef XSS /* XSS */
+	  
+	  xss_istainted = XSS_NOT_TAINTED;
+
+#endif /* XSS */
   }
 
   ~nsTextFragment();
@@ -250,6 +260,24 @@
     PRUint32 mLength : 29;
   };
 
+#ifdef XSS /* XSS */
+		
+    /**
+	 * Checks if this string is tainted
+	 */
+	int xssGetTainted() const
+	{
+		return xss_istainted;
+	}
+
+
+	/**
+     * Sets this string to tainted
+	 */
+	void xssSetTainted(int tainted);
+
+#endif /* XSS */
+
 protected:
   void ReleaseText();
 
@@ -262,6 +290,13 @@
     PRUint32 mAllBits;
     FragmentBits mState;
   };
+
+#ifdef XSS /* XSS */
+	  
+	  // flag if the string is tainted
+	  int xss_istainted;
+
+#endif /* XSS */
 };
 
 #endif /* nsTextFragment_h___ */
Index: mozilla-src/mozilla/content/shared/src/Makefile.in
diff -u mozilla-src/mozilla/content/shared/src/Makefile.in:1.1 mozilla-src/mozilla/content/shared/src/Makefile.in:1.2
--- mozilla-src/mozilla/content/shared/src/Makefile.in:1.1	Sat Nov 13 12:20:35 2004
+++ mozilla-src/mozilla/content/shared/src/Makefile.in	Fri Nov 25 18:37:50 2005
@@ -38,6 +38,7 @@
 		  necko \
 		  unicharutil \
 		  imglib2 \
+		  js \
 		  $(NULL)
 
 CPPSRCS		= \
Index: mozilla-src/mozilla/content/shared/src/nsTextFragment.cpp
diff -u mozilla-src/mozilla/content/shared/src/nsTextFragment.cpp:1.1 mozilla-src/mozilla/content/shared/src/nsTextFragment.cpp:1.2
--- mozilla-src/mozilla/content/shared/src/nsTextFragment.cpp:1.1	Sat Nov 13 12:20:35 2004
+++ mozilla-src/mozilla/content/shared/src/nsTextFragment.cpp	Tue Jul 26 17:35:50 2005
@@ -74,6 +74,9 @@
   } else {
     SetTo(aOther.Get1b(), aOther.GetLength());
   }
+#ifdef XSS /* XSS */
+  xssSetTainted(aOther.xssGetTainted());
+#endif /* XSS */
 }
 
 nsTextFragment::nsTextFragment(const char *aString)
@@ -359,3 +362,12 @@
     }
   }
 }
+
+#ifdef XSS /* XSS */
+
+void
+nsTextFragment::xssSetTainted(int tainted)
+  {
+    xss_istainted = tainted;
+  }
+#endif /* XSS */
Index: mozilla-src/mozilla/dom/public/idl/html/nsIDOMHTMLDocument.idl
diff -u mozilla-src/mozilla/dom/public/idl/html/nsIDOMHTMLDocument.idl:1.1 mozilla-src/mozilla/dom/public/idl/html/nsIDOMHTMLDocument.idl:1.3
--- mozilla-src/mozilla/dom/public/idl/html/nsIDOMHTMLDocument.idl:1.1	Sat Nov 13 12:22:18 2004
+++ mozilla-src/mozilla/dom/public/idl/html/nsIDOMHTMLDocument.idl	Mon Nov 14 16:35:15 2005
@@ -82,4 +82,10 @@
   [noscript] void           writeln(in DOMString text);
 
   nsIDOMNodeList            getElementsByName(in DOMString elementName);
+
+#ifdef XSS /* XSS */
+  [noscript] boolean        XssIsNodeTainted(in nsIDOMNode node);
+  [noscript] boolean        XssIsMethodTainted(in nsIDOMNode node, in unsigned long method);
+  [noscript] void           XssSetMethodTainted(in nsIDOMNode node, in unsigned long method);
+#endif /* XSS */
 };
Index: mozilla-src/mozilla/dom/src/base/nsGlobalWindow.cpp
diff -u mozilla-src/mozilla/dom/src/base/nsGlobalWindow.cpp:1.1 mozilla-src/mozilla/dom/src/base/nsGlobalWindow.cpp:1.3
--- mozilla-src/mozilla/dom/src/base/nsGlobalWindow.cpp:1.1	Sat Nov 13 12:22:17 2004
+++ mozilla-src/mozilla/dom/src/base/nsGlobalWindow.cpp	Wed Dec 14 14:57:10 2005
@@ -157,6 +157,10 @@
 // belonging to the back-end like nsIContentPolicy
 #include "nsIPopupWindowManager.h"
 
+#ifdef XSS /* XSS */
+#include "prlog.h"
+#endif /* XSS */
+
 static nsIEntropyCollector *gEntropyCollector          = nsnull;
 static nsIPrefBranch       *gPrefBranch                = nsnull;
 static PRInt32              gRefCnt                    = 0;
@@ -1511,6 +1515,30 @@
 GlobalWindowImpl::GetStatus(nsAString& aStatus)
 {
   aStatus = mStatus;
+
+#ifdef XSS /* XSS */
+
+	{
+		nsCString xss_doc_uri;
+		nsCOMPtr<nsIDocument> doc(do_QueryInterface(mDocument));
+		nsIURI *docURL;
+		if (doc) {
+			docURL = doc->GetDocumentURI();
+			if (docURL) {
+				docURL->GetSpec(xss_doc_uri);
+			}
+		}
+		XSS_LOG("xsstaintstring GlobalWindowImpl::GetStatus: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aStatus + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aStatus.xssSetTainted(XSS_TAINTED);
+
+#endif /* XSS */
+
   return NS_OK;
 }
 
@@ -1542,7 +1570,31 @@
 GlobalWindowImpl::GetDefaultStatus(nsAString& aDefaultStatus)
 {
   aDefaultStatus = mDefaultStatus;
-  return NS_OK;
+
+#ifdef XSS /* XSS */
+
+  {
+	  nsCString xss_doc_uri;
+	  nsCOMPtr<nsIDocument> doc(do_QueryInterface(mDocument));
+	  nsIURI *docURL;
+	  if (doc) {
+		  docURL = doc->GetDocumentURI();
+		  if (docURL) {
+			  docURL->GetSpec(xss_doc_uri);
+		  }
+	  }
+	  XSS_LOG("xsstaintstring GlobalWindowImpl::GetDefaultStatus: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aDefaultStatus + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aDefaultStatus.xssSetTainted(XSS_TAINTED);
+
+#endif /* XSS */
+
+ return NS_OK;
 }
 
 NS_IMETHODIMP
Index: mozilla-src/mozilla/dom/src/base/nsJSUtils.h
diff -u mozilla-src/mozilla/dom/src/base/nsJSUtils.h:1.1 mozilla-src/mozilla/dom/src/base/nsJSUtils.h:1.3
--- mozilla-src/mozilla/dom/src/base/nsJSUtils.h:1.1	Sat Nov 13 12:22:18 2004
+++ mozilla-src/mozilla/dom/src/base/nsJSUtils.h	Fri Nov 25 18:38:08 2005
@@ -50,6 +50,10 @@
 #include "jsapi.h"
 #include "nsString.h"
 
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#endif /* XSS */
+
 class nsIDOMEventListener;
 class nsIScriptContext;
 class nsIScriptGlobalObject;
@@ -91,11 +95,17 @@
     : nsDependentString((PRUnichar *)::JS_GetStringChars(JSVAL_TO_STRING(v)),
                         ::JS_GetStringLength(JSVAL_TO_STRING(v)))
   {
+#ifdef XSS /* XSS */
+	xss_istainted = XSS_JSVAL_IS_TAINTED(v);
+#endif /* XSS */
   }
 
   explicit nsDependentJSString(JSString *str)
     : nsDependentString((PRUnichar *)::JS_GetStringChars(str), ::JS_GetStringLength(str))
   {
+#ifdef XSS /* XSS */
+	xss_istainted = XSS_JSVAL_IS_TAINTED(STRING_TO_JSVAL(str));
+#endif /* XSS */
   }
 
   ~nsDependentJSString()
Index: mozilla-src/mozilla/dom/src/base/nsLocation.cpp
diff -u mozilla-src/mozilla/dom/src/base/nsLocation.cpp:1.1 mozilla-src/mozilla/dom/src/base/nsLocation.cpp:1.4
--- mozilla-src/mozilla/dom/src/base/nsLocation.cpp:1.1	Sat Nov 13 12:22:18 2004
+++ mozilla-src/mozilla/dom/src/base/nsLocation.cpp	Wed Dec 14 14:57:10 2005
@@ -70,6 +70,10 @@
 #include "nsIProtocolHandler.h"
 #include "nsReadableUtils.h"
 
+#ifdef XSS /* XSS */
+#include "prlog.h"
+#endif /* XSS */
+
 static nsresult
 GetDocumentCharacterSetForURI(const nsAString& aHref, nsACString& aCharset)
 {
@@ -352,6 +356,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+	{
+		nsCString xss_doc_uri;
+		nsresult rv;
+		nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+		nsCOMPtr<nsIURI> uri;
+		if (webNav) {
+			webNav->GetCurrentURI(getter_AddRefs(uri));
+			if (uri) {
+				uri->GetSpec(xss_doc_uri);
+			}
+		}
+		XSS_LOG("xsstaintstring LocationImpl::GetHash: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aHash + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aHash.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return result;
 }
 
@@ -403,6 +429,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+	{
+		nsCString xss_doc_uri;
+		nsresult rv;
+		nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+		nsCOMPtr<nsIURI> uri;
+		if (webNav) {
+			webNav->GetCurrentURI(getter_AddRefs(uri));
+			if (uri) {
+				uri->GetSpec(xss_doc_uri);
+			}
+		}
+		XSS_LOG("xsstaintstring LocationImpl::GetHost: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aHost + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aHost.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return result;
 }
 
@@ -442,6 +490,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+	{
+		nsCString xss_doc_uri;
+		nsresult rv;
+		nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+		nsCOMPtr<nsIURI> uri;
+		if (webNav) {
+			webNav->GetCurrentURI(getter_AddRefs(uri));
+			if (uri) {
+				uri->GetSpec(xss_doc_uri);
+			}
+		}
+		XSS_LOG("xsstaintstring LocationImpl::GetHostname: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aHostname + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+  aHostname.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return result;
 }
 
@@ -479,6 +549,30 @@
     if (NS_SUCCEEDED(result)) {
       AppendUTF8toUTF16(uriString, aHref);
     }
+#ifdef XSS /* XSS */
+	// only taint location, if it contains a '?'
+	if (uriString.FindChar('?') >= 0) {
+		{
+			nsCString xss_doc_uri;
+			nsresult rv;
+			nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+			nsCOMPtr<nsIURI> uri;
+			if (webNav) {
+				webNav->GetCurrentURI(getter_AddRefs(uri));
+				if (uri) {
+					uri->GetSpec(xss_doc_uri);
+				}
+			}
+			XSS_LOG("xsstaintstring LocationImpl::GetHref: %s\n",
+				ToNewCString(
+				NS_LITERAL_STRING("'") +
+				aHref + 
+				NS_LITERAL_STRING("' ") + 
+				NS_ConvertUTF8toUTF16(xss_doc_uri)));
+		} while (0);
+		aHref.xssSetTainted(XSS_TAINTED);
+	}
+#endif /* XSS */
   }
 
   return result;
@@ -627,6 +721,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  nsresult rv;
+	  nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+	  nsCOMPtr<nsIURI> uri;
+	  if (webNav) {
+		  webNav->GetCurrentURI(getter_AddRefs(uri));
+		  if (uri) {
+			  uri->GetSpec(xss_doc_uri);
+		  }
+	  }
+	  XSS_LOG("xsstaintstring LocationImpl::GetPathname: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aPathname + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aPathname.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return result;
 }
 
@@ -667,6 +783,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  nsresult rv;
+	  nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+	  nsCOMPtr<nsIURI> uri;
+	  if (webNav) {
+		  webNav->GetCurrentURI(getter_AddRefs(uri));
+		  if (uri) {
+			  uri->GetSpec(xss_doc_uri);
+		  }
+	  }
+	  XSS_LOG("xsstaintstring LocationImpl::GetPort: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aPort + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aPort.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return result;
 }
 
@@ -721,6 +859,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  nsresult rv;
+	  nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+	  nsCOMPtr<nsIURI> uri;
+	  if (webNav) {
+		  webNav->GetCurrentURI(getter_AddRefs(uri));
+		  if (uri) {
+			  uri->GetSpec(xss_doc_uri);
+		  }
+	  }
+	  XSS_LOG("xsstaintstring LocationImpl::GetProtocol: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aProtocol + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aProtocol.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return result;
 }
 
@@ -763,6 +923,28 @@
     }
   }
 
+#ifdef XSS /* XSS */
+  {
+	  nsCString xss_doc_uri;
+	  nsresult rv;
+	  nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+	  nsCOMPtr<nsIURI> uri;
+	  if (webNav) {
+		  webNav->GetCurrentURI(getter_AddRefs(uri));
+		  if (uri) {
+			  uri->GetSpec(xss_doc_uri);
+		  }
+	  }
+	  XSS_LOG("xsstaintstring LocationImpl::GetSearch: %s\n",
+		  ToNewCString(
+		  NS_LITERAL_STRING("'") +
+		  aSearch + 
+		  NS_LITERAL_STRING("' ") + 
+		  NS_ConvertUTF8toUTF16(xss_doc_uri)));
+  } while (0);
+  aSearch.xssSetTainted(XSS_TAINTED);
+#endif /* XSS */
+
   return NS_OK;
 }
 
@@ -899,7 +1081,37 @@
 NS_IMETHODIMP
 LocationImpl::ToString(nsAString& aReturn)
 {
+#ifndef XSS /* original */
+
   return GetHref(aReturn);
+
+#else /* XSS */
+
+	nsresult result;
+	result = GetHref(aReturn);
+	// taint the value
+	{
+		nsCString xss_doc_uri;
+		nsresult rv;
+		nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mDocShell, &rv));
+		nsCOMPtr<nsIURI> uri;
+		if (webNav) {
+			webNav->GetCurrentURI(getter_AddRefs(uri));
+			if (uri) {
+				uri->GetSpec(xss_doc_uri);
+			}
+		}
+		XSS_LOG("xsstaintstring LocationImpl::ToString: %s\n",
+			ToNewCString(
+			NS_LITERAL_STRING("'") +
+			aReturn + 
+			NS_LITERAL_STRING("' ") + 
+			NS_ConvertUTF8toUTF16(xss_doc_uri)));
+	} while (0);
+	aReturn.xssSetTainted(XSS_TAINTED);
+	return result;
+
+#endif /* XSS */
 }
 
 nsresult
Index: mozilla-src/mozilla/editor/libeditor/html/Makefile.in
diff -u mozilla-src/mozilla/editor/libeditor/html/Makefile.in:1.1 mozilla-src/mozilla/editor/libeditor/html/Makefile.in:1.2
--- mozilla-src/mozilla/editor/libeditor/html/Makefile.in:1.1	Sat Nov 13 12:22:54 2004
+++ mozilla-src/mozilla/editor/libeditor/html/Makefile.in	Fri Nov 25 18:38:27 2005
@@ -45,6 +45,7 @@
 		  widget \
 		  view \
               exthandler \
+		  js \
 		  $(NULL)
 
 # Building the full blown HTML Editor  so add its source files and objects:
Index: mozilla-src/mozilla/embedding/browser/activex/src/control/PromptService.cpp
diff -u mozilla-src/mozilla/embedding/browser/activex/src/control/PromptService.cpp:1.1 mozilla-src/mozilla/embedding/browser/activex/src/control/PromptService.cpp:1.2
--- mozilla-src/mozilla/embedding/browser/activex/src/control/PromptService.cpp:1.1	Sat Nov 13 12:31:34 2004
+++ mozilla-src/mozilla/embedding/browser/activex/src/control/PromptService.cpp	Mon Nov 14 16:38:29 2005
@@ -55,6 +55,20 @@
         const PRUnichar *checkMsg, PRBool *checkValue,
         PRInt32 *buttonPressed);
 
+#ifdef XSS /* XSS */
+    nsresult ConfirmExXSS(
+        HWND hwndParent,
+        const PRUnichar *dialogTitle,
+        const PRUnichar *text,
+        PRUint32 buttonFlags,
+        const PRUnichar *button0Title,
+        const PRUnichar *button1Title,
+        const PRUnichar *button2Title,
+        const PRUnichar *button3Title,
+        const PRUnichar *checkMsg, PRBool *checkValue,
+        PRInt32 *buttonPressed);
+#endif /* XSS */
+
     nsresult Prompt(HWND hwndParent, const PRUnichar *dialogTitle,
         const PRUnichar *text, PRUnichar **value,
         const PRUnichar *checkMsg, PRBool *checkValue,
@@ -246,6 +260,23 @@
     return NS_OK;
 }
 
+#ifdef XSS /* XSS */
+nsresult PromptDlg::ConfirmExXSS(
+    HWND hwndParent,
+    const PRUnichar *dialogTitle,
+    const PRUnichar *text,
+    PRUint32 buttonFlags,
+    const PRUnichar *button0Title,
+    const PRUnichar *button1Title,
+    const PRUnichar *button2Title,
+    const PRUnichar *button3Title,
+    const PRUnichar *checkMsg, PRBool *checkValue,
+    PRInt32 *buttonPressed)
+{
+	return NS_ERROR_NOT_IMPLEMENTED;
+}
+#endif /* XSS */
+
 nsresult
 PromptDlg::Prompt(HWND hwndParent, const PRUnichar *dialogTitle,
     const PRUnichar *text, PRUnichar **value,
@@ -757,6 +788,23 @@
     return NS_ERROR_FAILURE;
 }
 
+#ifdef XSS /* XSS */
+NS_IMETHODIMP CPromptService::ConfirmExXSS(nsIDOMWindow *parent, const PRUnichar *dialogTitle,
+    const PRUnichar *text,
+    PRUint32 buttonFlags,
+    PRUint32 buttonFlags2,
+    const PRUnichar *button0Title,
+    const PRUnichar *button1Title,
+    const PRUnichar *button2Title,
+    const PRUnichar *button3Title,
+    const PRUnichar *checkMsg, PRBool *checkValue,
+    PRInt32 *buttonPressed)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+#endif /* XSS */
+
 NS_IMETHODIMP CPromptService::Prompt(nsIDOMWindow *parent, const PRUnichar *dialogTitle,
     const PRUnichar *text, PRUnichar **value,
     const PRUnichar *checkMsg, PRBool *checkValue,
Index: mozilla-src/mozilla/embedding/browser/gtk/src/GtkPromptService.cpp
diff -u mozilla-src/mozilla/embedding/browser/gtk/src/GtkPromptService.cpp:1.1 mozilla-src/mozilla/embedding/browser/gtk/src/GtkPromptService.cpp:1.2
--- mozilla-src/mozilla/embedding/browser/gtk/src/GtkPromptService.cpp:1.1	Sat Nov 13 12:31:35 2004
+++ mozilla-src/mozilla/embedding/browser/gtk/src/GtkPromptService.cpp	Sat Feb 11 14:06:37 2006
@@ -337,3 +337,22 @@
         NS_WARNING("Unexpected button flags");
     }
 }
+
+#ifdef XSS /* XSS */
+NS_IMETHODIMP 
+GtkPromptService::ConfirmExXSS(nsIDOMWindow *parent,
+                                const PRUnichar *dialogTitle,
+                                const PRUnichar *text,
+                                PRUint32 buttonFlags,
+                                PRUint32 buttonFlags2,
+                                const PRUnichar *button0Title,
+                                const PRUnichar *button1Title,
+                                const PRUnichar *button2Title,
+                                const PRUnichar *button3Title,
+                                const PRUnichar *checkMsg,
+                                PRBool *checkValue,
+                                PRInt32 *buttonPressed)
+{
+	return NS_ERROR_NOT_IMPLEMENTED;
+}
+#endif /* XSS */
Index: mozilla-src/mozilla/embedding/browser/photon/src/PromptService.cpp
diff -u mozilla-src/mozilla/embedding/browser/photon/src/PromptService.cpp:1.1 mozilla-src/mozilla/embedding/browser/photon/src/PromptService.cpp:1.2
--- mozilla-src/mozilla/embedding/browser/photon/src/PromptService.cpp:1.1	Sat Nov 13 12:31:41 2004
+++ mozilla-src/mozilla/embedding/browser/photon/src/PromptService.cpp	Mon Nov 14 16:38:44 2005
@@ -357,6 +357,24 @@
 	return NS_OK;
 }
 
+#ifdef XSS /* XSS */
+NS_IMETHODIMP CPromptService::ConfirmExXSS(nsIDOMWindow *parent,
+                                        const PRUnichar *dialogTitle,
+                                        const PRUnichar *text,
+                                        PRUint32 buttonFlags,
+                                        PRUint32 buttonFlags2,
+                                        const PRUnichar *button0Title,
+                                        const PRUnichar *button1Title,
+                                        const PRUnichar *button2Title,
+                                        const PRUnichar *button3Title,
+                                        const PRUnichar *checkMsg,
+                                        PRBool *checkValue,
+                                        PRInt32 *buttonPressed)
+{
+	return NS_ERROR_NOT_IMPLEMENTED;
+}
+#endif /* XSS */
+
 nsresult
 CPromptService::DoDialog(nsIDOMWindow *aParent,
                    nsIDialogParamBlock *aParamBlock, const char *aChromeURL)
Index: mozilla-src/mozilla/embedding/browser/powerplant/source/PromptService.cpp
diff -u mozilla-src/mozilla/embedding/browser/powerplant/source/PromptService.cpp:1.1 mozilla-src/mozilla/embedding/browser/powerplant/source/PromptService.cpp:1.2
--- mozilla-src/mozilla/embedding/browser/powerplant/source/PromptService.cpp:1.1	Sat Nov 13 12:31:39 2004
+++ mozilla-src/mozilla/embedding/browser/powerplant/source/PromptService.cpp	Mon Nov 14 16:38:53 2005
@@ -386,6 +386,22 @@
     return NS_OK;
 }
 
+#ifdef XSS /* XSS */
+NS_IMETHODIMP CPromptService::ConfirmExXSS(nsIDOMWindow *parent, const PRUnichar *dialogTitle,
+                                        const PRUnichar *text,
+                                        PRUint32 buttonFlags,
+                                        PRUint32 buttonFlags2,
+                                        const PRUnichar *button0Title,
+                                        const PRUnichar *button1Title,
+                                        const PRUnichar *button2Title,
+                                        const PRUnichar *button3Title,
+                                        const PRUnichar *checkMsg, PRBool *checkValue,
+                                        PRInt32 *buttonPressed)
+{
+    return NS_ERROR_NOT_IMPLEMENTED;
+}
+#endif /* XSS */
+
 NS_IMETHODIMP CPromptService::Prompt(nsIDOMWindow *parent, const PRUnichar *dialogTitle,
                                      const PRUnichar *text, PRUnichar **value,
                                      const PRUnichar *checkMsg, PRBool *checkValue,
Index: mozilla-src/mozilla/embedding/components/windowwatcher/public/nsIPromptService.idl
diff -u mozilla-src/mozilla/embedding/components/windowwatcher/public/nsIPromptService.idl:1.1 mozilla-src/mozilla/embedding/components/windowwatcher/public/nsIPromptService.idl:1.3
--- mozilla-src/mozilla/embedding/components/windowwatcher/public/nsIPromptService.idl:1.1	Sat Nov 13 12:31:34 2004
+++ mozilla-src/mozilla/embedding/components/windowwatcher/public/nsIPromptService.idl	Tue Nov 22 16:20:19 2005
@@ -121,6 +121,11 @@
   const unsigned long BUTTON_POS_0              = 1;
   const unsigned long BUTTON_POS_1              = 1 << 8;
   const unsigned long BUTTON_POS_2              = 1 << 16;
+
+#ifdef XSS /* XSS */
+  // needed for ConfirmExXSS and it is left of the delayenable
+  const unsigned long BUTTON_POS_3              = 1;
+#endif /* XSS */
      
   const unsigned long BUTTON_TITLE_OK            = 1;
   const unsigned long BUTTON_TITLE_CANCEL        = 2;
@@ -130,12 +135,21 @@
   const unsigned long BUTTON_TITLE_DONT_SAVE     = 6;
   const unsigned long BUTTON_TITLE_REVERT        = 7;
 
+#ifdef XSS /* XSS */
+  const unsigned long BUTTON_TITLE_YES_ALWAYS    = 8;
+  const unsigned long BUTTON_TITLE_NO_ALWAYS     = 9;
+#endif /* XSS */
+
   const unsigned long BUTTON_TITLE_IS_STRING     = 127;
   
   const unsigned long BUTTON_POS_0_DEFAULT       = 0 << 24;
   const unsigned long BUTTON_POS_1_DEFAULT       = 1 << 24;
   const unsigned long BUTTON_POS_2_DEFAULT       = 2 << 24;
 
+#ifdef XSS /* XSS */
+  const unsigned long BUTTON_POS_3_DEFAULT       = 3 << 24;
+#endif /* XSS */
+
   /* used for security dialogs, buttons are initially disabled */
   const unsigned long BUTTON_DELAY_ENABLE        = 1 << 26;
   
@@ -152,6 +166,22 @@
                  in wstring checkMsg,
                  inout boolean checkValue);
 
+#ifdef XSS /* XSS */
+
+  PRInt32 confirmExXSS(in nsIDOMWindow parent,
+                       in wstring dialogTitle,
+                       in wstring text,
+                       in unsigned long buttonFlags,
+                       in unsigned long buttonFlags2,
+                       in wstring button0Title,
+                       in wstring button1Title,
+                       in wstring button2Title,
+                       in wstring button3Title,
+                       in wstring checkMsg,
+                       inout boolean checkValue);
+
+#endif /* XSS */
+
   /**
    * Puts up a dialog with an edit field and an optional checkbox.
    *
Index: mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPrompt.cpp
diff -u mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPrompt.cpp:1.1 mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPrompt.cpp:1.2
--- mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPrompt.cpp:1.1	Sat Nov 13 12:31:42 2004
+++ mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPrompt.cpp	Mon Nov 14 16:39:21 2005
@@ -166,6 +166,29 @@
                                    checkMsg, checkValue, buttonPressed);
 }
 
+#ifdef XSS /* XSS */
+
+NS_IMETHODIMP
+nsPrompt::ConfirmExXSS(const PRUnichar *dialogTitle,
+                       const PRUnichar *text,
+                       PRUint32 buttonFlags,
+                       PRUint32 buttonFlags2,
+                       const PRUnichar *button0Title,
+                       const PRUnichar *button1Title,
+                       const PRUnichar *button2Title,
+                       const PRUnichar *button3Title,
+                       const PRUnichar *checkMsg,
+                       PRBool *checkValue,
+                       PRInt32 *buttonPressed)
+{
+  return mPromptService->ConfirmExXSS(mParent, dialogTitle, text,
+                                   buttonFlags, buttonFlags2, button0Title, button1Title, button2Title,
+                                   button3Title, checkMsg, checkValue, buttonPressed);
+}
+
+#endif /* XSS */
+
+
 NS_IMETHODIMP
 nsPrompt::Prompt(const PRUnichar *dialogTitle,
                  const PRUnichar *text,
Index: mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp
diff -u mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp:1.1 mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp:1.2
--- mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp:1.1	Sat Nov 13 12:31:42 2004
+++ mozilla-src/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp	Mon Nov 14 16:39:32 2005
@@ -653,4 +653,121 @@
 
   return rv;
 }
+
+#ifdef XSS /* XSS */
+
+NS_IMETHODIMP
+nsPromptService::ConfirmExXSS(nsIDOMWindow *parent,
+                    const PRUnichar *dialogTitle, const PRUnichar *text,
+                    PRUint32 buttonFlags, PRUint32 buttonFlags2, const PRUnichar *button0Title,
+                    const PRUnichar *button1Title, const PRUnichar *button2Title,
+                    const PRUnichar *button3Title, const PRUnichar *checkMsg, 
+					PRBool *checkValue, PRInt32 *buttonPressed)
+{
+  nsresult rv;
+  nsXPIDLString stringOwner;
  
+  if (!dialogTitle) {
+    rv = GetLocaleString("Confirm", getter_Copies(stringOwner));
+    if (NS_FAILED(rv)) return NS_ERROR_FAILURE;
+    dialogTitle = stringOwner.get();
+  }
+
+  ParamBlock block;
+  rv = block.Init();
+  if (NS_FAILED(rv))
+    return rv;
+
+  block->SetString(eDialogTitle, dialogTitle);
+  block->SetString(eMsg, text);
+  
+  int buttonIDs[] = { eButton0Text, eButton1Text, eButton2Text, eButton3Text };
+  const PRUnichar* buttonStrings[] = { button0Title, button1Title, button2Title, button3Title };
+
+#define BUTTON_DEFAULT_MASK 0x03000000
+
+  block->SetInt(eDefaultButton, (buttonFlags & BUTTON_DEFAULT_MASK) >> 24);
+  block->SetInt(eDelayButtonEnable, buttonFlags & BUTTON_DELAY_ENABLE);
+
+  PRInt32 numberButtons = 0;
+  for (int i = 0; i < 4; i++) { 
+
+    if (i == 3) 
+	  buttonFlags = buttonFlags2;
+
+    nsXPIDLString buttonTextStr;
+    const PRUnichar* buttonText = 0;
+    switch (buttonFlags & 0xff) {
+      case BUTTON_TITLE_OK:
+        GetLocaleString("OK", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_CANCEL:
+        GetLocaleString("Cancel", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_YES:
+        GetLocaleString("Yes", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_NO:
+        GetLocaleString("No", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_SAVE:
+        GetLocaleString("Save", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_DONT_SAVE:
+        GetLocaleString("DontSave", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_REVERT:
+        GetLocaleString("Revert", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_YES_ALWAYS:
+        GetLocaleString("Yesalways", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_NO_ALWAYS:
+        GetLocaleString("Noalways", getter_Copies(buttonTextStr));
+        break;
+      case BUTTON_TITLE_IS_STRING:
+        buttonText = buttonStrings[i];
+        break;
+    }
+    if (!buttonText)
+      buttonText = buttonTextStr.get();
+
+    if (buttonText) {
+      block->SetString(buttonIDs[i], buttonText);
+      ++numberButtons;
+    }
+    buttonFlags >>= 8;
+  }
+  block->SetInt(eNumberButtons, numberButtons);
+  
+  block->SetString(eIconClass, NS_ConvertASCIItoUCS2(kQuestionIconClass).get());
+
+  if (checkMsg && checkValue) {
+    block->SetString(eCheckboxMsg, checkMsg);
+    // since we're setting a PRInt32, we have to sanitize the PRBool first.
+    // (myBool != PR_FALSE) is guaranteed to return either 1 or 0.
+    block->SetInt(eCheckboxState, *checkValue != PR_FALSE);
+  }
+  
+  /* perform the dialog */
+
+  rv = DoDialog(parent, block, kPromptURL);
+  if (NS_FAILED(rv))
+    return rv;
+
+  /* get back output parameters */
+
+  if (buttonPressed)
+    block->GetInt(eButtonPressed, buttonPressed);
+
+  if (checkMsg && checkValue) {
+    // GetInt returns a PRInt32; we need to sanitize it into PRBool
+    PRInt32 tempValue;
+    block->GetInt(eCheckboxState, &tempValue);
+    *checkValue = (tempValue == 1);
+  }
+
+  return rv;
+}
+
+#endif /* XSS */
Index: mozilla-src/mozilla/embedding/qa/testembed/components/PromptService.cpp
diff -u mozilla-src/mozilla/embedding/qa/testembed/components/PromptService.cpp:1.1 mozilla-src/mozilla/embedding/qa/testembed/components/PromptService.cpp:1.2
--- mozilla-src/mozilla/embedding/qa/testembed/components/PromptService.cpp:1.1	Sat Nov 13 12:31:35 2004
+++ mozilla-src/mozilla/embedding/qa/testembed/components/PromptService.cpp	Mon Nov 14 16:41:36 2005
@@ -396,6 +396,24 @@
     return NS_OK;    
 }
  
+#ifdef XSS /* XSS */
+NS_IMETHODIMP CPromptService::ConfirmExXSS(nsIDOMWindow *parent,
+                                        const PRUnichar *dialogTitle,
+                                        const PRUnichar *text,
+                                        PRUint32 buttonFlags,
+                                        PRUint32 buttonFlags2,
+                                        const PRUnichar *button0Title,
+                                        const PRUnichar *button1Title,
+                                        const PRUnichar *button2Title,
+                                        const PRUnichar *button3Title,
+                                        const PRUnichar *checkMsg,
+                                        PRBool *checkValue,
+                                        PRInt32 *buttonPressed)
+{
+  return NS_ERROR_NOT_IMPLEMENTED;
+}
+#endif /* XSS */
+ 
 //*****************************************************************************
 // CPromptServiceFactory
 //*****************************************************************************   
Index: mozilla-src/mozilla/embedding/tests/mfcembed/components/PromptService.cpp
diff -u mozilla-src/mozilla/embedding/tests/mfcembed/components/PromptService.cpp:1.1 mozilla-src/mozilla/embedding/tests/mfcembed/components/PromptService.cpp:1.2
--- mozilla-src/mozilla/embedding/tests/mfcembed/components/PromptService.cpp:1.1	Sat Nov 13 12:31:35 2004
+++ mozilla-src/mozilla/embedding/tests/mfcembed/components/PromptService.cpp	Mon Nov 14 16:41:54 2005
@@ -399,6 +399,24 @@
     return NS_OK;    
 }
  
+#ifdef XSS /* XSS */
+NS_IMETHODIMP CPromptService::ConfirmExXSS(nsIDOMWindow *parent,
+                                        const PRUnichar *dialogTitle,
+                                        const PRUnichar *text,
+                                        PRUint32 buttonFlags,
+                                        PRUint32 buttonFlags2,
+                                        const PRUnichar *button0Title,
+                                        const PRUnichar *button1Title,
+                                        const PRUnichar *button2Title,
+                                        const PRUnichar *button3Title,
+                                        const PRUnichar *checkMsg,
+                                        PRBool *checkValue,
+                                        PRInt32 *buttonPressed)
+{
+  return NS_ERROR_NOT_IMPLEMENTED;
+}
+#endif /* XSS */
+ 
 //*****************************************************************************
 // CPromptServiceFactory
 //*****************************************************************************   
Index: mozilla-src/mozilla/js/src/Makefile
diff -u /dev/null mozilla-src/mozilla/js/src/Makefile:1.5
--- /dev/null	Sun Mar 19 00:41:48 2006
+++ mozilla-src/mozilla/js/src/Makefile	Tue Jul  5 18:45:52 2005
@@ -0,0 +1,381 @@
+# -*- Mode: makefile -*-
+#
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is Mozilla Communicator client code, released
+# March 31, 1998.
+#
+# The Initial Developer of the Original Code is
+# Netscape Communications Corporation.
+# Portions created by the Initial Developer are Copyright (C) 1998
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either of the GNU General Public License Version 2 or later (the "GPL"),
+# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+DEPTH		= ../..
+topsrcdir	= /cygdrive/d/mozilla-src/mozilla
+srcdir		= /cygdrive/d/mozilla-src/mozilla/js/src
+VPATH		= /cygdrive/d/mozilla-src/mozilla/js/src
+
+include $(DEPTH)/config/autoconf.mk
+
+MODULE		= js
+LIBRARY_NAME	= mozjs
+LIB_IS_C_ONLY	= 1
+GRE_MODULE	= 1
+
+ifeq ($(OS_ARCH),WINNT)
+LIBRARY_NAME	= js$(MOZ_BITS)$(VERSION_NUMBER)
+RESFILE		= js$(MOZ_BITS)40.res
+endif
+
+PACKAGE_FILE = js.pkg
+
+# JavaScript must be built shared, even for static builds, as it is used by
+# other modules which are always built shared. Failure to do so results in
+# the js code getting copied into xpinstall and jsd as well as mozilla-bin,
+# and then the static data cells used for locking no longer work.
+FORCE_SHARED_LIB = 1
+
+CSRCS		= \
+		jsapi.c \
+		jsarena.c \
+		jsarray.c \
+		jsatom.c \
+		jsbool.c \
+		jscntxt.c \
+		jsdate.c \
+		jsdbgapi.c \
+		jsdhash.c \
+		jsdtoa.c \
+		jsemit.c \
+		jsexn.c \
+		jsfun.c \
+		jsgc.c \
+		jshash.c \
+		jsinterp.c \
+		jslock.c \
+		jslog2.c \
+		jslong.c \
+		jsmath.c \
+		jsnum.c \
+		jsobj.c \
+		jsopcode.c \
+		jsparse.c \
+		jsprf.c \
+		jsregexp.c \
+		jsscan.c \
+		jsscope.c \
+		jsscript.c \
+		jsstr.c \
+		jsutil.c \
+		jsxdrapi.c \
+		prmjtime.c \
+		xsstaint.c \
+		$(NULL)
+
+EXPORTS		= \
+		jsautocfg.h \
+		js.msg \
+		jsapi.h \
+		jsarray.h \
+		jsarena.h \
+		jsatom.h \
+		jsbit.h \
+		jsbool.h \
+		jsclist.h \
+		jscntxt.h \
+		jscompat.h \
+		jsconfig.h \
+		jsdate.h \
+		jsdbgapi.h \
+		jsdhash.h \
+		jsemit.h \
+		jsfun.h \
+		jsgc.h \
+		jshash.h \
+		jsinterp.h \
+		jslock.h \
+		jslong.h \
+		jsmath.h \
+		jsnum.h \
+		jsobj.h \
+		jsopcode.tbl \
+		jsopcode.h \
+		jsosdep.h \
+		jsotypes.h \
+		jsparse.h \
+		jsprf.h \
+		jsprvtd.h \
+		jspubtd.h \
+		jsregexp.h \
+		jsscan.h \
+		jsscope.h \
+		jsscript.h \
+		jsstr.h \
+		jstypes.h \
+		jsutil.h \
+		jsxdrapi.h \
+		jsstddef.h \
+		xsstaint.h \
+		xssdbg.h \
+		$(NULL)
+
+ifeq ($(OS_ARCH),WINNT)
+EXPORTS		+= jscpucfg.h
+endif
+
+FDLIBM_LIBRARY	= fdlibm/$(LIB_PREFIX)fdm.$(LIB_SUFFIX)
+JSMATH_PRELINK	= jsmathtemp.o
+JS_SAFE_ARENA	= 1
+
+DASH_R		= -r
+
+include $(topsrcdir)/config/config.mk
+
+EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
+
+ifeq (,$(filter-out OS2 WINNT,$(OS_ARCH)))
+SHARED_LIBRARY_LIBS += $(FDLIBM_LIBRARY)
+endif
+
+# When using gcc the assembly is inlined in the C-file (see jslock.c)
+ifeq ($(OS_ARCH),SunOS)
+ifneq ($(OS_TEST),i86pc)
+ifndef GNU_CC
+ASFILES		= lock_$(OS_ARCH).s
+endif
+endif
+endif
+
+ifndef BUILD_OPT
+MOCHAFILE	= 1
+endif
+
+ifndef NSBUILDROOT
+JSJAVA_STUBHEADERS = \
+		-I$(topsrcdir)/sun-java/include/_gen \
+		-I$(topsrcdir)/sun-java/netscape/javascript/_jri \
+		-I$(topsrcdir)/sun-java/netscape/security/_jri
+else
+JSJAVA_STUBHEADERS = -I$(JRI_GEN_DIR) -I$(JDK_GEN_DIR)
+endif
+
+JSJAVA_CFLAGS	= \
+		-I$(topsrcdir)/sun-java/md-include \
+		-I$(topsrcdir)/sun-java/include \
+		$(JSJAVA_STUBHEADERS)
+
+include $(topsrcdir)/config/rules.mk
+
+DEFINES		+= -DEXPORT_JS_API 
+# DEFINES		+= -DXSS_DEBUG=1
+# DEFINES		+= -DJS_GCMETER
+# DEFINES		+= -DGC_MARK_DEBUG
+
+INCLUDES	+= -I$(srcdir)
+
+# MSVC '-Gy' cc flag and '/OPT:REF' linker flag cause JS_GetArgument and
+# JS_GetLocalVariable to be folded to the same address by the linker, 
+# leading to a crash on startup. See bug 151066. So, in optimized builds,
+# add the /OPT:NOICF flag, which turns off 'identical COMDAT folding'.
+#
+# N.B.: 'identical COMDAT folding' that folds functions whose addresses
+# are taken violates the ISO C and C++ standards.
+ifndef MOZ_DEBUG
+ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
+LDFLAGS         += /OPT:NOICF
+endif
+endif
+
+GARBAGE		+= $(JSMATH_PRELINK) jscpucfg.o jsautocfg.h jsautocfg.tmp jscpucfg
+
+ifneq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
+TARGETS		+= jscpucfg$(HOST_BIN_SUFFIX)
+endif
+
+ifdef JS_SAFE_ARENA
+DEFINES		+= -DJS_USE_SAFE_ARENA
+endif
+
+ifdef JS_THREADSAFE
+DEFINES		+= -DJS_THREADSAFE
+endif
+
+ifdef JS_NO_THIN_LOCKS
+DEFINES		+= -DJS_USE_ONLY_NSPR_LOCKS
+endif
+
+ifdef JS_VERSION
+DEFINES		+= -DJS_VERSION=$(JS_VERSION)
+endif
+
+ifneq ($(findstring -L,$(NSPR_LIBS)),)
+NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS)))
+else
+NSPR_STATIC_PATH = $(DIST)/lib
+endif
+
+LDFLAGS		+= $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS))
+
+# BeOS and HP-UX do not require the extra linking of "-lm"
+ifeq (,$(filter BeOS HP-UX WINNT OpenVMS,$(OS_ARCH)))
+LDFLAGS		+= -lm
+endif
+
+# Prevent floating point errors caused by VC++ optimizations
+ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
+CFLAGS += /Op
+endif # WINNT
+
+ifeq ($(OS_ARCH),FreeBSD)
+LDFLAGS		+= -pthread
+endif
+ifeq ($(OS_ARCH),IRIX)
+ifdef USE_N32
+DASH_R		+= -n32
+endif
+endif
+ifeq ($(OS_ARCH),Linux)
+LDFLAGS		+= -ldl
+endif
+ifeq ($(OS_ARCH),OSF1)
+LDFLAGS		+= -lc_r
+endif
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(TARGET_CPU),sparc)
+
+ifdef JS_ULTRASPARC_OPTS
+DEFINES += -DULTRA_SPARC
+ifdef GNU_CC
+CFLAGS   += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0
+CXXFLAGS += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0,-K,PIC
+else
+ASFLAGS  += -xarch=v8plus -DULTRA_SPARC -P -L -D_ASM -D__STDC__=0 -K PIC
+endif # GNU_CC
+endif # JS_ULTRASPARC_OPTS
+
+endif
+ifeq ($(OS_RELEASE),4.1)
+LDFLAGS		+= -ldl -lnsl
+else
+LDFLAGS		+= -lposix4 -ldl -lnsl -lsocket
+endif
+endif
+
+ifeq ($(OS_ARCH),QNX)
+ifneq ($(OS_TARGET),NTO)
+# Don't use wildcard here, because we only want this resolved at link time.
+OBJS		+= fdlibm/*.o
+endif
+endif
+
+ifeq ($(OS_ARCH),IRIX)
+ifndef GNU_CC
+_COMPILE_CFLAGS  = $(patsubst -O%,-O1,$(COMPILE_CFLAGS))
+jsapi.o jsarena.o jsarray.o jsatom.o jsemit.o jsfun.o jsinterp.o jsregexp.o jsparse.o jsopcode.o jsscript.o: %.o: %.c Makefile.in
+	$(REPORT_BUILD)
+	@$(MAKE_DEPS_AUTO)
+	$(CC) -o $@ -c $(_COMPILE_CFLAGS) $<
+endif
+endif
+
+# On OS/2 & win32 we are already linking against fdlibm, so don't bother
+# creating jsmathtemp
+ifeq (,$(filter OS2 WINNT OpenVMS,$(OS_ARCH)))
+# special rule for jsmath.o since we want to incrementally link
+# against fdlibm to pull in only what is needed
+# Do this in a single step to avoid dependency problems
+jsmath.o: jsmath.c $(FDLIBM_LIBRARY) Makefile.in
+	$(REPORT_BUILD)
+	@$(MAKE_DEPS_AUTO)
+	$(ELOG) $(CC) $(OUTOPTION)$(JSMATH_PRELINK) -c $(COMPILE_CFLAGS) $<
+ifeq ($(OS_ARCH),QNX)
+ifneq ($(OS_TARGET),NTO)
+	@cp $(JSMATH_PRELINK) $@
+else
+	$(LD) $(DASH_R) -o $@ $(JSMATH_PRELINK) $(FDLIBM_LIBRARY)
+endif
+else
+	$(LD) $(DASH_R) -o $@ $(JSMATH_PRELINK) $(FDLIBM_LIBRARY)
+endif
+	@$(RM) -f $(JSMATH_PRELINK)
+else
+# Create dependency so we build fdlibm
+jsmath.o: $(FDLIBM_LIBRARY) Makefile.in
+endif
+
+# An AIX Optimization bug causes PR_dtoa() & JS_dtoa to produce wrong result.
+# This suppresses optimization for this single compilation unit.
+ifeq ($(OS_ARCH),AIX)
+jsatom.o: jsatom.c Makefile.in
+	$(REPORT_BUILD)
+	@$(MAKE_DEPS_AUTO)
+	$(CC) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
+jsdtoa.o: jsdtoa.c Makefile.in
+	$(REPORT_BUILD)
+	@$(MAKE_DEPS_AUTO)
+	$(CC) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
+endif
+
+$(FDLIBM_LIBRARY):
+	$(MAKE) -C $(@D) $(@F)
+
+jsopcode.h jsopcode.c: jsopcode.tbl
+
+ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
+jsautocfg.h:
+	touch $@
+else
+jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
+	@rm -f $@ jsautocfg.tmp
+	./jscpucfg > jsautocfg.tmp
+	mv jsautocfg.tmp $@
+endif
+
+# jscpucfg is a strange target
+# Needs to be built with the host compiler but needs to include
+# the mdcpucfg for the target so it needs the appropriate target defines
+ifdef HOST_NSPR_MDCPUCFG
+HOST_CC := $(HOST_CC) -DMDCPUCFG=$(TARGET_NSPR_MDCPUCFG)
+endif
+
+ifeq ($(OS_ARCH),QNX)
+ifneq ($(OS_TARGET),NTO)
+# QNX's compiler apparently can't build a binary directly from a source file.
+jscpucfg.o: jscpucfg.c Makefile.in
+	$(HOST_CC) $(HOST_CFLAGS) -c $(DEFINES) $(NSPR_CFLAGS) -o $@ $<
+
+jscpucfg: jscpucfg.o
+	$(HOST_CC) $(HOST_CFLAGS) $(DEFINES) -o $@ $<
+endif
+else
+jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.c Makefile.in
+	$(HOST_CC) $(HOST_CFLAGS) $(DEFINES) $(NSPR_CFLAGS) $(OUTOPTION)$@ $<
+endif
+
Index: mozilla-src/mozilla/js/src/Makefile.in
diff -u mozilla-src/mozilla/js/src/Makefile.in:1.1 mozilla-src/mozilla/js/src/Makefile.in:1.2
--- mozilla-src/mozilla/js/src/Makefile.in:1.1	Sat Nov 13 12:38:59 2004
+++ mozilla-src/mozilla/js/src/Makefile.in	Tue Nov 22 16:22:51 2005
@@ -96,6 +96,7 @@
 		jsutil.c \
 		jsxdrapi.c \
 		prmjtime.c \
+		xsstaint.c \
 		$(NULL)
 
 EXPORTS		= \
@@ -141,6 +142,8 @@
 		jsutil.h \
 		jsxdrapi.h \
 		jsstddef.h \
+		xsstaint.h \
+		xssdbg.h \
 		$(NULL)
 
 ifeq ($(OS_ARCH),WINNT)
Index: mozilla-src/mozilla/js/src/embed.mak
diff -u /dev/null mozilla-src/mozilla/js/src/embed.mak:1.1
--- /dev/null	Sun Mar 19 00:41:48 2006
+++ mozilla-src/mozilla/js/src/embed.mak	Tue Mar 29 15:36:39 2005
@@ -0,0 +1,4117 @@
+# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+!IF "$(CFG)" == ""
+CFG=embedtest - Win32 Debug
+!MESSAGE No configuration specified.  Defaulting to embedtest - Win32 Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "js - Win32 Release" && "$(CFG)" != "js - Win32 Debug" &&\
+ "$(CFG)" != "embedtest - Win32 Release" && "$(CFG)" != "embedtest - Win32 Debug" &&\
+ "$(CFG)" != "fdlibm - Win32 Release" && "$(CFG)" != "fdlibm - Win32 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE on this makefile
+!MESSAGE by defining the macro CFG on the command line.  For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "js.mak" CFG="embedtest - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "js - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "js - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "embedtest - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "embedtest - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "fdlibm - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "fdlibm - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+################################################################################
+# Begin Project
+# PROP Target_Last_Scanned "embedtest - Win32 Debug"
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "js___Wi1"
+# PROP BASE Intermediate_Dir "js___Wi1"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "fdlibm - Win32 Release" "$(OUTDIR)\js32.dll"
+
+CLEAN : 
+	-@erase "$(INTDIR)\jsapi.obj"
+	-@erase "$(INTDIR)\jsarena.obj"
+	-@erase "$(INTDIR)\jsarray.obj"
+	-@erase "$(INTDIR)\jsatom.obj"
+	-@erase "$(INTDIR)\jsbool.obj"
+	-@erase "$(INTDIR)\jscntxt.obj"
+	-@erase "$(INTDIR)\jsdate.obj"
+	-@erase "$(INTDIR)\jsdbgapi.obj"
+	-@erase "$(INTDIR)\jsdhash.obj"
+	-@erase "$(INTDIR)\jsdtoa.obj"
+	-@erase "$(INTDIR)\jsemit.obj"
+	-@erase "$(INTDIR)\jsexn.obj"
+	-@erase "$(INTDIR)\jsfun.obj"
+	-@erase "$(INTDIR)\jsgc.obj"
+	-@erase "$(INTDIR)\jshash.obj"
+	-@erase "$(INTDIR)\jsinterp.obj"
+	-@erase "$(INTDIR)\jslock.obj"
+	-@erase "$(INTDIR)\jslog2.obj"
+	-@erase "$(INTDIR)\jslong.obj"
+	-@erase "$(INTDIR)\jsmath.obj"
+	-@erase "$(INTDIR)\jsnum.obj"
+	-@erase "$(INTDIR)\jsobj.obj"
+	-@erase "$(INTDIR)\jsopcode.obj"
+	-@erase "$(INTDIR)\jsparse.obj"
+	-@erase "$(INTDIR)\jsprf.obj"
+	-@erase "$(INTDIR)\jsregexp.obj"
+	-@erase "$(INTDIR)\jsscan.obj"
+	-@erase "$(INTDIR)\jsscope.obj"
+	-@erase "$(INTDIR)\jsscript.obj"
+	-@erase "$(INTDIR)\jsstr.obj"
+	-@erase "$(INTDIR)\jsutil.obj"
+	-@erase "$(INTDIR)\jsxdrapi.obj"
+	-@erase "$(INTDIR)\prmjtime.obj"
+	-@erase "$(INTDIR)\taint.obj"
+	-@erase "$(OUTDIR)\js32.dll"
+	-@erase "$(OUTDIR)\js32.exp"
+	-@erase "$(OUTDIR)\js32.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /YX /c
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D\
+ "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /Fp"$(INTDIR)/js.pch" /YX\
+ /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Release/
+CPP_OBJS2=.\xss
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+MTL=mktyplib.exe
+# ADD BASE MTL /nologo /D "NDEBUG" /win32
+# ADD MTL /nologo /D "NDEBUG" /win32
+MTL_PROJ=/nologo /D "NDEBUG" /win32 
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/js.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/js32.dll"
+# SUBTRACT LINK32 /nodefaultlib
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
+ /pdb:"$(OUTDIR)/js32.pdb" /machine:I386 /out:"$(OUTDIR)/js32.dll"\
+ /implib:"$(OUTDIR)/js32.lib" /opt:ref /opt:noicf
+LINK32_OBJS= \
+	"$(INTDIR)\jsapi.obj" \
+	"$(INTDIR)\jsarena.obj" \
+	"$(INTDIR)\jsarray.obj" \
+	"$(INTDIR)\jsatom.obj" \
+	"$(INTDIR)\jsbool.obj" \
+	"$(INTDIR)\jscntxt.obj" \
+	"$(INTDIR)\jsdate.obj" \
+	"$(INTDIR)\jsdbgapi.obj" \
+	"$(INTDIR)\jsdhash.obj" \
+	"$(INTDIR)\jsdtoa.obj" \
+	"$(INTDIR)\jsemit.obj" \
+	"$(INTDIR)\jsexn.obj" \
+	"$(INTDIR)\jsfun.obj" \
+	"$(INTDIR)\jsgc.obj" \
+	"$(INTDIR)\jshash.obj" \
+	"$(INTDIR)\jsinterp.obj" \
+	"$(INTDIR)\jslock.obj" \
+	"$(INTDIR)\jslog2.obj" \
+	"$(INTDIR)\jslong.obj" \
+	"$(INTDIR)\jsmath.obj" \
+	"$(INTDIR)\jsnum.obj" \
+	"$(INTDIR)\jsobj.obj" \
+	"$(INTDIR)\jsopcode.obj" \
+	"$(INTDIR)\jsparse.obj" \
+	"$(INTDIR)\jsprf.obj" \
+	"$(INTDIR)\jsregexp.obj" \
+	"$(INTDIR)\jsscan.obj" \
+	"$(INTDIR)\jsscope.obj" \
+	"$(INTDIR)\jsscript.obj" \
+	"$(INTDIR)\jsstr.obj" \
+	"$(INTDIR)\jsutil.obj" \
+	"$(INTDIR)\jsxdrapi.obj" \
+	"$(INTDIR)\prmjtime.obj" \
+	"$(INTDIR)\taint.obj" \
+	"$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)\js32.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "js___Wi2"
+# PROP BASE Intermediate_Dir "js___Wi2"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+OUTDIR=.\Debug
+INTDIR=.\Debug
+
+ALL : "fdlibm - Win32 Debug" "$(OUTDIR)\js32.dll"
+
+CLEAN : 
+	-@erase "$(INTDIR)\jsapi.obj"
+	-@erase "$(INTDIR)\jsarena.obj"
+	-@erase "$(INTDIR)\jsarray.obj"
+	-@erase "$(INTDIR)\jsatom.obj"
+	-@erase "$(INTDIR)\jsbool.obj"
+	-@erase "$(INTDIR)\jscntxt.obj"
+	-@erase "$(INTDIR)\jsdate.obj"
+	-@erase "$(INTDIR)\jsdbgapi.obj"
+	-@erase "$(INTDIR)\jsdhash.obj"
+	-@erase "$(INTDIR)\jsdtoa.obj"
+	-@erase "$(INTDIR)\jsemit.obj"
+	-@erase "$(INTDIR)\jsexn.obj"
+	-@erase "$(INTDIR)\jsfun.obj"
+	-@erase "$(INTDIR)\jsgc.obj"
+	-@erase "$(INTDIR)\jshash.obj"
+	-@erase "$(INTDIR)\jsinterp.obj"
+	-@erase "$(INTDIR)\jslock.obj"
+	-@erase "$(INTDIR)\jslog2.obj"
+	-@erase "$(INTDIR)\jslong.obj"
+	-@erase "$(INTDIR)\jsmath.obj"
+	-@erase "$(INTDIR)\jsnum.obj"
+	-@erase "$(INTDIR)\jsobj.obj"
+	-@erase "$(INTDIR)\jsopcode.obj"
+	-@erase "$(INTDIR)\jsparse.obj"
+	-@erase "$(INTDIR)\jsprf.obj"
+	-@erase "$(INTDIR)\jsregexp.obj"
+	-@erase "$(INTDIR)\jsscan.obj"
+	-@erase "$(INTDIR)\jsscope.obj"
+	-@erase "$(INTDIR)\jsscript.obj"
+	-@erase "$(INTDIR)\jsstr.obj"
+	-@erase "$(INTDIR)\jsutil.obj"
+	-@erase "$(INTDIR)\jsxdrapi.obj"
+	-@erase "$(INTDIR)\prmjtime.obj"
+	-@erase "$(INTDIR)\taint.obj"
+	-@erase "$(INTDIR)\vc40.idb"
+	-@erase "$(INTDIR)\vc40.pdb"
+	-@erase "$(OUTDIR)\js32.dll"
+	-@erase "$(OUTDIR)\js32.exp"
+	-@erase "$(OUTDIR)\js32.ilk"
+	-@erase "$(OUTDIR)\js32.lib"
+	-@erase "$(OUTDIR)\js32.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /YX /c
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS"\
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS"\
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "XSS_DEBUG=1" /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS"\
+ /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /Fp"$(INTDIR)/js.pch" /YX\
+ /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c 
+CPP_OBJS=.\Debug/
+CPP_OBJS2=.\xss
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+MTL=mktyplib.exe
+# ADD BASE MTL /nologo /D "_DEBUG" /win32
+# ADD MTL /nologo /D "_DEBUG" /win32
+MTL_PROJ=/nologo /D "_DEBUG" /win32 
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/js.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/js32.dll"
+# SUBTRACT LINK32 /nodefaultlib
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
+ /pdb:"$(OUTDIR)/js32.pdb" /debug /machine:I386 /out:"$(OUTDIR)/js32.dll"\
+ /implib:"$(OUTDIR)/js32.lib" 
+LINK32_OBJS= \
+	"$(INTDIR)\jsapi.obj" \
+	"$(INTDIR)\jsarena.obj" \
+	"$(INTDIR)\jsarray.obj" \
+	"$(INTDIR)\jsatom.obj" \
+	"$(INTDIR)\jsbool.obj" \
+	"$(INTDIR)\jscntxt.obj" \
+	"$(INTDIR)\jsdate.obj" \
+	"$(INTDIR)\jsdbgapi.obj" \
+	"$(INTDIR)\jsdhash.obj" \
+	"$(INTDIR)\jsdtoa.obj" \
+	"$(INTDIR)\jsemit.obj" \
+	"$(INTDIR)\jsexn.obj" \
+	"$(INTDIR)\jsfun.obj" \
+	"$(INTDIR)\jsgc.obj" \
+	"$(INTDIR)\jshash.obj" \
+	"$(INTDIR)\jsinterp.obj" \
+	"$(INTDIR)\jslock.obj" \
+	"$(INTDIR)\jslog2.obj" \
+	"$(INTDIR)\jslong.obj" \
+	"$(INTDIR)\jsmath.obj" \
+	"$(INTDIR)\jsnum.obj" \
+	"$(INTDIR)\jsobj.obj" \
+	"$(INTDIR)\jsopcode.obj" \
+	"$(INTDIR)\jsparse.obj" \
+	"$(INTDIR)\jsprf.obj" \
+	"$(INTDIR)\jsregexp.obj" \
+	"$(INTDIR)\jsscan.obj" \
+	"$(INTDIR)\jsscope.obj" \
+	"$(INTDIR)\jsscript.obj" \
+	"$(INTDIR)\jsstr.obj" \
+	"$(INTDIR)\jsutil.obj" \
+	"$(INTDIR)\jsxdrapi.obj" \
+	"$(INTDIR)\prmjtime.obj" \
+	"$(INTDIR)\taint.obj" \
+	"$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)\js32.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "embedtest - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "embedtest\Release"
+# PROP BASE Intermediate_Dir "embedtest\Release"
+# PROP BASE Target_Dir "embedtest"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir "embedtest"
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "js - Win32 Release" "$(OUTDIR)\embedtest.exe"
+
+CLEAN : 
+	-@erase "$(INTDIR)\embedtest.obj"
+	-@erase "$(OUTDIR)\embedtest.exe"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "XP_WIN" /D "JSFILE" /YX /c
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D\
+ "XP_WIN" /D "JSFILE" /Fp"$(INTDIR)/embedtest.pch" /YX /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Release/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/embedtest.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:console /incremental:no\
+ /pdb:"$(OUTDIR)/embedtest.pdb" /machine:I386 /out:"$(OUTDIR)/embedtest.exe" 
+LINK32_OBJS= \
+	"$(INTDIR)\embedtest.obj" \
+	"$(OUTDIR)\js32.lib"
+
+"$(OUTDIR)\embedtest.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "embedtest - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "embedtest\embedtest_"
+# PROP BASE Intermediate_Dir "embedtest\embedtest_"
+# PROP BASE Target_Dir "embedtest"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir "embedtest"
+OUTDIR=.\Debug
+INTDIR=.\Debug
+
+ALL : "js - Win32 Debug" "$(OUTDIR)\embedtest.exe"
+
+CLEAN : 
+	-@erase "$(INTDIR)\embedtest.obj"
+	-@erase "$(INTDIR)\vc40.idb"
+	-@erase "$(INTDIR)\vc40.pdb"
+	-@erase "$(OUTDIR)\embedtest.exe"
+	-@erase "$(OUTDIR)\embedtest.ilk"
+	-@erase "$(OUTDIR)\embedtest.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_CONSOLE" /D "_DEBUG" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "DEBUG" /YX /c
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_CONSOLE" /D "_DEBUG" /D "WIN32"\
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "_CONSOLE" /D "_DEBUG" /D "WIN32"\
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "XSS_DEBUG=1" /D "_CONSOLE" /D "_DEBUG" /D "WIN32"\
+ /D "XP_WIN" /D "JSFILE" /D "DEBUG" /Fp"$(INTDIR)/embedtest.pch" /YX\
+ /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c 
+CPP_OBJS=.\Debug/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/embedtest.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:console /incremental:yes\
+ /pdb:"$(OUTDIR)/embedtest.pdb" /debug /machine:I386 /out:"$(OUTDIR)/embedtest.exe" 
+LINK32_OBJS= \
+	"$(INTDIR)\embedtest.obj" \
+	"$(OUTDIR)\js32.lib"
+
+"$(OUTDIR)\embedtest.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "fdlibm\Release"
+# PROP BASE Intermediate_Dir "fdlibm\Release"
+# PROP BASE Target_Dir "fdlibm"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir "fdlibm"
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "$(OUTDIR)\fdlibm.lib"
+
+CLEAN : 
+	-@erase "$(INTDIR)\e_atan2.obj"
+	-@erase "$(INTDIR)\e_pow.obj"
+	-@erase "$(INTDIR)\e_sqrt.obj"
+	-@erase "$(INTDIR)\k_standard.obj"
+	-@erase "$(INTDIR)\s_atan.obj"
+	-@erase "$(INTDIR)\s_copysign.obj"
+	-@erase "$(INTDIR)\s_fabs.obj"
+	-@erase "$(INTDIR)\s_finite.obj"
+	-@erase "$(INTDIR)\s_isnan.obj"
+	-@erase "$(INTDIR)\s_matherr.obj"
+	-@erase "$(INTDIR)\s_rint.obj"
+	-@erase "$(INTDIR)\s_scalbn.obj"
+	-@erase "$(INTDIR)\w_atan2.obj"
+	-@erase "$(INTDIR)\w_pow.obj"
+	-@erase "$(INTDIR)\w_sqrt.obj"
+	-@erase "$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D "_IEEE_LIBM" /YX /c
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+ "_IEEE_LIBM" /D "XP_WIN" /I .\ /Fp"$(INTDIR)/fdlibm.pch" /YX /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Release/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/fdlibm.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)/fdlibm.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\e_atan2.obj" \
+	"$(INTDIR)\e_pow.obj" \
+	"$(INTDIR)\e_sqrt.obj" \
+	"$(INTDIR)\k_standard.obj" \
+	"$(INTDIR)\s_atan.obj" \
+	"$(INTDIR)\s_copysign.obj" \
+	"$(INTDIR)\s_fabs.obj" \
+	"$(INTDIR)\s_finite.obj" \
+	"$(INTDIR)\s_isnan.obj" \
+	"$(INTDIR)\s_matherr.obj" \
+	"$(INTDIR)\s_rint.obj" \
+	"$(INTDIR)\s_scalbn.obj" \
+	"$(INTDIR)\w_atan2.obj" \
+	"$(INTDIR)\w_pow.obj" \
+	"$(INTDIR)\w_sqrt.obj"
+
+"$(OUTDIR)\fdlibm.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "fdlibm\Debug"
+# PROP BASE Intermediate_Dir "fdlibm\Debug"
+# PROP BASE Target_Dir "fdlibm"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir "fdlibm"
+OUTDIR=.\Debug
+INTDIR=.\Debug
+
+ALL : "$(OUTDIR)\fdlibm.lib"
+
+CLEAN : 
+	-@erase "$(INTDIR)\e_atan2.obj"
+	-@erase "$(INTDIR)\e_pow.obj"
+	-@erase "$(INTDIR)\e_sqrt.obj"
+	-@erase "$(INTDIR)\k_standard.obj"
+	-@erase "$(INTDIR)\s_atan.obj"
+	-@erase "$(INTDIR)\s_copysign.obj"
+	-@erase "$(INTDIR)\s_fabs.obj"
+	-@erase "$(INTDIR)\s_finite.obj"
+	-@erase "$(INTDIR)\s_isnan.obj"
+	-@erase "$(INTDIR)\s_matherr.obj"
+	-@erase "$(INTDIR)\s_rint.obj"
+	-@erase "$(INTDIR)\s_scalbn.obj"
+	-@erase "$(INTDIR)\w_atan2.obj"
+	-@erase "$(INTDIR)\w_pow.obj"
+	-@erase "$(INTDIR)\w_sqrt.obj"
+	-@erase "$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D "_IEEE_LIBM" /YX /c
+#CPP_PROJ=/nologo /MDd /W3 /GX /Z7 /Od /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+#CPP_PROJ=/nologo /MDd /W3 /GX /Z7 /Od /D "XSS=1" /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+CPP_PROJ=/nologo /MDd /W3 /GX /Z7 /Od /D "XSS=1" /D "XSS_DEBUG=1" /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+ "_IEEE_LIBM" /D "XP_WIN" -I .\ /Fp"$(INTDIR)/fdlibm.pch" /YX /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Debug/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/fdlibm.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)/fdlibm.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\e_atan2.obj" \
+	"$(INTDIR)\e_pow.obj" \
+	"$(INTDIR)\e_sqrt.obj" \
+	"$(INTDIR)\k_standard.obj" \
+	"$(INTDIR)\s_atan.obj" \
+	"$(INTDIR)\s_copysign.obj" \
+	"$(INTDIR)\s_fabs.obj" \
+	"$(INTDIR)\s_finite.obj" \
+	"$(INTDIR)\s_isnan.obj" \
+	"$(INTDIR)\s_matherr.obj" \
+	"$(INTDIR)\s_rint.obj" \
+	"$(INTDIR)\s_scalbn.obj" \
+	"$(INTDIR)\w_atan2.obj" \
+	"$(INTDIR)\w_pow.obj" \
+	"$(INTDIR)\w_sqrt.obj"
+
+"$(OUTDIR)\fdlibm.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ENDIF 
+
+################################################################################
+# Begin Target
+
+# Name "js - Win32 Release"
+# Name "js - Win32 Debug"
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+!ENDIF 
+
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsapi.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSAPI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsemit.h"\
+	".\jsexn.h"\
+	".\jsfile.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSAPI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsapi.obj" : $(SOURCE) $(DEP_CPP_JSAPI) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSAPI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsemit.h"\
+	".\jsexn.h"\
+	".\jsfile.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSAPI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsapi.obj" : $(SOURCE) $(DEP_CPP_JSAPI) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsarena.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSARE=\
+	".\jsarena.h"\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARE=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsarena.obj" : $(SOURCE) $(DEP_CPP_JSARE) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSARE=\
+	".\jsarena.h"\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARE=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsarena.obj" : $(SOURCE) $(DEP_CPP_JSARE) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsarray.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSARR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsarray.obj" : $(SOURCE) $(DEP_CPP_JSARR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSARR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsarray.obj" : $(SOURCE) $(DEP_CPP_JSARR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsatom.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSATO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSATO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsatom.obj" : $(SOURCE) $(DEP_CPP_JSATO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSATO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSATO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsatom.obj" : $(SOURCE) $(DEP_CPP_JSATO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsbool.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSBOO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSBOO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsbool.obj" : $(SOURCE) $(DEP_CPP_JSBOO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSBOO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSBOO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsbool.obj" : $(SOURCE) $(DEP_CPP_JSBOO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jscntxt.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSCNT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSCNT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jscntxt.obj" : $(SOURCE) $(DEP_CPP_JSCNT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSCNT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSCNT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jscntxt.obj" : $(SOURCE) $(DEP_CPP_JSCNT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdate.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\prmjtime.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdate.obj" : $(SOURCE) $(DEP_CPP_JSDAT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\prmjtime.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdate.obj" : $(SOURCE) $(DEP_CPP_JSDAT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdbgapi.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDBG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDBG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdbgapi.obj" : $(SOURCE) $(DEP_CPP_JSDBG) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDBG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDBG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdbgapi.obj" : $(SOURCE) $(DEP_CPP_JSDBG) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdhash.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDHA=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdhash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDHA=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsdhash.obj" : $(SOURCE) $(DEP_CPP_JSDHA) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDHA=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdhash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDHA=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsdhash.obj" : $(SOURCE) $(DEP_CPP_JSDHA) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdtoa.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDTO=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDTO=\
+	".\jsautocfg.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdtoa.obj" : $(SOURCE) $(DEP_CPP_JSDTO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDTO=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDTO=\
+	".\jsautocfg.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdtoa.obj" : $(SOURCE) $(DEP_CPP_JSDTO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsemit.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSEMI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEMI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsemit.obj" : $(SOURCE) $(DEP_CPP_JSEMI) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSEMI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEMI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsemit.obj" : $(SOURCE) $(DEP_CPP_JSEMI) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsexn.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSEXN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsexn.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEXN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsexn.obj" : $(SOURCE) $(DEP_CPP_JSEXN) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSEXN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsexn.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEXN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsexn.obj" : $(SOURCE) $(DEP_CPP_JSEXN) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsfun.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSFUN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSFUN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsfun.obj" : $(SOURCE) $(DEP_CPP_JSFUN) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSFUN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSFUN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsfun.obj" : $(SOURCE) $(DEP_CPP_JSFUN) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsgc.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSGC_=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSGC_=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsgc.obj" : $(SOURCE) $(DEP_CPP_JSGC_) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSGC_=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSGC_=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsgc.obj" : $(SOURCE) $(DEP_CPP_JSGC_) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jshash.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSHAS=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jshash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSHAS=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jshash.obj" : $(SOURCE) $(DEP_CPP_JSHAS) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSHAS=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jshash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSHAS=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jshash.obj" : $(SOURCE) $(DEP_CPP_JSHAS) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsinterp.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSINT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSINT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsinterp.obj" : $(SOURCE) $(DEP_CPP_JSINT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSINT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSINT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsinterp.obj" : $(SOURCE) $(DEP_CPP_JSINT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jslock.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSLOC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOC=\
+	".\jsautocfg.h"\
+	".\pratom.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	".\prthread.h"\
+	
+
+"$(INTDIR)\jslock.obj" : $(SOURCE) $(DEP_CPP_JSLOC) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSLOC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOC=\
+	".\jsautocfg.h"\
+	".\pratom.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	".\prthread.h"\
+	
+
+"$(INTDIR)\jslock.obj" : $(SOURCE) $(DEP_CPP_JSLOC) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jslog2.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSLOG=\
+	".\jsbit.h"\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOG=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslog2.obj" : $(SOURCE) $(DEP_CPP_JSLOG) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSLOG=\
+	".\jsbit.h"\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOG=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslog2.obj" : $(SOURCE) $(DEP_CPP_JSLOG) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jslong.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSLON=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLON=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslong.obj" : $(SOURCE) $(DEP_CPP_JSLON) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSLON=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLON=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslong.obj" : $(SOURCE) $(DEP_CPP_JSLON) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsmath.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSMAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslibmath.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSMAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsmath.obj" : $(SOURCE) $(DEP_CPP_JSMAT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSMAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslibmath.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSMAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsmath.obj" : $(SOURCE) $(DEP_CPP_JSMAT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsnum.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSNUM=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSNUM=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsnum.obj" : $(SOURCE) $(DEP_CPP_JSNUM) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSNUM=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSNUM=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsnum.obj" : $(SOURCE) $(DEP_CPP_JSNUM) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsobj.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSOBJ=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOBJ=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsobj.obj" : $(SOURCE) $(DEP_CPP_JSOBJ) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSOBJ=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOBJ=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsobj.obj" : $(SOURCE) $(DEP_CPP_JSOBJ) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsopcode.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSOPC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsdtoa.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOPC=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsopcode.obj" : $(SOURCE) $(DEP_CPP_JSOPC) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSOPC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsdtoa.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOPC=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsopcode.obj" : $(SOURCE) $(DEP_CPP_JSOPC) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsparse.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSPAR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPAR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsparse.obj" : $(SOURCE) $(DEP_CPP_JSPAR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSPAR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPAR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsparse.obj" : $(SOURCE) $(DEP_CPP_JSPAR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsprf.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSPRF=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPRF=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsprf.obj" : $(SOURCE) $(DEP_CPP_JSPRF) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSPRF=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPRF=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsprf.obj" : $(SOURCE) $(DEP_CPP_JSPRF) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsregexp.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSREG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSREG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsregexp.obj" : $(SOURCE) $(DEP_CPP_JSREG) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSREG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSREG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsregexp.obj" : $(SOURCE) $(DEP_CPP_JSREG) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsscan.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSCA=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCA=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscan.obj" : $(SOURCE) $(DEP_CPP_JSSCA) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSCA=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCA=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscan.obj" : $(SOURCE) $(DEP_CPP_JSSCA) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsscope.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSCO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscope.obj" : $(SOURCE) $(DEP_CPP_JSSCO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSCO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscope.obj" : $(SOURCE) $(DEP_CPP_JSSCO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsscript.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSCR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscript.obj" : $(SOURCE) $(DEP_CPP_JSSCR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSCR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscript.obj" : $(SOURCE) $(DEP_CPP_JSSCR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsstr.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSTR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSTR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsstr.obj" : $(SOURCE) $(DEP_CPP_JSSTR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSTR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	".\xss\xssdbg.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSTR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsstr.obj" : $(SOURCE) $(DEP_CPP_JSSTR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsutil.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSUTI=\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSUTI=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsutil.obj" : $(SOURCE) $(DEP_CPP_JSUTI) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSUTI=\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSUTI=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsutil.obj" : $(SOURCE) $(DEP_CPP_JSUTI) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsxdrapi.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSXDR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSXDR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsxdrapi.obj" : $(SOURCE) $(DEP_CPP_JSXDR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSXDR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSXDR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsxdrapi.obj" : $(SOURCE) $(DEP_CPP_JSXDR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\prmjtime.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_PRMJT=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	{$(INCLUDE)}"\sys\TIMEB.H"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_PRMJT=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\prmjtime.obj" : $(SOURCE) $(DEP_CPP_PRMJT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_PRMJT=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	{$(INCLUDE)}"\sys\TIMEB.H"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_PRMJT=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\prmjtime.obj" : $(SOURCE) $(DEP_CPP_PRMJT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\xss\taint.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_XSSTAINT=\
+	".\xss\taint.h"\
+	".\jspubtd.h"\
+	".\jsapi.h"\
+	".\jsgc.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_XSSTAINT=\
+	".\jsautocfg.h"\
+	
+"$(INTDIR)\taint.obj" : $(SOURCE) $(DEP_CPP_XSSTAINT) "$(INTDIR)"
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_XSSTAINT=\
+	".\xss\taint.h"\
+	".\jspubtd.h"\
+	".\jsapi.h"\
+	".\jsgc.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_XSSTAINT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+"$(INTDIR)\taint.obj" : $(SOURCE) $(DEP_CPP_XSSTAINT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Project Dependency
+
+# Project_Dep_Name "fdlibm"
+
+!IF  "$(CFG)" == "js - Win32 Debug"
+
+"fdlibm - Win32 Debug" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="fdlibm - Win32 Debug" 
+
+!ELSEIF  "$(CFG)" == "js - Win32 Release"
+
+"fdlibm - Win32 Release" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="fdlibm - Win32 Release" 
+
+!ENDIF 
+
+# End Project Dependency
+# End Target
+################################################################################
+# Begin Target
+
+# Name "embedtest - Win32 Release"
+# Name "embedtest - Win32 Debug"
+
+!IF  "$(CFG)" == "embedtest - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "embedtest - Win32 Debug"
+
+!ENDIF 
+
+################################################################################
+# Begin Source File
+
+SOURCE=.\embedtest.c
+DEP_CPP_JS_C42=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsshell.msg"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xss\taint.h"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JS_C42=\
+	".\jsautocfg.h"\
+	".\jsdb.h"\
+	".\jsdebug.h"\
+	".\jsdjava.h"\
+	".\jsjava.h"\
+	".\jsperl.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\embedtest.obj" : $(SOURCE) $(DEP_CPP_JS_C42) "$(INTDIR)"
+
+
+# End Source File
+################################################################################
+# Begin Project Dependency
+
+# Project_Dep_Name "js"
+
+!IF  "$(CFG)" == "embedtest - Win32 Release"
+
+"js - Win32 Release" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="js - Win32 Release" 
+
+!ELSEIF  "$(CFG)" == "embedtest - Win32 Debug"
+
+"js - Win32 Debug" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="js - Win32 Debug" 
+
+!ENDIF 
+
+# End Project Dependency
+# End Target
+################################################################################
+# Begin Target
+
+# Name "fdlibm - Win32 Release"
+# Name "fdlibm - Win32 Debug"
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+!ENDIF 
+
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\w_atan2.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_W_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_atan2.obj" : $(SOURCE) $(DEP_CPP_W_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_W_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_atan2.obj" : $(SOURCE) $(DEP_CPP_W_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_copysign.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_COP=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_copysign.obj" : $(SOURCE) $(DEP_CPP_S_COP) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_COP=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_copysign.obj" : $(SOURCE) $(DEP_CPP_S_COP) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\w_pow.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_W_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_pow.obj" : $(SOURCE) $(DEP_CPP_W_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_W_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_pow.obj" : $(SOURCE) $(DEP_CPP_W_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\e_pow.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_E_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_pow.obj" : $(SOURCE) $(DEP_CPP_E_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_E_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_pow.obj" : $(SOURCE) $(DEP_CPP_E_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\k_standard.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_K_STA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\k_standard.obj" : $(SOURCE) $(DEP_CPP_K_STA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_K_STA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\k_standard.obj" : $(SOURCE) $(DEP_CPP_K_STA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\e_atan2.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_E_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_atan2.obj" : $(SOURCE) $(DEP_CPP_E_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_E_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_atan2.obj" : $(SOURCE) $(DEP_CPP_E_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_isnan.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_ISN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_isnan.obj" : $(SOURCE) $(DEP_CPP_S_ISN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_ISN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_isnan.obj" : $(SOURCE) $(DEP_CPP_S_ISN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_fabs.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_FAB=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_fabs.obj" : $(SOURCE) $(DEP_CPP_S_FAB) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_FAB=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_fabs.obj" : $(SOURCE) $(DEP_CPP_S_FAB) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\w_sqrt.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_W_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_sqrt.obj" : $(SOURCE) $(DEP_CPP_W_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_W_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_sqrt.obj" : $(SOURCE) $(DEP_CPP_W_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_scalbn.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_SCA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_scalbn.obj" : $(SOURCE) $(DEP_CPP_S_SCA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_SCA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_scalbn.obj" : $(SOURCE) $(DEP_CPP_S_SCA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\e_sqrt.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_E_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_sqrt.obj" : $(SOURCE) $(DEP_CPP_E_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_E_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_sqrt.obj" : $(SOURCE) $(DEP_CPP_E_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_rint.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_RIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_rint.obj" : $(SOURCE) $(DEP_CPP_S_RIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_RIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_rint.obj" : $(SOURCE) $(DEP_CPP_S_RIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_atan.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_atan.obj" : $(SOURCE) $(DEP_CPP_S_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_atan.obj" : $(SOURCE) $(DEP_CPP_S_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_finite.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_FIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_finite.obj" : $(SOURCE) $(DEP_CPP_S_FIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_FIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_finite.obj" : $(SOURCE) $(DEP_CPP_S_FIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_matherr.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_MAT=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_matherr.obj" : $(SOURCE) $(DEP_CPP_S_MAT) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_MAT=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_matherr.obj" : $(SOURCE) $(DEP_CPP_S_MAT) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+# End Target
+# End Project
+################################################################################
Index: mozilla-src/mozilla/js/src/embedtest.c
diff -u /dev/null mozilla-src/mozilla/js/src/embedtest.c:1.1
--- /dev/null	Sun Mar 19 00:41:49 2006
+++ mozilla-src/mozilla/js/src/embedtest.c	Tue Mar 29 15:36:39 2005
@@ -0,0 +1,48 @@
+/* EXIT_FAILURE and EXIT_SUCCESS */
+#include <stdlib.h>  
+/* strlen */
+#include <string.h>
+
+/* get SpiderMonkey API declarations */
+#include "jsapi.h"
+
+int
+main(int argc, char** argv)
+{
+  /* pointer to our runtime object */
+  JSRuntime *runtime=NULL;
+  /* pointer to our context */
+  JSContext *context=NULL;
+  /* pointer to our global JavaScript object */
+  JSObject  *global=NULL;
+
+  /* script to run (should return 100) */
+  char *script="var x=10;x*x;";
+  /* JavaScript value to store the result of the script */
+  jsval rval;
+
+  JSString *str;
+  JSBool ok;
+
+  /* create new runtime, new context, global object */
+  if (    (!(runtime = JS_NewRuntime (1024L*1024L)))
+       || (!(context = JS_NewContext (runtime, 8192)))
+       || (!(global  = JS_NewObject  (context, NULL, NULL, NULL)))
+     ) return EXIT_FAILURE;
+  /* set global object of context and initialize standard ECMAScript
+     objects (Math, Date, ...) within this global object scope */
+  if (!JS_InitStandardClasses(context, global)) return EXIT_FAILURE;
+
+  /* now we are ready to run our script */
+  ok = JS_EvaluateScript(context, global,script, strlen(script),
+			 "script", 1, &rval);
+
+  str = JS_ValueToString(context, rval);
+    printf("script result: %s\n", JS_GetStringBytes(str));
+
+  /* clean up */
+  JS_DestroyContext(context);
+  JS_DestroyRuntime(runtime);
+  JS_ShutDown();
+  return EXIT_SUCCESS;
+}
\ No newline at end of file
Index: mozilla-src/mozilla/js/src/js.c
diff -u mozilla-src/mozilla/js/src/js.c:1.1 mozilla-src/mozilla/js/src/js.c:1.4
--- mozilla-src/mozilla/js/src/js.c:1.1	Sat Nov 13 12:39:00 2004
+++ mozilla-src/mozilla/js/src/js.c	Wed Jan 18 15:49:34 2006
@@ -2274,6 +2274,11 @@
     JNIEnv *java_env;
 #endif
 
+#ifdef XSS /* XSS */
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+	setbuf(stderr, NULL);
+#endif /* XSS_DEBUG */
+#endif /* XSS */
     gStackBase = (jsuword)&stackDummy;
 
 #ifdef XP_OS2
Index: mozilla-src/mozilla/js/src/js.mak
diff -u mozilla-src/mozilla/js/src/js.mak:1.1 mozilla-src/mozilla/js/src/js.mak:1.7
--- mozilla-src/mozilla/js/src/js.mak:1.1	Sat Nov 13 12:38:59 2004
+++ mozilla-src/mozilla/js/src/js.mak	Wed Jan 18 15:47:05 2006
@@ -1,4025 +1,4188 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-!IF "$(CFG)" == ""
-CFG=jsshell - Win32 Debug
-!MESSAGE No configuration specified.  Defaulting to jsshell - Win32 Debug.
-!ENDIF 
-
-!IF "$(CFG)" != "js - Win32 Release" && "$(CFG)" != "js - Win32 Debug" &&\
- "$(CFG)" != "jsshell - Win32 Release" && "$(CFG)" != "jsshell - Win32 Debug" &&\
- "$(CFG)" != "fdlibm - Win32 Release" && "$(CFG)" != "fdlibm - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line.  For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "js.mak" CFG="jsshell - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "js - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "js - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "jsshell - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "jsshell - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "fdlibm - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "fdlibm - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-!ERROR An invalid configuration is specified.
-!ENDIF 
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE 
-NULL=nul
-!ENDIF 
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "jsshell - Win32 Debug"
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "js___Wi1"
-# PROP BASE Intermediate_Dir "js___Wi1"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.\Release
-INTDIR=.\Release
-
-ALL : "fdlibm - Win32 Release" "$(OUTDIR)\js32.dll"
-
-CLEAN : 
-	-@erase "$(INTDIR)\jsapi.obj"
-	-@erase "$(INTDIR)\jsarena.obj"
-	-@erase "$(INTDIR)\jsarray.obj"
-	-@erase "$(INTDIR)\jsatom.obj"
-	-@erase "$(INTDIR)\jsbool.obj"
-	-@erase "$(INTDIR)\jscntxt.obj"
-	-@erase "$(INTDIR)\jsdate.obj"
-	-@erase "$(INTDIR)\jsdbgapi.obj"
-	-@erase "$(INTDIR)\jsdhash.obj"
-	-@erase "$(INTDIR)\jsdtoa.obj"
-	-@erase "$(INTDIR)\jsemit.obj"
-	-@erase "$(INTDIR)\jsexn.obj"
-	-@erase "$(INTDIR)\jsfun.obj"
-	-@erase "$(INTDIR)\jsgc.obj"
-	-@erase "$(INTDIR)\jshash.obj"
-	-@erase "$(INTDIR)\jsinterp.obj"
-	-@erase "$(INTDIR)\jslock.obj"
-	-@erase "$(INTDIR)\jslog2.obj"
-	-@erase "$(INTDIR)\jslong.obj"
-	-@erase "$(INTDIR)\jsmath.obj"
-	-@erase "$(INTDIR)\jsnum.obj"
-	-@erase "$(INTDIR)\jsobj.obj"
-	-@erase "$(INTDIR)\jsopcode.obj"
-	-@erase "$(INTDIR)\jsparse.obj"
-	-@erase "$(INTDIR)\jsprf.obj"
-	-@erase "$(INTDIR)\jsregexp.obj"
-	-@erase "$(INTDIR)\jsscan.obj"
-	-@erase "$(INTDIR)\jsscope.obj"
-	-@erase "$(INTDIR)\jsscript.obj"
-	-@erase "$(INTDIR)\jsstr.obj"
-	-@erase "$(INTDIR)\jsutil.obj"
-	-@erase "$(INTDIR)\jsxdrapi.obj"
-	-@erase "$(INTDIR)\prmjtime.obj"
-	-@erase "$(OUTDIR)\js32.dll"
-	-@erase "$(OUTDIR)\js32.exp"
-	-@erase "$(OUTDIR)\js32.lib"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D\
- "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /Fp"$(INTDIR)/js.pch" /YX\
- /Fo"$(INTDIR)/" /c 
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.c{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32 
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/js.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/js32.dll"
-# SUBTRACT LINK32 /nodefaultlib
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
- /pdb:"$(OUTDIR)/js32.pdb" /machine:I386 /out:"$(OUTDIR)/js32.dll"\
- /implib:"$(OUTDIR)/js32.lib" /opt:ref /opt:noicf
-LINK32_OBJS= \
-	"$(INTDIR)\jsapi.obj" \
-	"$(INTDIR)\jsarena.obj" \
-	"$(INTDIR)\jsarray.obj" \
-	"$(INTDIR)\jsatom.obj" \
-	"$(INTDIR)\jsbool.obj" \
-	"$(INTDIR)\jscntxt.obj" \
-	"$(INTDIR)\jsdate.obj" \
-	"$(INTDIR)\jsdbgapi.obj" \
-	"$(INTDIR)\jsdhash.obj" \
-	"$(INTDIR)\jsdtoa.obj" \
-	"$(INTDIR)\jsemit.obj" \
-	"$(INTDIR)\jsexn.obj" \
-	"$(INTDIR)\jsfun.obj" \
-	"$(INTDIR)\jsgc.obj" \
-	"$(INTDIR)\jshash.obj" \
-	"$(INTDIR)\jsinterp.obj" \
-	"$(INTDIR)\jslock.obj" \
-	"$(INTDIR)\jslog2.obj" \
-	"$(INTDIR)\jslong.obj" \
-	"$(INTDIR)\jsmath.obj" \
-	"$(INTDIR)\jsnum.obj" \
-	"$(INTDIR)\jsobj.obj" \
-	"$(INTDIR)\jsopcode.obj" \
-	"$(INTDIR)\jsparse.obj" \
-	"$(INTDIR)\jsprf.obj" \
-	"$(INTDIR)\jsregexp.obj" \
-	"$(INTDIR)\jsscan.obj" \
-	"$(INTDIR)\jsscope.obj" \
-	"$(INTDIR)\jsscript.obj" \
-	"$(INTDIR)\jsstr.obj" \
-	"$(INTDIR)\jsutil.obj" \
-	"$(INTDIR)\jsxdrapi.obj" \
-	"$(INTDIR)\prmjtime.obj" \
-	"$(OUTDIR)\fdlibm.lib"
-
-"$(OUTDIR)\js32.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "js___Wi2"
-# PROP BASE Intermediate_Dir "js___Wi2"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : "fdlibm - Win32 Debug" "$(OUTDIR)\js32.dll"
-
-CLEAN : 
-	-@erase "$(INTDIR)\jsapi.obj"
-	-@erase "$(INTDIR)\jsarena.obj"
-	-@erase "$(INTDIR)\jsarray.obj"
-	-@erase "$(INTDIR)\jsatom.obj"
-	-@erase "$(INTDIR)\jsbool.obj"
-	-@erase "$(INTDIR)\jscntxt.obj"
-	-@erase "$(INTDIR)\jsdate.obj"
-	-@erase "$(INTDIR)\jsdbgapi.obj"
-	-@erase "$(INTDIR)\jsdhash.obj"
-	-@erase "$(INTDIR)\jsdtoa.obj"
-	-@erase "$(INTDIR)\jsemit.obj"
-	-@erase "$(INTDIR)\jsexn.obj"
-	-@erase "$(INTDIR)\jsfun.obj"
-	-@erase "$(INTDIR)\jsgc.obj"
-	-@erase "$(INTDIR)\jshash.obj"
-	-@erase "$(INTDIR)\jsinterp.obj"
-	-@erase "$(INTDIR)\jslock.obj"
-	-@erase "$(INTDIR)\jslog2.obj"
-	-@erase "$(INTDIR)\jslong.obj"
-	-@erase "$(INTDIR)\jsmath.obj"
-	-@erase "$(INTDIR)\jsnum.obj"
-	-@erase "$(INTDIR)\jsobj.obj"
-	-@erase "$(INTDIR)\jsopcode.obj"
-	-@erase "$(INTDIR)\jsparse.obj"
-	-@erase "$(INTDIR)\jsprf.obj"
-	-@erase "$(INTDIR)\jsregexp.obj"
-	-@erase "$(INTDIR)\jsscan.obj"
-	-@erase "$(INTDIR)\jsscope.obj"
-	-@erase "$(INTDIR)\jsscript.obj"
-	-@erase "$(INTDIR)\jsstr.obj"
-	-@erase "$(INTDIR)\jsutil.obj"
-	-@erase "$(INTDIR)\jsxdrapi.obj"
-	-@erase "$(INTDIR)\prmjtime.obj"
-	-@erase "$(INTDIR)\vc40.idb"
-	-@erase "$(INTDIR)\vc40.pdb"
-	-@erase "$(OUTDIR)\js32.dll"
-	-@erase "$(OUTDIR)\js32.exp"
-	-@erase "$(OUTDIR)\js32.ilk"
-	-@erase "$(OUTDIR)\js32.lib"
-	-@erase "$(OUTDIR)\js32.pdb"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS"\
- /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /Fp"$(INTDIR)/js.pch" /YX\
- /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c 
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.c{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32 
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/js.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/js32.dll"
-# SUBTRACT LINK32 /nodefaultlib
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
- /pdb:"$(OUTDIR)/js32.pdb" /debug /machine:I386 /out:"$(OUTDIR)/js32.dll"\
- /implib:"$(OUTDIR)/js32.lib" 
-LINK32_OBJS= \
-	"$(INTDIR)\jsapi.obj" \
-	"$(INTDIR)\jsarena.obj" \
-	"$(INTDIR)\jsarray.obj" \
-	"$(INTDIR)\jsatom.obj" \
-	"$(INTDIR)\jsbool.obj" \
-	"$(INTDIR)\jscntxt.obj" \
-	"$(INTDIR)\jsdate.obj" \
-	"$(INTDIR)\jsdbgapi.obj" \
-	"$(INTDIR)\jsdhash.obj" \
-	"$(INTDIR)\jsdtoa.obj" \
-	"$(INTDIR)\jsemit.obj" \
-	"$(INTDIR)\jsexn.obj" \
-	"$(INTDIR)\jsfun.obj" \
-	"$(INTDIR)\jsgc.obj" \
-	"$(INTDIR)\jshash.obj" \
-	"$(INTDIR)\jsinterp.obj" \
-	"$(INTDIR)\jslock.obj" \
-	"$(INTDIR)\jslog2.obj" \
-	"$(INTDIR)\jslong.obj" \
-	"$(INTDIR)\jsmath.obj" \
-	"$(INTDIR)\jsnum.obj" \
-	"$(INTDIR)\jsobj.obj" \
-	"$(INTDIR)\jsopcode.obj" \
-	"$(INTDIR)\jsparse.obj" \
-	"$(INTDIR)\jsprf.obj" \
-	"$(INTDIR)\jsregexp.obj" \
-	"$(INTDIR)\jsscan.obj" \
-	"$(INTDIR)\jsscope.obj" \
-	"$(INTDIR)\jsscript.obj" \
-	"$(INTDIR)\jsstr.obj" \
-	"$(INTDIR)\jsutil.obj" \
-	"$(INTDIR)\jsxdrapi.obj" \
-	"$(INTDIR)\prmjtime.obj" \
-	"$(OUTDIR)\fdlibm.lib"
-
-"$(OUTDIR)\js32.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF  "$(CFG)" == "jsshell - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "jsshell\Release"
-# PROP BASE Intermediate_Dir "jsshell\Release"
-# PROP BASE Target_Dir "jsshell"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir "jsshell"
-OUTDIR=.\Release
-INTDIR=.\Release
-
-ALL : "js - Win32 Release" "$(OUTDIR)\jsshell.exe"
-
-CLEAN : 
-	-@erase "$(INTDIR)\js.obj"
-	-@erase "$(OUTDIR)\jsshell.exe"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "XP_WIN" /D "JSFILE" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D\
- "XP_WIN" /D "JSFILE" /Fp"$(INTDIR)/jsshell.pch" /YX /Fo"$(INTDIR)/" /c 
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.c{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/jsshell.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/jsshell.pdb" /machine:I386 /out:"$(OUTDIR)/jsshell.exe" 
-LINK32_OBJS= \
-	"$(INTDIR)\js.obj" \
-	"$(OUTDIR)\js32.lib"
-
-"$(OUTDIR)\jsshell.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF  "$(CFG)" == "jsshell - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "jsshell\jsshell_"
-# PROP BASE Intermediate_Dir "jsshell\jsshell_"
-# PROP BASE Target_Dir "jsshell"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir "jsshell"
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : "js - Win32 Debug" "$(OUTDIR)\jsshell.exe"
-
-CLEAN : 
-	-@erase "$(INTDIR)\js.obj"
-	-@erase "$(INTDIR)\vc40.idb"
-	-@erase "$(INTDIR)\vc40.pdb"
-	-@erase "$(OUTDIR)\jsshell.exe"
-	-@erase "$(OUTDIR)\jsshell.ilk"
-	-@erase "$(OUTDIR)\jsshell.pdb"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_CONSOLE" /D "_DEBUG" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "DEBUG" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_CONSOLE" /D "_DEBUG" /D "WIN32"\
- /D "XP_WIN" /D "JSFILE" /D "DEBUG" /Fp"$(INTDIR)/jsshell.pch" /YX\
- /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c 
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.c{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/jsshell.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/jsshell.pdb" /debug /machine:I386 /out:"$(OUTDIR)/jsshell.exe" 
-LINK32_OBJS= \
-	"$(INTDIR)\js.obj" \
-	"$(OUTDIR)\js32.lib"
-
-"$(OUTDIR)\jsshell.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "fdlibm\Release"
-# PROP BASE Intermediate_Dir "fdlibm\Release"
-# PROP BASE Target_Dir "fdlibm"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir "fdlibm"
-OUTDIR=.\Release
-INTDIR=.\Release
-
-ALL : "$(OUTDIR)\fdlibm.lib"
-
-CLEAN : 
-	-@erase "$(INTDIR)\e_atan2.obj"
-	-@erase "$(INTDIR)\e_pow.obj"
-	-@erase "$(INTDIR)\e_sqrt.obj"
-	-@erase "$(INTDIR)\k_standard.obj"
-	-@erase "$(INTDIR)\s_atan.obj"
-	-@erase "$(INTDIR)\s_copysign.obj"
-	-@erase "$(INTDIR)\s_fabs.obj"
-	-@erase "$(INTDIR)\s_finite.obj"
-	-@erase "$(INTDIR)\s_isnan.obj"
-	-@erase "$(INTDIR)\s_matherr.obj"
-	-@erase "$(INTDIR)\s_rint.obj"
-	-@erase "$(INTDIR)\s_scalbn.obj"
-	-@erase "$(INTDIR)\w_atan2.obj"
-	-@erase "$(INTDIR)\w_pow.obj"
-	-@erase "$(INTDIR)\w_sqrt.obj"
-	-@erase "$(OUTDIR)\fdlibm.lib"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D "_IEEE_LIBM" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
- "_IEEE_LIBM" /D "XP_WIN" /I .\ /Fp"$(INTDIR)/fdlibm.pch" /YX /Fo"$(INTDIR)/" /c 
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.c{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/fdlibm.bsc" 
-BSC32_SBRS= \
-	
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-LIB32_FLAGS=/nologo /out:"$(OUTDIR)/fdlibm.lib" 
-LIB32_OBJS= \
-	"$(INTDIR)\e_atan2.obj" \
-	"$(INTDIR)\e_pow.obj" \
-	"$(INTDIR)\e_sqrt.obj" \
-	"$(INTDIR)\k_standard.obj" \
-	"$(INTDIR)\s_atan.obj" \
-	"$(INTDIR)\s_copysign.obj" \
-	"$(INTDIR)\s_fabs.obj" \
-	"$(INTDIR)\s_finite.obj" \
-	"$(INTDIR)\s_isnan.obj" \
-	"$(INTDIR)\s_matherr.obj" \
-	"$(INTDIR)\s_rint.obj" \
-	"$(INTDIR)\s_scalbn.obj" \
-	"$(INTDIR)\w_atan2.obj" \
-	"$(INTDIR)\w_pow.obj" \
-	"$(INTDIR)\w_sqrt.obj"
-
-"$(OUTDIR)\fdlibm.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
-    $(LIB32) @<<
-  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "fdlibm\Debug"
-# PROP BASE Intermediate_Dir "fdlibm\Debug"
-# PROP BASE Target_Dir "fdlibm"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir "fdlibm"
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\fdlibm.lib"
-
-CLEAN : 
-	-@erase "$(INTDIR)\e_atan2.obj"
-	-@erase "$(INTDIR)\e_pow.obj"
-	-@erase "$(INTDIR)\e_sqrt.obj"
-	-@erase "$(INTDIR)\k_standard.obj"
-	-@erase "$(INTDIR)\s_atan.obj"
-	-@erase "$(INTDIR)\s_copysign.obj"
-	-@erase "$(INTDIR)\s_fabs.obj"
-	-@erase "$(INTDIR)\s_finite.obj"
-	-@erase "$(INTDIR)\s_isnan.obj"
-	-@erase "$(INTDIR)\s_matherr.obj"
-	-@erase "$(INTDIR)\s_rint.obj"
-	-@erase "$(INTDIR)\s_scalbn.obj"
-	-@erase "$(INTDIR)\w_atan2.obj"
-	-@erase "$(INTDIR)\w_pow.obj"
-	-@erase "$(INTDIR)\w_sqrt.obj"
-	-@erase "$(OUTDIR)\fdlibm.lib"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D "_IEEE_LIBM" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /GX /Z7 /Od /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
- "_IEEE_LIBM" /D "XP_WIN" -I .\ /Fp"$(INTDIR)/fdlibm.pch" /YX /Fo"$(INTDIR)/" /c 
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-.c{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cpp{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-.cxx{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $<  
-
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/fdlibm.bsc" 
-BSC32_SBRS= \
-	
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-LIB32_FLAGS=/nologo /out:"$(OUTDIR)/fdlibm.lib" 
-LIB32_OBJS= \
-	"$(INTDIR)\e_atan2.obj" \
-	"$(INTDIR)\e_pow.obj" \
-	"$(INTDIR)\e_sqrt.obj" \
-	"$(INTDIR)\k_standard.obj" \
-	"$(INTDIR)\s_atan.obj" \
-	"$(INTDIR)\s_copysign.obj" \
-	"$(INTDIR)\s_fabs.obj" \
-	"$(INTDIR)\s_finite.obj" \
-	"$(INTDIR)\s_isnan.obj" \
-	"$(INTDIR)\s_matherr.obj" \
-	"$(INTDIR)\s_rint.obj" \
-	"$(INTDIR)\s_scalbn.obj" \
-	"$(INTDIR)\w_atan2.obj" \
-	"$(INTDIR)\w_pow.obj" \
-	"$(INTDIR)\w_sqrt.obj"
-
-"$(OUTDIR)\fdlibm.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
-    $(LIB32) @<<
-  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ENDIF 
-
-################################################################################
-# Begin Target
-
-# Name "js - Win32 Release"
-# Name "js - Win32 Debug"
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-!ENDIF 
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsapi.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSAPI=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdate.h"\
-	".\jsemit.h"\
-	".\jsexn.h"\
-	".\jsfile.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsmath.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSAPI=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsapi.obj" : $(SOURCE) $(DEP_CPP_JSAPI) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSAPI=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdate.h"\
-	".\jsemit.h"\
-	".\jsexn.h"\
-	".\jsfile.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsmath.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSAPI=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsapi.obj" : $(SOURCE) $(DEP_CPP_JSAPI) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsarena.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSARE=\
-	".\jsarena.h"\
-	".\jsbit.h"\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsstddef.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSARE=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsarena.obj" : $(SOURCE) $(DEP_CPP_JSARE) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSARE=\
-	".\jsarena.h"\
-	".\jsbit.h"\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsstddef.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSARE=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsarena.obj" : $(SOURCE) $(DEP_CPP_JSARE) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsarray.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSARR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSARR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsarray.obj" : $(SOURCE) $(DEP_CPP_JSARR) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSARR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSARR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsarray.obj" : $(SOURCE) $(DEP_CPP_JSARR) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsatom.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSATO=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSATO=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsatom.obj" : $(SOURCE) $(DEP_CPP_JSATO) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSATO=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSATO=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsatom.obj" : $(SOURCE) $(DEP_CPP_JSATO) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsbool.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSBOO=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSBOO=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsbool.obj" : $(SOURCE) $(DEP_CPP_JSBOO) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSBOO=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSBOO=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsbool.obj" : $(SOURCE) $(DEP_CPP_JSBOO) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jscntxt.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSCNT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsexn.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSCNT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jscntxt.obj" : $(SOURCE) $(DEP_CPP_JSCNT) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSCNT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsexn.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSCNT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jscntxt.obj" : $(SOURCE) $(DEP_CPP_JSCNT) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsdate.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSDAT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdate.h"\
-	".\jsdtoa.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\prmjtime.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDAT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsdate.obj" : $(SOURCE) $(DEP_CPP_JSDAT) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSDAT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdate.h"\
-	".\jsdtoa.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\prmjtime.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDAT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsdate.obj" : $(SOURCE) $(DEP_CPP_JSDAT) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsdbgapi.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSDBG=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDBG=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsdbgapi.obj" : $(SOURCE) $(DEP_CPP_JSDBG) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSDBG=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDBG=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsdbgapi.obj" : $(SOURCE) $(DEP_CPP_JSDBG) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsdhash.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSDHA=\
-	".\jsbit.h"\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jsdhash.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDHA=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsdhash.obj" : $(SOURCE) $(DEP_CPP_JSDHA) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSDHA=\
-	".\jsbit.h"\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jsdhash.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDHA=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsdhash.obj" : $(SOURCE) $(DEP_CPP_JSDHA) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsdtoa.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSDTO=\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jsdtoa.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsstddef.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDTO=\
-	".\jsautocfg.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsdtoa.obj" : $(SOURCE) $(DEP_CPP_JSDTO) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSDTO=\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jsdtoa.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsstddef.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSDTO=\
-	".\jsautocfg.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsdtoa.obj" : $(SOURCE) $(DEP_CPP_JSDTO) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsemit.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSEMI=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSEMI=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsemit.obj" : $(SOURCE) $(DEP_CPP_JSEMI) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSEMI=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSEMI=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsemit.obj" : $(SOURCE) $(DEP_CPP_JSEMI) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsexn.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSEXN=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsexn.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSEXN=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsexn.obj" : $(SOURCE) $(DEP_CPP_JSEXN) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSEXN=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsexn.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSEXN=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsexn.obj" : $(SOURCE) $(DEP_CPP_JSEXN) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsfun.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSFUN=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSFUN=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsfun.obj" : $(SOURCE) $(DEP_CPP_JSFUN) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSFUN=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSFUN=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsfun.obj" : $(SOURCE) $(DEP_CPP_JSFUN) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsgc.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSGC_=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSGC_=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsgc.obj" : $(SOURCE) $(DEP_CPP_JSGC_) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSGC_=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSGC_=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsgc.obj" : $(SOURCE) $(DEP_CPP_JSGC_) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jshash.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSHAS=\
-	".\jsbit.h"\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jshash.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSHAS=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jshash.obj" : $(SOURCE) $(DEP_CPP_JSHAS) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSHAS=\
-	".\jsbit.h"\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jshash.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSHAS=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jshash.obj" : $(SOURCE) $(DEP_CPP_JSHAS) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsinterp.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSINT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSINT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsinterp.obj" : $(SOURCE) $(DEP_CPP_JSINT) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSINT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSINT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsinterp.obj" : $(SOURCE) $(DEP_CPP_JSINT) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jslock.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSLOC=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSLOC=\
-	".\jsautocfg.h"\
-	".\pratom.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	".\prthread.h"\
-	
-
-"$(INTDIR)\jslock.obj" : $(SOURCE) $(DEP_CPP_JSLOC) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSLOC=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSLOC=\
-	".\jsautocfg.h"\
-	".\pratom.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	".\prthread.h"\
-	
-
-"$(INTDIR)\jslock.obj" : $(SOURCE) $(DEP_CPP_JSLOC) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jslog2.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSLOG=\
-	".\jsbit.h"\
-	".\jscpucfg.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSLOG=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jslog2.obj" : $(SOURCE) $(DEP_CPP_JSLOG) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSLOG=\
-	".\jsbit.h"\
-	".\jscpucfg.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSLOG=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jslog2.obj" : $(SOURCE) $(DEP_CPP_JSLOG) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jslong.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSLON=\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSLON=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jslong.obj" : $(SOURCE) $(DEP_CPP_JSLON) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSLON=\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jstypes.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSLON=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jslong.obj" : $(SOURCE) $(DEP_CPP_JSLON) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsmath.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSMAT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslibmath.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsmath.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\prmjtime.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSMAT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsmath.obj" : $(SOURCE) $(DEP_CPP_JSMAT) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSMAT=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslibmath.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsmath.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\prmjtime.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSMAT=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsmath.obj" : $(SOURCE) $(DEP_CPP_JSMAT) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsnum.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSNUM=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdtoa.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSNUM=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsnum.obj" : $(SOURCE) $(DEP_CPP_JSNUM) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSNUM=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdtoa.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSNUM=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsnum.obj" : $(SOURCE) $(DEP_CPP_JSNUM) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsobj.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSOBJ=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSOBJ=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsobj.obj" : $(SOURCE) $(DEP_CPP_JSOBJ) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSOBJ=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSOBJ=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsobj.obj" : $(SOURCE) $(DEP_CPP_JSOBJ) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsopcode.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSOPC=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsdtoa.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSOPC=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsopcode.obj" : $(SOURCE) $(DEP_CPP_JSOPC) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSOPC=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsdtoa.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSOPC=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsopcode.obj" : $(SOURCE) $(DEP_CPP_JSOPC) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsparse.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSPAR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSPAR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsparse.obj" : $(SOURCE) $(DEP_CPP_JSPAR) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSPAR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSPAR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsparse.obj" : $(SOURCE) $(DEP_CPP_JSPAR) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsprf.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSPRF=\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSPRF=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsprf.obj" : $(SOURCE) $(DEP_CPP_JSPRF) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSPRF=\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSPRF=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsprf.obj" : $(SOURCE) $(DEP_CPP_JSPRF) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsregexp.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSREG=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSREG=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsregexp.obj" : $(SOURCE) $(DEP_CPP_JSREG) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSREG=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSREG=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsregexp.obj" : $(SOURCE) $(DEP_CPP_JSREG) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsscan.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSSCA=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdtoa.h"\
-	".\jsexn.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSCA=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsscan.obj" : $(SOURCE) $(DEP_CPP_JSSCA) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSSCA=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdtoa.h"\
-	".\jsexn.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSCA=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsscan.obj" : $(SOURCE) $(DEP_CPP_JSSCA) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsscope.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSSCO=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSCO=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsscope.obj" : $(SOURCE) $(DEP_CPP_JSSCO) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSSCO=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSCO=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsscope.obj" : $(SOURCE) $(DEP_CPP_JSSCO) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsscript.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSSCR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSCR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsscript.obj" : $(SOURCE) $(DEP_CPP_JSSCR) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSSCR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSCR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsscript.obj" : $(SOURCE) $(DEP_CPP_JSSCR) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsstr.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSSTR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSTR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsstr.obj" : $(SOURCE) $(DEP_CPP_JSSTR) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSSTR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsarray.h"\
-	".\jsatom.h"\
-	".\jsbool.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsnum.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSSTR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsstr.obj" : $(SOURCE) $(DEP_CPP_JSSTR) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsutil.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSUTI=\
-	".\jscpucfg.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSUTI=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsutil.obj" : $(SOURCE) $(DEP_CPP_JSUTI) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSUTI=\
-	".\jscpucfg.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSUTI=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\jsutil.obj" : $(SOURCE) $(DEP_CPP_JSUTI) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\jsxdrapi.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_JSXDR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSXDR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsxdrapi.obj" : $(SOURCE) $(DEP_CPP_JSXDR) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_JSXDR=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscope.h"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	".\jsxdrapi.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JSXDR=\
-	".\jsautocfg.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\jsxdrapi.obj" : $(SOURCE) $(DEP_CPP_JSXDR) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\prmjtime.c
-
-!IF  "$(CFG)" == "js - Win32 Release"
-
-DEP_CPP_PRMJT=\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jstypes.h"\
-	".\prmjtime.h"\
-	{$(INCLUDE)}"\sys\TIMEB.H"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_PRMJT=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\prmjtime.obj" : $(SOURCE) $(DEP_CPP_PRMJT) "$(INTDIR)"
-
-
-!ELSEIF  "$(CFG)" == "js - Win32 Debug"
-
-DEP_CPP_PRMJT=\
-	".\jscompat.h"\
-	".\jscpucfg.h"\
-	".\jslong.h"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsprf.h"\
-	".\jstypes.h"\
-	".\prmjtime.h"\
-	{$(INCLUDE)}"\sys\TIMEB.H"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_PRMJT=\
-	".\jsautocfg.h"\
-	
-
-"$(INTDIR)\prmjtime.obj" : $(SOURCE) $(DEP_CPP_PRMJT) "$(INTDIR)"
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "fdlibm"
-
-!IF  "$(CFG)" == "js - Win32 Debug"
-
-"fdlibm - Win32 Debug" : 
-   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="fdlibm - Win32 Debug" 
-
-!ELSEIF  "$(CFG)" == "js - Win32 Release"
-
-"fdlibm - Win32 Release" : 
-   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="fdlibm - Win32 Release" 
-
-!ENDIF 
-
-# End Project Dependency
-# End Target
-################################################################################
-# Begin Target
-
-# Name "jsshell - Win32 Release"
-# Name "jsshell - Win32 Debug"
-
-!IF  "$(CFG)" == "jsshell - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "jsshell - Win32 Debug"
-
-!ENDIF 
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\js.c
-DEP_CPP_JS_C42=\
-	".\js.msg"\
-	".\jsapi.h"\
-	".\jsarena.h"\
-	".\jsatom.h"\
-	".\jsclist.h"\
-	".\jscntxt.h"\
-	".\jscompat.h"\
-	".\jsconfig.h"\
-	".\jscpucfg.h"\
-	".\jsdbgapi.h"\
-	".\jsemit.h"\
-	".\jsfun.h"\
-	".\jsgc.h"\
-	".\jshash.h"\
-	".\jsinterp.h"\
-	".\jslock.h"\
-	".\jslong.h"\
-	".\jsobj.h"\
-	".\jsopcode.h"\
-	".\jsopcode.tbl"\
-	".\jsosdep.h"\
-	".\jsotypes.h"\
-	".\jsparse.h"\
-	".\jsprf.h"\
-	".\jsprvtd.h"\
-	".\jspubtd.h"\
-	".\jsregexp.h"\
-	".\jsscan.h"\
-	".\jsscope.h"\
-	".\jsscript.h"\
-	".\jsshell.msg"\
-	".\jsstddef.h"\
-	".\jsstr.h"\
-	".\jstypes.h"\
-	".\jsutil.h"\
-	{$(INCLUDE)}"\sys\types.h"\
-	
-NODEP_CPP_JS_C42=\
-	".\jsautocfg.h"\
-	".\jsdb.h"\
-	".\jsdebug.h"\
-	".\jsdjava.h"\
-	".\jsjava.h"\
-	".\jsperl.h"\
-	".\prcvar.h"\
-	".\prlock.h"\
-	
-
-"$(INTDIR)\js.obj" : $(SOURCE) $(DEP_CPP_JS_C42) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "js"
-
-!IF  "$(CFG)" == "jsshell - Win32 Release"
-
-"js - Win32 Release" : 
-   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="js - Win32 Release" 
-
-!ELSEIF  "$(CFG)" == "jsshell - Win32 Debug"
-
-"js - Win32 Debug" : 
-   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="js - Win32 Debug" 
-
-!ENDIF 
-
-# End Project Dependency
-# End Target
-################################################################################
-# Begin Target
-
-# Name "fdlibm - Win32 Release"
-# Name "fdlibm - Win32 Debug"
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-!ENDIF 
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\w_atan2.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_W_ATA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\w_atan2.obj" : $(SOURCE) $(DEP_CPP_W_ATA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_W_ATA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\w_atan2.obj" : $(SOURCE) $(DEP_CPP_W_ATA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_copysign.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_COP=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_copysign.obj" : $(SOURCE) $(DEP_CPP_S_COP) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_COP=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_copysign.obj" : $(SOURCE) $(DEP_CPP_S_COP) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\w_pow.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_W_POW=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\w_pow.obj" : $(SOURCE) $(DEP_CPP_W_POW) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_W_POW=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\w_pow.obj" : $(SOURCE) $(DEP_CPP_W_POW) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\e_pow.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_E_POW=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\e_pow.obj" : $(SOURCE) $(DEP_CPP_E_POW) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_E_POW=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\e_pow.obj" : $(SOURCE) $(DEP_CPP_E_POW) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\k_standard.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_K_STA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\k_standard.obj" : $(SOURCE) $(DEP_CPP_K_STA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_K_STA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\k_standard.obj" : $(SOURCE) $(DEP_CPP_K_STA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\e_atan2.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_E_ATA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\e_atan2.obj" : $(SOURCE) $(DEP_CPP_E_ATA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_E_ATA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\e_atan2.obj" : $(SOURCE) $(DEP_CPP_E_ATA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_isnan.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_ISN=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_isnan.obj" : $(SOURCE) $(DEP_CPP_S_ISN) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_ISN=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_isnan.obj" : $(SOURCE) $(DEP_CPP_S_ISN) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_fabs.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_FAB=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_fabs.obj" : $(SOURCE) $(DEP_CPP_S_FAB) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_FAB=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_fabs.obj" : $(SOURCE) $(DEP_CPP_S_FAB) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\w_sqrt.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_W_SQR=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\w_sqrt.obj" : $(SOURCE) $(DEP_CPP_W_SQR) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_W_SQR=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\w_sqrt.obj" : $(SOURCE) $(DEP_CPP_W_SQR) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_scalbn.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_SCA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_scalbn.obj" : $(SOURCE) $(DEP_CPP_S_SCA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_SCA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_scalbn.obj" : $(SOURCE) $(DEP_CPP_S_SCA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\e_sqrt.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_E_SQR=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\e_sqrt.obj" : $(SOURCE) $(DEP_CPP_E_SQR) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_E_SQR=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\e_sqrt.obj" : $(SOURCE) $(DEP_CPP_E_SQR) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_rint.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_RIN=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_rint.obj" : $(SOURCE) $(DEP_CPP_S_RIN) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_RIN=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_rint.obj" : $(SOURCE) $(DEP_CPP_S_RIN) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_atan.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_ATA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_atan.obj" : $(SOURCE) $(DEP_CPP_S_ATA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_ATA=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_atan.obj" : $(SOURCE) $(DEP_CPP_S_ATA) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_finite.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_FIN=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_finite.obj" : $(SOURCE) $(DEP_CPP_S_FIN) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_FIN=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_finite.obj" : $(SOURCE) $(DEP_CPP_S_FIN) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm\s_matherr.c
-
-!IF  "$(CFG)" == "fdlibm - Win32 Release"
-
-DEP_CPP_S_MAT=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_matherr.obj" : $(SOURCE) $(DEP_CPP_S_MAT) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
-
-DEP_CPP_S_MAT=\
-	".\fdlibm\fdlibm.h"\
-	
-
-"$(INTDIR)\s_matherr.obj" : $(SOURCE) $(DEP_CPP_S_MAT) "$(INTDIR)"
-   $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
-# End Source File
-# End Target
-# End Project
-################################################################################
+# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+!IF "$(CFG)" == ""
+CFG=jsshell - Win32 Debug
+!MESSAGE No configuration specified.  Defaulting to jsshell - Win32 Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "js - Win32 Release" && "$(CFG)" != "js - Win32 Debug" &&\
+ "$(CFG)" != "jsshell - Win32 Release" && "$(CFG)" != "jsshell - Win32 Debug" &&\
+ "$(CFG)" != "fdlibm - Win32 Release" && "$(CFG)" != "fdlibm - Win32 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE on this makefile
+!MESSAGE by defining the macro CFG on the command line.  For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "js.mak" CFG="jsshell - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "js - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "js - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "jsshell - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "jsshell - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "fdlibm - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "fdlibm - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+################################################################################
+# Begin Project
+# PROP Target_Last_Scanned "jsshell - Win32 Debug"
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "js___Wi1"
+# PROP BASE Intermediate_Dir "js___Wi1"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "fdlibm - Win32 Release" "$(OUTDIR)\js32.dll"
+
+CLEAN : 
+	-@erase "$(INTDIR)\jsapi.obj"
+	-@erase "$(INTDIR)\jsarena.obj"
+	-@erase "$(INTDIR)\jsarray.obj"
+	-@erase "$(INTDIR)\jsatom.obj"
+	-@erase "$(INTDIR)\jsbool.obj"
+	-@erase "$(INTDIR)\jscntxt.obj"
+	-@erase "$(INTDIR)\jsdate.obj"
+	-@erase "$(INTDIR)\jsdbgapi.obj"
+	-@erase "$(INTDIR)\jsdhash.obj"
+	-@erase "$(INTDIR)\jsdtoa.obj"
+	-@erase "$(INTDIR)\jsemit.obj"
+	-@erase "$(INTDIR)\jsexn.obj"
+	-@erase "$(INTDIR)\jsfun.obj"
+	-@erase "$(INTDIR)\jsgc.obj"
+	-@erase "$(INTDIR)\jshash.obj"
+	-@erase "$(INTDIR)\jsinterp.obj"
+	-@erase "$(INTDIR)\jslock.obj"
+	-@erase "$(INTDIR)\jslog2.obj"
+	-@erase "$(INTDIR)\jslong.obj"
+	-@erase "$(INTDIR)\jsmath.obj"
+	-@erase "$(INTDIR)\jsnum.obj"
+	-@erase "$(INTDIR)\jsobj.obj"
+	-@erase "$(INTDIR)\jsopcode.obj"
+	-@erase "$(INTDIR)\jsparse.obj"
+	-@erase "$(INTDIR)\jsprf.obj"
+	-@erase "$(INTDIR)\jsregexp.obj"
+	-@erase "$(INTDIR)\jsscan.obj"
+	-@erase "$(INTDIR)\jsscope.obj"
+	-@erase "$(INTDIR)\jsscript.obj"
+	-@erase "$(INTDIR)\jsstr.obj"
+	-@erase "$(INTDIR)\jsutil.obj"
+	-@erase "$(INTDIR)\jsxdrapi.obj"
+	-@erase "$(INTDIR)\prmjtime.obj"
+	-@erase "$(INTDIR)\xsstaint.obj"
+	-@erase "$(OUTDIR)\js32.dll"
+	-@erase "$(OUTDIR)\js32.exp"
+	-@erase "$(OUTDIR)\js32.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /YX /c
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D\
+ "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /Fp"$(INTDIR)/js.pch" /YX\
+ /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Release/
+CPP_OBJS2=.\xss
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+MTL=mktyplib.exe
+# ADD BASE MTL /nologo /D "NDEBUG" /win32
+# ADD MTL /nologo /D "NDEBUG" /win32
+MTL_PROJ=/nologo /D "NDEBUG" /win32 
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/js.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/js32.dll"
+# SUBTRACT LINK32 /nodefaultlib
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:windows /dll /incremental:no\
+ /pdb:"$(OUTDIR)/js32.pdb" /machine:I386 /out:"$(OUTDIR)/js32.dll"\
+ /implib:"$(OUTDIR)/js32.lib" /opt:ref /opt:noicf
+LINK32_OBJS= \
+	"$(INTDIR)\jsapi.obj" \
+	"$(INTDIR)\jsarena.obj" \
+	"$(INTDIR)\jsarray.obj" \
+	"$(INTDIR)\jsatom.obj" \
+	"$(INTDIR)\jsbool.obj" \
+	"$(INTDIR)\jscntxt.obj" \
+	"$(INTDIR)\jsdate.obj" \
+	"$(INTDIR)\jsdbgapi.obj" \
+	"$(INTDIR)\jsdhash.obj" \
+	"$(INTDIR)\jsdtoa.obj" \
+	"$(INTDIR)\jsemit.obj" \
+	"$(INTDIR)\jsexn.obj" \
+	"$(INTDIR)\jsfun.obj" \
+	"$(INTDIR)\jsgc.obj" \
+	"$(INTDIR)\jshash.obj" \
+	"$(INTDIR)\jsinterp.obj" \
+	"$(INTDIR)\jslock.obj" \
+	"$(INTDIR)\jslog2.obj" \
+	"$(INTDIR)\jslong.obj" \
+	"$(INTDIR)\jsmath.obj" \
+	"$(INTDIR)\jsnum.obj" \
+	"$(INTDIR)\jsobj.obj" \
+	"$(INTDIR)\jsopcode.obj" \
+	"$(INTDIR)\jsparse.obj" \
+	"$(INTDIR)\jsprf.obj" \
+	"$(INTDIR)\jsregexp.obj" \
+	"$(INTDIR)\jsscan.obj" \
+	"$(INTDIR)\jsscope.obj" \
+	"$(INTDIR)\jsscript.obj" \
+	"$(INTDIR)\jsstr.obj" \
+	"$(INTDIR)\jsutil.obj" \
+	"$(INTDIR)\jsxdrapi.obj" \
+	"$(INTDIR)\prmjtime.obj" \
+	"$(INTDIR)\xsstaint.obj" \
+	"$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)\js32.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "js___Wi2"
+# PROP BASE Intermediate_Dir "js___Wi2"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+OUTDIR=.\Debug
+INTDIR=.\Debug
+
+ALL : "fdlibm - Win32 Debug" "$(OUTDIR)\js32.dll"
+
+CLEAN : 
+	-@erase "$(INTDIR)\jsapi.obj"
+	-@erase "$(INTDIR)\jsarena.obj"
+	-@erase "$(INTDIR)\jsarray.obj"
+	-@erase "$(INTDIR)\jsatom.obj"
+	-@erase "$(INTDIR)\jsbool.obj"
+	-@erase "$(INTDIR)\jscntxt.obj"
+	-@erase "$(INTDIR)\jsdate.obj"
+	-@erase "$(INTDIR)\jsdbgapi.obj"
+	-@erase "$(INTDIR)\jsdhash.obj"
+	-@erase "$(INTDIR)\jsdtoa.obj"
+	-@erase "$(INTDIR)\jsemit.obj"
+	-@erase "$(INTDIR)\jsexn.obj"
+	-@erase "$(INTDIR)\jsfun.obj"
+	-@erase "$(INTDIR)\jsgc.obj"
+	-@erase "$(INTDIR)\jshash.obj"
+	-@erase "$(INTDIR)\jsinterp.obj"
+	-@erase "$(INTDIR)\jslock.obj"
+	-@erase "$(INTDIR)\jslog2.obj"
+	-@erase "$(INTDIR)\jslong.obj"
+	-@erase "$(INTDIR)\jsmath.obj"
+	-@erase "$(INTDIR)\jsnum.obj"
+	-@erase "$(INTDIR)\jsobj.obj"
+	-@erase "$(INTDIR)\jsopcode.obj"
+	-@erase "$(INTDIR)\jsparse.obj"
+	-@erase "$(INTDIR)\jsprf.obj"
+	-@erase "$(INTDIR)\jsregexp.obj"
+	-@erase "$(INTDIR)\jsscan.obj"
+	-@erase "$(INTDIR)\jsscope.obj"
+	-@erase "$(INTDIR)\jsscript.obj"
+	-@erase "$(INTDIR)\jsstr.obj"
+	-@erase "$(INTDIR)\jsutil.obj"
+	-@erase "$(INTDIR)\jsxdrapi.obj"
+	-@erase "$(INTDIR)\prmjtime.obj"
+	-@erase "$(INTDIR)\xsstaint.obj"
+	-@erase "$(INTDIR)\vc40.idb"
+	-@erase "$(INTDIR)\vc40.pdb"
+	-@erase "$(OUTDIR)\js32.dll"
+	-@erase "$(OUTDIR)\js32.exp"
+	-@erase "$(OUTDIR)\js32.ilk"
+	-@erase "$(OUTDIR)\js32.lib"
+	-@erase "$(OUTDIR)\js32.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /YX /c
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS"\
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "XSS_SHELL=1" /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS"\
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "XSS_SHELL=1" /D "XSS_DEBUG=1" /D "_DEBUG" /D "DEBUG" /D _X86_=1 /D "_WINDOWS"\
+ /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "EXPORT_JS_API" /Fp"$(INTDIR)/js.pch" /YX\
+ /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c 
+CPP_OBJS=.\Debug/
+CPP_OBJS2=.\xss
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+{$(CPP_OBJS2)}.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+MTL=mktyplib.exe
+# ADD BASE MTL /nologo /D "_DEBUG" /win32
+# ADD MTL /nologo /D "_DEBUG" /win32
+MTL_PROJ=/nologo /D "_DEBUG" /win32 
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/js.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/js32.dll"
+# SUBTRACT LINK32 /nodefaultlib
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
+ /pdb:"$(OUTDIR)/js32.pdb" /debug /machine:I386 /out:"$(OUTDIR)/js32.dll"\
+ /implib:"$(OUTDIR)/js32.lib" 
+LINK32_OBJS= \
+	"$(INTDIR)\jsapi.obj" \
+	"$(INTDIR)\jsarena.obj" \
+	"$(INTDIR)\jsarray.obj" \
+	"$(INTDIR)\jsatom.obj" \
+	"$(INTDIR)\jsbool.obj" \
+	"$(INTDIR)\jscntxt.obj" \
+	"$(INTDIR)\jsdate.obj" \
+	"$(INTDIR)\jsdbgapi.obj" \
+	"$(INTDIR)\jsdhash.obj" \
+	"$(INTDIR)\jsdtoa.obj" \
+	"$(INTDIR)\jsemit.obj" \
+	"$(INTDIR)\jsexn.obj" \
+	"$(INTDIR)\jsfun.obj" \
+	"$(INTDIR)\jsgc.obj" \
+	"$(INTDIR)\jshash.obj" \
+	"$(INTDIR)\jsinterp.obj" \
+	"$(INTDIR)\jslock.obj" \
+	"$(INTDIR)\jslog2.obj" \
+	"$(INTDIR)\jslong.obj" \
+	"$(INTDIR)\jsmath.obj" \
+	"$(INTDIR)\jsnum.obj" \
+	"$(INTDIR)\jsobj.obj" \
+	"$(INTDIR)\jsopcode.obj" \
+	"$(INTDIR)\jsparse.obj" \
+	"$(INTDIR)\jsprf.obj" \
+	"$(INTDIR)\jsregexp.obj" \
+	"$(INTDIR)\jsscan.obj" \
+	"$(INTDIR)\jsscope.obj" \
+	"$(INTDIR)\jsscript.obj" \
+	"$(INTDIR)\jsstr.obj" \
+	"$(INTDIR)\jsutil.obj" \
+	"$(INTDIR)\jsxdrapi.obj" \
+	"$(INTDIR)\prmjtime.obj" \
+	"$(INTDIR)\xsstaint.obj" \
+	"$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)\js32.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "jsshell - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "jsshell\Release"
+# PROP BASE Intermediate_Dir "jsshell\Release"
+# PROP BASE Target_Dir "jsshell"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir "jsshell"
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "js - Win32 Release" "$(OUTDIR)\jsshell.exe"
+
+CLEAN : 
+	-@erase "$(INTDIR)\js.obj"
+	-@erase "$(OUTDIR)\jsshell.exe"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "XP_WIN" /D "JSFILE" /YX /c
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D\
+ "XP_WIN" /D "JSFILE" /Fp"$(INTDIR)/jsshell.pch" /YX /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Release/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/jsshell.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:console /incremental:no\
+ /pdb:"$(OUTDIR)/jsshell.pdb" /machine:I386 /out:"$(OUTDIR)/jsshell.exe" 
+LINK32_OBJS= \
+	"$(INTDIR)\js.obj" \
+	"$(OUTDIR)\js32.lib"
+
+"$(OUTDIR)\jsshell.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "jsshell - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "jsshell\jsshell_"
+# PROP BASE Intermediate_Dir "jsshell\jsshell_"
+# PROP BASE Target_Dir "jsshell"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir "jsshell"
+OUTDIR=.\Debug
+INTDIR=.\Debug
+
+ALL : "js - Win32 Debug" "$(OUTDIR)\jsshell.exe"
+
+CLEAN : 
+	-@erase "$(INTDIR)\js.obj"
+	-@erase "$(INTDIR)\vc40.idb"
+	-@erase "$(INTDIR)\vc40.pdb"
+	-@erase "$(OUTDIR)\jsshell.exe"
+	-@erase "$(OUTDIR)\jsshell.ilk"
+	-@erase "$(OUTDIR)\jsshell.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "_CONSOLE" /D "_DEBUG" /D "WIN32" /D "XP_WIN" /D "JSFILE" /D "DEBUG" /YX /c
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "_CONSOLE" /D "_DEBUG" /D "WIN32"\
+#CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "XSS_SHELL=1" /D "_CONSOLE" /D "_DEBUG" /D "WIN32"\
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "XSS=1" /D "XSS_SHELL=1" /D "XSS_DEBUG=1" /D "_CONSOLE" /D "_DEBUG" /D "WIN32"\
+ /D "XP_WIN" /D "JSFILE" /D "DEBUG" /Fp"$(INTDIR)/jsshell.pch" /YX\
+ /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c 
+CPP_OBJS=.\Debug/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/jsshell.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
+ advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
+ odbccp32.lib /nologo /subsystem:console /incremental:yes\
+ /pdb:"$(OUTDIR)/jsshell.pdb" /debug /machine:I386 /out:"$(OUTDIR)/jsshell.exe" 
+LINK32_OBJS= \
+	"$(INTDIR)\js.obj" \
+	"$(OUTDIR)\js32.lib"
+
+"$(OUTDIR)\jsshell.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "fdlibm\Release"
+# PROP BASE Intermediate_Dir "fdlibm\Release"
+# PROP BASE Target_Dir "fdlibm"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir "fdlibm"
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "$(OUTDIR)\fdlibm.lib"
+
+CLEAN : 
+	-@erase "$(INTDIR)\e_atan2.obj"
+	-@erase "$(INTDIR)\e_pow.obj"
+	-@erase "$(INTDIR)\e_sqrt.obj"
+	-@erase "$(INTDIR)\k_standard.obj"
+	-@erase "$(INTDIR)\s_atan.obj"
+	-@erase "$(INTDIR)\s_copysign.obj"
+	-@erase "$(INTDIR)\s_fabs.obj"
+	-@erase "$(INTDIR)\s_finite.obj"
+	-@erase "$(INTDIR)\s_isnan.obj"
+	-@erase "$(INTDIR)\s_matherr.obj"
+	-@erase "$(INTDIR)\s_rint.obj"
+	-@erase "$(INTDIR)\s_scalbn.obj"
+	-@erase "$(INTDIR)\w_atan2.obj"
+	-@erase "$(INTDIR)\w_pow.obj"
+	-@erase "$(INTDIR)\w_sqrt.obj"
+	-@erase "$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D "_IEEE_LIBM" /YX /c
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+ "_IEEE_LIBM" /D "XP_WIN" /I .\ /Fp"$(INTDIR)/fdlibm.pch" /YX /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Release/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/fdlibm.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)/fdlibm.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\e_atan2.obj" \
+	"$(INTDIR)\e_pow.obj" \
+	"$(INTDIR)\e_sqrt.obj" \
+	"$(INTDIR)\k_standard.obj" \
+	"$(INTDIR)\s_atan.obj" \
+	"$(INTDIR)\s_copysign.obj" \
+	"$(INTDIR)\s_fabs.obj" \
+	"$(INTDIR)\s_finite.obj" \
+	"$(INTDIR)\s_isnan.obj" \
+	"$(INTDIR)\s_matherr.obj" \
+	"$(INTDIR)\s_rint.obj" \
+	"$(INTDIR)\s_scalbn.obj" \
+	"$(INTDIR)\w_atan2.obj" \
+	"$(INTDIR)\w_pow.obj" \
+	"$(INTDIR)\w_sqrt.obj"
+
+"$(OUTDIR)\fdlibm.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "fdlibm\Debug"
+# PROP BASE Intermediate_Dir "fdlibm\Debug"
+# PROP BASE Target_Dir "fdlibm"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir "fdlibm"
+OUTDIR=.\Debug
+INTDIR=.\Debug
+
+ALL : "$(OUTDIR)\fdlibm.lib"
+
+CLEAN : 
+	-@erase "$(INTDIR)\e_atan2.obj"
+	-@erase "$(INTDIR)\e_pow.obj"
+	-@erase "$(INTDIR)\e_sqrt.obj"
+	-@erase "$(INTDIR)\k_standard.obj"
+	-@erase "$(INTDIR)\s_atan.obj"
+	-@erase "$(INTDIR)\s_copysign.obj"
+	-@erase "$(INTDIR)\s_fabs.obj"
+	-@erase "$(INTDIR)\s_finite.obj"
+	-@erase "$(INTDIR)\s_isnan.obj"
+	-@erase "$(INTDIR)\s_matherr.obj"
+	-@erase "$(INTDIR)\s_rint.obj"
+	-@erase "$(INTDIR)\s_scalbn.obj"
+	-@erase "$(INTDIR)\w_atan2.obj"
+	-@erase "$(INTDIR)\w_pow.obj"
+	-@erase "$(INTDIR)\w_sqrt.obj"
+	-@erase "$(OUTDIR)\fdlibm.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D _X86_=1 /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MDd /W3 /GX /Z7 /Od /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D "_IEEE_LIBM" /YX /c
+#CPP_PROJ=/nologo /MDd /W3 /GX /Z7 /Od /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+#CPP_PROJ=/nologo /MDd /W3 /GX /Z7 /Od /D "XSS=1" /D "XSS_SHELL=1" /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+CPP_PROJ=/nologo /MDd /W3 /GX /Z7 /Od /D "XSS=1" /D "XSS_SHELL=1" /D "XSS_DEBUG=1" /D "_DEBUG" /D "WIN32" /D _X86_=1 /D "_WINDOWS" /D\
+ "_IEEE_LIBM" /D "XP_WIN" -I .\ /Fp"$(INTDIR)/fdlibm.pch" /YX /Fo"$(INTDIR)/" /c 
+CPP_OBJS=.\Debug/
+CPP_SBRS=.\.
+
+.c{$(CPP_OBJS)}.obj: 
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $<  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $<  
+
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o"$(OUTDIR)/fdlibm.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)/fdlibm.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\e_atan2.obj" \
+	"$(INTDIR)\e_pow.obj" \
+	"$(INTDIR)\e_sqrt.obj" \
+	"$(INTDIR)\k_standard.obj" \
+	"$(INTDIR)\s_atan.obj" \
+	"$(INTDIR)\s_copysign.obj" \
+	"$(INTDIR)\s_fabs.obj" \
+	"$(INTDIR)\s_finite.obj" \
+	"$(INTDIR)\s_isnan.obj" \
+	"$(INTDIR)\s_matherr.obj" \
+	"$(INTDIR)\s_rint.obj" \
+	"$(INTDIR)\s_scalbn.obj" \
+	"$(INTDIR)\w_atan2.obj" \
+	"$(INTDIR)\w_pow.obj" \
+	"$(INTDIR)\w_sqrt.obj"
+
+"$(OUTDIR)\fdlibm.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ENDIF 
+
+################################################################################
+# Begin Target
+
+# Name "js - Win32 Release"
+# Name "js - Win32 Debug"
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+!ENDIF 
+
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsapi.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSAPI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsemit.h"\
+	".\jsexn.h"\
+	".\jsfile.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSAPI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsapi.obj" : $(SOURCE) $(DEP_CPP_JSAPI) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSAPI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsemit.h"\
+	".\jsexn.h"\
+	".\jsfile.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSAPI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsapi.obj" : $(SOURCE) $(DEP_CPP_JSAPI) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsarena.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSARE=\
+	".\jsarena.h"\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARE=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsarena.obj" : $(SOURCE) $(DEP_CPP_JSARE) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSARE=\
+	".\jsarena.h"\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARE=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsarena.obj" : $(SOURCE) $(DEP_CPP_JSARE) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsarray.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSARR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsarray.obj" : $(SOURCE) $(DEP_CPP_JSARR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSARR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSARR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsarray.obj" : $(SOURCE) $(DEP_CPP_JSARR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsatom.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSATO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSATO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsatom.obj" : $(SOURCE) $(DEP_CPP_JSATO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSATO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSATO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsatom.obj" : $(SOURCE) $(DEP_CPP_JSATO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsbool.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSBOO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSBOO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsbool.obj" : $(SOURCE) $(DEP_CPP_JSBOO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSBOO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSBOO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsbool.obj" : $(SOURCE) $(DEP_CPP_JSBOO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jscntxt.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSCNT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSCNT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jscntxt.obj" : $(SOURCE) $(DEP_CPP_JSCNT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSCNT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSCNT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jscntxt.obj" : $(SOURCE) $(DEP_CPP_JSCNT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdate.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\prmjtime.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdate.obj" : $(SOURCE) $(DEP_CPP_JSDAT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdate.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\prmjtime.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdate.obj" : $(SOURCE) $(DEP_CPP_JSDAT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdbgapi.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDBG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDBG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdbgapi.obj" : $(SOURCE) $(DEP_CPP_JSDBG) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDBG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDBG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdbgapi.obj" : $(SOURCE) $(DEP_CPP_JSDBG) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdhash.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDHA=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdhash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDHA=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsdhash.obj" : $(SOURCE) $(DEP_CPP_JSDHA) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDHA=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdhash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDHA=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsdhash.obj" : $(SOURCE) $(DEP_CPP_JSDHA) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsdtoa.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSDTO=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDTO=\
+	".\jsautocfg.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdtoa.obj" : $(SOURCE) $(DEP_CPP_JSDTO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSDTO=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsstddef.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSDTO=\
+	".\jsautocfg.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsdtoa.obj" : $(SOURCE) $(DEP_CPP_JSDTO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsemit.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSEMI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEMI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsemit.obj" : $(SOURCE) $(DEP_CPP_JSEMI) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSEMI=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEMI=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsemit.obj" : $(SOURCE) $(DEP_CPP_JSEMI) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsexn.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSEXN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsexn.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEXN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsexn.obj" : $(SOURCE) $(DEP_CPP_JSEXN) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSEXN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsexn.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSEXN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsexn.obj" : $(SOURCE) $(DEP_CPP_JSEXN) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsfun.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSFUN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSFUN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsfun.obj" : $(SOURCE) $(DEP_CPP_JSFUN) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSFUN=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSFUN=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsfun.obj" : $(SOURCE) $(DEP_CPP_JSFUN) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsgc.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSGC_=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSGC_=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsgc.obj" : $(SOURCE) $(DEP_CPP_JSGC_) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSGC_=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSGC_=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsgc.obj" : $(SOURCE) $(DEP_CPP_JSGC_) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jshash.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSHAS=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jshash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSHAS=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jshash.obj" : $(SOURCE) $(DEP_CPP_JSHAS) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSHAS=\
+	".\jsbit.h"\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jshash.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSHAS=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jshash.obj" : $(SOURCE) $(DEP_CPP_JSHAS) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\xsstaint.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_XSSTAINT=\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\jspubtd.h"\
+	".\jsapi.h"\
+	".\jsgc.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_XSSTAINT=\
+	".\jsautocfg.h"\
+	
+"$(INTDIR)\xsstaint.obj" : $(SOURCE) $(DEP_CPP_XSSTAINT) "$(INTDIR)"
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_XSSTAINT=\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\jspubtd.h"\
+	".\jsapi.h"\
+	".\jsgc.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_XSSTAINT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+"$(INTDIR)\xsstaint.obj" : $(SOURCE) $(DEP_CPP_XSSTAINT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsinterp.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSINT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSINT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsinterp.obj" : $(SOURCE) $(DEP_CPP_JSINT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSINT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSINT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsinterp.obj" : $(SOURCE) $(DEP_CPP_JSINT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jslock.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSLOC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOC=\
+	".\jsautocfg.h"\
+	".\pratom.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	".\prthread.h"\
+	
+
+"$(INTDIR)\jslock.obj" : $(SOURCE) $(DEP_CPP_JSLOC) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSLOC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOC=\
+	".\jsautocfg.h"\
+	".\pratom.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	".\prthread.h"\
+	
+
+"$(INTDIR)\jslock.obj" : $(SOURCE) $(DEP_CPP_JSLOC) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jslog2.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSLOG=\
+	".\jsbit.h"\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOG=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslog2.obj" : $(SOURCE) $(DEP_CPP_JSLOG) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSLOG=\
+	".\jsbit.h"\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLOG=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslog2.obj" : $(SOURCE) $(DEP_CPP_JSLOG) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jslong.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSLON=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLON=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslong.obj" : $(SOURCE) $(DEP_CPP_JSLON) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSLON=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jstypes.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSLON=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jslong.obj" : $(SOURCE) $(DEP_CPP_JSLON) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsmath.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSMAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslibmath.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSMAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsmath.obj" : $(SOURCE) $(DEP_CPP_JSMAT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSMAT=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslibmath.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsmath.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSMAT=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsmath.obj" : $(SOURCE) $(DEP_CPP_JSMAT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsnum.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSNUM=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSNUM=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsnum.obj" : $(SOURCE) $(DEP_CPP_JSNUM) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSNUM=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSNUM=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsnum.obj" : $(SOURCE) $(DEP_CPP_JSNUM) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsobj.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSOBJ=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOBJ=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsobj.obj" : $(SOURCE) $(DEP_CPP_JSOBJ) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSOBJ=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOBJ=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsobj.obj" : $(SOURCE) $(DEP_CPP_JSOBJ) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsopcode.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSOPC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsdtoa.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOPC=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsopcode.obj" : $(SOURCE) $(DEP_CPP_JSOPC) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSOPC=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsdtoa.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSOPC=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsopcode.obj" : $(SOURCE) $(DEP_CPP_JSOPC) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsparse.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSPAR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPAR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsparse.obj" : $(SOURCE) $(DEP_CPP_JSPAR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSPAR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPAR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsparse.obj" : $(SOURCE) $(DEP_CPP_JSPAR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsprf.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSPRF=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPRF=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsprf.obj" : $(SOURCE) $(DEP_CPP_JSPRF) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSPRF=\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSPRF=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsprf.obj" : $(SOURCE) $(DEP_CPP_JSPRF) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsregexp.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSREG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSREG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsregexp.obj" : $(SOURCE) $(DEP_CPP_JSREG) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSREG=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSREG=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsregexp.obj" : $(SOURCE) $(DEP_CPP_JSREG) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsscan.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSCA=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCA=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscan.obj" : $(SOURCE) $(DEP_CPP_JSSCA) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSCA=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdtoa.h"\
+	".\jsexn.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCA=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscan.obj" : $(SOURCE) $(DEP_CPP_JSSCA) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsscope.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSCO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscope.obj" : $(SOURCE) $(DEP_CPP_JSSCO) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSCO=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCO=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscope.obj" : $(SOURCE) $(DEP_CPP_JSSCO) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsscript.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSCR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscript.obj" : $(SOURCE) $(DEP_CPP_JSSCR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSCR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSCR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsscript.obj" : $(SOURCE) $(DEP_CPP_JSSCR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsstr.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSSTR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSTR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsstr.obj" : $(SOURCE) $(DEP_CPP_JSSTR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSSTR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsarray.h"\
+	".\jsatom.h"\
+	".\jsbool.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsnum.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\xssdbg.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSSTR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsstr.obj" : $(SOURCE) $(DEP_CPP_JSSTR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsutil.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSUTI=\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSUTI=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsutil.obj" : $(SOURCE) $(DEP_CPP_JSUTI) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSUTI=\
+	".\jscpucfg.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSUTI=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\jsutil.obj" : $(SOURCE) $(DEP_CPP_JSUTI) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\jsxdrapi.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_JSXDR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSXDR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsxdrapi.obj" : $(SOURCE) $(DEP_CPP_JSXDR) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_JSXDR=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscope.h"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\jsxdrapi.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JSXDR=\
+	".\jsautocfg.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\jsxdrapi.obj" : $(SOURCE) $(DEP_CPP_JSXDR) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\prmjtime.c
+
+!IF  "$(CFG)" == "js - Win32 Release"
+
+DEP_CPP_PRMJT=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\TIMEB.H"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_PRMJT=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\prmjtime.obj" : $(SOURCE) $(DEP_CPP_PRMJT) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "js - Win32 Debug"
+
+DEP_CPP_PRMJT=\
+	".\jscompat.h"\
+	".\jscpucfg.h"\
+	".\jslong.h"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsprf.h"\
+	".\jstypes.h"\
+	".\prmjtime.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\TIMEB.H"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_PRMJT=\
+	".\jsautocfg.h"\
+	
+
+"$(INTDIR)\prmjtime.obj" : $(SOURCE) $(DEP_CPP_PRMJT) "$(INTDIR)"
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Project Dependency
+
+# Project_Dep_Name "fdlibm"
+
+!IF  "$(CFG)" == "js - Win32 Debug"
+
+"fdlibm - Win32 Debug" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="fdlibm - Win32 Debug" 
+
+!ELSEIF  "$(CFG)" == "js - Win32 Release"
+
+"fdlibm - Win32 Release" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="fdlibm - Win32 Release" 
+
+!ENDIF 
+
+# End Project Dependency
+# End Target
+################################################################################
+# Begin Target
+
+# Name "jsshell - Win32 Release"
+# Name "jsshell - Win32 Debug"
+
+!IF  "$(CFG)" == "jsshell - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "jsshell - Win32 Debug"
+
+!ENDIF 
+
+################################################################################
+# Begin Source File
+
+SOURCE=.\js.c
+DEP_CPP_JS_C42=\
+	".\js.msg"\
+	".\jsapi.h"\
+	".\jsarena.h"\
+	".\jsatom.h"\
+	".\jsclist.h"\
+	".\jscntxt.h"\
+	".\jscompat.h"\
+	".\jsconfig.h"\
+	".\jscpucfg.h"\
+	".\jsdbgapi.h"\
+	".\jsemit.h"\
+	".\jsfun.h"\
+	".\jsgc.h"\
+	".\jshash.h"\
+	".\jsinterp.h"\
+	".\jslock.h"\
+	".\jslong.h"\
+	".\jsobj.h"\
+	".\jsopcode.h"\
+	".\jsopcode.tbl"\
+	".\jsosdep.h"\
+	".\jsotypes.h"\
+	".\jsparse.h"\
+	".\jsprf.h"\
+	".\jsprvtd.h"\
+	".\jspubtd.h"\
+	".\jsregexp.h"\
+	".\jsscan.h"\
+	".\jsscope.h"\
+	".\jsscript.h"\
+	".\jsshell.msg"\
+	".\jsstddef.h"\
+	".\jsstr.h"\
+	".\jstypes.h"\
+	".\jsutil.h"\
+	".\xsstaint.h"\
+	".\js.mak"\
+	{$(INCLUDE)}"\sys\types.h"\
+	
+NODEP_CPP_JS_C42=\
+	".\jsautocfg.h"\
+	".\jsdb.h"\
+	".\jsdebug.h"\
+	".\jsdjava.h"\
+	".\jsjava.h"\
+	".\jsperl.h"\
+	".\prcvar.h"\
+	".\prlock.h"\
+	
+
+"$(INTDIR)\js.obj" : $(SOURCE) $(DEP_CPP_JS_C42) "$(INTDIR)"
+
+
+# End Source File
+################################################################################
+# Begin Project Dependency
+
+# Project_Dep_Name "js"
+
+!IF  "$(CFG)" == "jsshell - Win32 Release"
+
+"js - Win32 Release" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="js - Win32 Release" 
+
+!ELSEIF  "$(CFG)" == "jsshell - Win32 Debug"
+
+"js - Win32 Debug" : 
+   $(MAKE) /$(MAKEFLAGS) /F ".\js.mak" CFG="js - Win32 Debug" 
+
+!ENDIF 
+
+# End Project Dependency
+# End Target
+################################################################################
+# Begin Target
+
+# Name "fdlibm - Win32 Release"
+# Name "fdlibm - Win32 Debug"
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+!ENDIF 
+
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\w_atan2.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_W_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_atan2.obj" : $(SOURCE) $(DEP_CPP_W_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_W_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_atan2.obj" : $(SOURCE) $(DEP_CPP_W_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_copysign.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_COP=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_copysign.obj" : $(SOURCE) $(DEP_CPP_S_COP) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_COP=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_copysign.obj" : $(SOURCE) $(DEP_CPP_S_COP) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\w_pow.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_W_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_pow.obj" : $(SOURCE) $(DEP_CPP_W_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_W_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_pow.obj" : $(SOURCE) $(DEP_CPP_W_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\e_pow.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_E_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_pow.obj" : $(SOURCE) $(DEP_CPP_E_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_E_POW=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_pow.obj" : $(SOURCE) $(DEP_CPP_E_POW) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\k_standard.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_K_STA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\k_standard.obj" : $(SOURCE) $(DEP_CPP_K_STA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_K_STA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\k_standard.obj" : $(SOURCE) $(DEP_CPP_K_STA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\e_atan2.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_E_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_atan2.obj" : $(SOURCE) $(DEP_CPP_E_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_E_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_atan2.obj" : $(SOURCE) $(DEP_CPP_E_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_isnan.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_ISN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_isnan.obj" : $(SOURCE) $(DEP_CPP_S_ISN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_ISN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_isnan.obj" : $(SOURCE) $(DEP_CPP_S_ISN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_fabs.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_FAB=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_fabs.obj" : $(SOURCE) $(DEP_CPP_S_FAB) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_FAB=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_fabs.obj" : $(SOURCE) $(DEP_CPP_S_FAB) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\w_sqrt.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_W_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_sqrt.obj" : $(SOURCE) $(DEP_CPP_W_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_W_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\w_sqrt.obj" : $(SOURCE) $(DEP_CPP_W_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_scalbn.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_SCA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_scalbn.obj" : $(SOURCE) $(DEP_CPP_S_SCA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_SCA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_scalbn.obj" : $(SOURCE) $(DEP_CPP_S_SCA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\e_sqrt.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_E_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_sqrt.obj" : $(SOURCE) $(DEP_CPP_E_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_E_SQR=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\e_sqrt.obj" : $(SOURCE) $(DEP_CPP_E_SQR) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_rint.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_RIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_rint.obj" : $(SOURCE) $(DEP_CPP_S_RIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_RIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_rint.obj" : $(SOURCE) $(DEP_CPP_S_RIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_atan.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_atan.obj" : $(SOURCE) $(DEP_CPP_S_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_ATA=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_atan.obj" : $(SOURCE) $(DEP_CPP_S_ATA) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_finite.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_FIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_finite.obj" : $(SOURCE) $(DEP_CPP_S_FIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_FIN=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_finite.obj" : $(SOURCE) $(DEP_CPP_S_FIN) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm\s_matherr.c
+
+!IF  "$(CFG)" == "fdlibm - Win32 Release"
+
+DEP_CPP_S_MAT=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_matherr.obj" : $(SOURCE) $(DEP_CPP_S_MAT) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "fdlibm - Win32 Debug"
+
+DEP_CPP_S_MAT=\
+	".\fdlibm\fdlibm.h"\
+	
+
+"$(INTDIR)\s_matherr.obj" : $(SOURCE) $(DEP_CPP_S_MAT) "$(INTDIR)"
+   $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+# End Source File
+# End Target
+# End Project
+################################################################################
Index: mozilla-src/mozilla/js/src/jsapi.c
diff -u mozilla-src/mozilla/js/src/jsapi.c:1.1 mozilla-src/mozilla/js/src/jsapi.c:1.7
--- mozilla-src/mozilla/js/src/jsapi.c:1.1	Sat Nov 13 12:39:00 2004
+++ mozilla-src/mozilla/js/src/jsapi.c	Tue Jul 26 17:37:45 2005
@@ -77,6 +77,12 @@
 #include "jsstr.h"
 #include "prmjtime.h"
 
+#ifdef XSS /* include necessary headerfiles */
+#include "xsstaint.h"
+#include "xssdbg.h"
+#include "jsgc.h"
+#endif /* XSS */
+
 #if JS_HAS_FILE_OBJECT
 #include "jsfile.h"
 #endif
@@ -93,6 +99,21 @@
 #define CHECK_REQUEST(cx)       ((void)0)
 #endif
 
+#ifdef XSS /* XSS */
+
+JS_PUBLIC_API(XSS_taint*) js_XSSGettaint(void *val) {
+	JSGCThing *temp;
+	XSS_taint* result;
+
+	result = 0;
+	temp = (JSGCThing*) val;
+	if (temp != 0) 
+		result = &(temp->taint);
+	return result;
+}
+
+#endif /* XSS */
+
 JS_PUBLIC_API(int64)
 JS_Now()
 {
@@ -595,6 +616,10 @@
     JSObject *obj;
     JSObjectOps *ops;
     JSClass *clasp;
+#ifdef XSS /* set original type of the jsval v to ensure correct handling */
+	int xss_origtype = XSS_NOTYPE;
+	XSS_JSVAL_GET_ORIGTYPE(v,xss_origtype);
+#endif /* XSS */
 
     CHECK_REQUEST(cx);
     if (JSVAL_IS_OBJECT(v)) {
@@ -619,6 +644,16 @@
 #endif
             type = JSTYPE_OBJECT;
         }
+#ifdef XSS /* first handle the xss-types */
+	} else if (xss_origtype == JSVAL_BOOLEAN) {
+        type = JSTYPE_BOOLEAN;
+	} else if (xss_origtype == JSVAL_DOUBLE) {
+        type = JSTYPE_NUMBER;
+	} else if (xss_origtype == JSVAL_VOID) {
+		type = JSTYPE_VOID;
+	} else if (xss_origtype == JSVAL_NULL) {
+        type = JSTYPE_OBJECT;
+#endif /* XSS */
     } else if (JSVAL_IS_NUMBER(v)) {
         type = JSTYPE_NUMBER;
     } else if (JSVAL_IS_STRING(v)) {
Index: mozilla-src/mozilla/js/src/jsapi.h
diff -u mozilla-src/mozilla/js/src/jsapi.h:1.1 mozilla-src/mozilla/js/src/jsapi.h:1.4
--- mozilla-src/mozilla/js/src/jsapi.h:1.1	Sat Nov 13 12:39:00 2004
+++ mozilla-src/mozilla/js/src/jsapi.h	Mon Oct  3 15:39:06 2005
@@ -45,6 +45,9 @@
 #include <stddef.h>
 #include <stdio.h>
 #include "jspubtd.h"
+#ifdef XSS /* XSS */
+#include "xsstaint.h"
+#endif /* XSS */
 
 JS_BEGIN_EXTERN_C
 
@@ -145,6 +148,13 @@
 #define JSVAL_FALSE             BOOLEAN_TO_JSVAL(JS_FALSE)
 #define JSVAL_TRUE              BOOLEAN_TO_JSVAL(JS_TRUE)
 
+#ifdef XSS /* XSS */
+
+/* definition to get the taint-structure of a JSGCThing-object */
+extern JS_PUBLIC_API(XSS_taint *) js_XSSGettaint(void *val);
+
+#endif /* XSS */
+
 /*
  * Microseconds since the epoch, midnight, January 1, 1970 UTC.  See the
  * comment in jstypes.h regarding safe int64 usage.
Index: mozilla-src/mozilla/js/src/jsarray.c
diff -u mozilla-src/mozilla/js/src/jsarray.c:1.1 mozilla-src/mozilla/js/src/jsarray.c:1.4
--- mozilla-src/mozilla/js/src/jsarray.c:1.1	Sat Nov 13 12:39:00 2004
+++ mozilla-src/mozilla/js/src/jsarray.c	Tue Jul  5 18:38:13 2005
@@ -58,6 +58,11 @@
 #include "jsobj.h"
 #include "jsstr.h"
 
+#ifdef XSS /* add necessary headerfiles */
+#include "xsstaint.h"
+#include "xssdbg.h"
+#endif /* XSS */
+
 /* 2^32 - 1 as a number and a string */
 #define MAXINDEX 4294967295u
 #define MAXSTR   "4294967295"
@@ -1369,6 +1374,10 @@
 {
     jsuint length;
     jsval *vector;
+#ifdef XSS /* get original types */
+	int xss_origtype = XSS_NOTYPE;
+	XSS_JSVAL_GET_ORIGTYPE(argv[0],xss_origtype);
+#endif /* XSS */
 
     /* If called without new, replace obj with a new Array object. */
     if (!(cx->fp->flags & JSFRAME_CONSTRUCTING)) {
@@ -1387,6 +1396,11 @@
     } else if (argc > 1) {
         length = (jsuint) argc;
         vector = argv;
+#ifdef XSS /* handle xss-types */
+	} else if (!((xss_origtype == JSVAL_INT) || (xss_origtype == JSVAL_DOUBLE)) && (xss_origtype != XSS_NOTYPE)) {
+        length = 1;
+        vector = argv;
+#endif /* XSS */
     } else if (!JSVAL_IS_NUMBER(argv[0])) {
         length = 1;
         vector = argv;
Index: mozilla-src/mozilla/js/src/jsbool.c
diff -u mozilla-src/mozilla/js/src/jsbool.c:1.1 mozilla-src/mozilla/js/src/jsbool.c:1.2
--- mozilla-src/mozilla/js/src/jsbool.c:1.1	Sat Nov 13 12:39:00 2004
+++ mozilla-src/mozilla/js/src/jsbool.c	Tue Sep 27 15:10:35 2005
@@ -191,6 +191,11 @@
     JSBool b;
     jsdouble d;
 
+#ifdef XSS /* get original type of jsval */
+	jsval xss_jsval;
+	XSS_TO_ORIG_JSVAL(v, xss_jsval);
+#endif /* XSS */
+
 #if defined _MSC_VER && _MSC_VER <= 800
     /* MSVC1.5 coredumps */
     if (!bp)
@@ -201,11 +206,19 @@
 #define ELSE else
 #endif
 
+#ifdef XSS /* handle xss-types */
+    if (JSVAL_IS_NULL(xss_jsval) || JSVAL_IS_VOID(xss_jsval)) {
+	/* Must return early to avoid falling thru to JSVAL_IS_OBJECT case. */
+	*bp = JS_FALSE;
+	return JS_TRUE;
+    }
+#else /* original */
     if (JSVAL_IS_NULL(v) || JSVAL_IS_VOID(v)) {
 	/* Must return early to avoid falling thru to JSVAL_IS_OBJECT case. */
 	*bp = JS_FALSE;
 	return JS_TRUE;
     }
+#endif /* XSS */
     if (JSVAL_IS_OBJECT(v)) {
 	if (!JSVERSION_IS_ECMA(cx->version)) {
 	    if (!OBJ_DEFAULT_VALUE(cx, JSVAL_TO_OBJECT(v), JSTYPE_BOOLEAN, &v))
Index: mozilla-src/mozilla/js/src/jsemit.c
diff -u mozilla-src/mozilla/js/src/jsemit.c:1.1 mozilla-src/mozilla/js/src/jsemit.c:1.6
--- mozilla-src/mozilla/js/src/jsemit.c:1.1	Sat Nov 13 12:39:00 2004
+++ mozilla-src/mozilla/js/src/jsemit.c	Fri Jan 27 16:51:53 2006
@@ -540,7 +540,7 @@
     const JSCodeSpec *cs;
     ptrdiff_t len, off;
 
-    pc = CG_BASE(cg);
+    pc = CG_BASE(cg) + cg->spanDepTodo;
     end = CG_NEXT(cg);
     while (pc < end) {
         op = (JSOp)*pc;
@@ -601,10 +601,12 @@
             }
             len = 1 + pc2 - pc;
             break;
-          }
+		  }
+
 #endif /* JS_HAS_SWITCH_STATEMENT */
         }
 
+		JS_ASSERT(len > 0);
         pc += len;
     }
 
@@ -1031,6 +1033,7 @@
                 }
             }
         }
+		cg->main.lastNoteOffset += growth;
 
         /*
          * Fix try/catch notes (O(numTryNotes * log2(numSpanDeps)), but it's
@@ -1124,6 +1127,7 @@
     FreeJumpTargets(cg, cg->jumpTargets);
     cg->jumpTargets = NULL;
     cg->numSpanDeps = cg->numJumpTargets = 0;
+	cg->spanDepTodo = CG_OFFSET(cg);
     return JS_TRUE;
 }
 
@@ -2518,6 +2522,10 @@
     JSOp op;
     uint32 argc;
     int stackDummy;
+#ifdef XSS /* XSS */
+	ptrdiff_t xss_top, xss_off;
+    intN xss_noteIndex;
+#endif /* XSS */
 
     if (!JS_CHECK_STACK_SIZE(cx, stackDummy)) {
         JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_OVER_RECURSED);
@@ -3088,12 +3096,23 @@
         if (!js_EmitTree(cx, cg, pn->pn_left))
             return JS_FALSE;
         js_PushStatement(&cg->treeContext, &stmtInfo, STMT_WITH, CG_OFFSET(cg));
+#ifdef XSS /* XSS */
+		/* generate a sourcenote to store the length of the with-statement later
+		   I know that I should create a new type... */
+		xss_noteIndex = js_NewSrcNote3(cx, cg, SRC_SWITCH, 0, 0);
+		xss_top = CG_OFFSET(cg);
+#endif /* XSS */
         if (js_Emit1(cx, cg, JSOP_ENTERWITH) < 0)
             return JS_FALSE;
         if (!js_EmitTree(cx, cg, pn->pn_right))
             return JS_FALSE;
         if (js_Emit1(cx, cg, JSOP_LEAVEWITH) < 0)
             return JS_FALSE;
+#ifdef XSS /* XSS */
+		/* store the length of the with-statement */
+		xss_off = CG_OFFSET(cg) - xss_top;
+		ok = js_SetSrcNoteOffset(cx, cg, (uintN)xss_noteIndex, 0, xss_off);
+#endif /* XSS */
         ok = js_PopStatementCG(cx, cg);
         break;
 
@@ -3247,6 +3266,12 @@
                     return JS_FALSE;
 
                 EMIT_ATOM_INDEX_OP(JSOP_INITCATCHVAR, ALE_INDEX(ale));
+#ifdef XSS /* XSS */
+				/* generate a sourcenote to store the length of the with-statement later
+				   I know that I should create a new type... */
+				xss_noteIndex = js_NewSrcNote3(cx, cg, SRC_SWITCH, 0, 0);
+				xss_top = CG_OFFSET(cg);
+#endif /* XSS */
                 if (js_NewSrcNote(cx, cg, SRC_HIDDEN) < 0 ||
                     js_Emit1(cx, cg, JSOP_ENTERWITH) < 0) {
                     return JS_FALSE;
@@ -3285,7 +3310,14 @@
                 if (js_NewSrcNote2(cx, cg, SRC_CATCH, off) < 0 ||
                     js_Emit1(cx, cg, JSOP_LEAVEWITH) < 0) {
                     return JS_FALSE;
-                }
+				}
+#ifdef XSS /* XSS */
+				else {
+					/* store the length of the with-statement */
+					xss_off = CG_OFFSET(cg) - xss_top;
+					ok = js_SetSrcNoteOffset(cx, cg, (uintN)xss_noteIndex, 0, xss_off);
+				}
+#endif /* XSS */
 
                 /* gosub <finally>, if required */
                 if (pn->pn_kid3) {
@@ -4231,7 +4263,7 @@
         JS_ASSERT(0);
     }
 
-    if (ok && --cg->emitLevel == 0 && cg->spanDeps)
+	if (ok && --cg->emitLevel == 0 && cg->spanDeps) 
         ok = OptimizeSpanDeps(cx, cg);
 
     return ok;
@@ -4302,7 +4334,7 @@
     jssrcnote *sn;
     ptrdiff_t offset, delta, xdelta;
 
-    /*
+	/*
      * Claim a note slot in CG_NOTES(cg) by growing it if necessary and then
      * incrementing CG_NOTE_COUNT(cg).
      */
@@ -4336,10 +4368,12 @@
      * does take two bytes, js_SetSrcNoteOffset will grow CG_NOTES(cg).
      */
     SN_MAKE_NOTE(sn, type, delta);
+
     for (n = (intN)js_SrcNoteSpec[type].arity; n > 0; n--) {
         if (js_NewSrcNote(cx, cg, SRC_NULL) < 0)
             return -1;
     }
+
     return index;
 }
 
Index: mozilla-src/mozilla/js/src/jsemit.h
diff -u mozilla-src/mozilla/js/src/jsemit.h:1.1 mozilla-src/mozilla/js/src/jsemit.h:1.2
--- mozilla-src/mozilla/js/src/jsemit.h:1.1	Sat Nov 13 12:39:01 2004
+++ mozilla-src/mozilla/js/src/jsemit.h	Fri Jan 27 16:52:03 2006
@@ -175,12 +175,14 @@
 
 struct JSCodeGenerator {
     JSTreeContext   treeContext;    /* base state: statement info stack, etc. */
+
     JSArenaPool     *codePool;      /* pointer to thread code arena pool */
     JSArenaPool     *notePool;      /* pointer to thread srcnote arena pool */
     void            *codeMark;      /* low watermark in cg->codePool */
     void            *noteMark;      /* low watermark in cg->notePool */
     void            *tempMark;      /* low watermark in cx->tempPool */
-    struct {
+    
+	struct {
         jsbytecode  *base;          /* base of JS bytecode vector */
         jsbytecode  *limit;         /* one byte beyond end of bytecode */
         jsbytecode  *next;          /* pointer to next free bytecode */
@@ -190,20 +192,26 @@
         ptrdiff_t   lastNoteOffset; /* code offset for last source note */
         uintN       currentLine;    /* line number for tree-based srcnote gen */
     } prolog, main, *current;
+
     const char      *filename;      /* null or weak link to source filename */
     uintN           firstLine;      /* first line, for js_NewScriptFromCG */
     JSPrincipals    *principals;    /* principals for constant folding eval */
     JSAtomList      atomList;       /* literals indexed for mapping */
+
     intN            stackDepth;     /* current stack depth in script frame */
     uintN           maxStackDepth;  /* maximum stack depth so far */
+
     JSTryNote       *tryBase;       /* first exception handling note */
     JSTryNote       *tryNext;       /* next available note */
     size_t          tryNoteSpace;   /* # of bytes allocated at tryBase */
+
     JSSpanDep       *spanDeps;      /* span dependent instruction records */
     JSJumpTarget    *jumpTargets;   /* AVL tree of jump target offsets */
     JSJumpTarget    *jtFreeList;    /* JT_LEFT-linked list of free structs */
     uintN           numSpanDeps;    /* number of span dependencies */
     uintN           numJumpTargets; /* number of jump targets */
+	ptrdiff_t       spanDepTodo;    /* offset from main.base of potentially */
+
     uintN           emitLevel;      /* js_EmitTree recursion level */
     JSAtomList      constList;      /* compile time constants */
     JSCodeGenerator *parent;        /* Enclosing function or global context */
Index: mozilla-src/mozilla/js/src/jsgc.c
diff -u mozilla-src/mozilla/js/src/jsgc.c:1.1 mozilla-src/mozilla/js/src/jsgc.c:1.10
--- mozilla-src/mozilla/js/src/jsgc.c:1.1	Sat Nov 13 12:39:00 2004
+++ mozilla-src/mozilla/js/src/jsgc.c	Mon Oct  3 15:39:46 2005
@@ -78,15 +78,30 @@
  * This preserves the 1024 byte flags sub-arena size, which relates to the
  * GC_PAGE_SIZE (see below for why).
  */
+#ifndef XSS /* original */
+
 #if JS_BYTES_PER_WORD == 8
 # define GC_THINGS_SHIFT 14     /* 16KB for things on Alpha, etc. */
 #else
 # define GC_THINGS_SHIFT 13     /* 8KB for things on most platforms */
 #endif
+
+
+#else /* XSS: change the constants to reflect the space that xss-values need */
+
+#if JS_BYTES_PER_WORD == 8
+# define GC_THINGS_SHIFT 15     /* 16KB for things on Alpha, etc. */
+#else
+# define GC_THINGS_SHIFT 14     /* 8KB for things on most platforms */
+#endif
+
+#endif /* XSS */
+
 #define GC_THINGS_SIZE  JS_BIT(GC_THINGS_SHIFT)
 #define GC_FLAGS_SIZE   (GC_THINGS_SIZE / sizeof(JSGCThing))
 #define GC_ARENA_SIZE   (GC_THINGS_SIZE + GC_FLAGS_SIZE)
 
+#ifndef XSS
 /*
  * The private JSGCThing struct, which describes a gcFreeList element.
  */
@@ -94,6 +109,8 @@
     JSGCThing   *next;
     uint8       *flagp;
 };
+/* for XSS it is moved to jsgc.h */
+#endif /* XSS */
 
 /*
  * A GC arena contains one flag byte for each thing in its heap, and supports
@@ -171,6 +188,9 @@
 typedef struct JSGCPageInfo {
     uint8       *split;
     uint8       *flags;
+#ifdef XSS /* add a taintstructure - necessary to correct the size of the structure if compared to JSGCThing */
+	XSS_taint   taint;
+#endif /* XSS */
 } JSGCPageInfo;
 
 #define FIRST_THING_PAGE(a)     (((a)->base + GC_FLAGS_SIZE) & ~GC_PAGE_MASK)
@@ -262,9 +282,19 @@
 js_InitGC(JSRuntime *rt, uint32 maxbytes)
 {
     JS_ASSERT(sizeof(JSGCThing) == sizeof(JSGCPageInfo));
+#ifdef XSS /* Just some debuggingmessages */
+#ifdef XSS_DEBUG
+	printf("JSGCThing %d, JSObject %d\n",sizeof(JSGCThing),sizeof(JSObject));
+#endif /* XSS_DEBUG */
+#endif /* XSS */
     JS_ASSERT(sizeof(JSGCThing) >= sizeof(JSObject));
     JS_ASSERT(sizeof(JSGCThing) >= sizeof(JSString));
     JS_ASSERT(sizeof(JSGCThing) >= sizeof(jsdouble));
+#ifdef XSS /* more debuggingmessages */
+#ifdef XSS_DEBUG
+	printf("GC_FLAGS_SIZE %d, GC_PAGE_SIZE %d GC_THINGS_SHIFT %d\n",GC_FLAGS_SIZE,GC_PAGE_SIZE,GC_THINGS_SHIFT);
+#endif /* XSS_DEBUG */
+#endif /* XSS */
     JS_ASSERT(GC_FLAGS_SIZE >= GC_PAGE_SIZE);
     JS_ASSERT(sizeof(JSStackHeader) >= 2 * sizeof(jsval));
 
@@ -550,7 +580,12 @@
      */
     thing->next = NULL;
     thing->flagp = NULL;
+#ifdef XSS /* initialize taintstructure */
+	thing->taint.type = XSS_NOTYPE;
+	thing->taint.istainted = XSS_NOT_TAINTED;
+#endif /* XSS */
     JS_UNLOCK_GC(rt);
+
     return thing;
 }
 
Index: mozilla-src/mozilla/js/src/jsgc.h
diff -u mozilla-src/mozilla/js/src/jsgc.h:1.1 mozilla-src/mozilla/js/src/jsgc.h:1.5
--- mozilla-src/mozilla/js/src/jsgc.h:1.1	Sat Nov 13 12:38:59 2004
+++ mozilla-src/mozilla/js/src/jsgc.h	Tue Jul  5 18:40:19 2005
@@ -89,6 +89,17 @@
     uint32          count;
 };
 
+/*
+ * The private JSGCThing struct, which describes a gcFreeList element.
+ */
+#ifdef XSS /* add a taintstructure */
+struct JSGCThing {
+    JSGCThing   *next;
+    uint8       *flagp;
+	XSS_taint   taint;
+};
+#endif /* XSS */
+
 #if 1
 /*
  * Since we're forcing a GC from JS_GC anyway, don't bother wasting cycles
@@ -100,6 +111,7 @@
 #define GC_POKE(cx, oldval) ((cx)->runtime->gcPoke = JSVAL_IS_GCTHING(oldval))
 #endif
 
+
 extern intN
 js_ChangeExternalStringFinalizer(JSStringFinalizeOp oldop,
                                  JSStringFinalizeOp newop);
Index: mozilla-src/mozilla/js/src/jsinterp.c
diff -u mozilla-src/mozilla/js/src/jsinterp.c:1.1 mozilla-src/mozilla/js/src/jsinterp.c:1.70
--- mozilla-src/mozilla/js/src/jsinterp.c:1.1	Sat Nov 13 12:38:59 2004
+++ mozilla-src/mozilla/js/src/jsinterp.c	Wed Feb  8 15:33:34 2006
@@ -75,6 +75,18 @@
 #include "jsjit.h"
 #endif
 
+#ifdef XSS /* include necessary headerfile */
+#include "xsstaint.h"
+#include "xssdbg.h"
+#include "jsprvtd.h"
+#include "jsstddef.h"
+#include "jsscript.h"
+#include "jsemit.h"
+#ifndef XSS_SHELL
+#include "prlog.h"
+#endif
+#endif
+
 #ifdef DEBUG
 #define ASSERT_CACHE_IS_EMPTY(cache)                                          \
     JS_BEGIN_MACRO                                                            \
@@ -92,6 +104,10 @@
 #define ASSERT_CACHE_IS_EMPTY(cache) ((void)0)
 #endif
 
+
+
+
+
 void
 js_FlushPropertyCache(JSContext *cx)
 {
@@ -181,8 +197,18 @@
  * NB: PUSH_OPND uses sp, depth, and pc from its lexical environment.  See
  * js_Interpret for these local variables' declarations and uses.
  */
+#ifndef XSS /* original */
 #define PUSH_OPND(v)    (sp[-depth] = (jsval)pc, PUSH(v))
+#else /* XSS */
+#define PUSH_OPND(v)    (sp[-depth] = (jsval)pc, PUSH(v));XSS_SET_STACK_TAINTED_ON_OUTPUT(fp->scope_sp,(sp-1), taintoutput)
+#endif /* XSS */
+
+#ifndef XSS /* original */
 #define STORE_OPND(n,v) (sp[(n)-depth] = (jsval)pc, sp[n] = (v))
+#else /* XSS */
+#define STORE_OPND(n,v) (sp[(n)-depth] = (jsval)pc, sp[n] = (v));XSS_SET_STACK_TAINTED_ON_OUTPUT(fp->scope_sp,(sp+(n)), taintoutput)
+#endif /* XSS */
+
 #define POP_OPND()      POP()
 #define FETCH_OPND(n)   (sp[n])
 
@@ -191,6 +217,8 @@
  * Try to convert d to a jsint that fits in a jsval, otherwise GC-alloc space
  * for it and push a reference.
  */
+#ifndef XSS /* original */
+
 #define STORE_NUMBER(cx, n, d)                                                \
     JS_BEGIN_MACRO                                                            \
         jsint i_;                                                             \
@@ -206,6 +234,28 @@
         STORE_OPND(n, v_);                                                    \
     JS_END_MACRO
 
+#else /* XSS */
+
+#define STORE_NUMBER(cx, n, d)                                                \
+    JS_BEGIN_MACRO                                                            \
+        jsint i_;                                                             \
+        jsval v_;                                                             \
+                                                                              \
+        if (JSDOUBLE_IS_INT(d, i_) && INT_FITS_IN_JSVAL(i_)) {                \
+            ok = js_NewDoubleValue(cx, d, &v_);                               \
+            if (!ok)                                                          \
+                goto out;                                                     \
+        } else {                                                              \
+            ok = js_NewDoubleValue(cx, d, &v_);                               \
+            if (!ok)                                                          \
+                goto out;                                                     \
+        }                                                                     \
+        STORE_OPND(n, v_);                                                    \
+    JS_END_MACRO
+
+#endif /* XSS */
+
+
 #define FETCH_NUMBER(cx, n, d)                                                \
     JS_BEGIN_MACRO                                                            \
         jsval v_;                                                             \
@@ -229,8 +279,8 @@
 
 #define FETCH_UINT(cx, n, ui)                                                 \
     JS_BEGIN_MACRO                                                            \
-        jsval v_ = FETCH_OPND(n);                                             \
         jsint i_;                                                             \
+        jsval v_ = FETCH_OPND(n);                                             \
         if (JSVAL_IS_INT(v_) && (i_ = JSVAL_TO_INT(v_)) >= 0) {               \
             ui = (uint32) i_;                                                 \
         } else {                                                              \
@@ -245,6 +295,8 @@
  * Optimized conversion macros that test for the desired type in v before
  * homing sp and calling a conversion function.
  */
+#ifndef XSS /* original */
+
 #define VALUE_TO_NUMBER(cx, v, d)                                             \
     JS_BEGIN_MACRO                                                            \
         if (JSVAL_IS_INT(v)) {                                                \
@@ -259,6 +311,31 @@
         }                                                                     \
     JS_END_MACRO
 
+#else /* XSS if it is not a double, then create a new double and return it */
+
+#define VALUE_TO_NUMBER(cx, v, d)                                             \
+    JS_BEGIN_MACRO                                                            \
+		jsdouble *dp;														  \
+        if (JSVAL_IS_INT(v)) {                                                \
+            d = (jsdouble)JSVAL_TO_INT(v);                                    \
+			dp = js_NewDouble(cx, d);										  \
+            d = *dp;														  \
+		} else if (JSVAL_IS_DOUBLE(v)) {                                      \
+            d = *JSVAL_TO_DOUBLE(v);                                          \
+        } else {                                                              \
+            SAVE_SP(fp);                                                      \
+			dp = js_NewDouble(cx, 1.0);										  \
+            ok = js_ValueToNumber(cx, v, dp);								  \
+			d = *dp;														  \
+            if (!ok)                                                          \
+                goto out;                                                     \
+        }                                                                     \
+    JS_END_MACRO
+
+#endif /* XSS */
+
+#ifndef XSS /* original */
+
 #define POP_BOOLEAN(cx, v, b)                                                 \
     JS_BEGIN_MACRO                                                            \
         v = FETCH_OPND(-1);                                                   \
@@ -275,6 +352,29 @@
         sp--;                                                                 \
     JS_END_MACRO
 
+#else /* XSS */
+
+#define POP_BOOLEAN(cx, v, b)                                                 \
+    JS_BEGIN_MACRO                                                            \
+        v = FETCH_OPND(-1);                                                   \
+		XSS_TO_ORIG_JSVAL(v, xss_jsval);									  \
+        if (xss_jsval == JSVAL_NULL) {										  \
+            b = JS_FALSE;                                                     \
+        } else if (JSVAL_IS_BOOLEAN(v)) {                                     \
+            b = JSVAL_TO_BOOLEAN(v);                                          \
+        } else {                                                              \
+            SAVE_SP(fp);                                                      \
+            ok = js_ValueToBoolean(cx, v, &b);                                \
+            if (!ok)                                                          \
+                goto out;                                                     \
+        }                                                                     \
+        sp--;                                                                 \
+    JS_END_MACRO
+
+#endif /* XSS */
+
+#ifndef XSS /* original */
+
 #define VALUE_TO_OBJECT(cx, v, obj)                                           \
     JS_BEGIN_MACRO                                                            \
         if (JSVAL_IS_OBJECT(v) && v != JSVAL_NULL) {                          \
@@ -289,13 +389,41 @@
         }                                                                     \
     JS_END_MACRO
 
+#else /* XSS */
+
+#define VALUE_TO_OBJECT(cx, v, obj)                                           \
+    JS_BEGIN_MACRO                                                            \
+		XSS_TO_ORIG_JSVAL(v, xss_jsval);									  \
+        if (JSVAL_IS_OBJECT(xss_jsval) && xss_jsval != JSVAL_NULL) {          \
+            obj = JSVAL_TO_OBJECT(v);                                         \
+        } else {                                                              \
+            SAVE_SP(fp);                                                      \
+            obj = js_ValueToNonNullObject(cx, v);                             \
+            if (!obj) {                                                       \
+                ok = JS_FALSE;                                                \
+                goto out;                                                     \
+            }                                                                 \
+        }                                                                     \
+    JS_END_MACRO
+
+#endif /* XSS */
+
 #if JS_BUG_VOID_TOSTRING
+#ifndef XSS /* original */
 #define CHECK_VOID_TOSTRING(cx, v)                                            \
     if (JSVAL_IS_VOID(v)) {                                                   \
         JSString *str_;                                                       \
         str_ = ATOM_TO_STRING(cx->runtime->atomState.typeAtoms[JSTYPE_VOID]); \
         v = STRING_TO_JSVAL(str_);                                            \
     }
+#else /* XSS */
+#define CHECK_VOID_TOSTRING(cx, v)                                            \
+    if (XSS_JSVAL_GET_TYPE(v) == JSVAL_VOID) {                                \
+        JSString *str_;                                                       \
+        str_ = ATOM_TO_STRING(cx->runtime->atomState.typeAtoms[JSTYPE_VOID]); \
+        v = STRING_TO_JSVAL(str_);                                            \
+    }
+#endif /* XSS */
 #else
 #define CHECK_VOID_TOSTRING(cx, v)  ((void)0)
 #endif
@@ -626,6 +754,58 @@
     return JS_TRUE;
 }
 
+#ifndef XSS_DEBUG
+
+/* create a new scope or merge it with the current node */
+#define XSS_NEW_SCOPE(prevnode, startpc, endpc, settainted)			\
+	/* create a new scope */										\
+	xss_temp_scope = XSS_SCOPE_CREATE;								\
+	XSS_SCOPE_INIT(xss_temp_scope, XSS_NOT_TAINTED);				\
+    XSS_SCOPE_SET(prevnode, xss_temp_scope, settainted, startpc, endpc, op); \
+	/* advance scope_current */										\
+	XSS_SCOPE_ADVANCE_NEXT(prevnode);
+
+/* free the scopes */
+#define XSS_SCOPES_FREE_ALL(framefp)								\
+	if (framefp) {													\
+		XSS_SCOPE_FREE(framefp->scope_root, framefp->scope_current);	\
+	}
+
+#else /* XSS_DEBUG */
+
+/* create a new scope or merge it with the current node */
+#define XSS_NEW_SCOPE(prevnode, startpc, endpc, settainted)			\
+	fp->scope_count++;												\
+	if (xssGetDoLog() == XSS_DO_LOG)								\
+		fprintf(stderr, "+scopes: %d\n", fp->scope_count);			\
+	/* create a new scope */										\
+	xss_temp_scope = XSS_SCOPE_CREATE;								\
+	XSS_SCOPE_INIT(xss_temp_scope, XSS_NOT_TAINTED);				\
+    XSS_SCOPE_SET(prevnode, xss_temp_scope, settainted, startpc, endpc, op);	\
+	/* advance scope_current */										\
+	XSS_SCOPE_ADVANCE_NEXT(prevnode);								\
+	XSS_PRINTDEBUG_STR("added ");									\
+	XSS_PRINT_SCOPE(tracefp, script, prevnode)						\
+	XSS_PRINTDEBUG_STR("\n");
+
+/* free the scopes */
+#define XSS_SCOPES_FREE_ALL(framefp)								\
+	if (framefp) {													\
+		int recount = 0;											\
+		recount = XSS_SCOPE_FREE(framefp->scope_root, framefp->scope_current);	\
+		if (recount != framefp->scope_count) {						\
+			XSS_PRINTDEBUG_STR("difference! to free: ");			\
+			XSS_PRINTDEBUG_INT(framefp->scope_count);				\
+			XSS_PRINTDEBUG_STR(" freed: ");							\
+			XSS_PRINTDEBUG_INT(recount);							\
+			XSS_PRINTDEBUG_STR("\n");								\
+		}															\
+		framefp->scope_count = 0;									\
+	}
+
+#endif /* XSS_DEBUG */
+
+
 /*
  * Find a function reference and its 'this' object implicit first parameter
  * under argc arguments on cx's stack, and call the function.  Push missing
@@ -650,6 +830,17 @@
     intN nslots, nalloc, surplus;
     JSInterpreterHook hook;
     void *hookData;
+#ifdef XSS /* XSS */
+	int xss_inited;
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+	FILE *tracefp = stderr;
+	int old_xss_do_log = 0;
+#endif /* XSS_DEBUG */
+#ifndef XSS_SHELL
+	int old_xss_debug_log = 0;
+#endif /* XSS_SHELL */
+
+#endif /* XSS */
 
     /* Mark the top of stack and load frequently-used registers. */
     mark = JS_ARENA_MARK(&cx->stackPool);
@@ -841,8 +1032,20 @@
     frame.sharpArray = NULL;
     frame.dormantNext = NULL;
     frame.objAtomMap = NULL;
+#ifdef XSS /* XSS */
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+	if (xssGetDoLog() == XSS_DO_LOG)
+		fprintf(stderr, "js_Invoke: t = ");
+#endif /* XSS_DEBUG */
+	if (XSS_SCOPE_ISTAINTED(fp->scope_current)) {
+		XSS_SCOPE_INIT_ROOT(frame, XSS_TAINTED, fp->taint_retval);
+	} else {
+		XSS_SCOPE_INIT_ROOT(frame, XSS_NOT_TAINTED, fp->taint_retval);
+	}
+	xss_inited = 1;
+#endif /* XSS */
 
-    /* Compute the 'this' parameter and store it in frame as frame.thisp. */
+	/* Compute the 'this' parameter and store it in frame as frame.thisp. */
     ok = ComputeThis(cx, thisp, &frame);
     if (!ok)
         goto out2;
@@ -938,7 +1141,49 @@
         /* If native, use caller varobj and scopeChain for eval. */
         frame.varobj = fp->varobj;
         frame.scopeChain = fp->scopeChain;
-        ok = native(cx, frame.thisp, argc, frame.argv, &frame.rval);
+#ifdef XSS /* XSS */
+#ifndef XSS_SHELL
+		old_xss_debug_log = PR_XSS_DEBUG_LOG();
+#endif /* XSS_SHELL */
+		/* save the script-value */
+		do {
+			JSScript *script = fp->script;
+			if (script && script->filename) {
+#ifdef XSS_DEBUG
+#ifndef XSS_SHELL
+				if (strstr(script->filename,"http:") != NULL) {
+					old_xss_do_log = xssGetDoLog();
+
+					xssSetDoLog(XSS_DO_LOG);
+					fprintf(stderr, "script = %s\n", script->filename);
+				}
+#endif /* XSS_SHELL */
+#endif /* XSS_DEBUG */
+#ifndef XSS_SHELL
+				if (strstr(script->filename,"chrome:") == NULL) {
+					PR_XSS_SET_DEBUG_LOG(1);
+					PR_XSS_SET_DEBUG_FILENAME((char *)script->filename);
+				}
+#endif /* XSS_SHELL */
+#ifdef XSS_DEBUG
+#ifdef XSS_SHELL
+				old_xss_do_log = xssGetDoLog();
+				xssSetDoLog(XSS_DO_LOG);
+				fprintf(stderr, "script = %s\n", script->filename);
+#endif /* XSS_SHELL */
+#endif /* XSS_DEBUG */
+			}
+		} while (0); 
+#endif /* XSS */
+		ok = native(cx, frame.thisp, argc, frame.argv, &frame.rval);
+#ifdef XSS /* XSS */
+#ifndef XSS_SHELL
+		PR_XSS_SET_DEBUG_LOG(old_xss_debug_log);
+#endif /* XSS_SHELL */
+#ifdef XSS_DEBUG
+		xssSetDoLog(old_xss_do_log);
+#endif /* XSS_DEBUG */
+#endif /* XSS */
         JS_RUNTIME_METER(cx->runtime, nativeCalls);
     } else if (script) {
         /* Use parent scope so js_GetCallObject can find the right "Call". */
@@ -963,7 +1208,8 @@
     }
 
 out:
-    if (hookData) {
+
+	if (hookData) {
         hook = cx->runtime->callHook;
         if (hook)
             hook(cx, &frame, JS_FALSE, &ok, hookData);
@@ -979,6 +1225,12 @@
         ok &= js_PutArgsObject(cx, &frame);
 #endif
 
+#ifdef XSS /* XSS */
+	if (xss_inited == 1) {
+		XSS_SCOPES_FREE_ALL((&frame));
+	}
+#endif /* XSS */
+
     /* Restore cx->fp now that we're done releasing frame objects. */
     cx->fp = fp;
 
@@ -1087,6 +1339,12 @@
     JSBool ok;
     JSInterpreterHook hook;
     void *hookData;
+#ifdef XSS /* XSS */
+	int xss_inited;
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+	FILE *tracefp = stderr;
+#endif /* XSS_DEBUG */
+#endif /* XSS */
 
     hook = cx->runtime->executeHook;
     hookData = NULL;
@@ -1128,6 +1386,22 @@
     frame.flags = special;
     frame.dormantNext = NULL;
     frame.objAtomMap = NULL;
+#ifdef XSS /* XSS */
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+	if (xssGetDoLog() == XSS_DO_LOG)
+		fprintf(stderr, "js_Execute: t = ");
+#endif /* XSS_DEBUG */
+	if ((cx->fp != NULL) && XSS_SCOPE_ISTAINTED(cx->fp->scope_current)) {
+		XSS_SCOPE_INIT_ROOT(frame, XSS_TAINTED, cx->fp->taint_retval);
+	} else {
+		if (cx->fp != NULL) {
+			XSS_SCOPE_INIT_ROOT(frame, XSS_NOT_TAINTED, cx->fp->taint_retval);
+		} else {
+			XSS_SCOPE_INIT_ROOT(frame, XSS_NOT_TAINTED, XSS_FALSE);
+		}
+	}
+	xss_inited = 1;
+#endif /* XSS */
 
     /*
      * Here we wrap the call to js_Interpret with code to (conditionally)
@@ -1164,6 +1438,13 @@
         if (hook)
             hook(cx, &frame, JS_FALSE, &ok, hookData);
     }
+
+#ifdef XSS /* XSS */
+	if (xss_inited == 1) {
+		XSS_SCOPES_FREE_ALL(cx->fp);
+	}
+#endif /* XSS */
+
     cx->fp = oldfp;
 
     if (oldfp && oldfp != down) {
@@ -1265,6 +1546,22 @@
         } else {
             prop = NULL;
         }
+#ifdef XSS /* XSS */
+		/* taint the value if the scope is tainted */
+		if ((cx->fp->scope_current != NULL) && 
+			((cx->fp->scope_current->istainted) || (cx->fp->scope_current->prev_istainted))) {
+
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+			FILE *tracefp;
+			tracefp = stderr;
+#endif /* XSS_DEBUG */
+
+			if (!XSS_JSVAL_HAS_TAINTSTRUCTURE(value)) {
+				XSS_ADD_TAINTSTRUCTURE(value);
+			}
+			XSS_JSVAL_SET_ISTAINTED(XSS_TAINTED, value);			
+		}
+#endif /* XSS */
         if (prop && target == obj2) {
             ok = OBJ_SET_PROPERTY(cx, target, id, &value);
         } else {
@@ -1353,6 +1650,9 @@
 }
 
 #ifndef MAX_INTERP_LEVEL
+
+#ifndef XSS /* original */
+
 #if defined(XP_OS2)
 #define MAX_INTERP_LEVEL 250
 #elif defined _MSC_VER && _MSC_VER <= 800
@@ -1360,6 +1660,12 @@
 #else
 #define MAX_INTERP_LEVEL 1000
 #endif
+
+#else /* XSS */
+/* because scopes add data to stack */
+#define MAX_INTERP_LEVEL 64
+#endif /* XSS */
+
 #endif
 
 #define MAX_INLINE_CALL_COUNT 1000
@@ -1375,6 +1681,14 @@
     JSVersion currentVersion, originalVersion;
     JSBranchCallback onbranch;
     JSBool ok, cond;
+#ifdef XSS /* add some internal variables*/
+	jsdouble doubleval;
+	XSS_taint* xss_taint;
+	int taintoutput, taintout_var, taintout_stack, taintout_scope, taintoutput_temp, taint_retval_old;
+	jsval xss_jsval, xss_jsval2;
+	XSS_scope *xss_temp_scope;
+	jsbytecode *xss_pc;
+#endif /* XSS */
     JSTrapHandler interruptHandler;
     jsint depth, len;
     jsval *sp, *newsp;
@@ -1410,6 +1724,71 @@
     JSPropertyOp getter, setter;
 #endif
     int stackDummy;
+#ifdef XSS /* XSS */
+	int xss_inited;
+#endif /* XSS */
+
+#ifdef XSS
+
+	taintoutput = XSS_NOT_TAINTED;
+	/* taint the root scope if the result or the old scope is tainted */
+	if (XSS_JSVAL_IS_TAINTED(*result)) {
+		taintoutput = XSS_TAINTED;
+	}
+	if ((cx->fp != NULL) && XSS_SCOPE_ISTAINTED(cx->fp->scope_current)) {
+		taintoutput = XSS_TAINTED;
+	}
+
+
+#define XSS_TAINT_JSVAL_ON_OUTPUT(myjsval)								\
+	/* check if tainting is necessary */							    \
+	if (taintoutput == XSS_TAINTED) {									\
+		/* add taintstructure if necessary */							\
+		if (!XSS_JSVAL_HAS_TAINTSTRUCTURE(myjsval)) {					\
+			XSS_ADD_TAINTSTRUCTURE(myjsval);							\
+		}																\
+		/* taint value */												\
+		XSS_JSVAL_SET_ISTAINTED(XSS_TAINTED, myjsval);					\
+	}
+
+/* taint if the stackelement is tainted at the given depth (n) */
+#define XSS_TAINTOUTPUT_ON_STACK										\
+			taintout_stack = XSS_SCOPE_STACK_IS_TAINTED(sp, fp->scope_sp)
+
+/* set check scope */
+#define XSS_TAINTOUTPUT_ON_SCOPE										\
+			/* taint if the scope is tainted */							\
+			taintout_scope = XSS_SCOPE_ISTAINTED(fp->scope_current)
+
+/* check myval */
+#define XSS_TAINTOUTPUT_ON_VALUE(myval)									\
+			/* taint if the condition is tainted or the scope */		\
+			if (JSVAL_IS_OBJECT(myval)) {								\
+				if (JSVAL_TO_OBJECT(myval) != cx->globalObject) {		\
+					taintout_var = XSS_JSVAL_IS_TAINTED(myval)			\
+						|| taintout_var;								\
+				/* global Object is never tainted */					\
+				} else {												\
+					XSS_JSVAL_SET_ISTAINTED(XSS_NOT_TAINTED, myval);	\
+				}														\
+			} else {													\
+					taintout_var = XSS_JSVAL_IS_TAINTED(myval)			\
+						|| taintout_var;								\
+			}
+
+/* set the taintouput-var */
+#define XSS_CALC_TAINTOUTPUT											\
+	taintoutput = taintout_stack || taintout_scope || taintout_var;		\
+	if (xssGetDoLog() == XSS_DO_LOG) {									\
+		fprintf(stderr, "stack = %d scope = %d var = %d taintoutput = %d globalObject = %d\n", \
+			taintout_stack, taintout_scope, taintout_var, taintoutput, (uint)  cx->globalObject);	\
+	}																	\
+
+
+#ifdef XSS_DEBUG /* add tracing to stderr */
+	cx->tracefp = stderr;
+#endif /* XSS_DEBUG */
+#endif /* XSS */
 
     *result = JSVAL_VOID;
     rt = cx->runtime;
@@ -1418,6 +1797,45 @@
     fp = cx->fp;
     script = fp->script;
 
+#ifdef XSS /* XSS */
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+	setbuf(stderr,NULL);
+	do {
+		JSScript *script = fp->script;
+		if (script && script->filename) {
+#ifndef XSS_SHELL /* XSS_SHELL */
+			if (strstr(script->filename,"http:") != NULL) {
+				xssSetDoLog(XSS_DO_LOG);
+				fprintf(stderr, "script = %s\n", script->filename);
+			}
+#endif /* XSS_SHELL */
+		}
+	} while (0); 
+#ifdef XSS_SHELL /* XSS_SHELL */
+	xssSetDoLog(XSS_DO_LOG);
+	fprintf(stderr, "script = %s\n", script->filename);
+#endif /* XSS_SHELL */
+	if (xssGetDoLog() == XSS_DO_LOG)
+		fprintf(stderr, "js_Interpret: ");
+#endif /* XSS_DEBUG */
+	xss_inited = 0;
+	if (fp) {
+		/* initialize the xss-scope */
+		if (fp->scope_root == 0) {
+			XSS_SCOPE_INIT_ROOT((*fp),taintoutput, fp->taint_retval);
+			xss_inited = 1;
+		}
+
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+		if (xssGetDoLog() == XSS_DO_LOG) {
+			fprintf(stderr, "init fp %u\n", fp->scope_root);
+			fprintf(stderr, "+scopes: %d\n", fp->scope_count);
+			XSS_PRINT_SCOPE(cx->tracefp, script, fp->scope_current);
+		}
+#endif /* XSS_DEBUG */
+	}
+#endif /* XSS */
+
     /* Count of JS function calls that nest in this C js_Interpret frame. */
     inlineCallCount = 0;
 
@@ -1469,7 +1887,21 @@
     depth = (jsint) script->depth;
     len = -1;
 
-    /* Check for too much js_Interpret nesting, or too deep a C stack. */
+#ifdef XSS
+#ifdef XSS_DEBUG
+	if (xssGetDoLog() == XSS_DO_LOG) {
+		fprintf(stderr, "---------------------------------------------------------------------\n");
+		fprintf(stderr, "start of sourcecode\n");
+
+		js_Disassemble(cx,script,JS_TRUE, stderr);
+
+		fprintf(stderr, "end of sourcecode\n");
+		fprintf(stderr, "---------------------------------------------------------------------\n");
+	}
+#endif /* XSS_DEBUG */
+#endif /* XSS */
+
+	/* Check for too much js_Interpret nesting, or too deep a C stack. */
     if (++cx->interpLevel == MAX_INTERP_LEVEL ||
         !JS_CHECK_STACK_SIZE(cx, stackDummy)) {
         JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_OVER_RECURSED);
@@ -1497,7 +1929,54 @@
         len = cs->length;
 
 #ifdef DEBUG
-        tracefp = (FILE *) cx->tracefp;
+		tracefp = (FILE *) cx->tracefp;
+#endif
+#ifdef XSS /* XSS */
+		XSS_RESET_TAINTOUTPUT(taintoutput);
+		XSS_RESET_TAINTOUTPUT(taintout_scope);
+		XSS_RESET_TAINTOUTPUT(taintout_var);
+		XSS_RESET_TAINTOUTPUT(taintout_stack);
+#ifdef XSS_DEBUG
+		if (xssGetDoLog() == XSS_DO_LOG) {
+			XSS_PRINTDEBUG_STR("\n");
+			if (fp->scope_root == NULL) {
+				XSS_PRINTDEBUG_STR("scope_root is null!\n");
+			}
+		}
+#endif /* XSS_DEBUG */
+		while ((fp->scope_root != fp->scope_current) 
+			&& !XSS_SCOPE_PC_IN_CURRENT(pc, fp->scope_current)) {
+#ifdef XSS_DEBUG
+			if (xssGetDoLog() == XSS_DO_LOG) {
+				XSS_PRINTDEBUG_STR("removing ");
+				XSS_PRINT_SCOPE(tracefp, script, fp->scope_current);
+				fprintf(stderr, "before count: %d\n", fp->scope_count);
+				XSS_PRINT_SCOPE(stderr, script, fp->scope_current);
+			}
+#endif /* XSS_DEBUG */
+			fp->scope_current = XSS_SCOPE_REMOVE(fp->scope_current);
+			if (fp->scope_current == NULL) {
+				fp->scope_current = fp->scope_root;
+#ifdef XSS_DEBUG
+				XSS_PRINTDEBUG_STR("fp->scope_current is null!\n");
+#endif /* XSS_DEBUG */
+			}
+#ifdef XSS_DEBUG
+			fp->scope_count--;
+			if (xssGetDoLog() == XSS_DO_LOG) {
+				XSS_PRINTDEBUG_STR("after ");
+				XSS_PRINT_SCOPE(stderr, script, fp->scope_current);
+				fprintf(stderr, "-scopes: %d\n", fp->scope_count);
+			}
+#endif /* XSS_DEBUG */
+		}
+		XSS_SCOPE_STACK_REMOVE(sp, fp->scope_sp);
+#endif /* XSS */
+
+#ifdef XSS_DEBUG
+		if (xssGetDoLog() == XSS_DO_LOG) {
+#endif /* XSS */
+#ifdef DEBUG
         if (tracefp) {
             intN nuses, n;
 
@@ -1511,17 +1990,25 @@
                 for (n = -nuses; n < 0; n++) {
                     str = js_DecompileValueGenerator(cx, n, sp[n], NULL);
                     if (str != NULL) {
-                        fprintf(tracefp, "%s %s",
-                                (n == -nuses) ? "  inputs:" : ",",
-                                JS_GetStringBytes(str));
+                        fprintf(tracefp, "%s [%d] %s(%u @ %x)", 
+                                (n == -nuses) ? "  inputs:" : ",", n, 
+                                JS_GetStringBytes(str), (uint) sp[n], (uint) sp+(n));
+#ifdef XSS
+#ifdef XSS_DEBUG
+						XSS_PRINT_GC_TAINT(sp[n]);
+#endif /* XSS_DEBUG */
+#endif /* XSS */
                     }
                 }
                 fprintf(tracefp, " @ %d\n", sp - fp->spbase);
             }
         }
 #endif
+#ifdef XSS_DEBUG
+		}
+#endif /* XSS */
 
-        if (interruptHandler) {
+		if (interruptHandler) {
             SAVE_SP(fp);
             switch (interruptHandler(cx, script, pc, &rval,
                                      rt->interruptHandlerData)) {
@@ -1545,26 +2032,65 @@
             LOAD_INTERRUPT_HANDLER(rt);
         }
 
+#ifdef XSS /* XSS */
+#ifdef XSS_DEBUG
+		if (xssGetDoLog() == XSS_DO_LOG) {
+			if (XSS_SCOPE_PC_IN_CURRENT(pc, fp->scope_current)) {
+				XSS_PRINT_SCOPE(tracefp, script, fp->scope_current);
+			}
+		}
+#endif /* XSS_DEBUG */
+#endif /* XSS */
+		
         switch (op) {
+		  /*
+		   * Just a no-operation
+		   * e.g. used for do {} while (false);
+		   */
           case JSOP_NOP:
             break;
 
+		  /*
+		   * Groups expressions
+		   * e.g. var x = (2 + y);
+		   */
           case JSOP_GROUP:
             obj = NULL;
             break;
 
+		  /*
+		   * pushes void on the stack
+		   * e.g. before: for (x in {}) {}
+		   */
           case JSOP_PUSH:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(JSVAL_VOID);
             break;
 
+		  /*
+		   * pops the element from the stack
+		   * e.g. after: var a = "2";
+		   */
           case JSOP_POP:
             sp--;
             break;
 
+		  /*
+		   * pops 2 elements from the stack
+		   * e.g. after: for (x in {}) {}
+		   */
           case JSOP_POP2:
             sp -= 2;
             break;
 
+		  /*
+		   * Swaps 2 stackelements. no longer needed.
+		   */
           case JSOP_SWAP:
             /*
              * N.B. JSOP_SWAP doesn't swap the corresponding generating pcs
@@ -1575,11 +2101,51 @@
             sp[-2] = ltmp;
             break;
 
+		  /*
+		   * pops the value from the stack and sets it as script-result
+		   * e.g.: "end";
+		   */
           case JSOP_POPV:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             *result = POP_OPND();
-            break;
-
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(*result);
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(*result);
+
+			/* get the real type/value, if this isn't a internal call */
+			if (fp->taint_retval != XSS_TRUE) {
+				XSS_TO_ORIG_JSVAL(*result, *result);
+			}
+#endif /* XSS */
+            break;
+
+		  /*
+		   * Marks the beginning of a with-statement.
+		   * e.g. var dut = { }; with (dut) {};
+		   */
           case JSOP_ENTERWITH:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_CALC_TAINTOUTPUT;
+
+			JS_BEGIN_MACRO			  
+			  jssrcnote *sn;
+			  ptrdiff_t len;
+			  /* get the length of the with-statement */
+              sn = js_GetSrcNote(fp->script, pc);
+              len = js_GetSrcNoteOffset(sn, 0);
+			  /* and create a new scope over the whole with-statement */
+			  XSS_NEW_SCOPE(fp->scope_current, pc, pc + len, taintoutput);
+		    JS_END_MACRO;
+#endif /* XSS */
             rval = FETCH_OPND(-1);
             VALUE_TO_OBJECT(cx, rval, obj);
             withobj = js_NewObject(cx, &js_WithClass, obj, fp->scopeChain);
@@ -1589,6 +2155,10 @@
             STORE_OPND(-1, OBJECT_TO_JSVAL(withobj));
             break;
 
+		  /*
+		   * Marks the end of a with-statement
+		   * e.g. var dut = {}; with (dut) {};
+		   */
           case JSOP_LEAVEWITH:
             rval = POP_OPND();
             JS_ASSERT(JSVAL_IS_OBJECT(rval));
@@ -1600,16 +2170,51 @@
             fp->scopeChain = JSVAL_TO_OBJECT(rval);
             break;
 
+		  /*
+		   * Sets returnval in try-catch-finally-statements
+		   * e.g. 	try {} catch (e) { return "1";} finally { return "2";}
+		   */
           case JSOP_SETRVAL:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             fp->rval = POP_OPND();
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(fp->rval);
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(fp->rval);
+#endif /* XSS */
             break;
 
+		  
+		  /*
+		   * Sets returnvalue
+		   * e.g. return x;
+		   */
           case JSOP_RETURN:
             CHECK_BRANCH(-1);
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             fp->rval = POP_OPND();
             /* FALL THROUGH */
 
+		  /*
+		   * sets returnvalue in try-catch-finally-statements
+		   * e.g. 	try {} catch (e) { return "1";} finally { return "2";}
+		   */
           case JSOP_RETRVAL:    /* fp->rval already set */
+#ifdef XSS /* XSS */
+			if (op == JSOP_RETRVAL) {
+				/* check if the stack is tainted or the scope */
+				XSS_TAINTOUTPUT_ON_STACK;
+				XSS_TAINTOUTPUT_ON_SCOPE;
+			}
+#endif /* XSS */
             if (inlineCallCount)
           inline_return:
             {
@@ -1639,12 +2244,26 @@
                 vp = fp->argv - 2;
                 *vp = fp->rval;
 
+#ifdef XSS /* XSS */
+				XSS_TAINTOUTPUT_ON_VALUE(*vp);
+				XSS_CALC_TAINTOUTPUT;
+				XSS_TAINT_JSVAL_ON_OUTPUT(*vp);
+				XSS_SCOPES_FREE_ALL(fp);
+#endif /* XSS */
                 /* Restore cx->fp and release the inline frame's space. */
                 cx->fp = fp = fp->down;
+#ifdef XSS /* XSS */
+				if (fp->scope_root == NULL) {
+					XSS_SCOPE_INIT_ROOT((*fp), XSS_NOT_TAINTED, XSS_TRUE);
+				}
+#endif /* XSS */
                 JS_ARENA_RELEASE(&cx->stackPool, ifp->mark);
 
                 /* Restore sp to point just above the return value. */
                 fp->sp = vp + 1;
+#ifdef XSS /* XSS */
+				XSS_SET_STACK_TAINTED_ON_OUTPUT(fp->scope_sp,vp,taintoutput);
+#endif /* XSS */
                 RESTORE_SP(fp);
 
                 /* Restore the calling script's interpreter registers. */
@@ -1673,37 +2292,119 @@
             (void) POP();
             /* FALL THROUGH */
 #endif
+		  /*
+		   * an unconditional jump (generated by the engine)
+		   */
           case JSOP_GOTO:
             len = GET_JUMP_OFFSET(pc);
             CHECK_BRANCH(len);
             break;
 
+		  /*
+		   * jump on a condition
+		   * e.g. if (true) {} else {};
+		   */
           case JSOP_IFEQ:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
-            if (cond == JS_FALSE) {
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* new taint scope
+			   calculate then-branch */
+			xss_pc = pc + GET_JUMP_OFFSET(pc);
+			/* add else-branch (if exists) */
+			if (((JSOp) *(xss_pc-3)) == JSOP_GOTO) {
+				/* if it is a while then the new xss_pc is back not forward */
+				if (GET_JUMP_OFFSET(xss_pc-3) > 0) {
+					xss_pc = xss_pc + GET_JUMP_OFFSET(xss_pc-3);
+				}
+			}
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+
+#endif /* XSS */
+			if (cond == JS_FALSE) {
                 len = GET_JUMP_OFFSET(pc);
                 CHECK_BRANCH(len);
             }
             break;
 
+		  /*
+		   * Jump if condition is false
+		   * used in e.g. do {} while {true};
+		   */
           case JSOP_IFNE:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* new taint scope. the scope from the last time is already removed */
+			xss_pc = pc + GET_JUMP_OFFSET(pc);
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);				
+#endif /* XSS */
             if (cond != JS_FALSE) {
                 len = GET_JUMP_OFFSET(pc);
                 CHECK_BRANCH(len);
             }
             break;
 
+		  /*
+		   * check boolean-or-expressions. it stops evaluating on
+		   * the first "true"-value
+		   * e.g. var a = 0 || b || 0; // stops on b if b == true
+		   */
           case JSOP_OR:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* new scope */
+			xss_pc = pc + GET_JUMP_OFFSET(pc);
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+#endif /* XSS */
             if (cond == JS_TRUE) {
                 len = GET_JUMP_OFFSET(pc);
                 PUSH_OPND(rval);
             }
             break;
 
+		  /*
+		   * check boolean-and-expressions. it stops evaluating on
+		   * the first "false"-value
+		   * e.g. var a = 1 && b && 1; // stops on b if b == false
+		   */
           case JSOP_AND:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+			/* new scope */
+			xss_pc = pc + GET_JUMP_OFFSET(pc);
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+#endif /* XSS */
+
             if (cond == JS_FALSE) {
                 len = GET_JUMP_OFFSET(pc);
                 PUSH_OPND(rval);
@@ -1716,45 +2417,139 @@
             (void) POP();
             /* FALL THROUGH */
 #endif
+		  /*
+		   * an unconditional extended jump (generated by the engine)
+		   */
           case JSOP_GOTOX:
             len = GET_JUMPX_OFFSET(pc);
             CHECK_BRANCH(len);
             break;
 
+		  /*
+		   * (extended) jump on a condition 
+		   * e.g. if (true) {} else {};
+		   */
           case JSOP_IFEQX:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* new taint scope
+			   calculate then-branch */
+			xss_pc = pc + GET_JUMPX_OFFSET(pc);
+			/* add else-branch (if exists) */
+			if (((JSOp) *(xss_pc-3)) == JSOP_GOTO) {
+				/* if it is a while then the new xss_pc is back not forward */
+				if (GET_JUMPX_OFFSET(xss_pc-3) > 0) {
+					xss_pc = xss_pc + GET_JUMPX_OFFSET(xss_pc-3);
+				}
+			}
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+#endif /* XSS */
             if (cond == JS_FALSE) {
                 len = GET_JUMPX_OFFSET(pc);
                 CHECK_BRANCH(len);
             }
             break;
 
+		  /*
+		   * (extended) jump if condition is false
+		   * used in e.g. do {} while {true};
+		   */
           case JSOP_IFNEX:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* new taint scope. the scope from the last time is already removed */
+			xss_pc = pc + GET_JUMPX_OFFSET(pc);
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+#endif /* XSS */
             if (cond != JS_FALSE) {
                 len = GET_JUMPX_OFFSET(pc);
                 CHECK_BRANCH(len);
             }
             break;
 
+		  /*
+		   * check boolean-or-expressions. it stops evaluating on
+		   * the first "true"-value
+		   * e.g. var a = 0 || b || 0; // stops on b if b == true
+		   */
           case JSOP_ORX:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* new scope */
+			xss_pc = pc + GET_JUMPX_OFFSET(pc);
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+#endif /* XSS */
             if (cond == JS_TRUE) {
                 len = GET_JUMPX_OFFSET(pc);
                 PUSH_OPND(rval);
             }
             break;
 
+		  /*
+		   * check boolean-and-expressions. it stops evaluating on
+		   * the first "false"-value
+		   * e.g. var a = 1 && b && 1; // stops on b if b == false
+		   */
           case JSOP_ANDX:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* new scope */
+			xss_pc = pc + GET_JUMPX_OFFSET(pc);
+			XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+#endif /* XSS */
             if (cond == JS_FALSE) {
                 len = GET_JUMPX_OFFSET(pc);
                 PUSH_OPND(rval);
             }
             break;
 
+		  /*
+		   * Converts stackelement into object
+		   * e.g. for (p in Array) {}
+		   */
           case JSOP_TOOBJECT:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             SAVE_SP(fp);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             ok = js_ValueToObject(cx, FETCH_OPND(-1), &obj);
             if (!ok)
                 goto out;
@@ -1785,7 +2580,16 @@
     JS_END_MACRO
 
 #if JS_HAS_IN_OPERATOR
+		  /*
+		   * for the "in" operator (not the "in" in a for-in-loop!)
+		   * e.g. var a = "foo" in x;
+		   */
           case JSOP_IN:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             rval = FETCH_OPND(-1);
             if (JSVAL_IS_PRIMITIVE(rval)) {
                 str = js_DecompileValueGenerator(cx, -1, rval, NULL);
@@ -1803,12 +2607,22 @@
             ok = OBJ_LOOKUP_PROPERTY(cx, obj, id, &obj2, &prop);
             if (!ok)
                 goto out;
+#ifdef XSS /* XSS */
+			OBJ_GET_PROPERTY(cx,obj,id, &xss_jsval);
+			/* check if the output has to be tainted */
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             STORE_OPND(-1, BOOLEAN_TO_JSVAL(prop != NULL));
             if (prop)
                 OBJ_DROP_PROPERTY(cx, obj2, prop);
             break;
 #endif /* JS_HAS_IN_OPERATOR */
 
+		  /*
+		   * for-in-loop with a property
+		   * e.g. var ob = { 'x' : 0 };for (ob.x in dut){};
+		   */
           case JSOP_FORPROP:
             /*
              * Handle JSOP_FORPROP first, so the cost of the goto do_forinloop
@@ -1820,6 +2634,10 @@
             i = -2;
             goto do_forinloop;
 
+		  /*
+		   * for-in-loop with a name
+		   * e.g. var test = 0; for (test in dut) {}
+		   */
           case JSOP_FORNAME:
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
@@ -1841,7 +2659,15 @@
             lval = OBJECT_TO_JSVAL(obj);
             /* FALL THROUGH */
 
+		  /*
+		   * for-in-loop with an function-argument
+		   * e.g. function test (a) { ... for (a in dut) { ... }}
+		   */
           case JSOP_FORARG:
+		  /*
+		   * for-in-loop with an function-variable
+		   * e.g. function test () { var a; ... for (a in dut) { ... }}
+		   */
           case JSOP_FORVAR:
             /*
              * JSOP_FORARG and JSOP_FORVAR don't require any lval computation
@@ -1850,6 +2676,10 @@
              */
             /* FALL THROUGH */
 
+		  /*
+		   * for-in-loop with an element
+		   * e.g. for (ob[0] in dut)
+		   */
           case JSOP_FORELEM:
             /*
              * JSOP_FORELEM simply initializes or updates the iteration state
@@ -1864,6 +2694,12 @@
              * ECMA-compatible for/in evals the object just once, before loop.
              * Bad old bytecodes (since removed) did it on every iteration.
              */
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_TAINTOUTPUT_ON_VALUE(sp[i]);
+#endif /* XSS */
             obj = JSVAL_TO_OBJECT(sp[i]);
 
             /* If the thing to the right of 'in' has no properties, break. */
@@ -1889,7 +2725,11 @@
             rval = *vp;
 
             /* Is this the first iteration ? */
+#ifndef XSS /* original */
             if (JSVAL_IS_VOID(rval)) {
+#else /* XSS */
+            if (XSS_JSVAL_GET_TYPE(rval) == JSVAL_VOID) {
+#endif /* XSS */
                 /* Yes, create a new JSObject to hold the iterator state */
                 propobj = js_NewObject(cx, &prop_iterator_class, NULL, obj);
                 if (!propobj) {
@@ -1998,6 +2838,15 @@
                 rval = STRING_TO_JSVAL(str);
             }
 
+#ifdef XSS /* XSS */
+			XSS_CALC_TAINTOUTPUT;
+			if (!XSS_JSVAL_HAS_TAINTSTRUCTURE(rval)) {
+				XSS_ADD_TAINTSTRUCTURE(rval);
+			}
+			XSS_JSVAL_SET_ISTAINTED(XSS_NOT_TAINTED, rval);
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+#endif /* XSS */
+
             switch (op) {
               case JSOP_FORARG:
                 slot = GET_ARGNO(pc);
@@ -2022,6 +2871,12 @@
 
                 /* Set the variable obj[id] to refer to rval. */
                 fp->flags |= JSFRAME_ASSIGNING;
+#ifdef XSS /* XSS */
+				/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+				if (taintoutput == XSS_TAINTED) {
+					XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+				}
+#endif /* XSS */
                 ok = OBJ_SET_PROPERTY(cx, obj, id, &rval);
                 fp->flags &= ~JSFRAME_ASSIGNING;
                 if (!ok)
@@ -2034,19 +2889,42 @@
 
           end_forinloop:
             sp += i + 1;
+#ifdef XSS /* XSS */
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(rval);
             break;
 
+		  /*
+		   * Duplicates the topmost stackelement.
+		   * Used for properties and assignments, that also use the lval
+		   * e.g. t.test += 1;
+		   */
           case JSOP_DUP:
             JS_ASSERT(sp > fp->spbase);
             rval = sp[-1];
             PUSH_OPND(rval);
             break;
 
+		  /*
+		   * Duplicates the 2 topmost stackelements.
+		   * Used for Array and assignments, that also use the lval
+		   * e.g. t[0] += 1;
+		   */
           case JSOP_DUP2:
             JS_ASSERT(sp - 1 > fp->spbase);
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             lval = FETCH_OPND(-2);
             rval = FETCH_OPND(-1);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(lval);
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(lval);
             PUSH_OPND(rval);
             break;
@@ -2129,10 +3007,24 @@
         }                                                                     \
     JS_END_MACRO
 
+		  /*
+		   * sets a constant
+		   * e.g. const x = 3;
+		   */
           case JSOP_SETCONST:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             obj = fp->varobj;
             atom = GET_ATOM(cx, script, pc);
             rval = FETCH_OPND(-1);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+#endif /* XSS */
             ok = OBJ_DEFINE_PROPERTY(cx, obj, (jsid)atom, rval, NULL, NULL,
                                      JSPROP_ENUMERATE | JSPROP_PERMANENT |
                                      JSPROP_READONLY,
@@ -2142,7 +3034,16 @@
             STORE_OPND(-1, rval);
             break;
 
+		  /*
+		   * Puts the variable on the stack for later JSOP_SETNAME
+		   * e.g. b = ... puts "b" on the stack
+		   */
           case JSOP_BINDNAME:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             atom = GET_ATOM(cx, script, pc);
             SAVE_SP(fp);
             obj = js_FindIdentifierBase(cx, (jsid)atom);
@@ -2150,17 +3051,60 @@
                 ok = JS_FALSE;
                 goto out;
             }
+#ifdef XSS /* XSS */
+			/* only check the object if it isn't the global object */
+			xss_jsval = OBJECT_TO_JSVAL(obj);
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+
+            PUSH_OPND(xss_jsval);
+#else /* not XSS */
             PUSH_OPND(OBJECT_TO_JSVAL(obj));
+#endif /* XSS */
             break;
 
+		  /*
+		   * Assigns a value to a variable
+		   * e.g. a = b; takes "a" and "b" from the stack and
+		   * assigns the value of "b" to "a"
+		   */
           case JSOP_SETNAME:
-            atom = GET_ATOM(cx, script, pc);
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
+			atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
             rval = FETCH_OPND(-1);
             lval = FETCH_OPND(-2);
-            JS_ASSERT(!JSVAL_IS_PRIMITIVE(lval));
+#ifdef XSS_DEBUG
+			/* taint rval, if the var is called "evil". e.g. var evil = ... */
+			str = ATOM_TO_STRING(atom);
+			if (!XSS_JSVAL_HAS_TAINTSTRUCTURE(rval)) {
+				XSS_ADD_TAINTSTRUCTURE(rval);
+			}
+			XSS_TAINT_EVILSTR(str, rval);
+
+			/* taint rval if it is the string "evil". e.g. ... = "evil"; */
+			if (JSVAL_IS_STRING(rval)) {
+				str = js_ValueToString(cx,rval);
+				XSS_TAINT_EVILSTR(str, rval);
+			}
+#endif /* XSS_DEBUG */
+
+			JS_ASSERT(!JSVAL_IS_PRIMITIVE(lval));
             obj  = JSVAL_TO_OBJECT(lval);
             SAVE_SP(fp);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+			/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+			}
+#endif /* XSS */
             CACHED_SET(OBJ_SET_PROPERTY(cx, obj, id, &rval));
             if (!ok)
                 goto out;
@@ -2168,6 +3112,7 @@
             STORE_OPND(-1, rval);
             break;
 
+#ifndef XSS /* original */
 #define INTEGER_OP(OP, EXTRA_CODE)                                            \
     JS_BEGIN_MACRO                                                            \
         FETCH_INT(cx, -1, j);                                                 \
@@ -2179,18 +3124,49 @@
         sp--;                                                                 \
         STORE_NUMBER(cx, -1, d);                                              \
     JS_END_MACRO
+#else /* XSS */
+#define INTEGER_OP(OP, EXTRA_CODE)                                            \
+    JS_BEGIN_MACRO                                                            \
+		/* check if the stack is tainted or the scope */					  \
+		XSS_TAINTOUTPUT_ON_STACK;											  \
+		XSS_TAINTOUTPUT_ON_SCOPE;											  \
+		XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));							  \
+		XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));							  \
+		XSS_CALC_TAINTOUTPUT;												  \
+        FETCH_INT(cx, -1, j);                                                 \
+        FETCH_INT(cx, -2, i);                                                 \
+        if (!ok)                                                              \
+            goto out;                                                         \
+        EXTRA_CODE                                                            \
+        d = i OP j;                                                           \
+        sp--;                                                                 \
+        STORE_NUMBER(cx, -1, d);                                              \
+    JS_END_MACRO
+#endif /* XSS */
 
 #define BITWISE_OP(OP)          INTEGER_OP(OP, (void) 0;)
 #define SIGNED_SHIFT_OP(OP)     INTEGER_OP(OP, j &= 31;)
 
+		  /*
+		   * Bitwise or
+		   * a = a | 2;
+		   */
           case JSOP_BITOR:
             BITWISE_OP(|);
             break;
 
+		  /*
+		   * Bitwise xor
+		   * a = a ^ 2;
+		   */
           case JSOP_BITXOR:
             BITWISE_OP(^);
             break;
 
+		  /*
+		   * Bitwise and
+		   * a = a & 2;
+		   */
           case JSOP_BITAND:
             BITWISE_OP(&);
             break;
@@ -2204,6 +3180,7 @@
 #define COMPARE_DOUBLES(LVAL, OP, RVAL, IFNAN) ((LVAL) OP (RVAL))
 #endif
 
+#ifndef XSS /* original */
 #define RELATIONAL_OP(OP)                                                     \
     JS_BEGIN_MACRO                                                            \
         rval = FETCH_OPND(-1);                                                \
@@ -2235,7 +3212,49 @@
         sp--;                                                                 \
         STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond));                               \
     JS_END_MACRO
+#else /* XSS */
+#define RELATIONAL_OP(OP)                                                     \
+    JS_BEGIN_MACRO                                                            \
+        rval = FETCH_OPND(-1);                                                \
+        lval = FETCH_OPND(-2);                                                \
+		/* check if the stack is tainted or the scope */					  \
+		XSS_TAINTOUTPUT_ON_STACK;											  \
+		XSS_TAINTOUTPUT_ON_SCOPE;											  \
+		XSS_TAINTOUTPUT_ON_VALUE(lval);										  \
+		XSS_TAINTOUTPUT_ON_VALUE(rval);										  \
+		XSS_CALC_TAINTOUTPUT;												  \
+        /* Optimize for two int-tagged operands (typical loop control). */    \
+        if ((lval & rval) & JSVAL_INT) {                                      \
+            ltmp = lval ^ JSVAL_VOID;                                         \
+            rtmp = rval ^ JSVAL_VOID;                                         \
+            if (ltmp && rtmp) {                                               \
+                cond = JSVAL_TO_INT(lval) OP JSVAL_TO_INT(rval);              \
+            } else {                                                          \
+                d  = ltmp ? JSVAL_TO_INT(lval) : *rt->jsNaN;                  \
+                d2 = rtmp ? JSVAL_TO_INT(rval) : *rt->jsNaN;                  \
+                cond = COMPARE_DOUBLES(d, OP, d2, JS_FALSE);                  \
+            }                                                                 \
+        } else {                                                              \
+            VALUE_TO_PRIMITIVE(cx, lval, JSTYPE_NUMBER, &lval);               \
+            VALUE_TO_PRIMITIVE(cx, rval, JSTYPE_NUMBER, &rval);               \
+            if (JSVAL_IS_STRING(lval) && JSVAL_IS_STRING(rval)) {             \
+                str  = JSVAL_TO_STRING(lval);                                 \
+                str2 = JSVAL_TO_STRING(rval);                                 \
+                cond = js_CompareStrings(str, str2) OP 0;                     \
+            } else {                                                          \
+                VALUE_TO_NUMBER(cx, lval, d);                                 \
+                VALUE_TO_NUMBER(cx, rval, d2);                                \
+                cond = COMPARE_DOUBLES(d, OP, d2, JS_FALSE);                  \
+            }                                                                 \
+        }                                                                     \
+        sp--;                                                                 \
+		/* store result in a double (and taint it) */						  \
+	    XSS_BOOLEAN_TO_DOUBLE_JSVAL(cond,doubleval);						  \
+		STORE_OPND(-1, DOUBLE_TO_JSVAL(doubleval));							  \
+    JS_END_MACRO
+#endif /* XSS */
 
+#ifndef XSS /* original */
 #define EQUALITY_OP(OP, IFNAN)                                                \
     JS_BEGIN_MACRO                                                            \
         rval = FETCH_OPND(-1);                                                \
@@ -2283,15 +3302,84 @@
         STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond));                               \
     JS_END_MACRO
 
+#else /* XSS */
+
+#define EQUALITY_OP(OP, IFNAN)                                                \
+    JS_BEGIN_MACRO                                                            \
+		/* check if the stack is tainted or the scope */					  \
+		XSS_TAINTOUTPUT_ON_STACK;											  \
+		XSS_TAINTOUTPUT_ON_SCOPE;											  \
+        rval = FETCH_OPND(-1);                                                \
+        lval = FETCH_OPND(-2);                                                \
+		XSS_TAINTOUTPUT_ON_VALUE(lval);										  \
+		XSS_TAINTOUTPUT_ON_VALUE(rval);										  \
+		XSS_CALC_TAINTOUTPUT;												  \
+        ltmp = JSVAL_TAG(lval);                                               \
+        rtmp = JSVAL_TAG(rval);                                               \
+        if (ltmp == rtmp) {                                                   \
+            if (ltmp == JSVAL_STRING) {                                       \
+                str  = JSVAL_TO_STRING(lval);                                 \
+                str2 = JSVAL_TO_STRING(rval);                                 \
+                cond = js_CompareStrings(str, str2) OP 0;                     \
+            } else if (ltmp == JSVAL_DOUBLE) {                                \
+                d  = *JSVAL_TO_DOUBLE(lval);                                  \
+                d2 = *JSVAL_TO_DOUBLE(rval);                                  \
+                cond = COMPARE_DOUBLES(d, OP, d2, IFNAN);                     \
+            } else {                                                          \
+                /* Handle all undefined (=>NaN) and int combinations. */      \
+                cond = lval OP rval;                                          \
+            }                                                                 \
+        } else {                                                              \
+			jsval xss_temp_lval, xss_temp_rval;								  \
+			XSS_TO_ORIG_JSVAL(lval, xss_temp_lval);							  \
+			XSS_TO_ORIG_JSVAL(rval, xss_temp_rval);							  \
+            if (JSVAL_IS_NULL(xss_temp_lval) || JSVAL_IS_VOID(xss_temp_lval)) {                 \
+                cond = (JSVAL_IS_NULL(xss_temp_rval) || JSVAL_IS_VOID(xss_temp_rval)) OP 1;     \
+            } else if (JSVAL_IS_NULL(xss_temp_rval) || JSVAL_IS_VOID(xss_temp_rval)) {          \
+                cond = 1 OP 0;                                                \
+            } else {                                                          \
+                if (ltmp == JSVAL_OBJECT) {                                   \
+                    VALUE_TO_PRIMITIVE(cx, lval, JSTYPE_VOID, &lval);         \
+                    ltmp = JSVAL_TAG(lval);                                   \
+                } else if (rtmp == JSVAL_OBJECT) {                            \
+                    VALUE_TO_PRIMITIVE(cx, rval, JSTYPE_VOID, &rval);         \
+                    rtmp = JSVAL_TAG(rval);                                   \
+                }                                                             \
+                if (ltmp == JSVAL_STRING && rtmp == JSVAL_STRING) {           \
+                    str  = JSVAL_TO_STRING(lval);                             \
+                    str2 = JSVAL_TO_STRING(rval);                             \
+                    cond = js_CompareStrings(str, str2) OP 0;                 \
+                } else {                                                      \
+                    VALUE_TO_NUMBER(cx, lval, d);                             \
+                    VALUE_TO_NUMBER(cx, rval, d2);                            \
+                    cond = COMPARE_DOUBLES(d, OP, d2, IFNAN);                 \
+                }                                                             \
+            }                                                                 \
+        }                                                                     \
+        sp--;                                                                 \
+	    XSS_BOOLEAN_TO_DOUBLE_JSVAL(cond,doubleval);						  \
+		STORE_OPND(-1, DOUBLE_TO_JSVAL(doubleval));							  \
+    JS_END_MACRO
+#endif /* XSS */
+
+		  /*
+		   * Compares 2 values
+		   * e.g. var a = x == 2;
+		   */
           case JSOP_EQ:
             EQUALITY_OP(==, JS_FALSE);
             break;
 
+		  /*
+		   * Compares 2 values
+		   * e.g. var a = x != 2;
+		   */
           case JSOP_NE:
             EQUALITY_OP(!=, JS_TRUE);
             break;
 
 #if !JS_BUG_FALLIBLE_EQOPS
+#ifndef XSS /* original */
 #define NEW_EQUALITY_OP(OP, IFNAN)                                            \
     JS_BEGIN_MACRO                                                            \
         rval = FETCH_OPND(-1);                                                \
@@ -2326,34 +3414,137 @@
         sp--;                                                                 \
         STORE_OPND(-1, BOOLEAN_TO_JSVAL(cond));                               \
     JS_END_MACRO
+#else /* XSS: converted the values and then stored it differently */
+#define NEW_EQUALITY_OP(OP, IFNAN)                                            \
+    JS_BEGIN_MACRO                                                            \
+		/* check if the stack is tainted or the scope */					  \
+		XSS_TAINTOUTPUT_ON_STACK;											  \
+		XSS_TAINTOUTPUT_ON_SCOPE;											  \
+        rval = FETCH_OPND(-1);                                                \
+        lval = FETCH_OPND(-2);                                                \
+		XSS_TAINTOUTPUT_ON_VALUE(lval);										  \
+		XSS_TAINTOUTPUT_ON_VALUE(rval);										  \
+		XSS_CALC_TAINTOUTPUT;												  \
+ 		XSS_TO_ORIG_JSVAL(rval, rval);										  \
+		XSS_TO_ORIG_JSVAL(lval, lval);										  \
+        ltmp = JSVAL_TAG(lval);                                               \
+        rtmp = JSVAL_TAG(rval);                                               \
+        if (ltmp == rtmp) {                                                   \
+            if (ltmp == JSVAL_STRING) {                                       \
+                str  = JSVAL_TO_STRING(lval);                                 \
+                str2 = JSVAL_TO_STRING(rval);                                 \
+                cond = js_CompareStrings(str, str2) OP 0;                     \
+            } else if (ltmp == JSVAL_DOUBLE) {                                \
+                d  = *JSVAL_TO_DOUBLE(lval);                                  \
+                d2 = *JSVAL_TO_DOUBLE(rval);                                  \
+                cond = COMPARE_DOUBLES(d, OP, d2, IFNAN);                     \
+            } else {                                                          \
+                cond = lval OP rval;                                          \
+            }                                                                 \
+        } else {                                                              \
+            if (ltmp == JSVAL_DOUBLE && JSVAL_IS_INT(rval)) {                 \
+                d  = *JSVAL_TO_DOUBLE(lval);                                  \
+                d2 = JSVAL_TO_INT(rval);                                      \
+                cond = COMPARE_DOUBLES(d, OP, d2, IFNAN);                     \
+            } else if (JSVAL_IS_INT(lval) && rtmp == JSVAL_DOUBLE) {          \
+                d  = JSVAL_TO_INT(lval);                                      \
+                d2 = *JSVAL_TO_DOUBLE(rval);                                  \
+                cond = COMPARE_DOUBLES(d, OP, d2, IFNAN);                     \
+            } else {                                                          \
+                cond = lval OP rval;                                          \
+            }                                                                 \
+        }                                                                     \
+        sp--;                                                                 \
+	    XSS_BOOLEAN_TO_DOUBLE_JSVAL(cond,doubleval);						  \
+		STORE_OPND(-1, DOUBLE_TO_JSVAL(doubleval));							  \
+    JS_END_MACRO
+#endif /* XSS */
 
+		  /*
+		   * Compares to operands for equality (including type)
+		   * e.g. var a = 1; var b = "1"; print(a === b);
+		   */
           case JSOP_NEW_EQ:
             NEW_EQUALITY_OP(==, JS_FALSE);
             break;
 
+		  /*
+		   * Compares to operands for unequality (including type)
+		   * e.g. var a = 1; var b = "1"; print(a !== b);
+		   */
           case JSOP_NEW_NE:
             NEW_EQUALITY_OP(!=, JS_TRUE);
             break;
 
 #if JS_HAS_SWITCH_STATEMENT
+		  /*
+		   * Checks condition in a case-statement.
+		   * e.g. switch(x) { case (x == 1): }
+		   */
           case JSOP_CASE:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             NEW_EQUALITY_OP(==, JS_FALSE);
             (void) POP();
+#ifdef XSS /* XSS */
+			XSS_CALC_TAINTOUTPUT;
+		    /* reset the stack-pointer if necessary */
+			XSS_SCOPE_STACK_REMOVE(sp, fp->scope_sp);
+			/* create a scope */
+			if (taintoutput == XSS_TAINTED) {
+				xss_temp_scope = XSS_SCOPE_WITH_OP_BACK(fp->scope_current, JSOP_CONDSWITCH);
+				if (xss_temp_scope != NULL) {
+					xss_pc = xss_temp_scope->to;
+					XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+				}
+			}
+#endif /* XSS */
             if (cond) {
                 len = GET_JUMP_OFFSET(pc);
                 CHECK_BRANCH(len);
             } else {
+#ifdef XSS /* XSS */
+				XSS_SET_STACK_TAINTED_ON_OUTPUT(fp->scope_sp,sp, taintoutput);
+#endif /* XSS */
                 PUSH(lval);
             }
             break;
 
+		  /*
+		   * Checks condition in a case-statement (with many cases).
+		   * e.g. switch(x) { case (x == 1): }
+		   */
           case JSOP_CASEX:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             NEW_EQUALITY_OP(==, JS_FALSE);
             (void) POP();
+#ifdef XSS /* XSS */
+			XSS_CALC_TAINTOUTPUT;
+		    /* reset the stack-pointer if necessary */
+			XSS_SCOPE_STACK_REMOVE(sp, fp->scope_sp);
+			/* create a scope */
+			if (taintoutput == XSS_TAINTED) {
+				xss_temp_scope = XSS_SCOPE_WITH_OP_BACK(fp->scope_current, JSOP_CONDSWITCH);
+				if (xss_temp_scope != NULL) {
+					xss_pc = xss_temp_scope->to;
+					XSS_NEW_SCOPE(fp->scope_current, pc, xss_pc, taintoutput);
+				}
+			}
+#endif /* XSS */
             if (cond) {
                 len = GET_JUMPX_OFFSET(pc);
                 CHECK_BRANCH(len);
             } else {
+#ifdef XSS /* XSS */
+				XSS_SET_STACK_TAINTED_ON_OUTPUT(fp->scope_sp,sp, taintoutput);
+#endif /* XSS */
                 PUSH(lval);
             }
             break;
@@ -2361,18 +3552,34 @@
 
 #endif /* !JS_BUG_FALLIBLE_EQOPS */
 
+		  /*
+		   * compares to value for less-than
+		   * e.g. a < 3
+		   */
           case JSOP_LT:
             RELATIONAL_OP(<);
             break;
 
+		  /*
+		   * compares to value for less-equal
+		   * e.g. a <= 3
+		   */
           case JSOP_LE:
             RELATIONAL_OP(<=);
             break;
 
+		  /*
+		   * compares to value for greater-than
+		   * e.g. a > 3
+		   */
           case JSOP_GT:
             RELATIONAL_OP(>);
             break;
 
+		  /*
+		   * compares to value for greater-equal
+		   * e.g. a >= 3
+		   */
           case JSOP_GE:
             RELATIONAL_OP(>=);
             break;
@@ -2380,18 +3587,38 @@
 #undef EQUALITY_OP
 #undef RELATIONAL_OP
 
+		  /*
+		   * Binary leftshift
+		   * e.g. 1 << a;
+		   */
           case JSOP_LSH:
             SIGNED_SHIFT_OP(<<);
-            break;
+			break;
 
+		  /*
+		   * Binary rightshift
+		   * e.g. a >> 3;
+		   */
           case JSOP_RSH:
             SIGNED_SHIFT_OP(>>);
             break;
 
+		  /*
+		   * Unsigned binary-rightshift
+		   * e.g. a >>> 3;
+		   */
           case JSOP_URSH:
           {
             uint32 u;
 
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             FETCH_INT(cx, -1, j);
             FETCH_UINT(cx, -2, u);
             j &= 31;
@@ -2405,9 +3632,23 @@
 #undef BITWISE_OP
 #undef SIGNED_SHIFT_OP
 
+		  /*
+		   * Adds to values
+		   * e.g. a + b;
+		   */
           case JSOP_ADD:
+#ifdef XSS
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             rval = FETCH_OPND(-1);
             lval = FETCH_OPND(-2);
+#ifdef XSS 
+			XSS_TAINTOUTPUT_ON_VALUE(lval);
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             VALUE_TO_PRIMITIVE(cx, lval, JSTYPE_VOID, &ltmp);
             VALUE_TO_PRIMITIVE(cx, rval, JSTYPE_VOID, &rtmp);
             if ((cond = JSVAL_IS_STRING(ltmp)) || JSVAL_IS_STRING(rtmp)) {
@@ -2438,8 +3679,27 @@
             }
             break;
 
+#ifndef XSS /* original */
+
+#define BINARY_OP(OP)                                                         \
+    JS_BEGIN_MACRO                                                            \
+        FETCH_NUMBER(cx, -1, d2);                                             \
+        FETCH_NUMBER(cx, -2, d);                                              \
+        d = d OP d2;                                                          \
+        sp--;                                                                 \
+        STORE_NUMBER(cx, -1, d);                                              \
+    JS_END_MACRO
+
+#else /* XSS */
+
 #define BINARY_OP(OP)                                                         \
     JS_BEGIN_MACRO                                                            \
+		/* check if the stack is tainted or the scope */					  \
+		XSS_TAINTOUTPUT_ON_STACK;											  \
+		XSS_TAINTOUTPUT_ON_SCOPE;											  \
+		XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));							  \
+		XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));							  \
+		XSS_CALC_TAINTOUTPUT;												  \
         FETCH_NUMBER(cx, -1, d2);                                             \
         FETCH_NUMBER(cx, -2, d);                                              \
         d = d OP d2;                                                          \
@@ -2447,15 +3707,37 @@
         STORE_NUMBER(cx, -1, d);                                              \
     JS_END_MACRO
 
+#endif /* XSS */
+
+		  /*
+		   * subtracts one operand from another
+		   * e.g. 10 - a;
+		   */
           case JSOP_SUB:
             BINARY_OP(-);
             break;
 
+		  /*
+		   * Multiplies two operands
+		   * e.g. 10 * a;
+		   */
           case JSOP_MUL:
             BINARY_OP(*);
             break;
 
+		  /*
+		   * Divides an operand through another
+		   * e.g. a / b;
+		   */
           case JSOP_DIV:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             FETCH_NUMBER(cx, -1, d2);
             FETCH_NUMBER(cx, -2, d);
             sp--;
@@ -2479,7 +3761,19 @@
             }
             break;
 
+		  /*
+		   * math. modula-operation
+		   * e.g. 10 % a;
+		   */
           case JSOP_MOD:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             FETCH_NUMBER(cx, -1, d2);
             FETCH_NUMBER(cx, -2, d);
             sp--;
@@ -2495,19 +3789,56 @@
             }
             break;
 
+		  /*
+		   * Boolean-not
+		   * e.g. var x = true; print(!x);
+		   */
           case JSOP_NOT:
-            POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
+			POP_BOOLEAN(cx, rval, cond);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(BOOLEAN_TO_JSVAL(!cond));
             break;
 
+		  /*
+		   * bitwise not. e.g. a = ~a;
+		   */
           case JSOP_BITNOT:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             FETCH_INT(cx, -1, i);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             d = (jsdouble) ~i;
             STORE_NUMBER(cx, -1, d);
             break;
 
+		  /*
+		   * Negates a number
+		   * e.g. var x = -y;
+		   */
           case JSOP_NEG:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             FETCH_NUMBER(cx, -1, d);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+#endif /* XSS */
 #ifdef HPUX
             /*
              * Negation of a zero doesn't produce a negative
@@ -2518,15 +3849,40 @@
 #else
             d = -d;
 #endif
+#ifdef XSS /* XSS */
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             STORE_NUMBER(cx, -1, d);
             break;
 
+		  /*
+		   * Convert to number for unary +
+		   * e.g. var a = +x;
+		   */
           case JSOP_POS:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             FETCH_NUMBER(cx, -1, d);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             STORE_NUMBER(cx, -1, d);
             break;
 
+		  /*
+		   * creates a new object
+		   * e.g. x = new Object();
+		   */
           case JSOP_NEW:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             /* Get immediate argc and find the constructor function. */
             argc = GET_ARGC(pc);
 
@@ -2534,6 +3890,10 @@
           do_new:
 #endif
             vp = sp - (2 + argc);
+#ifdef XSS /* XSS */
+			/* is the function tainted? */
+			XSS_TAINTOUTPUT_ON_VALUE(*vp);
+#endif /* XSS */
             JS_ASSERT(vp >= fp->spbase);
 
             fun = NULL;
@@ -2582,7 +3942,19 @@
             /* Now we have an object with a constructor method; call it. */
             vp[1] = OBJECT_TO_JSVAL(obj);
             SAVE_SP(fp);
+#ifdef XSS
+			/* save the current taint-state of the scope and 
+			   taint the scope temporary if a variable is tainted. */
+			taintoutput_temp = XSS_SCOPE_ISTAINTED(cx->fp->scope_current);
+			XSS_CALC_TAINTOUTPUT;
+			if (taintoutput == XSS_TAINTED) {
+				cx->fp->scope_current->istainted = XSS_TAINTED;
+			}
+#endif /* XSS */
             ok = js_Invoke(cx, argc, JSINVOKE_CONSTRUCT);
+#ifdef XSS			
+			cx->fp->scope_current->istainted = taintoutput_temp;
+#endif /* XSS */
             RESTORE_SP(fp);
             LOAD_BRANCH_CALLBACK(cx);
             LOAD_INTERRUPT_HANDLER(rt);
@@ -2608,11 +3980,26 @@
                 ok = JS_FALSE;
                 goto out;
             }
+#ifdef XSS /* XSS */
+			/* check if the output has to be tainted */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+#endif /* XSS */
             obj = JSVAL_TO_OBJECT(rval);
             JS_RUNTIME_METER(rt, constructs);
             break;
 
+		  /*
+		   * Delete a variable-name
+		   * e.g. var x = 1; delete(x);
+		   */
           case JSOP_DELNAME:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
 
@@ -2623,45 +4010,167 @@
 
             /* ECMA says to return true if name is undefined or inherited. */
             rval = JSVAL_TRUE;
+#ifdef XSS /* XSS */
+			/* save rval */
+			xss_jsval2 = rval;
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+#endif /* XSS */
             if (prop) {
+#ifdef XSS /* XSS */
+				OBJ_GET_PROPERTY(cx,obj,id, &rval);
+				XSS_TAINTOUTPUT_ON_VALUE(rval);
+#endif /* XSS */
                 OBJ_DROP_PROPERTY(cx, obj2, prop);
                 ok = OBJ_DELETE_PROPERTY(cx, obj, id, &rval);
+#ifdef XSS /* XSS */
+				xss_jsval2 = rval;
+#endif /* XSS */
                 if (!ok)
                     goto out;
-            }
+#ifdef XSS /* XSS */
+				/* taint the deleted name */
+				OBJ_GET_PROPERTY(cx,obj,id, &rval);
+				XSS_CALC_TAINTOUTPUT;
+				XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+				if (taintoutput == XSS_TAINTED) {
+					/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+					XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+					OBJ_SET_PROPERTY(cx,obj,id, &rval);
+				}
+#endif /* XSS */
+            }
+
+#ifdef XSS /* XSS */
+			/* restore rval */
+			rval = xss_jsval2;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(rval);
             break;
 
+		  /*
+		   * Deletes a Object-property
+		   * e.g. var x = { myprop : 1 }; delete(x.myprop);
+		   */
           case JSOP_DELPROP:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
+#ifdef XSS /* XSS */
+            PROPERTY_OP(-1, CACHED_GET(OBJ_GET_PROPERTY(cx, obj, id, &rval)));
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+#endif /* XSS */
             PROPERTY_OP(-1, ok = OBJ_DELETE_PROPERTY(cx, obj, id, &rval));
+#ifdef XSS /* XSS */
+			/* save rval */
+			xss_jsval2 = rval;
+            PROPERTY_OP(-1, CACHED_GET(OBJ_GET_PROPERTY(cx, obj, id, &rval)));
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+			if (taintoutput == XSS_TAINTED) {
+				/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+	            PROPERTY_OP(-1, CACHED_SET(OBJ_SET_PROPERTY(cx, obj, id, &rval)));
+			}
+			/* restore rval */
+			rval = xss_jsval2;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             STORE_OPND(-1, rval);
             break;
 
+		  /*
+		   * Deletes an element of an array
+		   * e.g. delete x[0];
+		   */
           case JSOP_DELELEM:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			ELEMENT_OP(-1, OBJ_GET_PROPERTY(cx,obj,id, &rval));
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+#endif /* XSS */
             ELEMENT_OP(-1, ok = OBJ_DELETE_PROPERTY(cx, obj, id, &rval));
+#ifdef XSS /* XSS */
+			/* save rval */
+			xss_jsval2 = rval;
+			/* taint the deleted value */
+			ELEMENT_OP(-1, OBJ_GET_PROPERTY(cx,obj,id, &rval));
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+			if (taintoutput == XSS_TAINTED) {
+				/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+				ELEMENT_OP(-1, OBJ_SET_PROPERTY(cx,obj,id, &rval));
+			}
+			/* restore rval */
+			rval = xss_jsval2;
+			/* taint the returnvalue if necessary */
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             sp--;
             STORE_OPND(-1, rval);
             break;
 
+		  /*
+		   * Checks the type of the operand
+		   * e.g. print(typeof(x));
+		   */
           case JSOP_TYPEOF:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             rval = POP_OPND();
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+#endif /* XSS */
             type = JS_TypeOfValue(cx, rval);
             atom = rt->atomState.typeAtoms[type];
             str  = ATOM_TO_STRING(atom);
+#ifdef XSS /* XSS */
+			/* type string is never tainted */
+			XSS_JSVAL_SET_ISTAINTED(XSS_NOT_TAINTED, STRING_TO_JSVAL(str));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(STRING_TO_JSVAL(str));
             break;
 
+		  /*
+		   * pushes void on the stack
+		   * e.g. new Array(void 0);
+		   */
           case JSOP_VOID:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             (void) POP_OPND();
             PUSH_OPND(JSVAL_VOID);
             break;
 
+		  /*
+		   * Incements/decrements a name
+		   * e.g. var x = 1; ++x;
+		   */
           case JSOP_INCNAME:
           case JSOP_DECNAME:
           case JSOP_NAMEINC:
           case JSOP_NAMEDEC:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
+
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
 
@@ -2676,19 +4185,40 @@
             lval = OBJECT_TO_JSVAL(obj);
             goto do_incop;
 
+		  /*
+		   * Increments/Decrements properties.
+		   * e.g:
+		   * function X() { this.x = 5; }
+		   * var y = new X();
+		   * y.x++;
+		   */
           case JSOP_INCPROP:
           case JSOP_DECPROP:
           case JSOP_PROPINC:
           case JSOP_PROPDEC:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
             lval = POP_OPND();
             goto do_incop;
 
+		  /*
+		   * Increments/Decrements the element of an array.
+		   * e.g. x[0]++;
+		   */
           case JSOP_INCELEM:
           case JSOP_DECELEM:
           case JSOP_ELEMINC:
           case JSOP_ELEMDEC:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             POP_ELEMENT_ID(id);
             lval = POP_OPND();
 
@@ -2701,6 +4231,13 @@
             if (!ok)
                 goto out;
 
+#ifdef XSS /* XSS */
+			/* the array */
+			XSS_TAINTOUTPUT_ON_VALUE(lval);
+			/* the value */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             /* The expression result goes in rtmp, the updated value in rval. */
             if (JSVAL_IS_INT(rval) &&
                 rval != INT_TO_JSVAL(JSVAL_INT_MIN) &&
@@ -2719,6 +4256,7 @@
  * yet converted.  As above, the expression result goes in rtmp, the updated
  * value goes in rval.
  */
+#ifndef XSS /* original */
 #define NONINT_INCREMENT_OP()                                                 \
     JS_BEGIN_MACRO                                                            \
         VALUE_TO_NUMBER(cx, rval, d);                                         \
@@ -2740,12 +4278,50 @@
             goto out;                                                         \
     JS_END_MACRO
 
+#else /* XSS */
+#define NONINT_INCREMENT_OP()                                                 \
+    JS_BEGIN_MACRO                                                            \
+        VALUE_TO_NUMBER(cx, rval, d);                                         \
+		/* check if the value or scope is tainted */						  \
+		XSS_TAINTOUTPUT_ON_VALUE(rval);										  \
+        if (cs->format & JOF_POST) {                                          \
+            rtmp = rval;                                                      \
+			XSS_JSVAL_GET_TAINT(rtmp,xss_taint);							  \
+			/* adjust origtype */											  \
+			if (!JSVAL_IS_NUMBER(rtmp) ||									  \
+				!XSS_TAINTSTRUCTURE_IS_NUMBER(xss_taint)) {					  \
+                ok = js_NewNumberValue(cx, d, &rtmp);                         \
+				XSS_JSVAL_GET_TAINT(rtmp,xss_taint);						  \
+				XSS_TAINTSTRUCTURE_SET_ORIGTYPE(xss_taint,JSVAL_DOUBLE);	  \
+                if (!ok)                                                      \
+                    goto out;                                                 \
+            }                                                                 \
+            (cs->format & JOF_INC) ? d++ : d--;                               \
+            ok = js_NewNumberValue(cx, d, &rval);                             \
+        } else {                                                              \
+            (cs->format & JOF_INC) ? ++d : --d;                               \
+            ok = js_NewNumberValue(cx, d, &rval);                             \
+            rtmp = rval;                                                      \
+        }                                                                     \
+        if (!ok)                                                              \
+            goto out;                                                         \
+    JS_END_MACRO
+#endif /* XSS */
+
                 NONINT_INCREMENT_OP();
             }
 
+#ifdef XSS /* XSS */
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+			/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+			}
+#endif /* XSS */
             CACHED_SET(OBJ_SET_PROPERTY(cx, obj, id, &rval));
             if (!ok)
                 goto out;
+
             PUSH_OPND(rtmp);
             break;
 
@@ -2754,6 +4330,8 @@
  * it must break from the switch case that calls it, not from the do...while(0)
  * loop created by the JS_BEGIN/END_MACRO brackets.
  */
+#ifndef XSS /* original */
+
 #define FAST_INCREMENT_OP(SLOT,COUNT,BASE,PRE,OP,MINMAX)                      \
     slot = (uintN)SLOT;                                                       \
     JS_ASSERT(slot < fp->fun->COUNT);                                         \
@@ -2769,21 +4347,81 @@
     }                                                                         \
     goto do_nonint_fast_incop;
 
+#else /* XSS */
+
+#define FAST_INCREMENT_OP(SLOT,COUNT,BASE,PRE,OP,MINMAX)                      \
+    slot = (uintN)SLOT;														  \
+    JS_ASSERT(slot < fp->fun->COUNT);										  \
+    vp = fp->BASE + slot;													  \
+    xss_jsval = *vp;														  \
+	/* check if the stack is tainted or the scope */						  \
+	XSS_TAINTOUTPUT_ON_STACK;												  \
+	XSS_TAINTOUTPUT_ON_SCOPE;												  \
+	XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);									  \
+	XSS_TO_ORIG_JSVAL(xss_jsval, rval);										  \
+    if (JSVAL_IS_INT(rval) &&												  \
+        rval != INT_TO_JSVAL(JSVAL_INT_##MINMAX)) {							  \
+        PRE = rval;															  \
+        rval OP 2;															  \
+		XSS_CALC_TAINTOUTPUT;												  \
+		XSS_TAINT_JSVAL_ON_OUTPUT(rval);									  \
+        *vp = rval;													          \
+		XSS_TAINT_JSVAL_ON_OUTPUT(PRE);										  \
+        PUSH_OPND(PRE);														  \
+        break;																  \
+    }																		  \
+    goto do_nonint_fast_incop;
+
+#endif /* XSS */
+
+		  /*
+		   * preincrease of an argument.
+		   * e.g. function (a) { b = ++a; }
+		   */
           case JSOP_INCARG:
             FAST_INCREMENT_OP(GET_ARGNO(pc), nargs, argv, rval, +=, MAX);
+		  /*
+		   * predecrease of an argument.
+		   * e.g. function (a) { b = --a; }
+		   */
           case JSOP_DECARG:
             FAST_INCREMENT_OP(GET_ARGNO(pc), nargs, argv, rval, -=, MIN);
+		  /*
+		   * postincrease of an argument.
+		   * e.g. function (a) { b = a++; }
+		   */
           case JSOP_ARGINC:
             FAST_INCREMENT_OP(GET_ARGNO(pc), nargs, argv, rtmp, +=, MAX);
+		  /*
+		   * postdecrease of an argument.
+		   * e.g. function (a) { b = a--; }
+		   */
           case JSOP_ARGDEC:
             FAST_INCREMENT_OP(GET_ARGNO(pc), nargs, argv, rtmp, -=, MIN);
 
+		  /*
+		   * preincrease of a variable in a function
+		   * e.g. function () { var a; b = ++a; }
+		   */
           case JSOP_INCVAR:
             FAST_INCREMENT_OP(GET_VARNO(pc), nvars, vars, rval, +=, MAX);
+
+		  /*
+		   * predecrease of a variable in a function
+		   * e.g. function () { var a; b = --a; }
+		   */
           case JSOP_DECVAR:
             FAST_INCREMENT_OP(GET_VARNO(pc), nvars, vars, rval, -=, MIN);
+		  /*
+		   * postincrease of a variable in a function
+		   * e.g. function () { var a; b = a++; }
+		   */
           case JSOP_VARINC:
             FAST_INCREMENT_OP(GET_VARNO(pc), nvars, vars, rtmp, +=, MAX);
+		  /*
+		   * postdecrease of a variable in a function
+		   * e.g. function () { var a; b = a--; }
+		   */
           case JSOP_VARDEC:
             FAST_INCREMENT_OP(GET_VARNO(pc), nvars, vars, rtmp, -=, MIN);
 
@@ -2795,46 +4433,182 @@
             PUSH_OPND(rtmp);
             break;
 
+		  /*
+		   * Gets the property of an object.
+		   * e.g. var obj = { 'x' : 3}; print(obj.x);
+		   */
           case JSOP_GETPROP:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+#endif /* XSS */
             /* Get an immediate atom naming the property. */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
             PROPERTY_OP(-1, CACHED_GET(OBJ_GET_PROPERTY(cx, obj, id, &rval)));
-            STORE_OPND(-1, rval);
-            break;
-
+#ifdef XSS /* XSS */
+#ifndef XSS_SHELL
+#ifdef XSS_DEBUG
+			/* taint only http-scripts*/
+			do {
+				JSScript *script = fp->script;
+				if (script && script->filename) {
+					if (strstr(script->filename,"http:") != NULL) {
+						xssSetDoLog(XSS_DO_LOG);
+						fprintf(stderr, "script = %s\n", script->filename);
+					}
+				}
+			} while (0); 
+#endif /* XSS_DEBUG */
+#endif /* XSS_SHELL */
+			/* check if the output has to be tainted */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
+			STORE_OPND(-1, rval);
+            break;
+
+		  /*
+		   * Sets an object-property
+		   * e.g. o.x = 3;
+		   */
           case JSOP_SETPROP:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             /* Pop the right-hand side into rval for OBJ_SET_PROPERTY. */
             rval = FETCH_OPND(-1);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+#endif /* XSS */
 
             /* Get an immediate atom naming the property. */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
+#ifdef XSS_DEBUG
+			/* taint rval, if the var is called "evil". e.g. var evil = ... */
+			str = js_ValueToSource(cx, ATOM_KEY(atom));
+			if (!XSS_JSVAL_HAS_TAINTSTRUCTURE(rval)) {
+				XSS_ADD_TAINTSTRUCTURE(rval);
+			}
+			XSS_TAINT_EVILSTR(str, rval);
+
+#endif /* XSS_DEBUG */
+			/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+			}
             PROPERTY_OP(-2, CACHED_SET(OBJ_SET_PROPERTY(cx, obj, id, &rval)));
+#ifdef XSS /* XSS */
+			XSS_TAINT_JSVAL_ON_OUTPUT(FETCH_OPND(-2));
+#endif /* XSS */
             sp--;
             STORE_OPND(-1, rval);
             break;
 
+		  /*
+		   * Gets an array-element
+		   * e.g. x[0]
+		   */
           case JSOP_GETELEM:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));
+#endif /* XSS */
             ELEMENT_OP(-1, CACHED_GET(OBJ_GET_PROPERTY(cx, obj, id, &rval)));
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             sp--;
             STORE_OPND(-1, rval);
             break;
 
+		  /*
+		   * sets an array-element
+		   * e.g. x[0] = 3;
+		   */
           case JSOP_SETELEM:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             rval = FETCH_OPND(-1);
+#ifdef XSS /* XSS */
+			/* check rval */
+			XSS_TAINTOUTPUT_ON_VALUE(rval); 
+			/* check index */
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-2));
+			/* check array */
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-3));
+			XSS_CALC_TAINTOUTPUT;
+			/* taint the new value for the element */
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+			/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+			}
+#endif /* XSS */
             ELEMENT_OP(-2, CACHED_SET(OBJ_SET_PROPERTY(cx, obj, id, &rval)));
+#ifdef XSS /* XSS */
+			/* taint the array if necessary */
+			XSS_TAINT_JSVAL_ON_OUTPUT(FETCH_OPND(-3));
+#endif /* XSS */
             sp -= 2;
             STORE_OPND(-1, rval);
             break;
 
+		  /*
+		   * Used for JSOP_FORELEM
+		   * e.g.:
+		   * var dut = { 'x' : evil };
+		   * var ob = [evil];
+		   * for (ob[0] in dut) {
+		   *   print(dut[ob[0]]);
+		   * }
+		   */
           case JSOP_ENUMELEM:
             /* Funky: the value to set is under the [obj, id] pair. */
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			/* check index */
+            lval = FETCH_OPND(-1);
+			XSS_TAINTOUTPUT_ON_VALUE(lval);
+#endif /* XSS */
             FETCH_ELEMENT_ID(-1, id);
             lval = FETCH_OPND(-2);
             VALUE_TO_OBJECT(cx, lval, obj);
+#ifdef XSS /* XSS */
+			/* check array */
+			XSS_TAINTOUTPUT_ON_VALUE(lval);
+            ok = OBJ_GET_PROPERTY(cx, obj, id, &rval);
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+#endif /* XSS */
             rval = FETCH_OPND(-3);
             SAVE_SP(fp);
+#ifdef XSS /* XSS */
+			/* check property of object */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(rval);
+			/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+			}
+#endif /* XSS */
             ok = OBJ_SET_PROPERTY(cx, obj, id, &rval);
             if (!ok)
                 goto out;
@@ -2851,11 +4625,24 @@
  */
 #define LAZY_ARGS_THISP ((JSObject *) 1)
 
+		  /*
+		   * pushes the object on the stack
+		   * e.g. print(x);
+		   */
           case JSOP_PUSHOBJ:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             if (obj == LAZY_ARGS_THISP && !(obj = js_GetArgsObject(cx, fp))) {
                 ok = JS_FALSE;
                 goto out;
             }
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(OBJECT_TO_JSVAL(obj));
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(OBJECT_TO_JSVAL(obj));
             break;
 
@@ -2864,6 +4651,13 @@
             argc = GET_ARGC(pc);
             vp = sp - (argc + 2);
             lval = *vp;
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
+
             SAVE_SP(fp);
 
             if (JSVAL_IS_FUNCTION(cx, lval) &&
@@ -2924,6 +4718,23 @@
                 newifp->frame.scopeChain = OBJ_GET_PARENT(cx, obj);
                 newifp->mark = newmark;
 
+#ifdef XSS /* XSS */
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+				if (xssGetDoLog() == XSS_DO_LOG) {
+					XSS_PRINTDEBUG_STR("before init fp for call\n");
+				}
+#endif /* XSS_DEBUG */
+				/* initialize the xss-scope */
+				XSS_SCOPE_INIT_ROOT(newifp->frame, XSS_NOT_TAINTED, XSS_FALSE);
+				/* set the bounds of the scope and if it should be tainted (scope or function tainted) */
+				XSS_SCOPE_SET(NULL, newifp->frame.scope_root, taintoutput, script->code, script->code + script->length, JSOP_CALL);
+#ifdef XSS_DEBUG /* XSS_DEBUG */
+				if (xssGetDoLog() == XSS_DO_LOG) {
+					XSS_PRINT_SCOPE(tracefp, script, newifp->frame.scope_root);
+				}
+#endif /* XSS_DEBUG */
+#endif /* XSS */
+
                 /* Compute the 'this' parameter now that argv is set. */
                 ok = ComputeThis(cx, JSVAL_TO_OBJECT(vp[1]), &newifp->frame);
                 if (!ok) {
@@ -2961,7 +4772,23 @@
                 endpc = pc + script->length;
                 inlineCallCount++;
                 JS_RUNTIME_METER(rt, inlineCalls);
-                continue;
+
+#ifdef XSS
+#ifdef XSS_DEBUG
+				if (xssGetDoLog() == XSS_DO_LOG) {
+
+					XSS_PRINTDEBUG_STR("---------------------------------------------------------------------\n");
+					XSS_PRINTDEBUG_STR("start of sourcecode\n");
+
+					js_Disassemble(cx,script,JS_TRUE, stderr);
+
+					XSS_PRINTDEBUG_STR("end of sourcecode\n");
+					XSS_PRINTDEBUG_STR("---------------------------------------------------------------------\n");
+				}
+#endif /* XSS_DEBUG */
+#endif /* XSS */
+
+				continue;
 
               bad_inline_call:
                 script = fp->script;
@@ -2969,7 +4796,25 @@
                 goto out;
             }
 
+#ifdef XSS
+			/* save the current taint-state of the scope and 
+			   taint the scope temporary if a variable is tainted. */
+			taintoutput_temp = XSS_SCOPE_ISTAINTED(cx->fp->scope_current);
+			if (taintoutput == XSS_TAINTED) {
+				cx->fp->scope_current->istainted = XSS_TAINTED;
+			}
+			if (op == JSOP_EVAL) {
+				taint_retval_old = cx->fp->taint_retval;
+				cx->fp->taint_retval = XSS_TRUE;
+			}
+#endif /* XSS */
             ok = js_Invoke(cx, argc, 0);
+#ifdef XSS			
+			cx->fp->scope_current->istainted = taintoutput_temp;
+			if (op == JSOP_EVAL) {
+				cx->fp->taint_retval = taint_retval_old;
+			}
+#endif /* XSS */
             RESTORE_SP(fp);
             LOAD_BRANCH_CALLBACK(cx);
             LOAD_INTERRUPT_HANDLER(rt);
@@ -3000,10 +4845,22 @@
             }
 #endif
             obj = NULL;
+#ifdef XSS /* XSS */
+			XSS_TAINT_JSVAL_ON_OUTPUT(FETCH_OPND(-1));
+#endif /* XSS */
             break;
 
 #if JS_HAS_LVALUE_RETURN
+		  /*
+		   * Used if a lvalue-assignment is possible (instead of a call)
+		   * e.g. it.item('funny') = 3;
+		   */
           case JSOP_SETCALL:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             argc = GET_ARGC(pc);
             SAVE_SP(fp);
             ok = js_Invoke(cx, argc, 0);
@@ -3018,13 +4875,27 @@
                 ok = JS_FALSE;
                 goto out;
             }
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(cx->rval2);
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(cx->rval2);
+#endif /* XSS */
             PUSH_OPND(cx->rval2);
             cx->rval2set = JS_FALSE;
             obj = NULL;
             break;
 #endif
 
+		  /*
+		   * Gets a variable by name
+		   * e.g. var x = 1;
+		   */
           case JSOP_NAME:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
 
@@ -3063,7 +4934,16 @@
                    ? LOCKED_OBJ_GET_SLOT(obj2, slot)
                    : JSVAL_VOID;
             JS_UNLOCK_OBJ(cx, obj2);
+#ifdef XSS /* XSS */
+			/* check if the output has to be tainted */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+#endif /* XSS */
             ok = SPROP_GET(cx, sprop, obj, obj2, &rval);
+#ifdef XSS /* XSS */			
+			/* check if the output has to be tainted */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             JS_LOCK_OBJ(cx, obj2);
             if (!ok) {
                 OBJ_DROP_PROPERTY(cx, obj2, prop);
@@ -3073,24 +4953,118 @@
                 LOCKED_OBJ_SET_SLOT(obj2, slot, rval);
             OBJ_DROP_PROPERTY(cx, obj2, prop);
             PUSH_OPND(rval);
-            break;
-
+#ifdef XSS /* XSS */			
+#ifdef XSS_DEBUG /* XSS_DEBUG */			
+			if (xssGetDoLog() == XSS_DO_LOG) {
+				if (XSS_JSVAL_IS_TAINTED(rval)) {
+					fprintf(stderr, "taint value of %s (%d)= ", js_AtomToPrintableString(cx, atom), rval);
+					XSS_JSVAL_GET_TAINT(rval,xss_taint);
+					if (xss_taint != 0) {
+						fprintf(stderr,"t: %d %d", xss_taint->istainted, xss_taint->type);
+					} else {
+						fprintf(stderr,"t: null!");
+					}
+					fprintf(stderr, "\n");
+				}
+			}
+#endif /* XSS_DEBUG */			
+#endif /* XSS */			
+            break;
+
+		  /*
+		   * puts a integer-constant on the stack
+		   * e.g. var x = 3;
+		   */
           case JSOP_UINT16:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             i = (jsint) GET_ATOM_INDEX(pc);
             rval = INT_TO_JSVAL(i);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(rval);
             obj = NULL;
             break;
 
+		  /*
+		   * puts a number on the stack
+		   * e.g. var x = 123.4;
+		   */
           case JSOP_NUMBER:
+		  /*
+		   * puts a string on the stack
+		   * e.g. var x = "test";
+		   */
           case JSOP_STRING:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             atom = GET_ATOM(cx, script, pc);
+#ifdef XSS
+			XSS_CALC_TAINTOUTPUT;
+			if (taintoutput == XSS_TAINTED) {
+				if (JSVAL_IS_STRING(ATOM_KEY(atom))) {
+					JS_BEGIN_MACRO
+						JSString *atomstr, *str;
+						atomstr = JSVAL_TO_STRING(ATOM_KEY(atom));
+						str = js_NewStringCopyN(cx, JSSTRING_CHARS(atomstr), JSSTRING_LENGTH(atomstr), 0);
+						if (!str) {
+							JS_free(cx, JSSTRING_CHARS(atomstr));
+							PUSH_OPND(ATOM_KEY(atom));
+						} else {
+							PUSH_OPND(STRING_TO_JSVAL(str));
+						}
+					JS_END_MACRO;
+				} else if (JSVAL_IS_INT(ATOM_KEY(atom))) {
+					JS_BEGIN_MACRO
+						jsdouble d;
+						jsval v_;
+					    
+						d = (jsdouble)JSVAL_TO_INT(ATOM_KEY(atom));
+						ok = js_NewDoubleValue(cx, d, &v_);
+						XSS_JSVAL_SET_ORIGTYPE(v_, JSVAL_INT);
+						PUSH_OPND(v_);
+					JS_END_MACRO;
+				} else if (JSVAL_IS_DOUBLE(ATOM_KEY(atom))) {
+					JS_BEGIN_MACRO
+						jsdouble d;
+						jsval v_;
+					    
+						d = *JSVAL_TO_DOUBLE(ATOM_KEY(atom));
+						ok = js_NewDoubleValue(cx, d, &v_);
+						XSS_JSVAL_SET_ORIGTYPE(v_, JSVAL_DOUBLE);
+						PUSH_OPND(v_);
+					JS_END_MACRO;
+				} else {
+					PUSH_OPND(ATOM_KEY(atom));
+				}
+			} else {
+				PUSH_OPND(ATOM_KEY(atom));
+			}
+#else /* original */
             PUSH_OPND(ATOM_KEY(atom));
+#endif /* XSS */
             obj = NULL;
             break;
 
+		  /*
+		   * creates a new object from a literal (only used fuer regexp)
+		   * e.g. /x+/
+		   */
           case JSOP_OBJECT:
           {
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
 #if 0
             jsatomid atomIndex;
             JSAtomMap *atomMap;
@@ -3198,46 +5172,136 @@
             JS_ASSERT(ATOM_IS_OBJECT(atom));
 #endif
             rval = ATOM_KEY(atom);
+#ifdef XSS /* XSS */
+			/* check if the output has to be tainted */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(rval);
             obj = NULL;
             break;
           }
 
+		  /*
+		   * constant for the number 0
+		   * e.g. var x = 0;
+		   */
           case JSOP_ZERO:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(JSVAL_ZERO);
             obj = NULL;
             break;
 
+		  /*
+		   * constant for the number 1
+		   * e.g. var x = 1;
+		   */
           case JSOP_ONE:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(JSVAL_ONE);
             obj = NULL;
             break;
 
+		  /*
+		   * constant for null
+		   * e.g. var x = null;
+		   */
           case JSOP_NULL:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(JSVAL_NULL);
             obj = NULL;
             break;
 
+		  /*
+		   * puts the current object on the stack
+		   * e.g. Test() { return this;}
+		   */
           case JSOP_THIS:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			xss_jsval = OBJECT_TO_JSVAL(fp->thisp);
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(OBJECT_TO_JSVAL(fp->thisp));
             obj = NULL;
             break;
 
+		  /*
+		   * Constant for the boolean-value false
+		   * e.g. var x = false;
+		   */
           case JSOP_FALSE:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(JSVAL_FALSE);
             obj = NULL;
             break;
 
+		  /*
+		   * Constant for the boolean-value true
+		   * e.g. var x = true;
+		   */
           case JSOP_TRUE:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(JSVAL_TRUE);
             obj = NULL;
             break;
 
 #if JS_HAS_SWITCH_STATEMENT
+		  /*
+		   * calculates the switch-target
+		   * e.g. switch(x) { case 1: x = 2; } 
+		   */
           case JSOP_TABLESWITCH:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			xss_jsval = FETCH_OPND(-1);
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+
+			JS_BEGIN_MACRO			  
+			  jssrcnote *sn;
+			  ptrdiff_t len;
+			  /* get the length of the switch-statement */
+              sn = js_GetSrcNote(fp->script, pc);
+              len = js_GetSrcNoteOffset(sn, 0);
+			  /* and create a new scope over the whole switch-statement */
+			  XSS_NEW_SCOPE(fp->scope_current, pc, pc + len, taintoutput);
+		    JS_END_MACRO;
+#endif /* XSS */
             pc2 = pc;
             len = GET_JUMP_OFFSET(pc2);
 
+
             /*
              * ECMAv2 forbids conversion of discriminant, so we will skip to
              * the default case if the discriminant isn't already an int jsval.
@@ -3246,9 +5310,16 @@
             if (cx->version == JSVERSION_DEFAULT ||
                 cx->version >= JSVERSION_1_4) {
                 rval = POP_OPND();
+#ifndef XSS /* original */
                 if (!JSVAL_IS_INT(rval))
                     break;
                 i = JSVAL_TO_INT(rval);
+#else /* XSS: handle the types */
+				XSS_TO_ORIG_JSVAL(rval, xss_jsval);
+                if (!JSVAL_IS_INT(xss_jsval))
+                    break;
+                i = JSVAL_TO_INT(xss_jsval);
+#endif /* XSS */
             } else {
                 FETCH_INT(cx, -1, i);
                 sp--;
@@ -3268,11 +5339,38 @@
             }
             break;
 
+		  /*
+		   * switch-statement that needs a lookup
+		   * e.g. switch ( x ) { case "z": print("z"); }
+		   */
           case JSOP_LOOKUPSWITCH:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			xss_jsval = FETCH_OPND(-1);
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+
+			JS_BEGIN_MACRO			  
+			  jssrcnote *sn;
+			  ptrdiff_t len;
+			  /* get the length of the switch-statement */
+              sn = js_GetSrcNote(fp->script, pc);
+              len = js_GetSrcNoteOffset(sn, 0);
+			  /* and create a new scope over the whole switch-statement */
+			  XSS_NEW_SCOPE(fp->scope_current, pc, pc + len, taintoutput);
+		    JS_END_MACRO;
+#endif /* XSS */
             lval = POP_OPND();
             pc2 = pc;
             len = GET_JUMP_OFFSET(pc2);
 
+#ifdef XSS 
+			/* convert the xss-lval back to a normal lval */
+			XSS_TO_ORIG_JSVAL(lval,lval);
+#endif /* XSS */
+
             if (!JSVAL_IS_NUMBER(lval) &&
                 !JSVAL_IS_STRING(lval) &&
                 !JSVAL_IS_BOOLEAN(lval)) {
@@ -3317,7 +5415,29 @@
 #undef SEARCH_PAIRS
             break;
 
+		  /*
+		   * calculates the switch-target
+		   * e.g. switch(x) { case 1: x = 2; } 
+		   */
           case JSOP_TABLESWITCHX:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			xss_jsval = FETCH_OPND(-1);
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+
+			JS_BEGIN_MACRO			  
+			  jssrcnote *sn;
+			  ptrdiff_t len;
+			  /* get the length of the switch-statement */
+              sn = js_GetSrcNote(fp->script, pc);
+              len = js_GetSrcNoteOffset(sn, 0);
+			  /* and create a new scope over the whole switch-statement */
+			  XSS_NEW_SCOPE(fp->scope_current, pc, pc + len, taintoutput);
+		    JS_END_MACRO;
+#endif /* XSS */
             pc2 = pc;
             len = GET_JUMPX_OFFSET(pc2);
 
@@ -3329,15 +5449,22 @@
             if (cx->version == JSVERSION_DEFAULT ||
                 cx->version >= JSVERSION_1_4) {
                 rval = POP_OPND();
+#ifndef XSS /* original */
                 if (!JSVAL_IS_INT(rval))
                     break;
                 i = JSVAL_TO_INT(rval);
+#else /* XSS: handle the types */
+				XSS_TO_ORIG_JSVAL(rval, xss_jsval);
+                if (!JSVAL_IS_INT(xss_jsval))
+                    break;
+                i = JSVAL_TO_INT(xss_jsval);
+#endif /* XSS */
             } else {
                 FETCH_INT(cx, -1, i);
                 sp--;
             }
 
-            pc2 += JUMPX_OFFSET_LEN;
+			pc2 += JUMPX_OFFSET_LEN;
             low = GET_JUMP_OFFSET(pc2);
             pc2 += JUMP_OFFSET_LEN;
             high = GET_JUMP_OFFSET(pc2);
@@ -3351,11 +5478,38 @@
             }
             break;
 
+		  /*
+		   * (extended) switch-statement that needs a lookup
+		   * e.g. switch ( x ) { case "z": print("z"); }
+		   */
           case JSOP_LOOKUPSWITCHX:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			xss_jsval = FETCH_OPND(-1);
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+
+			JS_BEGIN_MACRO			  
+			  jssrcnote *sn;
+			  ptrdiff_t len;
+			  /* get the length of the switch-statement */
+              sn = js_GetSrcNote(fp->script, pc);
+              len = js_GetSrcNoteOffset(sn, 0);
+			  /* and create a new scope over the whole switch-statement */
+			  XSS_NEW_SCOPE(fp->scope_current, pc, pc + len, taintoutput);
+		    JS_END_MACRO;
+#endif /* XSS */
             lval = POP_OPND();
             pc2 = pc;
             len = GET_JUMPX_OFFSET(pc2);
 
+#ifdef XSS 
+			/* convert the xss-lval back to a normal lval */
+			XSS_TO_ORIG_JSVAL(lval,lval);
+#endif /* XSS */
+
             if (!JSVAL_IS_NUMBER(lval) &&
                 !JSVAL_IS_STRING(lval) &&
                 !JSVAL_IS_BOOLEAN(lval)) {
@@ -3400,13 +5554,44 @@
 #undef SEARCH_EXTENDED_PAIRS
             break;
 
+		  /*
+		   * Switch on a condition
+		   * switch(1) { case (x == 1) : }
+		   */
           case JSOP_CONDSWITCH:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			xss_jsval = FETCH_OPND(-1);
+			XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+			XSS_CALC_TAINTOUTPUT;
+
+			JS_BEGIN_MACRO			  
+			  jssrcnote *sn;
+			  ptrdiff_t len;
+			  /* get the length of the switch-statement */
+              sn = js_GetSrcNote(fp->script, pc);
+              len = js_GetSrcNoteOffset(sn, 0);
+			  /* and create a new scope over the whole switch-statement */
+			  XSS_NEW_SCOPE(fp->scope_current, pc, pc + len, taintoutput);
+		    JS_END_MACRO;
+#endif /* XSS */
             break;
 
 #endif /* JS_HAS_SWITCH_STATEMENT */
 
 #if JS_HAS_EXPORT_IMPORT
+		  /*
+		   * Used to export all properties/functions
+		   * e.g. export *;
+		   */
           case JSOP_EXPORTALL:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             obj = fp->varobj;
             ida = JS_Enumerate(cx, obj);
             if (!ida) {
@@ -3414,6 +5599,21 @@
             } else {
                 for (i = 0, j = ida->length; i < j; i++) {
                     id = ida->vector[i];
+#ifdef XSS /* XSS */
+					/* get the jsval */
+	                ok = OBJ_GET_PROPERTY(cx, obj, id, &xss_jsval);
+					if (ok) {
+						XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+						XSS_CALC_TAINTOUTPUT;
+						XSS_TAINT_JSVAL_ON_OUTPUT(xss_jsval);
+						/* if necessary, taint the jsval  */
+						if (taintoutput == XSS_TAINTED) {
+							/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+							XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+							ok = OBJ_SET_PROPERTY(cx, obj, id, &xss_jsval);
+						}
+					}
+#endif /* XSS */
                     ok = OBJ_LOOKUP_PROPERTY(cx, obj, id, &obj2, &prop);
                     if (!ok)
                         break;
@@ -3432,10 +5632,33 @@
             }
             break;
 
+		  /*
+		   * Used to export variable.
+		   * e.g. var x = 1; export x;
+		   */
           case JSOP_EXPORTNAME:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
             obj  = fp->varobj;
+#ifdef XSS /* XSS */
+			/* if necessary, taint the jsval */
+	        ok = OBJ_GET_PROPERTY(cx, obj, id, &xss_jsval);
+			if (ok) {
+				XSS_TAINTOUTPUT_ON_VALUE(xss_jsval);
+				XSS_CALC_TAINTOUTPUT;
+				XSS_TAINT_JSVAL_ON_OUTPUT(xss_jsval);
+				if (taintoutput == XSS_TAINTED) {
+					/* set current scope for OBJ_SET_PROPERTY if it calls a native method */
+					XSS_NEW_SCOPE(fp->scope_current, pc, pc + 1, taintoutput);
+					ok = OBJ_SET_PROPERTY(cx, obj, id, &xss_jsval);
+				}
+			}
+#endif /* XSS */
             ok = OBJ_LOOKUP_PROPERTY(cx, obj, id, &obj2, &prop);
             if (!ok)
                 goto out;
@@ -3454,13 +5677,47 @@
                 goto out;
             break;
 
+		  /*
+		   * Imports all variables.
+		   * e.g. import *;
+		   */
           case JSOP_IMPORTALL:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			/* check if the imported variables have to be tained... */
+			XSS_TAINTOUTPUT_ON_VALUE(JSVAL_VOID);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* create a new scope if necessary */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc, XSS_TAINTED);
+			}
+#endif /* XSS */
             id = (jsid)JSVAL_VOID;
             PROPERTY_OP(-1, ok = ImportProperty(cx, obj, id));
             sp--;
             break;
 
+		  /*
+		   * Imports a property of an object
+		   * e.g. import w.f; // if there is an object "w" with a property f
+		   */
           case JSOP_IMPORTPROP:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			/* check if the imported variables have to be tained... */
+			XSS_TAINTOUTPUT_ON_VALUE(JSVAL_VOID);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* create a new scope if necessary */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc, XSS_TAINTED);
+			}
+#endif /* XSS */
             /* Get an immediate atom naming the property. */
             atom = GET_ATOM(cx, script, pc);
             id   = (jsid)atom;
@@ -3468,12 +5725,34 @@
             sp--;
             break;
 
+		  /*
+		   * Imports an element
+		   * e.g. import w['x']; // if there is an object "w" with a property "x".
+		   */
           case JSOP_IMPORTELEM:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+			/* check if the imported variables have to be tained... */
+			XSS_TAINTOUTPUT_ON_VALUE(JSVAL_VOID);
+			XSS_CALC_TAINTOUTPUT;
+
+			/* create a new scope if necessary */
+			if (taintoutput == XSS_TAINTED) {
+				XSS_NEW_SCOPE(fp->scope_current, pc, pc, XSS_TAINTED);
+			}
+#endif /* XSS */
             ELEMENT_OP(-1, ok = ImportProperty(cx, obj, id));
             sp -= 2;
             break;
 #endif /* JS_HAS_EXPORT_IMPORT */
-
+		  /*
+		   * used to call a traphandler
+		   * e.g. function test() { print('test');}
+		   * trap(test, 10, "print('trapped')");
+		   * test();
+		   */
           case JSOP_TRAP:
             switch (JS_HandleTrap(cx, script, pc, &rval)) {
               case JSTRAP_ERROR:
@@ -3500,15 +5779,37 @@
             LOAD_INTERRUPT_HANDLER(rt);
             break;
 
+		  /*
+		   * Gets the arguments of a function
+		   * function a(b,c,d) { x = arguments; }
+		   */
           case JSOP_ARGUMENTS:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             SAVE_SP(fp);
             ok = js_GetArgsValue(cx, fp, &rval);
             if (!ok)
                 goto out;
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(rval);
             break;
 
+		  /*
+		   * Gets a argument.
+		   * function x(i,j,k) { x = arguments[1]; };
+		   */
           case JSOP_ARGSUB:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             id = (jsid) INT_TO_JSVAL(GET_ARGNO(pc));
             SAVE_SP(fp);
             ok = js_GetArgsProperty(cx, fp, id, &obj, &rval);
@@ -3525,55 +5826,133 @@
                  */
                 obj = LAZY_ARGS_THISP;
             }
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(rval);
             break;
 
 #undef LAZY_ARGS_THISP
 
+		  /*
+		   * The number of arguments.
+		   * e.g. function () { a = arguments.length; }
+		   */
           case JSOP_ARGCNT:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             id = (jsid) rt->atomState.lengthAtom;
             SAVE_SP(fp);
             ok = js_GetArgsProperty(cx, fp, id, &obj, &rval);
             if (!ok)
                 goto out;
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(rval);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(rval);
             break;
 
+		  /*
+		   * gets the argument of the function
+		   * e.g. function test(a) { print(a); }
+		   */
           case JSOP_GETARG:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             slot = GET_ARGNO(pc);
             JS_ASSERT(slot < fp->fun->nargs);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(fp->argv[slot]);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(fp->argv[slot]);
             obj = NULL;
             break;
 
+		  /*
+		   * sets an argument in a function
+		   * e.g. function test(a) { a = 2; }
+		   */
           case JSOP_SETARG:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             slot = GET_ARGNO(pc);
             JS_ASSERT(slot < fp->fun->nargs);
             vp = &fp->argv[slot];
             GC_POKE(cx, *vp);
             *vp = FETCH_OPND(-1);
+#ifdef XSS /* XSS */
+			XSS_TAINTOUTPUT_ON_VALUE(FETCH_OPND(-1));
+			XSS_CALC_TAINTOUTPUT;
+			XSS_TAINT_JSVAL_ON_OUTPUT(FETCH_OPND(-1));
+			*vp = FETCH_OPND(-1);
+#endif /* XSS */
             obj = NULL;
             break;
 
+		  /*
+		   * Gets a function-variable;
+		   * e.g. function test() { var x = 1; print(x); }
+		   */
           case JSOP_GETVAR:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             slot = GET_VARNO(pc);
             JS_ASSERT(slot < fp->fun->nvars);
+#ifdef XSS /* orig */
+			/* check if the output has to be tainted */
+			XSS_TAINTOUTPUT_ON_VALUE(fp->vars[slot]);
+			XSS_CALC_TAINTOUTPUT;
+#endif /* XSS */
             PUSH_OPND(fp->vars[slot]);
             obj = NULL;
             break;
 
+		  /*
+		   * Sets a function-variable;
+		   * e.g. function test() { var x = 5; }
+		   */
           case JSOP_SETVAR:
+#ifdef XSS /* XSS */
+			/* check if the stack is tainted or the scope */
+			XSS_TAINTOUTPUT_ON_STACK;
+			XSS_TAINTOUTPUT_ON_SCOPE;
+#endif /* XSS */
             slot = GET_VARNO(pc);
             JS_ASSERT(slot < fp->fun->nvars);
             vp = &fp->vars[slot];
+#ifdef XSS /* XSS
