<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -411,19 +411,6 @@ endif
 ifdef CROSS_COMPILE
 # jscpucfg needs to know when it's supposed to produce a config for the target
 JSCPUCFG_DEFINES = $(ACDEFINES)
-
-# This is incredibly hacky.  Darwin NSPR uses the same MDCPUCFG for multiple
-# processors, and determines which processor to configure for based on
-# #ifdef i386.  This macro is among the NSPR defines, but is also automatically
-# defined by the compiler when building for i386.  It therefore needs to be
-# defined here if targeting i386, and explicitly undefined otherwise.
-ifeq ($(OS_ARCH),Darwin)
-ifeq ($(TARGET_CPU),powerpc)
-JSCPUCFG_DEFINES += -Ui386
-else
-JSCPUCFG_DEFINES += -Di386=1
-endif
-endif
 endif
 
 ifeq ($(OS_ARCH),QNX)</diff>
      <filename>vendor/spidermonkey/Makefile.in</filename>
    </modified>
    <modified>
      <diff>@@ -174,6 +174,7 @@ JS_HFILES =		\
 	jsscope.h	\
 	jsscript.h	\
 	jsstr.h		\
+	jsutil.h        \
 	jsxdrapi.h	\
 	jsxml.h		\
 	$(NULL)</diff>
      <filename>vendor/spidermonkey/Makefile.ref</filename>
    </modified>
    <modified>
      <diff>@@ -94,9 +94,6 @@ endif
 ifeq ($(OS_ARCH),Linux)
 OS_CONFIG      := Linux_All
 else
-ifeq ($(OS_ARCH),FreeBSD)
-OS_CONFIG      := FreeBSD
-else
 ifeq ($(OS_ARCH),dgux)
 OS_CONFIG      := dgux
 else
@@ -107,7 +104,6 @@ OS_CONFIG       := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE)
 endif
 endif
 endif
-endif
 
 ASFLAGS         =
 DEFINES         =</diff>
      <filename>vendor/spidermonkey/config.mk</filename>
    </modified>
    <modified>
      <diff>@@ -1,1453 +1,1453 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE &quot;Win32 (x86) Static Library&quot; 0x0104
-
-!IF &quot;$(CFG)&quot; == &quot;&quot;
-CFG=fdlibm - Win32 Debug
-!MESSAGE No configuration specified.  Defaulting to fdlibm - Win32 Debug.
-!ENDIF 
-
-!IF &quot;$(CFG)&quot; != &quot;fdlibm - Win32 Release&quot; &amp;&amp; &quot;$(CFG)&quot; != &quot;fdlibm - Win32 Debug&quot;
-!MESSAGE Invalid configuration &quot;$(CFG)&quot; 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 &quot;fdlibm.mak&quot; CFG=&quot;fdlibm - Win32 Debug&quot;
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE &quot;fdlibm - Win32 Release&quot; (based on &quot;Win32 (x86) Static Library&quot;)
-!MESSAGE &quot;fdlibm - Win32 Debug&quot; (based on &quot;Win32 (x86) Static Library&quot;)
-!MESSAGE 
-!ERROR An invalid configuration is specified.
-!ENDIF 
-
-!IF &quot;$(OS)&quot; == &quot;Windows_NT&quot;
-NULL=
-!ELSE 
-NULL=nul
-!ENDIF 
-################################################################################
-# Begin Project
-CPP=cl.exe
-
-!IF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Release&quot;
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir &quot;fdlibm__&quot;
-# PROP BASE Intermediate_Dir &quot;fdlibm__&quot;
-# PROP BASE Target_Dir &quot;&quot;
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir &quot;fdlibm__&quot;
-# PROP Intermediate_Dir &quot;fdlibm__&quot;
-# PROP Target_Dir &quot;&quot;
-OUTDIR=.\fdlibm__
-INTDIR=.\fdlibm__
-
-ALL : &quot;$(OUTDIR)\fdlibm.lib&quot;
-
-CLEAN : 
-	-@erase &quot;$(INTDIR)\e_acos.obj&quot;
-	-@erase &quot;$(INTDIR)\e_acosh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_asin.obj&quot;
-	-@erase &quot;$(INTDIR)\e_atan2.obj&quot;
-	-@erase &quot;$(INTDIR)\e_atanh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_cosh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_exp.obj&quot;
-	-@erase &quot;$(INTDIR)\e_fmod.obj&quot;
-	-@erase &quot;$(INTDIR)\e_gamma.obj&quot;
-	-@erase &quot;$(INTDIR)\e_gamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\e_hypot.obj&quot;
-	-@erase &quot;$(INTDIR)\e_j0.obj&quot;
-	-@erase &quot;$(INTDIR)\e_j1.obj&quot;
-	-@erase &quot;$(INTDIR)\e_jn.obj&quot;
-	-@erase &quot;$(INTDIR)\e_lgamma.obj&quot;
-	-@erase &quot;$(INTDIR)\e_lgamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\e_log.obj&quot;
-	-@erase &quot;$(INTDIR)\e_log10.obj&quot;
-	-@erase &quot;$(INTDIR)\e_pow.obj&quot;
-	-@erase &quot;$(INTDIR)\e_rem_pio2.obj&quot;
-	-@erase &quot;$(INTDIR)\e_remainder.obj&quot;
-	-@erase &quot;$(INTDIR)\e_scalb.obj&quot;
-	-@erase &quot;$(INTDIR)\e_sinh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_sqrt.obj&quot;
-	-@erase &quot;$(INTDIR)\k_cos.obj&quot;
-	-@erase &quot;$(INTDIR)\k_rem_pio2.obj&quot;
-	-@erase &quot;$(INTDIR)\k_sin.obj&quot;
-	-@erase &quot;$(INTDIR)\k_standard.obj&quot;
-	-@erase &quot;$(INTDIR)\k_tan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_asinh.obj&quot;
-	-@erase &quot;$(INTDIR)\s_atan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_cbrt.obj&quot;
-	-@erase &quot;$(INTDIR)\s_ceil.obj&quot;
-	-@erase &quot;$(INTDIR)\s_copysign.obj&quot;
-	-@erase &quot;$(INTDIR)\s_cos.obj&quot;
-	-@erase &quot;$(INTDIR)\s_erf.obj&quot;
-	-@erase &quot;$(INTDIR)\s_expm1.obj&quot;
-	-@erase &quot;$(INTDIR)\s_fabs.obj&quot;
-	-@erase &quot;$(INTDIR)\s_finite.obj&quot;
-	-@erase &quot;$(INTDIR)\s_floor.obj&quot;
-	-@erase &quot;$(INTDIR)\s_frexp.obj&quot;
-	-@erase &quot;$(INTDIR)\s_ilogb.obj&quot;
-	-@erase &quot;$(INTDIR)\s_isnan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_ldexp.obj&quot;
-	-@erase &quot;$(INTDIR)\s_lib_version.obj&quot;
-	-@erase &quot;$(INTDIR)\s_log1p.obj&quot;
-	-@erase &quot;$(INTDIR)\s_logb.obj&quot;
-	-@erase &quot;$(INTDIR)\s_matherr.obj&quot;
-	-@erase &quot;$(INTDIR)\s_modf.obj&quot;
-	-@erase &quot;$(INTDIR)\s_nextafter.obj&quot;
-	-@erase &quot;$(INTDIR)\s_rint.obj&quot;
-	-@erase &quot;$(INTDIR)\s_scalbn.obj&quot;
-	-@erase &quot;$(INTDIR)\s_signgam.obj&quot;
-	-@erase &quot;$(INTDIR)\s_significand.obj&quot;
-	-@erase &quot;$(INTDIR)\s_sin.obj&quot;
-	-@erase &quot;$(INTDIR)\s_tan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_tanh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_acos.obj&quot;
-	-@erase &quot;$(INTDIR)\w_acosh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_asin.obj&quot;
-	-@erase &quot;$(INTDIR)\w_atan2.obj&quot;
-	-@erase &quot;$(INTDIR)\w_atanh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_cosh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_exp.obj&quot;
-	-@erase &quot;$(INTDIR)\w_fmod.obj&quot;
-	-@erase &quot;$(INTDIR)\w_gamma.obj&quot;
-	-@erase &quot;$(INTDIR)\w_gamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\w_hypot.obj&quot;
-	-@erase &quot;$(INTDIR)\w_j0.obj&quot;
-	-@erase &quot;$(INTDIR)\w_j1.obj&quot;
-	-@erase &quot;$(INTDIR)\w_jn.obj&quot;
-	-@erase &quot;$(INTDIR)\w_lgamma.obj&quot;
-	-@erase &quot;$(INTDIR)\w_lgamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\w_log.obj&quot;
-	-@erase &quot;$(INTDIR)\w_log10.obj&quot;
-	-@erase &quot;$(INTDIR)\w_pow.obj&quot;
-	-@erase &quot;$(INTDIR)\w_remainder.obj&quot;
-	-@erase &quot;$(INTDIR)\w_scalb.obj&quot;
-	-@erase &quot;$(INTDIR)\w_sinh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_sqrt.obj&quot;
-	-@erase &quot;$(OUTDIR)\fdlibm.lib&quot;
-
-&quot;$(OUTDIR)&quot; :
-    if not exist &quot;$(OUTDIR)/$(NULL)&quot; mkdir &quot;$(OUTDIR)&quot;
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D &quot;WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
-# ADD CPP /nologo /W3 /GX /O2 /D &quot;WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
-CPP_PROJ=/nologo /ML /W3 /GX /O2 /D &quot;WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_WINDOWS&quot;\
- /Fp&quot;$(INTDIR)/fdlibm.pch&quot; /YX /Fo&quot;$(INTDIR)/&quot; /c 
-CPP_OBJS=.\fdlibm__/
-CPP_SBRS=.\.
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o&quot;$(OUTDIR)/fdlibm.bsc&quot; 
-BSC32_SBRS= \
-	
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-LIB32_FLAGS=/nologo /out:&quot;$(OUTDIR)/fdlibm.lib&quot; 
-LIB32_OBJS= \
-	&quot;$(INTDIR)\e_acos.obj&quot; \
-	&quot;$(INTDIR)\e_acosh.obj&quot; \
-	&quot;$(INTDIR)\e_asin.obj&quot; \
-	&quot;$(INTDIR)\e_atan2.obj&quot; \
-	&quot;$(INTDIR)\e_atanh.obj&quot; \
-	&quot;$(INTDIR)\e_cosh.obj&quot; \
-	&quot;$(INTDIR)\e_exp.obj&quot; \
-	&quot;$(INTDIR)\e_fmod.obj&quot; \
-	&quot;$(INTDIR)\e_gamma.obj&quot; \
-	&quot;$(INTDIR)\e_gamma_r.obj&quot; \
-	&quot;$(INTDIR)\e_hypot.obj&quot; \
-	&quot;$(INTDIR)\e_j0.obj&quot; \
-	&quot;$(INTDIR)\e_j1.obj&quot; \
-	&quot;$(INTDIR)\e_jn.obj&quot; \
-	&quot;$(INTDIR)\e_lgamma.obj&quot; \
-	&quot;$(INTDIR)\e_lgamma_r.obj&quot; \
-	&quot;$(INTDIR)\e_log.obj&quot; \
-	&quot;$(INTDIR)\e_log10.obj&quot; \
-	&quot;$(INTDIR)\e_pow.obj&quot; \
-	&quot;$(INTDIR)\e_rem_pio2.obj&quot; \
-	&quot;$(INTDIR)\e_remainder.obj&quot; \
-	&quot;$(INTDIR)\e_scalb.obj&quot; \
-	&quot;$(INTDIR)\e_sinh.obj&quot; \
-	&quot;$(INTDIR)\e_sqrt.obj&quot; \
-	&quot;$(INTDIR)\k_cos.obj&quot; \
-	&quot;$(INTDIR)\k_rem_pio2.obj&quot; \
-	&quot;$(INTDIR)\k_sin.obj&quot; \
-	&quot;$(INTDIR)\k_standard.obj&quot; \
-	&quot;$(INTDIR)\k_tan.obj&quot; \
-	&quot;$(INTDIR)\s_asinh.obj&quot; \
-	&quot;$(INTDIR)\s_atan.obj&quot; \
-	&quot;$(INTDIR)\s_cbrt.obj&quot; \
-	&quot;$(INTDIR)\s_ceil.obj&quot; \
-	&quot;$(INTDIR)\s_copysign.obj&quot; \
-	&quot;$(INTDIR)\s_cos.obj&quot; \
-	&quot;$(INTDIR)\s_erf.obj&quot; \
-	&quot;$(INTDIR)\s_expm1.obj&quot; \
-	&quot;$(INTDIR)\s_fabs.obj&quot; \
-	&quot;$(INTDIR)\s_finite.obj&quot; \
-	&quot;$(INTDIR)\s_floor.obj&quot; \
-	&quot;$(INTDIR)\s_frexp.obj&quot; \
-	&quot;$(INTDIR)\s_ilogb.obj&quot; \
-	&quot;$(INTDIR)\s_isnan.obj&quot; \
-	&quot;$(INTDIR)\s_ldexp.obj&quot; \
-	&quot;$(INTDIR)\s_lib_version.obj&quot; \
-	&quot;$(INTDIR)\s_log1p.obj&quot; \
-	&quot;$(INTDIR)\s_logb.obj&quot; \
-	&quot;$(INTDIR)\s_matherr.obj&quot; \
-	&quot;$(INTDIR)\s_modf.obj&quot; \
-	&quot;$(INTDIR)\s_nextafter.obj&quot; \
-	&quot;$(INTDIR)\s_rint.obj&quot; \
-	&quot;$(INTDIR)\s_scalbn.obj&quot; \
-	&quot;$(INTDIR)\s_signgam.obj&quot; \
-	&quot;$(INTDIR)\s_significand.obj&quot; \
-	&quot;$(INTDIR)\s_sin.obj&quot; \
-	&quot;$(INTDIR)\s_tan.obj&quot; \
-	&quot;$(INTDIR)\s_tanh.obj&quot; \
-	&quot;$(INTDIR)\w_acos.obj&quot; \
-	&quot;$(INTDIR)\w_acosh.obj&quot; \
-	&quot;$(INTDIR)\w_asin.obj&quot; \
-	&quot;$(INTDIR)\w_atan2.obj&quot; \
-	&quot;$(INTDIR)\w_atanh.obj&quot; \
-	&quot;$(INTDIR)\w_cosh.obj&quot; \
-	&quot;$(INTDIR)\w_exp.obj&quot; \
-	&quot;$(INTDIR)\w_fmod.obj&quot; \
-	&quot;$(INTDIR)\w_gamma.obj&quot; \
-	&quot;$(INTDIR)\w_gamma_r.obj&quot; \
-	&quot;$(INTDIR)\w_hypot.obj&quot; \
-	&quot;$(INTDIR)\w_j0.obj&quot; \
-	&quot;$(INTDIR)\w_j1.obj&quot; \
-	&quot;$(INTDIR)\w_jn.obj&quot; \
-	&quot;$(INTDIR)\w_lgamma.obj&quot; \
-	&quot;$(INTDIR)\w_lgamma_r.obj&quot; \
-	&quot;$(INTDIR)\w_log.obj&quot; \
-	&quot;$(INTDIR)\w_log10.obj&quot; \
-	&quot;$(INTDIR)\w_pow.obj&quot; \
-	&quot;$(INTDIR)\w_remainder.obj&quot; \
-	&quot;$(INTDIR)\w_scalb.obj&quot; \
-	&quot;$(INTDIR)\w_sinh.obj&quot; \
-	&quot;$(INTDIR)\w_sqrt.obj&quot;
-
-&quot;$(OUTDIR)\fdlibm.lib&quot; : &quot;$(OUTDIR)&quot; $(DEF_FILE) $(LIB32_OBJS)
-    $(LIB32) @&lt;&lt;
-  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-&lt;&lt;
-
-!ELSEIF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Debug&quot;
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir &quot;fdlibm_0&quot;
-# PROP BASE Intermediate_Dir &quot;fdlibm_0&quot;
-# PROP BASE Target_Dir &quot;&quot;
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir &quot;fdlibm_0&quot;
-# PROP Intermediate_Dir &quot;fdlibm_0&quot;
-# PROP Target_Dir &quot;&quot;
-OUTDIR=.\fdlibm_0
-INTDIR=.\fdlibm_0
-
-ALL : &quot;$(OUTDIR)\fdlibm.lib&quot;
-
-CLEAN : 
-	-@erase &quot;$(INTDIR)\e_acos.obj&quot;
-	-@erase &quot;$(INTDIR)\e_acosh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_asin.obj&quot;
-	-@erase &quot;$(INTDIR)\e_atan2.obj&quot;
-	-@erase &quot;$(INTDIR)\e_atanh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_cosh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_exp.obj&quot;
-	-@erase &quot;$(INTDIR)\e_fmod.obj&quot;
-	-@erase &quot;$(INTDIR)\e_gamma.obj&quot;
-	-@erase &quot;$(INTDIR)\e_gamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\e_hypot.obj&quot;
-	-@erase &quot;$(INTDIR)\e_j0.obj&quot;
-	-@erase &quot;$(INTDIR)\e_j1.obj&quot;
-	-@erase &quot;$(INTDIR)\e_jn.obj&quot;
-	-@erase &quot;$(INTDIR)\e_lgamma.obj&quot;
-	-@erase &quot;$(INTDIR)\e_lgamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\e_log.obj&quot;
-	-@erase &quot;$(INTDIR)\e_log10.obj&quot;
-	-@erase &quot;$(INTDIR)\e_pow.obj&quot;
-	-@erase &quot;$(INTDIR)\e_rem_pio2.obj&quot;
-	-@erase &quot;$(INTDIR)\e_remainder.obj&quot;
-	-@erase &quot;$(INTDIR)\e_scalb.obj&quot;
-	-@erase &quot;$(INTDIR)\e_sinh.obj&quot;
-	-@erase &quot;$(INTDIR)\e_sqrt.obj&quot;
-	-@erase &quot;$(INTDIR)\k_cos.obj&quot;
-	-@erase &quot;$(INTDIR)\k_rem_pio2.obj&quot;
-	-@erase &quot;$(INTDIR)\k_sin.obj&quot;
-	-@erase &quot;$(INTDIR)\k_standard.obj&quot;
-	-@erase &quot;$(INTDIR)\k_tan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_asinh.obj&quot;
-	-@erase &quot;$(INTDIR)\s_atan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_cbrt.obj&quot;
-	-@erase &quot;$(INTDIR)\s_ceil.obj&quot;
-	-@erase &quot;$(INTDIR)\s_copysign.obj&quot;
-	-@erase &quot;$(INTDIR)\s_cos.obj&quot;
-	-@erase &quot;$(INTDIR)\s_erf.obj&quot;
-	-@erase &quot;$(INTDIR)\s_expm1.obj&quot;
-	-@erase &quot;$(INTDIR)\s_fabs.obj&quot;
-	-@erase &quot;$(INTDIR)\s_finite.obj&quot;
-	-@erase &quot;$(INTDIR)\s_floor.obj&quot;
-	-@erase &quot;$(INTDIR)\s_frexp.obj&quot;
-	-@erase &quot;$(INTDIR)\s_ilogb.obj&quot;
-	-@erase &quot;$(INTDIR)\s_isnan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_ldexp.obj&quot;
-	-@erase &quot;$(INTDIR)\s_lib_version.obj&quot;
-	-@erase &quot;$(INTDIR)\s_log1p.obj&quot;
-	-@erase &quot;$(INTDIR)\s_logb.obj&quot;
-	-@erase &quot;$(INTDIR)\s_matherr.obj&quot;
-	-@erase &quot;$(INTDIR)\s_modf.obj&quot;
-	-@erase &quot;$(INTDIR)\s_nextafter.obj&quot;
-	-@erase &quot;$(INTDIR)\s_rint.obj&quot;
-	-@erase &quot;$(INTDIR)\s_scalbn.obj&quot;
-	-@erase &quot;$(INTDIR)\s_signgam.obj&quot;
-	-@erase &quot;$(INTDIR)\s_significand.obj&quot;
-	-@erase &quot;$(INTDIR)\s_sin.obj&quot;
-	-@erase &quot;$(INTDIR)\s_tan.obj&quot;
-	-@erase &quot;$(INTDIR)\s_tanh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_acos.obj&quot;
-	-@erase &quot;$(INTDIR)\w_acosh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_asin.obj&quot;
-	-@erase &quot;$(INTDIR)\w_atan2.obj&quot;
-	-@erase &quot;$(INTDIR)\w_atanh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_cosh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_exp.obj&quot;
-	-@erase &quot;$(INTDIR)\w_fmod.obj&quot;
-	-@erase &quot;$(INTDIR)\w_gamma.obj&quot;
-	-@erase &quot;$(INTDIR)\w_gamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\w_hypot.obj&quot;
-	-@erase &quot;$(INTDIR)\w_j0.obj&quot;
-	-@erase &quot;$(INTDIR)\w_j1.obj&quot;
-	-@erase &quot;$(INTDIR)\w_jn.obj&quot;
-	-@erase &quot;$(INTDIR)\w_lgamma.obj&quot;
-	-@erase &quot;$(INTDIR)\w_lgamma_r.obj&quot;
-	-@erase &quot;$(INTDIR)\w_log.obj&quot;
-	-@erase &quot;$(INTDIR)\w_log10.obj&quot;
-	-@erase &quot;$(INTDIR)\w_pow.obj&quot;
-	-@erase &quot;$(INTDIR)\w_remainder.obj&quot;
-	-@erase &quot;$(INTDIR)\w_scalb.obj&quot;
-	-@erase &quot;$(INTDIR)\w_sinh.obj&quot;
-	-@erase &quot;$(INTDIR)\w_sqrt.obj&quot;
-	-@erase &quot;$(OUTDIR)\fdlibm.lib&quot;
-
-&quot;$(OUTDIR)&quot; :
-    if not exist &quot;$(OUTDIR)/$(NULL)&quot; mkdir &quot;$(OUTDIR)&quot;
-
-# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
-# ADD CPP /nologo /W3 /GX /Z7 /Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
-CPP_PROJ=/nologo /MLd /W3 /GX /Z7 /Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot;\
- /Fp&quot;$(INTDIR)/fdlibm.pch&quot; /YX /Fo&quot;$(INTDIR)/&quot; /c 
-CPP_OBJS=.\fdlibm_0/
-CPP_SBRS=.\.
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o&quot;$(OUTDIR)/fdlibm.bsc&quot; 
-BSC32_SBRS= \
-	
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-LIB32_FLAGS=/nologo /out:&quot;$(OUTDIR)/fdlibm.lib&quot; 
-LIB32_OBJS= \
-	&quot;$(INTDIR)\e_acos.obj&quot; \
-	&quot;$(INTDIR)\e_acosh.obj&quot; \
-	&quot;$(INTDIR)\e_asin.obj&quot; \
-	&quot;$(INTDIR)\e_atan2.obj&quot; \
-	&quot;$(INTDIR)\e_atanh.obj&quot; \
-	&quot;$(INTDIR)\e_cosh.obj&quot; \
-	&quot;$(INTDIR)\e_exp.obj&quot; \
-	&quot;$(INTDIR)\e_fmod.obj&quot; \
-	&quot;$(INTDIR)\e_gamma.obj&quot; \
-	&quot;$(INTDIR)\e_gamma_r.obj&quot; \
-	&quot;$(INTDIR)\e_hypot.obj&quot; \
-	&quot;$(INTDIR)\e_j0.obj&quot; \
-	&quot;$(INTDIR)\e_j1.obj&quot; \
-	&quot;$(INTDIR)\e_jn.obj&quot; \
-	&quot;$(INTDIR)\e_lgamma.obj&quot; \
-	&quot;$(INTDIR)\e_lgamma_r.obj&quot; \
-	&quot;$(INTDIR)\e_log.obj&quot; \
-	&quot;$(INTDIR)\e_log10.obj&quot; \
-	&quot;$(INTDIR)\e_pow.obj&quot; \
-	&quot;$(INTDIR)\e_rem_pio2.obj&quot; \
-	&quot;$(INTDIR)\e_remainder.obj&quot; \
-	&quot;$(INTDIR)\e_scalb.obj&quot; \
-	&quot;$(INTDIR)\e_sinh.obj&quot; \
-	&quot;$(INTDIR)\e_sqrt.obj&quot; \
-	&quot;$(INTDIR)\k_cos.obj&quot; \
-	&quot;$(INTDIR)\k_rem_pio2.obj&quot; \
-	&quot;$(INTDIR)\k_sin.obj&quot; \
-	&quot;$(INTDIR)\k_standard.obj&quot; \
-	&quot;$(INTDIR)\k_tan.obj&quot; \
-	&quot;$(INTDIR)\s_asinh.obj&quot; \
-	&quot;$(INTDIR)\s_atan.obj&quot; \
-	&quot;$(INTDIR)\s_cbrt.obj&quot; \
-	&quot;$(INTDIR)\s_ceil.obj&quot; \
-	&quot;$(INTDIR)\s_copysign.obj&quot; \
-	&quot;$(INTDIR)\s_cos.obj&quot; \
-	&quot;$(INTDIR)\s_erf.obj&quot; \
-	&quot;$(INTDIR)\s_expm1.obj&quot; \
-	&quot;$(INTDIR)\s_fabs.obj&quot; \
-	&quot;$(INTDIR)\s_finite.obj&quot; \
-	&quot;$(INTDIR)\s_floor.obj&quot; \
-	&quot;$(INTDIR)\s_frexp.obj&quot; \
-	&quot;$(INTDIR)\s_ilogb.obj&quot; \
-	&quot;$(INTDIR)\s_isnan.obj&quot; \
-	&quot;$(INTDIR)\s_ldexp.obj&quot; \
-	&quot;$(INTDIR)\s_lib_version.obj&quot; \
-	&quot;$(INTDIR)\s_log1p.obj&quot; \
-	&quot;$(INTDIR)\s_logb.obj&quot; \
-	&quot;$(INTDIR)\s_matherr.obj&quot; \
-	&quot;$(INTDIR)\s_modf.obj&quot; \
-	&quot;$(INTDIR)\s_nextafter.obj&quot; \
-	&quot;$(INTDIR)\s_rint.obj&quot; \
-	&quot;$(INTDIR)\s_scalbn.obj&quot; \
-	&quot;$(INTDIR)\s_signgam.obj&quot; \
-	&quot;$(INTDIR)\s_significand.obj&quot; \
-	&quot;$(INTDIR)\s_sin.obj&quot; \
-	&quot;$(INTDIR)\s_tan.obj&quot; \
-	&quot;$(INTDIR)\s_tanh.obj&quot; \
-	&quot;$(INTDIR)\w_acos.obj&quot; \
-	&quot;$(INTDIR)\w_acosh.obj&quot; \
-	&quot;$(INTDIR)\w_asin.obj&quot; \
-	&quot;$(INTDIR)\w_atan2.obj&quot; \
-	&quot;$(INTDIR)\w_atanh.obj&quot; \
-	&quot;$(INTDIR)\w_cosh.obj&quot; \
-	&quot;$(INTDIR)\w_exp.obj&quot; \
-	&quot;$(INTDIR)\w_fmod.obj&quot; \
-	&quot;$(INTDIR)\w_gamma.obj&quot; \
-	&quot;$(INTDIR)\w_gamma_r.obj&quot; \
-	&quot;$(INTDIR)\w_hypot.obj&quot; \
-	&quot;$(INTDIR)\w_j0.obj&quot; \
-	&quot;$(INTDIR)\w_j1.obj&quot; \
-	&quot;$(INTDIR)\w_jn.obj&quot; \
-	&quot;$(INTDIR)\w_lgamma.obj&quot; \
-	&quot;$(INTDIR)\w_lgamma_r.obj&quot; \
-	&quot;$(INTDIR)\w_log.obj&quot; \
-	&quot;$(INTDIR)\w_log10.obj&quot; \
-	&quot;$(INTDIR)\w_pow.obj&quot; \
-	&quot;$(INTDIR)\w_remainder.obj&quot; \
-	&quot;$(INTDIR)\w_scalb.obj&quot; \
-	&quot;$(INTDIR)\w_sinh.obj&quot; \
-	&quot;$(INTDIR)\w_sqrt.obj&quot;
-
-&quot;$(OUTDIR)\fdlibm.lib&quot; : &quot;$(OUTDIR)&quot; $(DEF_FILE) $(LIB32_OBJS)
-    $(LIB32) @&lt;&lt;
-  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-&lt;&lt;
-
-!ENDIF 
-
-.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $&lt;  
-
-.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $&lt;  
-
-.cxx{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $&lt;  
-
-.c{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $&lt;  
-
-.cpp{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $&lt;  
-
-.cxx{$(CPP_SBRS)}.sbr:
-   $(CPP) $(CPP_PROJ) $&lt;  
-
-################################################################################
-# Begin Target
-
-# Name &quot;fdlibm - Win32 Release&quot;
-# Name &quot;fdlibm - Win32 Debug&quot;
-
-!IF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Release&quot;
-
-!ELSEIF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Debug&quot;
-
-!ENDIF 
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_sqrt.c
-DEP_CPP_W_SQR=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_sqrt.obj&quot; : $(SOURCE) $(DEP_CPP_W_SQR) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_acosh.c
-DEP_CPP_E_ACO=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_acosh.obj&quot; : $(SOURCE) $(DEP_CPP_E_ACO) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_asin.c
-DEP_CPP_E_ASI=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_asin.obj&quot; : $(SOURCE) $(DEP_CPP_E_ASI) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_atan2.c
-DEP_CPP_E_ATA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_atan2.obj&quot; : $(SOURCE) $(DEP_CPP_E_ATA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_atanh.c
-DEP_CPP_E_ATAN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_atanh.obj&quot; : $(SOURCE) $(DEP_CPP_E_ATAN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_cosh.c
-DEP_CPP_E_COS=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_cosh.obj&quot; : $(SOURCE) $(DEP_CPP_E_COS) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_exp.c
-DEP_CPP_E_EXP=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_exp.obj&quot; : $(SOURCE) $(DEP_CPP_E_EXP) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_fmod.c
-DEP_CPP_E_FMO=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_fmod.obj&quot; : $(SOURCE) $(DEP_CPP_E_FMO) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_gamma.c
-DEP_CPP_E_GAM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_gamma.obj&quot; : $(SOURCE) $(DEP_CPP_E_GAM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_gamma_r.c
-DEP_CPP_E_GAMM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_gamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_E_GAMM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_hypot.c
-DEP_CPP_E_HYP=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_hypot.obj&quot; : $(SOURCE) $(DEP_CPP_E_HYP) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_j0.c
-DEP_CPP_E_J0_=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_j0.obj&quot; : $(SOURCE) $(DEP_CPP_E_J0_) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_j1.c
-DEP_CPP_E_J1_=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_j1.obj&quot; : $(SOURCE) $(DEP_CPP_E_J1_) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_jn.c
-DEP_CPP_E_JN_=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_jn.obj&quot; : $(SOURCE) $(DEP_CPP_E_JN_) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_lgamma.c
-DEP_CPP_E_LGA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_lgamma.obj&quot; : $(SOURCE) $(DEP_CPP_E_LGA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_lgamma_r.c
-DEP_CPP_E_LGAM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_lgamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_E_LGAM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_log.c
-DEP_CPP_E_LOG=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_log.obj&quot; : $(SOURCE) $(DEP_CPP_E_LOG) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_log10.c
-DEP_CPP_E_LOG1=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_log10.obj&quot; : $(SOURCE) $(DEP_CPP_E_LOG1) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_pow.c
-DEP_CPP_E_POW=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_pow.obj&quot; : $(SOURCE) $(DEP_CPP_E_POW) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_rem_pio2.c
-DEP_CPP_E_REM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_rem_pio2.obj&quot; : $(SOURCE) $(DEP_CPP_E_REM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_remainder.c
-DEP_CPP_E_REMA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_remainder.obj&quot; : $(SOURCE) $(DEP_CPP_E_REMA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_scalb.c
-DEP_CPP_E_SCA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_scalb.obj&quot; : $(SOURCE) $(DEP_CPP_E_SCA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_sinh.c
-DEP_CPP_E_SIN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_sinh.obj&quot; : $(SOURCE) $(DEP_CPP_E_SIN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_sqrt.c
-DEP_CPP_E_SQR=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_sqrt.obj&quot; : $(SOURCE) $(DEP_CPP_E_SQR) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\fdlibm.h
-
-!IF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Release&quot;
-
-!ELSEIF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Debug&quot;
-
-!ENDIF 
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_cos.c
-DEP_CPP_K_COS=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\k_cos.obj&quot; : $(SOURCE) $(DEP_CPP_K_COS) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_rem_pio2.c
-DEP_CPP_K_REM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\k_rem_pio2.obj&quot; : $(SOURCE) $(DEP_CPP_K_REM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_sin.c
-DEP_CPP_K_SIN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\k_sin.obj&quot; : $(SOURCE) $(DEP_CPP_K_SIN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_standard.c
-DEP_CPP_K_STA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\k_standard.obj&quot; : $(SOURCE) $(DEP_CPP_K_STA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\k_tan.c
-DEP_CPP_K_TAN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\k_tan.obj&quot; : $(SOURCE) $(DEP_CPP_K_TAN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_asinh.c
-DEP_CPP_S_ASI=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_asinh.obj&quot; : $(SOURCE) $(DEP_CPP_S_ASI) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_atan.c
-DEP_CPP_S_ATA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_atan.obj&quot; : $(SOURCE) $(DEP_CPP_S_ATA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_cbrt.c
-DEP_CPP_S_CBR=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_cbrt.obj&quot; : $(SOURCE) $(DEP_CPP_S_CBR) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_ceil.c
-DEP_CPP_S_CEI=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_ceil.obj&quot; : $(SOURCE) $(DEP_CPP_S_CEI) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_copysign.c
-DEP_CPP_S_COP=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_copysign.obj&quot; : $(SOURCE) $(DEP_CPP_S_COP) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_cos.c
-DEP_CPP_S_COS=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_cos.obj&quot; : $(SOURCE) $(DEP_CPP_S_COS) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_erf.c
-DEP_CPP_S_ERF=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_erf.obj&quot; : $(SOURCE) $(DEP_CPP_S_ERF) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_expm1.c
-DEP_CPP_S_EXP=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_expm1.obj&quot; : $(SOURCE) $(DEP_CPP_S_EXP) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_fabs.c
-DEP_CPP_S_FAB=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_fabs.obj&quot; : $(SOURCE) $(DEP_CPP_S_FAB) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_finite.c
-DEP_CPP_S_FIN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_finite.obj&quot; : $(SOURCE) $(DEP_CPP_S_FIN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_floor.c
-DEP_CPP_S_FLO=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_floor.obj&quot; : $(SOURCE) $(DEP_CPP_S_FLO) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_frexp.c
-DEP_CPP_S_FRE=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_frexp.obj&quot; : $(SOURCE) $(DEP_CPP_S_FRE) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_ilogb.c
-DEP_CPP_S_ILO=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_ilogb.obj&quot; : $(SOURCE) $(DEP_CPP_S_ILO) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_isnan.c
-DEP_CPP_S_ISN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_isnan.obj&quot; : $(SOURCE) $(DEP_CPP_S_ISN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_ldexp.c
-DEP_CPP_S_LDE=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_ldexp.obj&quot; : $(SOURCE) $(DEP_CPP_S_LDE) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_lib_version.c
-DEP_CPP_S_LIB=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_lib_version.obj&quot; : $(SOURCE) $(DEP_CPP_S_LIB) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_log1p.c
-DEP_CPP_S_LOG=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_log1p.obj&quot; : $(SOURCE) $(DEP_CPP_S_LOG) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_logb.c
-DEP_CPP_S_LOGB=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_logb.obj&quot; : $(SOURCE) $(DEP_CPP_S_LOGB) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_matherr.c
-DEP_CPP_S_MAT=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_matherr.obj&quot; : $(SOURCE) $(DEP_CPP_S_MAT) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_modf.c
-DEP_CPP_S_MOD=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_modf.obj&quot; : $(SOURCE) $(DEP_CPP_S_MOD) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_nextafter.c
-DEP_CPP_S_NEX=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_nextafter.obj&quot; : $(SOURCE) $(DEP_CPP_S_NEX) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_rint.c
-DEP_CPP_S_RIN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_rint.obj&quot; : $(SOURCE) $(DEP_CPP_S_RIN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_scalbn.c
-DEP_CPP_S_SCA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_scalbn.obj&quot; : $(SOURCE) $(DEP_CPP_S_SCA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_signgam.c
-DEP_CPP_S_SIG=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_signgam.obj&quot; : $(SOURCE) $(DEP_CPP_S_SIG) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_significand.c
-DEP_CPP_S_SIGN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_significand.obj&quot; : $(SOURCE) $(DEP_CPP_S_SIGN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_sin.c
-DEP_CPP_S_SIN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_sin.obj&quot; : $(SOURCE) $(DEP_CPP_S_SIN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_tan.c
-DEP_CPP_S_TAN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_tan.obj&quot; : $(SOURCE) $(DEP_CPP_S_TAN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\s_tanh.c
-DEP_CPP_S_TANH=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\s_tanh.obj&quot; : $(SOURCE) $(DEP_CPP_S_TANH) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_acos.c
-DEP_CPP_W_ACO=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_acos.obj&quot; : $(SOURCE) $(DEP_CPP_W_ACO) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_acosh.c
-DEP_CPP_W_ACOS=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_acosh.obj&quot; : $(SOURCE) $(DEP_CPP_W_ACOS) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_asin.c
-DEP_CPP_W_ASI=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_asin.obj&quot; : $(SOURCE) $(DEP_CPP_W_ASI) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_atan2.c
-DEP_CPP_W_ATA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_atan2.obj&quot; : $(SOURCE) $(DEP_CPP_W_ATA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_atanh.c
-DEP_CPP_W_ATAN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_atanh.obj&quot; : $(SOURCE) $(DEP_CPP_W_ATAN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_cosh.c
-DEP_CPP_W_COS=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_cosh.obj&quot; : $(SOURCE) $(DEP_CPP_W_COS) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_exp.c
-DEP_CPP_W_EXP=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_exp.obj&quot; : $(SOURCE) $(DEP_CPP_W_EXP) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_fmod.c
-DEP_CPP_W_FMO=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_fmod.obj&quot; : $(SOURCE) $(DEP_CPP_W_FMO) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_gamma.c
-DEP_CPP_W_GAM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_gamma.obj&quot; : $(SOURCE) $(DEP_CPP_W_GAM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_gamma_r.c
-DEP_CPP_W_GAMM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_gamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_W_GAMM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_hypot.c
-DEP_CPP_W_HYP=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_hypot.obj&quot; : $(SOURCE) $(DEP_CPP_W_HYP) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_j0.c
-DEP_CPP_W_J0_=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_j0.obj&quot; : $(SOURCE) $(DEP_CPP_W_J0_) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_j1.c
-DEP_CPP_W_J1_=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_j1.obj&quot; : $(SOURCE) $(DEP_CPP_W_J1_) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_jn.c
-DEP_CPP_W_JN_=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_jn.obj&quot; : $(SOURCE) $(DEP_CPP_W_JN_) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_lgamma.c
-DEP_CPP_W_LGA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_lgamma.obj&quot; : $(SOURCE) $(DEP_CPP_W_LGA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_lgamma_r.c
-DEP_CPP_W_LGAM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_lgamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_W_LGAM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_log.c
-DEP_CPP_W_LOG=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_log.obj&quot; : $(SOURCE) $(DEP_CPP_W_LOG) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_log10.c
-DEP_CPP_W_LOG1=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_log10.obj&quot; : $(SOURCE) $(DEP_CPP_W_LOG1) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_pow.c
-DEP_CPP_W_POW=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_pow.obj&quot; : $(SOURCE) $(DEP_CPP_W_POW) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_remainder.c
-DEP_CPP_W_REM=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_remainder.obj&quot; : $(SOURCE) $(DEP_CPP_W_REM) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_scalb.c
-DEP_CPP_W_SCA=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_scalb.obj&quot; : $(SOURCE) $(DEP_CPP_W_SCA) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\w_sinh.c
-DEP_CPP_W_SIN=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\w_sinh.obj&quot; : $(SOURCE) $(DEP_CPP_W_SIN) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\e_acos.c
-DEP_CPP_E_ACOS=\
-	&quot;.\fdlibm.h&quot;\
-	
-
-&quot;$(INTDIR)\e_acos.obj&quot; : $(SOURCE) $(DEP_CPP_E_ACOS) &quot;$(INTDIR)&quot;
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
+# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
+# ** DO NOT EDIT **
+
+# TARGTYPE &quot;Win32 (x86) Static Library&quot; 0x0104
+
+!IF &quot;$(CFG)&quot; == &quot;&quot;
+CFG=fdlibm - Win32 Debug
+!MESSAGE No configuration specified.  Defaulting to fdlibm - Win32 Debug.
+!ENDIF 
+
+!IF &quot;$(CFG)&quot; != &quot;fdlibm - Win32 Release&quot; &amp;&amp; &quot;$(CFG)&quot; != &quot;fdlibm - Win32 Debug&quot;
+!MESSAGE Invalid configuration &quot;$(CFG)&quot; 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 &quot;fdlibm.mak&quot; CFG=&quot;fdlibm - Win32 Debug&quot;
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE &quot;fdlibm - Win32 Release&quot; (based on &quot;Win32 (x86) Static Library&quot;)
+!MESSAGE &quot;fdlibm - Win32 Debug&quot; (based on &quot;Win32 (x86) Static Library&quot;)
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF &quot;$(OS)&quot; == &quot;Windows_NT&quot;
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+################################################################################
+# Begin Project
+CPP=cl.exe
+
+!IF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Release&quot;
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir &quot;fdlibm__&quot;
+# PROP BASE Intermediate_Dir &quot;fdlibm__&quot;
+# PROP BASE Target_Dir &quot;&quot;
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir &quot;fdlibm__&quot;
+# PROP Intermediate_Dir &quot;fdlibm__&quot;
+# PROP Target_Dir &quot;&quot;
+OUTDIR=.\fdlibm__
+INTDIR=.\fdlibm__
+
+ALL : &quot;$(OUTDIR)\fdlibm.lib&quot;
+
+CLEAN : 
+	-@erase &quot;$(INTDIR)\e_acos.obj&quot;
+	-@erase &quot;$(INTDIR)\e_acosh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_asin.obj&quot;
+	-@erase &quot;$(INTDIR)\e_atan2.obj&quot;
+	-@erase &quot;$(INTDIR)\e_atanh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_cosh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_exp.obj&quot;
+	-@erase &quot;$(INTDIR)\e_fmod.obj&quot;
+	-@erase &quot;$(INTDIR)\e_gamma.obj&quot;
+	-@erase &quot;$(INTDIR)\e_gamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\e_hypot.obj&quot;
+	-@erase &quot;$(INTDIR)\e_j0.obj&quot;
+	-@erase &quot;$(INTDIR)\e_j1.obj&quot;
+	-@erase &quot;$(INTDIR)\e_jn.obj&quot;
+	-@erase &quot;$(INTDIR)\e_lgamma.obj&quot;
+	-@erase &quot;$(INTDIR)\e_lgamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\e_log.obj&quot;
+	-@erase &quot;$(INTDIR)\e_log10.obj&quot;
+	-@erase &quot;$(INTDIR)\e_pow.obj&quot;
+	-@erase &quot;$(INTDIR)\e_rem_pio2.obj&quot;
+	-@erase &quot;$(INTDIR)\e_remainder.obj&quot;
+	-@erase &quot;$(INTDIR)\e_scalb.obj&quot;
+	-@erase &quot;$(INTDIR)\e_sinh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_sqrt.obj&quot;
+	-@erase &quot;$(INTDIR)\k_cos.obj&quot;
+	-@erase &quot;$(INTDIR)\k_rem_pio2.obj&quot;
+	-@erase &quot;$(INTDIR)\k_sin.obj&quot;
+	-@erase &quot;$(INTDIR)\k_standard.obj&quot;
+	-@erase &quot;$(INTDIR)\k_tan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_asinh.obj&quot;
+	-@erase &quot;$(INTDIR)\s_atan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_cbrt.obj&quot;
+	-@erase &quot;$(INTDIR)\s_ceil.obj&quot;
+	-@erase &quot;$(INTDIR)\s_copysign.obj&quot;
+	-@erase &quot;$(INTDIR)\s_cos.obj&quot;
+	-@erase &quot;$(INTDIR)\s_erf.obj&quot;
+	-@erase &quot;$(INTDIR)\s_expm1.obj&quot;
+	-@erase &quot;$(INTDIR)\s_fabs.obj&quot;
+	-@erase &quot;$(INTDIR)\s_finite.obj&quot;
+	-@erase &quot;$(INTDIR)\s_floor.obj&quot;
+	-@erase &quot;$(INTDIR)\s_frexp.obj&quot;
+	-@erase &quot;$(INTDIR)\s_ilogb.obj&quot;
+	-@erase &quot;$(INTDIR)\s_isnan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_ldexp.obj&quot;
+	-@erase &quot;$(INTDIR)\s_lib_version.obj&quot;
+	-@erase &quot;$(INTDIR)\s_log1p.obj&quot;
+	-@erase &quot;$(INTDIR)\s_logb.obj&quot;
+	-@erase &quot;$(INTDIR)\s_matherr.obj&quot;
+	-@erase &quot;$(INTDIR)\s_modf.obj&quot;
+	-@erase &quot;$(INTDIR)\s_nextafter.obj&quot;
+	-@erase &quot;$(INTDIR)\s_rint.obj&quot;
+	-@erase &quot;$(INTDIR)\s_scalbn.obj&quot;
+	-@erase &quot;$(INTDIR)\s_signgam.obj&quot;
+	-@erase &quot;$(INTDIR)\s_significand.obj&quot;
+	-@erase &quot;$(INTDIR)\s_sin.obj&quot;
+	-@erase &quot;$(INTDIR)\s_tan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_tanh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_acos.obj&quot;
+	-@erase &quot;$(INTDIR)\w_acosh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_asin.obj&quot;
+	-@erase &quot;$(INTDIR)\w_atan2.obj&quot;
+	-@erase &quot;$(INTDIR)\w_atanh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_cosh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_exp.obj&quot;
+	-@erase &quot;$(INTDIR)\w_fmod.obj&quot;
+	-@erase &quot;$(INTDIR)\w_gamma.obj&quot;
+	-@erase &quot;$(INTDIR)\w_gamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\w_hypot.obj&quot;
+	-@erase &quot;$(INTDIR)\w_j0.obj&quot;
+	-@erase &quot;$(INTDIR)\w_j1.obj&quot;
+	-@erase &quot;$(INTDIR)\w_jn.obj&quot;
+	-@erase &quot;$(INTDIR)\w_lgamma.obj&quot;
+	-@erase &quot;$(INTDIR)\w_lgamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\w_log.obj&quot;
+	-@erase &quot;$(INTDIR)\w_log10.obj&quot;
+	-@erase &quot;$(INTDIR)\w_pow.obj&quot;
+	-@erase &quot;$(INTDIR)\w_remainder.obj&quot;
+	-@erase &quot;$(INTDIR)\w_scalb.obj&quot;
+	-@erase &quot;$(INTDIR)\w_sinh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_sqrt.obj&quot;
+	-@erase &quot;$(OUTDIR)\fdlibm.lib&quot;
+
+&quot;$(OUTDIR)&quot; :
+    if not exist &quot;$(OUTDIR)/$(NULL)&quot; mkdir &quot;$(OUTDIR)&quot;
+
+# ADD BASE CPP /nologo /W3 /GX /O2 /D &quot;WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
+# ADD CPP /nologo /W3 /GX /O2 /D &quot;WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
+CPP_PROJ=/nologo /ML /W3 /GX /O2 /D &quot;WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_WINDOWS&quot;\
+ /Fp&quot;$(INTDIR)/fdlibm.pch&quot; /YX /Fo&quot;$(INTDIR)/&quot; /c 
+CPP_OBJS=.\fdlibm__/
+CPP_SBRS=.\.
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o&quot;$(OUTDIR)/fdlibm.bsc&quot; 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+LIB32_FLAGS=/nologo /out:&quot;$(OUTDIR)/fdlibm.lib&quot; 
+LIB32_OBJS= \
+	&quot;$(INTDIR)\e_acos.obj&quot; \
+	&quot;$(INTDIR)\e_acosh.obj&quot; \
+	&quot;$(INTDIR)\e_asin.obj&quot; \
+	&quot;$(INTDIR)\e_atan2.obj&quot; \
+	&quot;$(INTDIR)\e_atanh.obj&quot; \
+	&quot;$(INTDIR)\e_cosh.obj&quot; \
+	&quot;$(INTDIR)\e_exp.obj&quot; \
+	&quot;$(INTDIR)\e_fmod.obj&quot; \
+	&quot;$(INTDIR)\e_gamma.obj&quot; \
+	&quot;$(INTDIR)\e_gamma_r.obj&quot; \
+	&quot;$(INTDIR)\e_hypot.obj&quot; \
+	&quot;$(INTDIR)\e_j0.obj&quot; \
+	&quot;$(INTDIR)\e_j1.obj&quot; \
+	&quot;$(INTDIR)\e_jn.obj&quot; \
+	&quot;$(INTDIR)\e_lgamma.obj&quot; \
+	&quot;$(INTDIR)\e_lgamma_r.obj&quot; \
+	&quot;$(INTDIR)\e_log.obj&quot; \
+	&quot;$(INTDIR)\e_log10.obj&quot; \
+	&quot;$(INTDIR)\e_pow.obj&quot; \
+	&quot;$(INTDIR)\e_rem_pio2.obj&quot; \
+	&quot;$(INTDIR)\e_remainder.obj&quot; \
+	&quot;$(INTDIR)\e_scalb.obj&quot; \
+	&quot;$(INTDIR)\e_sinh.obj&quot; \
+	&quot;$(INTDIR)\e_sqrt.obj&quot; \
+	&quot;$(INTDIR)\k_cos.obj&quot; \
+	&quot;$(INTDIR)\k_rem_pio2.obj&quot; \
+	&quot;$(INTDIR)\k_sin.obj&quot; \
+	&quot;$(INTDIR)\k_standard.obj&quot; \
+	&quot;$(INTDIR)\k_tan.obj&quot; \
+	&quot;$(INTDIR)\s_asinh.obj&quot; \
+	&quot;$(INTDIR)\s_atan.obj&quot; \
+	&quot;$(INTDIR)\s_cbrt.obj&quot; \
+	&quot;$(INTDIR)\s_ceil.obj&quot; \
+	&quot;$(INTDIR)\s_copysign.obj&quot; \
+	&quot;$(INTDIR)\s_cos.obj&quot; \
+	&quot;$(INTDIR)\s_erf.obj&quot; \
+	&quot;$(INTDIR)\s_expm1.obj&quot; \
+	&quot;$(INTDIR)\s_fabs.obj&quot; \
+	&quot;$(INTDIR)\s_finite.obj&quot; \
+	&quot;$(INTDIR)\s_floor.obj&quot; \
+	&quot;$(INTDIR)\s_frexp.obj&quot; \
+	&quot;$(INTDIR)\s_ilogb.obj&quot; \
+	&quot;$(INTDIR)\s_isnan.obj&quot; \
+	&quot;$(INTDIR)\s_ldexp.obj&quot; \
+	&quot;$(INTDIR)\s_lib_version.obj&quot; \
+	&quot;$(INTDIR)\s_log1p.obj&quot; \
+	&quot;$(INTDIR)\s_logb.obj&quot; \
+	&quot;$(INTDIR)\s_matherr.obj&quot; \
+	&quot;$(INTDIR)\s_modf.obj&quot; \
+	&quot;$(INTDIR)\s_nextafter.obj&quot; \
+	&quot;$(INTDIR)\s_rint.obj&quot; \
+	&quot;$(INTDIR)\s_scalbn.obj&quot; \
+	&quot;$(INTDIR)\s_signgam.obj&quot; \
+	&quot;$(INTDIR)\s_significand.obj&quot; \
+	&quot;$(INTDIR)\s_sin.obj&quot; \
+	&quot;$(INTDIR)\s_tan.obj&quot; \
+	&quot;$(INTDIR)\s_tanh.obj&quot; \
+	&quot;$(INTDIR)\w_acos.obj&quot; \
+	&quot;$(INTDIR)\w_acosh.obj&quot; \
+	&quot;$(INTDIR)\w_asin.obj&quot; \
+	&quot;$(INTDIR)\w_atan2.obj&quot; \
+	&quot;$(INTDIR)\w_atanh.obj&quot; \
+	&quot;$(INTDIR)\w_cosh.obj&quot; \
+	&quot;$(INTDIR)\w_exp.obj&quot; \
+	&quot;$(INTDIR)\w_fmod.obj&quot; \
+	&quot;$(INTDIR)\w_gamma.obj&quot; \
+	&quot;$(INTDIR)\w_gamma_r.obj&quot; \
+	&quot;$(INTDIR)\w_hypot.obj&quot; \
+	&quot;$(INTDIR)\w_j0.obj&quot; \
+	&quot;$(INTDIR)\w_j1.obj&quot; \
+	&quot;$(INTDIR)\w_jn.obj&quot; \
+	&quot;$(INTDIR)\w_lgamma.obj&quot; \
+	&quot;$(INTDIR)\w_lgamma_r.obj&quot; \
+	&quot;$(INTDIR)\w_log.obj&quot; \
+	&quot;$(INTDIR)\w_log10.obj&quot; \
+	&quot;$(INTDIR)\w_pow.obj&quot; \
+	&quot;$(INTDIR)\w_remainder.obj&quot; \
+	&quot;$(INTDIR)\w_scalb.obj&quot; \
+	&quot;$(INTDIR)\w_sinh.obj&quot; \
+	&quot;$(INTDIR)\w_sqrt.obj&quot;
+
+&quot;$(OUTDIR)\fdlibm.lib&quot; : &quot;$(OUTDIR)&quot; $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @&lt;&lt;
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+&lt;&lt;
+
+!ELSEIF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Debug&quot;
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir &quot;fdlibm_0&quot;
+# PROP BASE Intermediate_Dir &quot;fdlibm_0&quot;
+# PROP BASE Target_Dir &quot;&quot;
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir &quot;fdlibm_0&quot;
+# PROP Intermediate_Dir &quot;fdlibm_0&quot;
+# PROP Target_Dir &quot;&quot;
+OUTDIR=.\fdlibm_0
+INTDIR=.\fdlibm_0
+
+ALL : &quot;$(OUTDIR)\fdlibm.lib&quot;
+
+CLEAN : 
+	-@erase &quot;$(INTDIR)\e_acos.obj&quot;
+	-@erase &quot;$(INTDIR)\e_acosh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_asin.obj&quot;
+	-@erase &quot;$(INTDIR)\e_atan2.obj&quot;
+	-@erase &quot;$(INTDIR)\e_atanh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_cosh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_exp.obj&quot;
+	-@erase &quot;$(INTDIR)\e_fmod.obj&quot;
+	-@erase &quot;$(INTDIR)\e_gamma.obj&quot;
+	-@erase &quot;$(INTDIR)\e_gamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\e_hypot.obj&quot;
+	-@erase &quot;$(INTDIR)\e_j0.obj&quot;
+	-@erase &quot;$(INTDIR)\e_j1.obj&quot;
+	-@erase &quot;$(INTDIR)\e_jn.obj&quot;
+	-@erase &quot;$(INTDIR)\e_lgamma.obj&quot;
+	-@erase &quot;$(INTDIR)\e_lgamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\e_log.obj&quot;
+	-@erase &quot;$(INTDIR)\e_log10.obj&quot;
+	-@erase &quot;$(INTDIR)\e_pow.obj&quot;
+	-@erase &quot;$(INTDIR)\e_rem_pio2.obj&quot;
+	-@erase &quot;$(INTDIR)\e_remainder.obj&quot;
+	-@erase &quot;$(INTDIR)\e_scalb.obj&quot;
+	-@erase &quot;$(INTDIR)\e_sinh.obj&quot;
+	-@erase &quot;$(INTDIR)\e_sqrt.obj&quot;
+	-@erase &quot;$(INTDIR)\k_cos.obj&quot;
+	-@erase &quot;$(INTDIR)\k_rem_pio2.obj&quot;
+	-@erase &quot;$(INTDIR)\k_sin.obj&quot;
+	-@erase &quot;$(INTDIR)\k_standard.obj&quot;
+	-@erase &quot;$(INTDIR)\k_tan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_asinh.obj&quot;
+	-@erase &quot;$(INTDIR)\s_atan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_cbrt.obj&quot;
+	-@erase &quot;$(INTDIR)\s_ceil.obj&quot;
+	-@erase &quot;$(INTDIR)\s_copysign.obj&quot;
+	-@erase &quot;$(INTDIR)\s_cos.obj&quot;
+	-@erase &quot;$(INTDIR)\s_erf.obj&quot;
+	-@erase &quot;$(INTDIR)\s_expm1.obj&quot;
+	-@erase &quot;$(INTDIR)\s_fabs.obj&quot;
+	-@erase &quot;$(INTDIR)\s_finite.obj&quot;
+	-@erase &quot;$(INTDIR)\s_floor.obj&quot;
+	-@erase &quot;$(INTDIR)\s_frexp.obj&quot;
+	-@erase &quot;$(INTDIR)\s_ilogb.obj&quot;
+	-@erase &quot;$(INTDIR)\s_isnan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_ldexp.obj&quot;
+	-@erase &quot;$(INTDIR)\s_lib_version.obj&quot;
+	-@erase &quot;$(INTDIR)\s_log1p.obj&quot;
+	-@erase &quot;$(INTDIR)\s_logb.obj&quot;
+	-@erase &quot;$(INTDIR)\s_matherr.obj&quot;
+	-@erase &quot;$(INTDIR)\s_modf.obj&quot;
+	-@erase &quot;$(INTDIR)\s_nextafter.obj&quot;
+	-@erase &quot;$(INTDIR)\s_rint.obj&quot;
+	-@erase &quot;$(INTDIR)\s_scalbn.obj&quot;
+	-@erase &quot;$(INTDIR)\s_signgam.obj&quot;
+	-@erase &quot;$(INTDIR)\s_significand.obj&quot;
+	-@erase &quot;$(INTDIR)\s_sin.obj&quot;
+	-@erase &quot;$(INTDIR)\s_tan.obj&quot;
+	-@erase &quot;$(INTDIR)\s_tanh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_acos.obj&quot;
+	-@erase &quot;$(INTDIR)\w_acosh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_asin.obj&quot;
+	-@erase &quot;$(INTDIR)\w_atan2.obj&quot;
+	-@erase &quot;$(INTDIR)\w_atanh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_cosh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_exp.obj&quot;
+	-@erase &quot;$(INTDIR)\w_fmod.obj&quot;
+	-@erase &quot;$(INTDIR)\w_gamma.obj&quot;
+	-@erase &quot;$(INTDIR)\w_gamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\w_hypot.obj&quot;
+	-@erase &quot;$(INTDIR)\w_j0.obj&quot;
+	-@erase &quot;$(INTDIR)\w_j1.obj&quot;
+	-@erase &quot;$(INTDIR)\w_jn.obj&quot;
+	-@erase &quot;$(INTDIR)\w_lgamma.obj&quot;
+	-@erase &quot;$(INTDIR)\w_lgamma_r.obj&quot;
+	-@erase &quot;$(INTDIR)\w_log.obj&quot;
+	-@erase &quot;$(INTDIR)\w_log10.obj&quot;
+	-@erase &quot;$(INTDIR)\w_pow.obj&quot;
+	-@erase &quot;$(INTDIR)\w_remainder.obj&quot;
+	-@erase &quot;$(INTDIR)\w_scalb.obj&quot;
+	-@erase &quot;$(INTDIR)\w_sinh.obj&quot;
+	-@erase &quot;$(INTDIR)\w_sqrt.obj&quot;
+	-@erase &quot;$(OUTDIR)\fdlibm.lib&quot;
+
+&quot;$(OUTDIR)&quot; :
+    if not exist &quot;$(OUTDIR)/$(NULL)&quot; mkdir &quot;$(OUTDIR)&quot;
+
+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
+# ADD CPP /nologo /W3 /GX /Z7 /Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /YX /c
+CPP_PROJ=/nologo /MLd /W3 /GX /Z7 /Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot;\
+ /Fp&quot;$(INTDIR)/fdlibm.pch&quot; /YX /Fo&quot;$(INTDIR)/&quot; /c 
+CPP_OBJS=.\fdlibm_0/
+CPP_SBRS=.\.
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+BSC32_FLAGS=/nologo /o&quot;$(OUTDIR)/fdlibm.bsc&quot; 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+LIB32_FLAGS=/nologo /out:&quot;$(OUTDIR)/fdlibm.lib&quot; 
+LIB32_OBJS= \
+	&quot;$(INTDIR)\e_acos.obj&quot; \
+	&quot;$(INTDIR)\e_acosh.obj&quot; \
+	&quot;$(INTDIR)\e_asin.obj&quot; \
+	&quot;$(INTDIR)\e_atan2.obj&quot; \
+	&quot;$(INTDIR)\e_atanh.obj&quot; \
+	&quot;$(INTDIR)\e_cosh.obj&quot; \
+	&quot;$(INTDIR)\e_exp.obj&quot; \
+	&quot;$(INTDIR)\e_fmod.obj&quot; \
+	&quot;$(INTDIR)\e_gamma.obj&quot; \
+	&quot;$(INTDIR)\e_gamma_r.obj&quot; \
+	&quot;$(INTDIR)\e_hypot.obj&quot; \
+	&quot;$(INTDIR)\e_j0.obj&quot; \
+	&quot;$(INTDIR)\e_j1.obj&quot; \
+	&quot;$(INTDIR)\e_jn.obj&quot; \
+	&quot;$(INTDIR)\e_lgamma.obj&quot; \
+	&quot;$(INTDIR)\e_lgamma_r.obj&quot; \
+	&quot;$(INTDIR)\e_log.obj&quot; \
+	&quot;$(INTDIR)\e_log10.obj&quot; \
+	&quot;$(INTDIR)\e_pow.obj&quot; \
+	&quot;$(INTDIR)\e_rem_pio2.obj&quot; \
+	&quot;$(INTDIR)\e_remainder.obj&quot; \
+	&quot;$(INTDIR)\e_scalb.obj&quot; \
+	&quot;$(INTDIR)\e_sinh.obj&quot; \
+	&quot;$(INTDIR)\e_sqrt.obj&quot; \
+	&quot;$(INTDIR)\k_cos.obj&quot; \
+	&quot;$(INTDIR)\k_rem_pio2.obj&quot; \
+	&quot;$(INTDIR)\k_sin.obj&quot; \
+	&quot;$(INTDIR)\k_standard.obj&quot; \
+	&quot;$(INTDIR)\k_tan.obj&quot; \
+	&quot;$(INTDIR)\s_asinh.obj&quot; \
+	&quot;$(INTDIR)\s_atan.obj&quot; \
+	&quot;$(INTDIR)\s_cbrt.obj&quot; \
+	&quot;$(INTDIR)\s_ceil.obj&quot; \
+	&quot;$(INTDIR)\s_copysign.obj&quot; \
+	&quot;$(INTDIR)\s_cos.obj&quot; \
+	&quot;$(INTDIR)\s_erf.obj&quot; \
+	&quot;$(INTDIR)\s_expm1.obj&quot; \
+	&quot;$(INTDIR)\s_fabs.obj&quot; \
+	&quot;$(INTDIR)\s_finite.obj&quot; \
+	&quot;$(INTDIR)\s_floor.obj&quot; \
+	&quot;$(INTDIR)\s_frexp.obj&quot; \
+	&quot;$(INTDIR)\s_ilogb.obj&quot; \
+	&quot;$(INTDIR)\s_isnan.obj&quot; \
+	&quot;$(INTDIR)\s_ldexp.obj&quot; \
+	&quot;$(INTDIR)\s_lib_version.obj&quot; \
+	&quot;$(INTDIR)\s_log1p.obj&quot; \
+	&quot;$(INTDIR)\s_logb.obj&quot; \
+	&quot;$(INTDIR)\s_matherr.obj&quot; \
+	&quot;$(INTDIR)\s_modf.obj&quot; \
+	&quot;$(INTDIR)\s_nextafter.obj&quot; \
+	&quot;$(INTDIR)\s_rint.obj&quot; \
+	&quot;$(INTDIR)\s_scalbn.obj&quot; \
+	&quot;$(INTDIR)\s_signgam.obj&quot; \
+	&quot;$(INTDIR)\s_significand.obj&quot; \
+	&quot;$(INTDIR)\s_sin.obj&quot; \
+	&quot;$(INTDIR)\s_tan.obj&quot; \
+	&quot;$(INTDIR)\s_tanh.obj&quot; \
+	&quot;$(INTDIR)\w_acos.obj&quot; \
+	&quot;$(INTDIR)\w_acosh.obj&quot; \
+	&quot;$(INTDIR)\w_asin.obj&quot; \
+	&quot;$(INTDIR)\w_atan2.obj&quot; \
+	&quot;$(INTDIR)\w_atanh.obj&quot; \
+	&quot;$(INTDIR)\w_cosh.obj&quot; \
+	&quot;$(INTDIR)\w_exp.obj&quot; \
+	&quot;$(INTDIR)\w_fmod.obj&quot; \
+	&quot;$(INTDIR)\w_gamma.obj&quot; \
+	&quot;$(INTDIR)\w_gamma_r.obj&quot; \
+	&quot;$(INTDIR)\w_hypot.obj&quot; \
+	&quot;$(INTDIR)\w_j0.obj&quot; \
+	&quot;$(INTDIR)\w_j1.obj&quot; \
+	&quot;$(INTDIR)\w_jn.obj&quot; \
+	&quot;$(INTDIR)\w_lgamma.obj&quot; \
+	&quot;$(INTDIR)\w_lgamma_r.obj&quot; \
+	&quot;$(INTDIR)\w_log.obj&quot; \
+	&quot;$(INTDIR)\w_log10.obj&quot; \
+	&quot;$(INTDIR)\w_pow.obj&quot; \
+	&quot;$(INTDIR)\w_remainder.obj&quot; \
+	&quot;$(INTDIR)\w_scalb.obj&quot; \
+	&quot;$(INTDIR)\w_sinh.obj&quot; \
+	&quot;$(INTDIR)\w_sqrt.obj&quot;
+
+&quot;$(OUTDIR)\fdlibm.lib&quot; : &quot;$(OUTDIR)&quot; $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @&lt;&lt;
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+&lt;&lt;
+
+!ENDIF 
+
+.c{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $&lt;  
+
+.cpp{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $&lt;  
+
+.cxx{$(CPP_OBJS)}.obj:
+   $(CPP) $(CPP_PROJ) $&lt;  
+
+.c{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $&lt;  
+
+.cpp{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $&lt;  
+
+.cxx{$(CPP_SBRS)}.sbr:
+   $(CPP) $(CPP_PROJ) $&lt;  
+
+################################################################################
+# Begin Target
+
+# Name &quot;fdlibm - Win32 Release&quot;
+# Name &quot;fdlibm - Win32 Debug&quot;
+
+!IF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Release&quot;
+
+!ELSEIF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Debug&quot;
+
+!ENDIF 
+
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_sqrt.c
+DEP_CPP_W_SQR=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_sqrt.obj&quot; : $(SOURCE) $(DEP_CPP_W_SQR) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_acosh.c
+DEP_CPP_E_ACO=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_acosh.obj&quot; : $(SOURCE) $(DEP_CPP_E_ACO) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_asin.c
+DEP_CPP_E_ASI=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_asin.obj&quot; : $(SOURCE) $(DEP_CPP_E_ASI) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_atan2.c
+DEP_CPP_E_ATA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_atan2.obj&quot; : $(SOURCE) $(DEP_CPP_E_ATA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_atanh.c
+DEP_CPP_E_ATAN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_atanh.obj&quot; : $(SOURCE) $(DEP_CPP_E_ATAN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_cosh.c
+DEP_CPP_E_COS=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_cosh.obj&quot; : $(SOURCE) $(DEP_CPP_E_COS) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_exp.c
+DEP_CPP_E_EXP=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_exp.obj&quot; : $(SOURCE) $(DEP_CPP_E_EXP) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_fmod.c
+DEP_CPP_E_FMO=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_fmod.obj&quot; : $(SOURCE) $(DEP_CPP_E_FMO) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_gamma.c
+DEP_CPP_E_GAM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_gamma.obj&quot; : $(SOURCE) $(DEP_CPP_E_GAM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_gamma_r.c
+DEP_CPP_E_GAMM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_gamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_E_GAMM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_hypot.c
+DEP_CPP_E_HYP=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_hypot.obj&quot; : $(SOURCE) $(DEP_CPP_E_HYP) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_j0.c
+DEP_CPP_E_J0_=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_j0.obj&quot; : $(SOURCE) $(DEP_CPP_E_J0_) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_j1.c
+DEP_CPP_E_J1_=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_j1.obj&quot; : $(SOURCE) $(DEP_CPP_E_J1_) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_jn.c
+DEP_CPP_E_JN_=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_jn.obj&quot; : $(SOURCE) $(DEP_CPP_E_JN_) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_lgamma.c
+DEP_CPP_E_LGA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_lgamma.obj&quot; : $(SOURCE) $(DEP_CPP_E_LGA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_lgamma_r.c
+DEP_CPP_E_LGAM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_lgamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_E_LGAM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_log.c
+DEP_CPP_E_LOG=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_log.obj&quot; : $(SOURCE) $(DEP_CPP_E_LOG) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_log10.c
+DEP_CPP_E_LOG1=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_log10.obj&quot; : $(SOURCE) $(DEP_CPP_E_LOG1) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_pow.c
+DEP_CPP_E_POW=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_pow.obj&quot; : $(SOURCE) $(DEP_CPP_E_POW) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_rem_pio2.c
+DEP_CPP_E_REM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_rem_pio2.obj&quot; : $(SOURCE) $(DEP_CPP_E_REM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_remainder.c
+DEP_CPP_E_REMA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_remainder.obj&quot; : $(SOURCE) $(DEP_CPP_E_REMA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_scalb.c
+DEP_CPP_E_SCA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_scalb.obj&quot; : $(SOURCE) $(DEP_CPP_E_SCA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_sinh.c
+DEP_CPP_E_SIN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_sinh.obj&quot; : $(SOURCE) $(DEP_CPP_E_SIN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_sqrt.c
+DEP_CPP_E_SQR=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_sqrt.obj&quot; : $(SOURCE) $(DEP_CPP_E_SQR) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\fdlibm.h
+
+!IF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Release&quot;
+
+!ELSEIF  &quot;$(CFG)&quot; == &quot;fdlibm - Win32 Debug&quot;
+
+!ENDIF 
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\k_cos.c
+DEP_CPP_K_COS=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\k_cos.obj&quot; : $(SOURCE) $(DEP_CPP_K_COS) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\k_rem_pio2.c
+DEP_CPP_K_REM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\k_rem_pio2.obj&quot; : $(SOURCE) $(DEP_CPP_K_REM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\k_sin.c
+DEP_CPP_K_SIN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\k_sin.obj&quot; : $(SOURCE) $(DEP_CPP_K_SIN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\k_standard.c
+DEP_CPP_K_STA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\k_standard.obj&quot; : $(SOURCE) $(DEP_CPP_K_STA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\k_tan.c
+DEP_CPP_K_TAN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\k_tan.obj&quot; : $(SOURCE) $(DEP_CPP_K_TAN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_asinh.c
+DEP_CPP_S_ASI=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_asinh.obj&quot; : $(SOURCE) $(DEP_CPP_S_ASI) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_atan.c
+DEP_CPP_S_ATA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_atan.obj&quot; : $(SOURCE) $(DEP_CPP_S_ATA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_cbrt.c
+DEP_CPP_S_CBR=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_cbrt.obj&quot; : $(SOURCE) $(DEP_CPP_S_CBR) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_ceil.c
+DEP_CPP_S_CEI=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_ceil.obj&quot; : $(SOURCE) $(DEP_CPP_S_CEI) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_copysign.c
+DEP_CPP_S_COP=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_copysign.obj&quot; : $(SOURCE) $(DEP_CPP_S_COP) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_cos.c
+DEP_CPP_S_COS=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_cos.obj&quot; : $(SOURCE) $(DEP_CPP_S_COS) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_erf.c
+DEP_CPP_S_ERF=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_erf.obj&quot; : $(SOURCE) $(DEP_CPP_S_ERF) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_expm1.c
+DEP_CPP_S_EXP=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_expm1.obj&quot; : $(SOURCE) $(DEP_CPP_S_EXP) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_fabs.c
+DEP_CPP_S_FAB=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_fabs.obj&quot; : $(SOURCE) $(DEP_CPP_S_FAB) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_finite.c
+DEP_CPP_S_FIN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_finite.obj&quot; : $(SOURCE) $(DEP_CPP_S_FIN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_floor.c
+DEP_CPP_S_FLO=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_floor.obj&quot; : $(SOURCE) $(DEP_CPP_S_FLO) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_frexp.c
+DEP_CPP_S_FRE=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_frexp.obj&quot; : $(SOURCE) $(DEP_CPP_S_FRE) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_ilogb.c
+DEP_CPP_S_ILO=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_ilogb.obj&quot; : $(SOURCE) $(DEP_CPP_S_ILO) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_isnan.c
+DEP_CPP_S_ISN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_isnan.obj&quot; : $(SOURCE) $(DEP_CPP_S_ISN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_ldexp.c
+DEP_CPP_S_LDE=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_ldexp.obj&quot; : $(SOURCE) $(DEP_CPP_S_LDE) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_lib_version.c
+DEP_CPP_S_LIB=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_lib_version.obj&quot; : $(SOURCE) $(DEP_CPP_S_LIB) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_log1p.c
+DEP_CPP_S_LOG=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_log1p.obj&quot; : $(SOURCE) $(DEP_CPP_S_LOG) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_logb.c
+DEP_CPP_S_LOGB=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_logb.obj&quot; : $(SOURCE) $(DEP_CPP_S_LOGB) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_matherr.c
+DEP_CPP_S_MAT=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_matherr.obj&quot; : $(SOURCE) $(DEP_CPP_S_MAT) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_modf.c
+DEP_CPP_S_MOD=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_modf.obj&quot; : $(SOURCE) $(DEP_CPP_S_MOD) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_nextafter.c
+DEP_CPP_S_NEX=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_nextafter.obj&quot; : $(SOURCE) $(DEP_CPP_S_NEX) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_rint.c
+DEP_CPP_S_RIN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_rint.obj&quot; : $(SOURCE) $(DEP_CPP_S_RIN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_scalbn.c
+DEP_CPP_S_SCA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_scalbn.obj&quot; : $(SOURCE) $(DEP_CPP_S_SCA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_signgam.c
+DEP_CPP_S_SIG=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_signgam.obj&quot; : $(SOURCE) $(DEP_CPP_S_SIG) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_significand.c
+DEP_CPP_S_SIGN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_significand.obj&quot; : $(SOURCE) $(DEP_CPP_S_SIGN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_sin.c
+DEP_CPP_S_SIN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_sin.obj&quot; : $(SOURCE) $(DEP_CPP_S_SIN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_tan.c
+DEP_CPP_S_TAN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_tan.obj&quot; : $(SOURCE) $(DEP_CPP_S_TAN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\s_tanh.c
+DEP_CPP_S_TANH=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\s_tanh.obj&quot; : $(SOURCE) $(DEP_CPP_S_TANH) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_acos.c
+DEP_CPP_W_ACO=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_acos.obj&quot; : $(SOURCE) $(DEP_CPP_W_ACO) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_acosh.c
+DEP_CPP_W_ACOS=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_acosh.obj&quot; : $(SOURCE) $(DEP_CPP_W_ACOS) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_asin.c
+DEP_CPP_W_ASI=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_asin.obj&quot; : $(SOURCE) $(DEP_CPP_W_ASI) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_atan2.c
+DEP_CPP_W_ATA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_atan2.obj&quot; : $(SOURCE) $(DEP_CPP_W_ATA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_atanh.c
+DEP_CPP_W_ATAN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_atanh.obj&quot; : $(SOURCE) $(DEP_CPP_W_ATAN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_cosh.c
+DEP_CPP_W_COS=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_cosh.obj&quot; : $(SOURCE) $(DEP_CPP_W_COS) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_exp.c
+DEP_CPP_W_EXP=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_exp.obj&quot; : $(SOURCE) $(DEP_CPP_W_EXP) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_fmod.c
+DEP_CPP_W_FMO=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_fmod.obj&quot; : $(SOURCE) $(DEP_CPP_W_FMO) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_gamma.c
+DEP_CPP_W_GAM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_gamma.obj&quot; : $(SOURCE) $(DEP_CPP_W_GAM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_gamma_r.c
+DEP_CPP_W_GAMM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_gamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_W_GAMM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_hypot.c
+DEP_CPP_W_HYP=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_hypot.obj&quot; : $(SOURCE) $(DEP_CPP_W_HYP) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_j0.c
+DEP_CPP_W_J0_=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_j0.obj&quot; : $(SOURCE) $(DEP_CPP_W_J0_) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_j1.c
+DEP_CPP_W_J1_=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_j1.obj&quot; : $(SOURCE) $(DEP_CPP_W_J1_) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_jn.c
+DEP_CPP_W_JN_=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_jn.obj&quot; : $(SOURCE) $(DEP_CPP_W_JN_) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_lgamma.c
+DEP_CPP_W_LGA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_lgamma.obj&quot; : $(SOURCE) $(DEP_CPP_W_LGA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_lgamma_r.c
+DEP_CPP_W_LGAM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_lgamma_r.obj&quot; : $(SOURCE) $(DEP_CPP_W_LGAM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_log.c
+DEP_CPP_W_LOG=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_log.obj&quot; : $(SOURCE) $(DEP_CPP_W_LOG) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_log10.c
+DEP_CPP_W_LOG1=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_log10.obj&quot; : $(SOURCE) $(DEP_CPP_W_LOG1) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_pow.c
+DEP_CPP_W_POW=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_pow.obj&quot; : $(SOURCE) $(DEP_CPP_W_POW) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_remainder.c
+DEP_CPP_W_REM=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_remainder.obj&quot; : $(SOURCE) $(DEP_CPP_W_REM) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_scalb.c
+DEP_CPP_W_SCA=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_scalb.obj&quot; : $(SOURCE) $(DEP_CPP_W_SCA) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\w_sinh.c
+DEP_CPP_W_SIN=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\w_sinh.obj&quot; : $(SOURCE) $(DEP_CPP_W_SIN) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+################################################################################
+# Begin Source File
+
+SOURCE=.\e_acos.c
+DEP_CPP_E_ACOS=\
+	&quot;.\fdlibm.h&quot;\
+	
+
+&quot;$(INTDIR)\e_acos.obj&quot; : $(SOURCE) $(DEP_CPP_E_ACOS) &quot;$(INTDIR)&quot;
+
+
+# End Source File
+# End Target
+# End Project
+################################################################################</diff>
      <filename>vendor/spidermonkey/fdlibm/fdlibm.mak</filename>
    </modified>
    <modified>
      <diff>@@ -305,3 +305,4 @@ MSG_DEF(JSMSG_NULL_OR_UNDEFINED,      222, 2, JSEXN_TYPEERR, &quot;{0} is {1}&quot;)
 MSG_DEF(JSMSG_LET_DECL_NOT_IN_BLOCK,  223, 0, JSEXN_SYNTAXERR, &quot;let declaration not directly within block&quot;)
 MSG_DEF(JSMSG_BAD_OBJECT_INIT,        224, 0, JSEXN_SYNTAXERR, &quot;invalid object initializer&quot;)
 MSG_DEF(JSMSG_CANT_SET_ARRAY_ATTRS,   225, 0, JSEXN_INTERNALERR, &quot;can't set attributes on indexed array properties&quot;)
+MSG_DEF(JSMSG_EVAL_ARITY,             226, 0, JSEXN_TYPEERR, &quot;eval accepts only one parameter&quot;)</diff>
      <filename>vendor/spidermonkey/js.msg</filename>
    </modified>
    <modified>
      <diff>@@ -1173,7 +1173,7 @@ JS_ToggleOptions(JSContext *cx, uint32 options)
 JS_PUBLIC_API(const char *)
 JS_GetImplementationVersion(void)
 {
-    return &quot;JavaScript-C 1.8.0 pre-release 1 2007-10-03&quot;;
+    return &quot;JavaScript-C 1.8.0 pre-release 1 2009-02-16&quot;;
 }
 
 </diff>
      <filename>vendor/spidermonkey/jsapi.c</filename>
    </modified>
    <modified>
      <diff>@@ -116,11 +116,8 @@
 
 JS_STATIC_ASSERT(sizeof(JSScopeProperty) &gt; 4 * sizeof(jsval));
 
-static JSBool
-MakeArraySlow(JSContext *cx, JSObject *obj);
-
 #define ENSURE_SLOW_ARRAY(cx, obj)                                             \
-    (OBJ_GET_CLASS(cx, obj) == &amp;js_SlowArrayClass || MakeArraySlow(cx, obj))
+    (OBJ_GET_CLASS(cx, obj) == &amp;js_SlowArrayClass || js_MakeArraySlow(cx, obj))
 
 /*
  * Determine if the id represents an array index or an XML property index.
@@ -417,7 +414,7 @@ SetArrayElement(JSContext *cx, JSObject *obj, jsuint index, jsval v)
 
     if (OBJ_IS_DENSE_ARRAY(cx, obj)) {
         if (INDEX_TOO_SPARSE(obj, index)) {
-            if (!MakeArraySlow(cx, obj))
+            if (!js_MakeArraySlow(cx, obj))
                 return JS_FALSE;
         } else {
 
@@ -586,7 +583,9 @@ array_length_setter(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
     }
 
     if (OBJ_IS_DENSE_ARRAY(cx, obj)) {
-        if (ARRAY_DENSE_LENGTH(obj) &amp;&amp; !ResizeSlots(cx, obj, oldlen, newlen))
+        /* Don't reallocate if we're not actually shrinking our slots. */
+        jsuint oldsize = ARRAY_DENSE_LENGTH(obj);
+        if (oldsize &gt;= newlen &amp;&amp; !ResizeSlots(cx, obj, oldsize, newlen))
             return JS_FALSE;
     } else if (oldlen - newlen &lt; (1 &lt;&lt; 24)) {
         do {
@@ -646,11 +645,11 @@ array_lookupProperty(JSContext *cx, JSObject *obj, jsid id, JSObject **objp,
      * We have only indexed properties up to DENSELEN (excepting holes), plus
      * the length property. For all else, we delegate to the prototype.
      */
-    if ((!js_IdIsIndex(id, &amp;i) &amp;&amp;
-         id != ATOM_TO_JSID(cx-&gt;runtime-&gt;atomState.lengthAtom)) ||
-        obj-&gt;fslots[JSSLOT_ARRAY_LENGTH] == 0 ||
-        i &gt;= ARRAY_DENSE_LENGTH(obj) ||
-        obj-&gt;dslots[i] == JSVAL_HOLE)
+    if (id != ATOM_TO_JSID(cx-&gt;runtime-&gt;atomState.lengthAtom) &amp;&amp;
+        (!js_IdIsIndex(id, &amp;i) ||
+         obj-&gt;fslots[JSSLOT_ARRAY_LENGTH] == 0 ||
+         i &gt;= ARRAY_DENSE_LENGTH(obj) ||
+         obj-&gt;dslots[i] == JSVAL_HOLE))
     {
         JSObject *proto = STOBJ_GET_PROTO(obj);
 
@@ -701,13 +700,29 @@ array_getProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
 
     if (!js_IdIsIndex(ID_TO_VALUE(id), &amp;i) || i &gt;= ARRAY_DENSE_LENGTH(obj) ||
         obj-&gt;dslots[i] == JSVAL_HOLE) {
+        JSObject *obj2;
+        JSProperty *prop;
+        JSScopeProperty *sprop;
+
         JSObject *proto = STOBJ_GET_PROTO(obj);
         if (!proto) {
             *vp = JSVAL_VOID;
             return JS_TRUE;
         }
 
-        return OBJ_GET_PROPERTY(cx, proto, id, vp);
+        *vp = JSVAL_VOID;
+        if (js_LookupPropertyWithFlags(cx, proto, id, 0, &amp;obj2, &amp;prop) &lt; 0)
+            return JS_FALSE;
+
+        if (prop &amp;&amp; OBJ_IS_NATIVE(obj2)) {
+            sprop = (JSScopeProperty *) prop;
+            if (!js_NativeGet(cx, obj, obj2, sprop, vp))
+                return JS_FALSE;
+        }
+
+        if (prop)
+            OBJ_DROP_PROPERTY(cx, obj2, prop);
+        return JS_TRUE;
     }
 
     *vp = obj-&gt;dslots[i];
@@ -763,7 +778,7 @@ array_setProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
         return js_SetProperty(cx, obj, id, vp);
 
     if (!js_IdIsIndex(id, &amp;i) || INDEX_TOO_SPARSE(obj, i)) {
-        if (!MakeArraySlow(cx, obj))
+        if (!js_MakeArraySlow(cx, obj))
             return JS_FALSE;
         return js_SetProperty(cx, obj, id, vp);
     }
@@ -1109,8 +1124,8 @@ JSClass js_SlowArrayClass = {
 /*
  * Convert an array object from fast-and-dense to slow-and-flexible.
  */
-static JSBool
-MakeArraySlow(JSContext *cx, JSObject *obj)
+JSBool
+js_MakeArraySlow(JSContext *cx, JSObject *obj)
 {
     JSObjectMap *map, *oldmap;
     uint32 i, length;
@@ -2048,7 +2063,7 @@ array_push(JSContext *cx, uintN argc, jsval *vp)
 
     length = obj-&gt;fslots[JSSLOT_ARRAY_LENGTH];
     if (INDEX_TOO_SPARSE(obj, length)) {
-        if (!MakeArraySlow(cx, obj))
+        if (!js_MakeArraySlow(cx, obj))
             return JS_FALSE;
         return array_push_slowly(cx, obj, argc, vp);
     }
@@ -2074,23 +2089,16 @@ array_pop(JSContext *cx, uintN argc, jsval *vp)
     if (!obj)
         return JS_FALSE;
     if (OBJ_IS_DENSE_ARRAY(cx, obj)) {
-        *vp = JSVAL_VOID;
         index = obj-&gt;fslots[JSSLOT_ARRAY_LENGTH];
-        if (index == 0)
+        if (index == 0) {
+            *vp = JSVAL_VOID;
             return JS_TRUE;
-        index--;
-        if (index &lt; ARRAY_DENSE_LENGTH(obj)) {
-            *vp = obj-&gt;dslots[index];
-            JS_ASSERT(*vp != JSVAL_HOLE);
-            if (index == 0) {
-                JS_free(cx, obj-&gt;dslots - 1);
-                obj-&gt;dslots = NULL;
-            } else {
-                ARRAY_SET_DENSE_LENGTH(obj, index);
-            }
-            obj-&gt;fslots[JSSLOT_ARRAY_COUNT]--;
         }
-
+        index--;
+        if (!GetArrayElement(cx, obj, index, &amp;hole, vp))
+            return JS_FALSE;
+        if (!hole &amp;&amp; !DeleteArrayElement(cx, obj, index))
+            return JS_FALSE;
         obj-&gt;fslots[JSSLOT_ARRAY_LENGTH] = index;
         return JS_TRUE;
     }</diff>
      <filename>vendor/spidermonkey/jsarray.c</filename>
    </modified>
    <modified>
      <diff>@@ -70,6 +70,9 @@ js_NewArrayObject(JSContext *cx, jsuint length, jsval *vector);
 extern JSObject *
 js_NewSlowArrayObject(JSContext *cx);
 
+extern JSBool
+js_MakeArraySlow(JSContext *cx, JSObject *obj);
+
 #define JSSLOT_ARRAY_LENGTH            JSSLOT_PRIVATE
 #define JSSLOT_ARRAY_COUNT             (JSSLOT_ARRAY_LENGTH + 1)
 #define JSSLOT_ARRAY_LOOKUP_HOLDER     (JSSLOT_ARRAY_COUNT + 1)</diff>
      <filename>vendor/spidermonkey/jsarray.h</filename>
    </modified>
    <modified>
      <diff>@@ -183,7 +183,20 @@ int main(int argc, char **argv)
     printf(&quot;/* AUTOMATICALLY GENERATED - DO NOT EDIT */\n\n&quot;);
 
 #ifdef CROSS_COMPILE
-#if defined(IS_LITTLE_ENDIAN)
+#if defined(__APPLE__)
+    /*
+     * Darwin NSPR uses the same MDCPUCFG (_darwin.cfg) for multiple
+     * processors, and determines which processor to configure for based
+     * on compiler predefined macros.  We do the same thing here.
+     */
+    printf(&quot;#ifdef __LITTLE_ENDIAN__\n&quot;);
+    printf(&quot;#define IS_LITTLE_ENDIAN 1\n&quot;);
+    printf(&quot;#undef  IS_BIG_ENDIAN\n&quot;);
+    printf(&quot;#else\n&quot;);
+    printf(&quot;#undef  IS_LITTLE_ENDIAN\n&quot;);
+    printf(&quot;#define IS_BIG_ENDIAN 1\n&quot;);
+    printf(&quot;#endif\n\n&quot;);
+#elif defined(IS_LITTLE_ENDIAN)
     printf(&quot;#define IS_LITTLE_ENDIAN 1\n&quot;);
     printf(&quot;#undef  IS_BIG_ENDIAN\n\n&quot;);
 #elif defined(IS_BIG_ENDIAN)</diff>
      <filename>vendor/spidermonkey/jscpucfg.c</filename>
    </modified>
    <modified>
      <diff>@@ -478,12 +478,15 @@ msFromTime(jsdouble t)
  * We use the first reseved slot to store UTC time, and the second for caching
  * the local time. The initial value of the cache entry is NaN.
  */
-#define UTC_TIME_SLOT           0
-#define LOCAL_TIME_SLOT         1
+#define JSSLOT_UTC_TIME         JSSLOT_PRIVATE
+#define JSSLOT_LOCAL_TIME       (JSSLOT_PRIVATE + 1)
+
+#define DATE_RESERVED_SLOTS     2
 
 JSClass js_DateClass = {
     js_Date_str,
-    JSCLASS_HAS_RESERVED_SLOTS(2) |  JSCLASS_HAS_CACHED_PROTO(JSProto_Date),
+    JSCLASS_HAS_RESERVED_SLOTS(DATE_RESERVED_SLOTS) |
+    JSCLASS_HAS_CACHED_PROTO(JSProto_Date),
     JS_PropertyStub,  JS_PropertyStub,  JS_PropertyStub,  JS_PropertyStub,
     JS_EnumerateStub, JS_ResolveStub,   JS_ConvertStub,   JS_FinalizeStub,
     JSCLASS_NO_OPTIONAL_MEMBERS
@@ -926,14 +929,9 @@ date_now(JSContext *cx, uintN argc, jsval *vp)
 static JSBool
 GetUTCTime(JSContext *cx, JSObject *obj, jsval *vp, jsdouble *dp)
 {
-    jsval v;
-
-    if (vp &amp;&amp; !JS_InstanceOf(cx, obj, &amp;js_DateClass, vp + 2))
-        return JS_FALSE;
-    if (!JS_GetReservedSlot(cx, obj, UTC_TIME_SLOT, &amp;v))
+    if (!JS_InstanceOf(cx, obj, &amp;js_DateClass, vp ? vp + 2 : NULL))
         return JS_FALSE;
-
-    *dp = *JSVAL_TO_DOUBLE(v);
+    *dp = *JSVAL_TO_DOUBLE(obj-&gt;fslots[JSSLOT_UTC_TIME]);
     return JS_TRUE;
 }
 
@@ -948,14 +946,12 @@ SetUTCTimePtr(JSContext *cx, JSObject *obj, jsval *vp, jsdouble *dp)
 {
     if (vp &amp;&amp; !JS_InstanceOf(cx, obj, &amp;js_DateClass, vp + 2))
         return JS_FALSE;
+    JS_ASSERT_IF(!vp, STOBJ_GET_CLASS(obj) == &amp;js_DateClass);
 
     /* Invalidate local time cache. */
-    if (!JS_SetReservedSlot(cx, obj, LOCAL_TIME_SLOT,
-                            DOUBLE_TO_JSVAL(cx-&gt;runtime-&gt;jsNaN))) {
-        return JS_FALSE;
-    }
-
-    return JS_SetReservedSlot(cx, obj, UTC_TIME_SLOT, DOUBLE_TO_JSVAL(dp));
+    obj-&gt;fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cx-&gt;runtime-&gt;jsNaN);
+    obj-&gt;fslots[JSSLOT_UTC_TIME] = DOUBLE_TO_JSVAL(dp);
+    return JS_TRUE;
 }
 
 /*
@@ -981,8 +977,9 @@ GetAndCacheLocalTime(JSContext *cx, JSObject *obj, jsval *vp, jsdouble *dp)
     jsdouble result;
     jsdouble *cached;
 
-    if (!obj || !JS_GetReservedSlot(cx, obj, LOCAL_TIME_SLOT, &amp;v))
+    if (!obj || !JS_InstanceOf(cx, obj, &amp;js_DateClass, vp ? vp + 2 : NULL))
         return JS_FALSE;
+    v = obj-&gt;fslots[JSSLOT_LOCAL_TIME];
 
     result = *JSVAL_TO_DOUBLE(v);
 
@@ -998,10 +995,7 @@ GetAndCacheLocalTime(JSContext *cx, JSObject *obj, jsval *vp, jsdouble *dp)
         if (!cached)
             return JS_FALSE;
 
-        if (!JS_SetReservedSlot(cx, obj, LOCAL_TIME_SLOT,
-                                DOUBLE_TO_JSVAL(cached))) {
-            return JS_FALSE;
-        }
+        obj-&gt;fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cached);
     }
 
     *dp = result;
@@ -2028,10 +2022,8 @@ date_constructor(JSContext *cx, JSObject* obj)
     if (!date)
         return NULL;
 
-    JS_SetReservedSlot(cx, obj, UTC_TIME_SLOT,
-                       DOUBLE_TO_JSVAL(date));
-    JS_SetReservedSlot(cx, obj, LOCAL_TIME_SLOT,
-                       DOUBLE_TO_JSVAL(cx-&gt;runtime-&gt;jsNaN));
+    obj-&gt;fslots[JSSLOT_UTC_TIME] = DOUBLE_TO_JSVAL(date);
+    obj-&gt;fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cx-&gt;runtime-&gt;jsNaN);
     return date;
 }
 </diff>
      <filename>vendor/spidermonkey/jsdate.c</filename>
    </modified>
    <modified>
      <diff>@@ -732,10 +732,13 @@ JS_SetWatchPoint(JSContext *cx, JSObject *obj, jsval idval,
         return JS_FALSE;
     }
 
-    if (JSVAL_IS_INT(idval))
+    if (JSVAL_IS_INT(idval)) {
         propid = INT_JSVAL_TO_JSID(idval);
-    else if (!js_ValueToStringId(cx, idval, &amp;propid))
-        return JS_FALSE;
+    } else {
+        if (!js_ValueToStringId(cx, idval, &amp;propid))
+            return JS_FALSE;
+        CHECK_FOR_STRING_INDEX(propid);
+    }
 
     if (!js_LookupProperty(cx, obj, propid, &amp;pobj, &amp;prop))
         return JS_FALSE;</diff>
      <filename>vendor/spidermonkey/jsdbgapi.c</filename>
    </modified>
    <modified>
      <diff>@@ -3020,8 +3020,16 @@ js_GC(JSContext *cx, JSGCInvocationKind gckind)
         ok = callback(cx, JSGC_BEGIN);
         if (gckind &amp; GC_LOCK_HELD)
             JS_LOCK_GC(rt);
-        if (!ok &amp;&amp; gckind != GC_LAST_CONTEXT)
+        if (!ok &amp;&amp; gckind != GC_LAST_CONTEXT) {
+            /*
+             * It's possible that we've looped back to this code from the 'goto
+             * restart_at_beginning' below in the GC_SET_SLOT_REQUEST code and
+             * that rt-&gt;gcLevel is now 0. Don't return without notifying!
+             */
+            if (rt-&gt;gcLevel == 0 &amp;&amp; (gckind &amp; GC_LOCK_HELD))
+                JS_NOTIFY_GC_DONE(rt);
             return;
+        }
     }
 
     /* Lock out other GC allocator and collector invocations. */
@@ -3471,7 +3479,7 @@ js_GC(JSContext *cx, JSGCInvocationKind gckind)
         goto restart;
     }
 
-    if (!(rt-&gt;shapeGen &amp; SHAPE_OVERFLOW_BIT)) {
+    if (rt-&gt;shapeGen &lt; SHAPE_OVERFLOW_BIT - 1) {
         js_EnablePropertyCache(cx);
 #ifdef JS_THREADSAFE
         iter = NULL;</diff>
      <filename>vendor/spidermonkey/jsgc.c</filename>
    </modified>
    <modified>
      <diff>@@ -80,17 +80,22 @@
 #ifdef js_invoke_c__
 
 uint32
-js_GenerateShape(JSContext *cx, JSBool gcLocked)
+js_GenerateShape(JSContext *cx, JSBool gcLocked, JSScopeProperty *sprop)
 {
     JSRuntime *rt;
     uint32 shape;
+    JSTempValueRooter tvr;
 
     rt = cx-&gt;runtime;
     shape = JS_ATOMIC_INCREMENT(&amp;rt-&gt;shapeGen);
     JS_ASSERT(shape != 0);
     if (shape &amp; SHAPE_OVERFLOW_BIT) {
         rt-&gt;gcPoke = JS_TRUE;
+        if (sprop)
+            JS_PUSH_TEMP_ROOT_SPROP(cx, sprop, &amp;tvr);
         js_GC(cx, gcLocked ? GC_LOCK_HELD : GC_NORMAL);
+        if (sprop)
+            JS_POP_TEMP_ROOT(cx, &amp;tvr);
         shape = JS_ATOMIC_INCREMENT(&amp;rt-&gt;shapeGen);
         JS_ASSERT(shape != 0);
         JS_ASSERT_IF(shape &amp; SHAPE_OVERFLOW_BIT,
@@ -825,8 +830,10 @@ ComputeThis(JSContext *cx, JSBool lazy, jsval *argv)
         thisp = JSVAL_TO_OBJECT(argv[-1]);
     } else {
         thisp = JSVAL_TO_OBJECT(argv[-1]);
-        if (OBJ_GET_CLASS(cx, thisp) == &amp;js_CallClass)
+        if (OBJ_GET_CLASS(cx, thisp) == &amp;js_CallClass ||
+            OBJ_GET_CLASS(cx, thisp) == &amp;js_BlockClass) {
             return js_ComputeGlobalThis(cx, lazy, argv);
+        }
 
         if (thisp-&gt;map-&gt;ops-&gt;thisObject) {
             /* Some objects (e.g., With) delegate 'this' to another object. */
@@ -1473,12 +1480,6 @@ js_Execute(JSContext *cx, JSObject *chain, JSScript *script,
         frame.callee = NULL;
         frame.fun = NULL;
         frame.thisp = chain;
-        OBJ_TO_OUTER_OBJECT(cx, frame.thisp);
-        if (!frame.thisp) {
-            ok = JS_FALSE;
-            goto out;
-        }
-        flags |= JSFRAME_COMPUTED_THIS;
         frame.argc = 0;
         frame.argv = NULL;
         frame.nvars = script-&gt;ngvars;
@@ -1528,6 +1529,15 @@ js_Execute(JSContext *cx, JSObject *chain, JSScript *script,
     }
 
     cx-&gt;fp = &amp;frame;
+    if (!down) {
+        OBJ_TO_OUTER_OBJECT(cx, frame.thisp);
+        if (!frame.thisp) {
+            ok = JS_FALSE;
+            goto out2;
+        }
+        frame.flags |= JSFRAME_COMPUTED_THIS;
+    }
+
     if (hook) {
         hookData = hook(cx, &amp;frame, JS_TRUE, 0,
                         cx-&gt;debugHooks-&gt;executeHookData);
@@ -1541,6 +1551,8 @@ js_Execute(JSContext *cx, JSObject *chain, JSScript *script,
         if (hook)
             hook(cx, &amp;frame, JS_FALSE, &amp;ok, hookData);
     }
+
+out2:
     if (mark)
         js_FreeRawStack(cx, mark);
     cx-&gt;fp = oldfp;
@@ -1677,63 +1689,84 @@ js_CheckRedeclaration(JSContext *cx, JSObject *obj, jsid id, uintN attrs,
     jsval value;
     const char *type, *name;
 
+    /*
+     * Both objp and propp must be either null or given. When given, *propp
+     * must be null. This way we avoid an extra &quot;if (propp) *propp = NULL&quot; for
+     * the common case of a non-existing property.
+     */
+    JS_ASSERT(!objp == !propp);
+    JS_ASSERT_IF(propp, !*propp);
+
+    /* The JSPROP_INITIALIZER case below may generate a warning. Since we must
+     * drop the property before reporting it, we insists on !propp to avoid
+     * looking up the property again after the reporting is done.
+     */
+    JS_ASSERT_IF(attrs &amp; JSPROP_INITIALIZER, attrs == JSPROP_INITIALIZER);
+    JS_ASSERT_IF(attrs == JSPROP_INITIALIZER, !propp);
+
     if (!OBJ_LOOKUP_PROPERTY(cx, obj, id, &amp;obj2, &amp;prop))
         return JS_FALSE;
-    if (propp) {
-        *objp = obj2;
-        *propp = prop;
-    }
     if (!prop)
         return JS_TRUE;
 
-    /*
-     * Use prop as a speedup hint to OBJ_GET_ATTRIBUTES, but drop it on error.
-     * An assertion at label bad: will insist that it is null.
-     */
+    /* Use prop as a speedup hint to OBJ_GET_ATTRIBUTES. */
     if (!OBJ_GET_ATTRIBUTES(cx, obj2, id, prop, &amp;oldAttrs)) {
         OBJ_DROP_PROPERTY(cx, obj2, prop);
-#ifdef DEBUG
-        prop = NULL;
-#endif
-        goto bad;
+        return JS_FALSE;
     }
 
     /*
-     * From here, return true, or else goto bad on failure to null out params.
      * If our caller doesn't want prop, drop it (we don't need it any longer).
      */
     if (!propp) {
         OBJ_DROP_PROPERTY(cx, obj2, prop);
         prop = NULL;
+    } else {
+        *objp = obj2;
+        *propp = prop;
     }
 
     if (attrs == JSPROP_INITIALIZER) {
         /* Allow the new object to override properties. */
         if (obj2 != obj)
             return JS_TRUE;
+
+        /* The property must be dropped already. */
+        JS_ASSERT(!prop);
         report = JSREPORT_WARNING | JSREPORT_STRICT;
     } else {
         /* We allow redeclaring some non-readonly properties. */
         if (((oldAttrs | attrs) &amp; JSPROP_READONLY) == 0) {
-            /*
-             * Allow redeclaration of variables and functions, but insist that
-             * the new value is not a getter if the old value was, ditto for
-             * setters -- unless prop is impermanent (in which case anyone
-             * could delete it and redefine it, willy-nilly).
-             */
+            /* Allow redeclaration of variables and functions. */
             if (!(attrs &amp; (JSPROP_GETTER | JSPROP_SETTER)))
                 return JS_TRUE;
+
+            /*
+             * Allow adding a getter only if a property already has a setter
+             * but no getter and similarly for adding a setter. That is, we
+             * allow only the following transitions:
+             *
+             *   no-property --&gt; getter --&gt; getter + setter
+             *   no-property --&gt; setter --&gt; getter + setter
+             */
             if ((~(oldAttrs ^ attrs) &amp; (JSPROP_GETTER | JSPROP_SETTER)) == 0)
                 return JS_TRUE;
+
+            /*
+             * Allow redeclaration of an impermanent property (in which case
+             * anyone could delete it and redefine it, willy-nilly).
+             */
             if (!(oldAttrs &amp; JSPROP_PERMANENT))
                 return JS_TRUE;
         }
+        if (prop)
+            OBJ_DROP_PROPERTY(cx, obj2, prop);
 
         report = JSREPORT_ERROR;
         isFunction = (oldAttrs &amp; (JSPROP_GETTER | JSPROP_SETTER)) != 0;
         if (!isFunction) {
             if (!OBJ_GET_PROPERTY(cx, obj, id, &amp;value))
-                goto bad;
+                return JS_FALSE;
             isFunction = VALUE_IS_FUNCTION(cx, value);
         }
     }
@@ -1751,19 +1784,11 @@ js_CheckRedeclaration(JSContext *cx, JSObject *obj, jsid id, uintN attrs,
            : js_var_str;
     name = js_ValueToPrintableString(cx, ID_TO_VALUE(id));
     if (!name)
-        goto bad;
+        return JS_FALSE;
     return JS_ReportErrorFlagsAndNumber(cx, report,
                                         js_GetErrorMessage, NULL,
                                         JSMSG_REDECLARED_VAR,
                                         type, name);
-
-bad:
-    if (propp) {
-        *objp = NULL;
-        *propp = NULL;
-    }
-    JS_ASSERT(!prop);
-    return JS_FALSE;
 }
 
 JSBool
@@ -4743,16 +4768,6 @@ interrupt:
                     newifp-&gt;frame.regs = NULL;
                     newifp-&gt;frame.spbase = NULL;
 
-                    /* Call the debugger hook if present. */
-                    hook = cx-&gt;debugHooks-&gt;callHook;
-                    if (hook) {
-                        newifp-&gt;hookData = hook(cx, &amp;newifp-&gt;frame, JS_TRUE, 0,
-                                                cx-&gt;debugHooks-&gt;callHookData);
-                        LOAD_INTERRUPT_HANDLER(cx);
-                    } else {
-                        newifp-&gt;hookData = NULL;
-                    }
-
                     /* Scope with a call object parented by callee's parent. */
                     if (JSFUN_HEAVYWEIGHT_TEST(fun-&gt;flags) &amp;&amp;
                         !js_GetCallObject(cx, &amp;newifp-&gt;frame, parent)) {
@@ -4775,6 +4790,16 @@ interrupt:
                     newifp-&gt;frame.regs = &amp;regs;
                     cx-&gt;fp = fp = &amp;newifp-&gt;frame;
 
+                    /* Call the debugger hook if present. */
+                    hook = cx-&gt;debugHooks-&gt;callHook;
+                    if (hook) {
+                        newifp-&gt;hookData = hook(cx, &amp;newifp-&gt;frame, JS_TRUE, 0,
+                                                cx-&gt;debugHooks-&gt;callHookData);
+                        LOAD_INTERRUPT_HANDLER(cx);
+                    } else {
+                        newifp-&gt;hookData = NULL;
+                    }
+
                     inlineCallCount++;
                     JS_RUNTIME_METER(rt, inlineCalls);
 
@@ -5093,7 +5118,7 @@ interrupt:
                 funobj = fp-&gt;callee;
                 slot += JSCLASS_RESERVED_SLOTS(&amp;js_FunctionClass);
                 if (!JS_GetReservedSlot(cx, funobj, slot, &amp;rval))
-                    return JS_FALSE;
+                    goto error;
                 if (JSVAL_IS_VOID(rval))
                     rval = JSVAL_NULL;
             } else {
@@ -5151,7 +5176,7 @@ interrupt:
                 /* Store the regexp object value in its cloneIndex slot. */
                 if (fp-&gt;fun) {
                     if (!JS_SetReservedSlot(cx, funobj, slot, rval))
-                        return JS_FALSE;
+                        goto error;
                 } else {
                     fp-&gt;vars[slot] = rval;
                 }
@@ -5524,6 +5549,7 @@ interrupt:
 
             /* Lookup id in order to check for redeclaration problems. */
             id = ATOM_TO_JSID(atom);
+            prop = NULL;
             if (!js_CheckRedeclaration(cx, obj, id, attrs, &amp;obj2, &amp;prop))
                 goto error;
 
@@ -5545,11 +5571,11 @@ interrupt:
              * by the JSOP_*GVAR opcodes.
              */
             if (index &lt; script-&gt;ngvars &amp;&amp;
-                (attrs &amp; JSPROP_PERMANENT) &amp;&amp;
                 obj2 == obj &amp;&amp;
                 OBJ_IS_NATIVE(obj)) {
                 sprop = (JSScopeProperty *) prop;
-                if (SPROP_HAS_VALID_SLOT(sprop, OBJ_SCOPE(obj)) &amp;&amp;
+                if ((sprop-&gt;attrs &amp; JSPROP_PERMANENT) &amp;&amp;
+                    SPROP_HAS_VALID_SLOT(sprop, OBJ_SCOPE(obj)) &amp;&amp;
                     SPROP_HAS_STUB_GETTER(sprop) &amp;&amp;
                     SPROP_HAS_STUB_SETTER(sprop)) {
                     /*</diff>
      <filename>vendor/spidermonkey/jsinterp.c</filename>
    </modified>
    <modified>
      <diff>@@ -162,8 +162,12 @@ typedef struct JSInlineFrame {
 
 #define SHAPE_OVERFLOW_BIT      JS_BIT(32 - PCVCAP_TAGBITS)
 
+/*
+ * When sprop is not null and the shape generation triggers the GC due to a
+ * shape overflow, the functions roots sprop.
+ */
 extern uint32
-js_GenerateShape(JSContext *cx, JSBool gcLocked);
+js_GenerateShape(JSContext *cx, JSBool gcLocked, JSScopeProperty *sprop);
 
 struct JSPropCacheEntry {
     jsbytecode          *kpc;           /* pc if vcap tag is &lt;= 1, else atom */</diff>
      <filename>vendor/spidermonkey/jsinterp.h</filename>
    </modified>
    <modified>
      <diff>@@ -556,8 +556,7 @@ js_InitMathClass(JSContext *cx, JSObject *obj)
 {
     JSObject *Math;
 
-    Math = JS_DefineObject(cx, obj, js_Math_str, &amp;js_MathClass, NULL,
-                           JSPROP_READONLY | JSPROP_PERMANENT);
+    Math = JS_DefineObject(cx, obj, js_Math_str, &amp;js_MathClass, NULL, 0);
     if (!Math)
         return NULL;
     if (!JS_DefineFunctions(cx, Math, math_static_methods))</diff>
      <filename>vendor/spidermonkey/jsmath.c</filename>
    </modified>
    <modified>
      <diff>@@ -309,7 +309,7 @@ num_toLocaleString(JSContext *cx, uintN argc, jsval *vp)
     JSString *numStr, *str;
     const char *num, *end, *tmpSrc;
     char *buf, *tmpDest;
-    const char *dec;
+    const char *nint;
     int digits, size, remainder, nrepeat;
 
     /*
@@ -324,17 +324,28 @@ num_toLocaleString(JSContext *cx, uintN argc, jsval *vp)
     if (!num)
         return JS_FALSE;
 
-    /* Find bit before the decimal. */
-    dec = strchr(num, '.');
-    digits = dec ? dec - num : (int)strlen(num);
+    /*
+     * Find the first non-integer value, whether it be a letter as in
+     * 'Infinite', a decimal point, or an 'e' from exponential notation.
+     */
+    nint = num;
+    if (*nint == '-')
+        nint++;
+    while (*nint &gt;= '0' &amp;&amp; *nint &lt;= '9')
+        nint++;
+    digits = nint - num;
     end = num + digits;
+    if (!digits)
+        return JS_TRUE;
 
     rt = cx-&gt;runtime;
     thousandsLength = strlen(rt-&gt;thousandsSeparator);
     decimalLength = strlen(rt-&gt;decimalSeparator);
 
     /* Figure out how long resulting string will be. */
-    size = digits + (dec ? decimalLength + strlen(dec + 1) : 0);
+    size = digits + (*nint ? strlen(nint + 1) + 1 : 0);
+    if (*nint == '.')
+        size += decimalLength;
 
     numGrouping = tmpGroup = rt-&gt;numGrouping;
     remainder = digits;
@@ -376,12 +387,12 @@ num_toLocaleString(JSContext *cx, uintN argc, jsval *vp)
             tmpGroup--;
     }
 
-    if (dec) {
+    if (*nint == '.') {
         strcpy(tmpDest, rt-&gt;decimalSeparator);
         tmpDest += decimalLength;
-        strcpy(tmpDest, dec + 1);
+        strcpy(tmpDest, nint + 1);
     } else {
-        *tmpDest++ = '\0';
+        strcpy(tmpDest, nint);
     }
 
     if (cx-&gt;localeCallbacks &amp;&amp; cx-&gt;localeCallbacks-&gt;localeToUnicode)</diff>
      <filename>vendor/spidermonkey/jsnum.c</filename>
    </modified>
    <modified>
      <diff>@@ -299,8 +299,13 @@ js_SetProtoOrParent(JSContext *cx, JSObject *obj, uint32 slot, JSObject *pobj)
     JS_LOCK_GC(rt);
     ssr.next = rt-&gt;setSlotRequests;
     rt-&gt;setSlotRequests = &amp;ssr;
-    js_GC(cx, GC_SET_SLOT_REQUEST);
-    JS_UNLOCK_GC(rt);
+    for (;;) {
+        js_GC(cx, GC_SET_SLOT_REQUEST);
+        JS_UNLOCK_GC(rt);
+        if (!rt-&gt;setSlotRequests)
+            break;
+        JS_LOCK_GC(rt);
+    }
 
     if (ssr.errnum != JSMSG_NOT_AN_ERROR) {
         if (ssr.errnum == JSMSG_OUT_OF_MEMORY) {
@@ -1140,8 +1145,10 @@ js_ComputeFilename(JSContext *cx, JSStackFrame *caller,
 {
     uint32 flags;
 
+    JS_ASSERT(principals || !cx-&gt;runtime-&gt;findObjectPrincipals);
     flags = JS_GetScriptFilenameFlags(caller-&gt;script);
     if ((flags &amp; JSFILENAME_PROTECTED) &amp;&amp;
+        principals &amp;&amp;
         strcmp(principals-&gt;codebase, &quot;[System Principal]&quot;)) {
         *linenop = 0;
         return principals-&gt;codebase;
@@ -1214,13 +1221,16 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
         return JS_FALSE;
 
     /*
-     * Script.prototype.compile/exec and Object.prototype.eval all take an
-     * optional trailing argument that overrides the scope object.
+     * Script.prototype.compile/exec and Object.prototype.eval no longer take
+     * an optional trailing argument.
      */
     if (argc &gt;= 2) {
-        if (!js_ValueToObject(cx, argv[1], &amp;scopeobj))
+        if (!JS_ReportErrorFlagsAndNumber(cx,
+                                          JSREPORT_WARNING | JSREPORT_STRICT,
+                                          js_GetErrorMessage, NULL,
+                                          JSMSG_EVAL_ARITY)) {
             return JS_FALSE;
-        argv[1] = OBJECT_TO_JSVAL(scopeobj);
+        }
     }
 
     /* From here on, control must exit through label out with ok set. */
@@ -1242,7 +1252,7 @@ obj_eval(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
             }
             if (obj != callerScopeChain) {
                 ok = js_CheckPrincipalsAccess(cx, obj,
-                                              caller-&gt;script-&gt;principals,
+                                              JS_StackFramePrincipals(cx, caller),
                                               cx-&gt;runtime-&gt;atomState.evalAtom);
                 if (!ok)
                     goto out;
@@ -1432,6 +1442,9 @@ obj_watch(JSContext *cx, uintN argc, jsval *vp)
     if (attrs &amp; JSPROP_READONLY)
         return JS_TRUE;
     *vp = JSVAL_VOID;
+
+    if (OBJ_IS_DENSE_ARRAY(cx, obj) &amp;&amp; !js_MakeArraySlow(cx, obj))
+        return JS_FALSE;
     return JS_SetWatchPoint(cx, obj, userid, obj_watch_handler, callable);
 }
 
@@ -3341,7 +3354,8 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
                         /* Resolved: juggle locks and lookup id again. */
                         if (obj2 != obj) {
                             JS_UNLOCK_OBJ(cx, obj);
-                            JS_LOCK_OBJ(cx, obj2);
+                            if (OBJ_IS_NATIVE(obj2))
+                                JS_LOCK_OBJ(cx, obj2);
                         }
                         protoIndex = 0;
                         for (proto = start; proto &amp;&amp; proto != obj2;
@@ -3352,7 +3366,6 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
                         if (!MAP_IS_NATIVE(&amp;scope-&gt;map)) {
                             /* Whoops, newresolve handed back a foreign obj2. */
                             JS_ASSERT(obj2 != obj);
-                            JS_UNLOCK_OBJ(cx, obj2);
                             ok = OBJ_LOOKUP_PROPERTY(cx, obj2, id, objp, propp);
                             if (!ok || *propp)
                                 goto cleanup;
@@ -3373,7 +3386,8 @@ js_LookupPropertyWithFlags(JSContext *cx, JSObject *obj, jsid id, uintN flags,
                             JS_ASSERT(obj2 == scope-&gt;object);
                             obj = obj2;
                         } else if (obj2 != obj) {
-                            JS_UNLOCK_OBJ(cx, obj2);
+                            if (OBJ_IS_NATIVE(obj2))
+                                JS_UNLOCK_OBJ(cx, obj2);
                             JS_LOCK_OBJ(cx, obj);
                         }
                     }
@@ -4359,8 +4373,10 @@ js_CheckAccess(JSContext *cx, JSObject *obj, jsid id, JSAccessMode mode,
 
             /* Avoid diverging for non-natives that reuse js_CheckAccess. */
             if (pobj-&gt;map-&gt;ops-&gt;checkAccess == js_CheckAccess) {
-                if (!writing)
+                if (!writing) {
                     *vp = JSVAL_VOID;
+                    *attrsp = 0;
+                }
                 break;
             }
             return OBJ_CHECK_ACCESS(cx, pobj, id, mode, vp, attrsp);</diff>
      <filename>vendor/spidermonkey/jsobj.c</filename>
    </modified>
    <modified>
      <diff>@@ -4824,7 +4824,7 @@ js_DecompileValueGenerator(JSContext *cx, intN spindex, jsval v,
 
     for (fp = cx-&gt;fp; fp &amp;&amp; !fp-&gt;script; fp = fp-&gt;down)
         continue;
-    if (!fp || !fp-&gt;regs)
+    if (!fp || !fp-&gt;regs || !fp-&gt;regs-&gt;sp)
         goto do_fallback;
 
     script = fp-&gt;script;</diff>
      <filename>vendor/spidermonkey/jsopcode.c</filename>
    </modified>
    <modified>
      <diff>@@ -2029,6 +2029,16 @@ CheckDestructuring(JSContext *cx, BindData *data,
         return JS_FALSE;
     }
 
+#if JS_HAS_DESTRUCTURING_SHORTHAND
+    if (right &amp;&amp;
+        right-&gt;pn_arity == PN_LIST &amp;&amp; 
+        (right-&gt;pn_extra &amp; PNX_SHORTHAND)) {
+        js_ReportCompileErrorNumber(cx, TS(tc-&gt;parseContext), right,
+                                    JSREPORT_ERROR, JSMSG_BAD_OBJECT_INIT);
+        return JS_FALSE;
+    }
+#endif
+
     fpvd.table.ops = NULL;
     lhs = left-&gt;pn_head;
     if (lhs &amp;&amp; lhs-&gt;pn_type == TOK_DEFSHARP) {
@@ -4555,18 +4565,32 @@ MemberExpr(JSContext *cx, JSTokenStream *ts, JSTreeContext *tc,
             pn2-&gt;pn_pos.begin = pn-&gt;pn_pos.begin;
             pn2-&gt;pn_pos.end = CURRENT_TOKEN(ts).pos.end;
 
-            /* Optimize o['p'] to o.p by rewriting pn2. */
-            if (pn3-&gt;pn_type == TOK_STRING) {
-                pn2-&gt;pn_type = TOK_DOT;
-                pn2-&gt;pn_op = JSOP_GETPROP;
-                pn2-&gt;pn_arity = PN_NAME;
-                pn2-&gt;pn_expr = pn;
-                pn2-&gt;pn_atom = pn3-&gt;pn_atom;
-            } else {
+            /*
+             * Optimize o['p'] to o.p by rewriting pn2, but avoid rewriting
+             * o['0'] to use JSOP_GETPROP, to keep fast indexing disjoint in
+             * the interpreter from fast property access. However, if the
+             * bracketed string is a uint32, we rewrite pn3 to be a number
+             * instead of a string.
+             */
+            do {
+                if (pn3-&gt;pn_type == TOK_STRING) {
+                    jsuint index;
+
+                    if (!js_IdIsIndex(ATOM_TO_JSID(pn3-&gt;pn_atom), &amp;index)) {
+                        pn2-&gt;pn_type = TOK_DOT;
+                        pn2-&gt;pn_op = JSOP_GETPROP;
+                        pn2-&gt;pn_arity = PN_NAME;
+                        pn2-&gt;pn_expr = pn;
+                        pn2-&gt;pn_atom = pn3-&gt;pn_atom;
+                        break;
+                    }
+                    pn3-&gt;pn_type = TOK_NUMBER;
+                    pn3-&gt;pn_dval = index;
+                }
                 pn2-&gt;pn_op = JSOP_GETELEM;
                 pn2-&gt;pn_left = pn;
                 pn2-&gt;pn_right = pn3;
-            }
+            } while (0);
         } else if (allowCallSyntax &amp;&amp; tt == TOK_LP) {
             pn2 = NewParseNode(cx, ts, PN_LIST, tc);
             if (!pn2)</diff>
      <filename>vendor/spidermonkey/jsparse.c</filename>
    </modified>
    <modified>
      <diff>@@ -3622,12 +3622,17 @@ regexp_getProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
 
     if (!JSVAL_IS_INT(id))
         return JS_TRUE;
+    while (OBJ_GET_CLASS(cx, obj) != &amp;js_RegExpClass) {
+        obj = OBJ_GET_PROTO(cx, obj);
+        if (!obj)
+            return JS_TRUE;
+    }
     slot = JSVAL_TO_INT(id);
     if (slot == REGEXP_LAST_INDEX)
         return JS_GetReservedSlot(cx, obj, 0, vp);
 
     JS_LOCK_OBJ(cx, obj);
-    re = (JSRegExp *) JS_GetInstancePrivate(cx, obj, &amp;js_RegExpClass, NULL);
+    re = (JSRegExp *) JS_GetPrivate(cx, obj);
     if (re) {
         switch (slot) {
           case REGEXP_SOURCE:
@@ -3661,6 +3666,11 @@ regexp_setProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
     ok = JS_TRUE;
     if (!JSVAL_IS_INT(id))
         return ok;
+    while (OBJ_GET_CLASS(cx, obj) != &amp;js_RegExpClass) {
+        obj = OBJ_GET_PROTO(cx, obj);
+        if (!obj)
+            return JS_TRUE;
+    }
     slot = JSVAL_TO_INT(id);
     if (slot == REGEXP_LAST_INDEX) {
         if (!JS_ValueToNumber(cx, *vp, &amp;lastIndex))
@@ -4298,10 +4308,12 @@ js_NewRegExpObject(JSContext *cx, JSTokenStream *ts,
     str = js_NewStringCopyN(cx, chars, length);
     if (!str)
         return NULL;
+    JS_PUSH_TEMP_ROOT_STRING(cx, str, &amp;tvr);
     re = js_NewRegExp(cx, ts,  str, flags, JS_FALSE);
-    if (!re)
+    if (!re) {
+        JS_POP_TEMP_ROOT(cx, &amp;tvr);
         return NULL;
-    JS_PUSH_TEMP_ROOT_STRING(cx, str, &amp;tvr);
+    }
     obj = js_NewObject(cx, &amp;js_RegExpClass, NULL, NULL, 0);
     if (!obj || !JS_SetPrivate(cx, obj, re)) {
         js_DestroyRegExp(cx, re);</diff>
      <filename>vendor/spidermonkey/jsregexp.c</filename>
    </modified>
    <modified>
      <diff>@@ -298,150 +298,144 @@ GetChar(JSTokenStream *ts)
     if (ts-&gt;ungetpos != 0) {
         c = ts-&gt;ungetbuf[--ts-&gt;ungetpos];
     } else {
-        do {
-            if (ts-&gt;linebuf.ptr == ts-&gt;linebuf.limit) {
-                len = PTRDIFF(ts-&gt;userbuf.limit, ts-&gt;userbuf.ptr, jschar);
+        if (ts-&gt;linebuf.ptr == ts-&gt;linebuf.limit) {
+            len = PTRDIFF(ts-&gt;userbuf.limit, ts-&gt;userbuf.ptr, jschar);
+            if (len &lt;= 0) {
+                if (!ts-&gt;file) {
+                    ts-&gt;flags |= TSF_EOF;
+                    return EOF;
+                }
+        
+                /* Fill ts-&gt;userbuf so that \r and \r\n convert to \n. */
+                crflag = (ts-&gt;flags &amp; TSF_CRFLAG) != 0;
+                len = js_fgets(cbuf, JS_LINE_LIMIT - crflag, ts-&gt;file);
                 if (len &lt;= 0) {
-                    if (!ts-&gt;file) {
-                        ts-&gt;flags |= TSF_EOF;
-                        return EOF;
-                    }
-            
-                    /* Fill ts-&gt;userbuf so that \r and \r\n convert to \n. */
-                    crflag = (ts-&gt;flags &amp; TSF_CRFLAG) != 0;
-                    len = js_fgets(cbuf, JS_LINE_LIMIT - crflag, ts-&gt;file);
-                    if (len &lt;= 0) {
-                        ts-&gt;flags |= TSF_EOF;
-                        return EOF;
-                    }
-                    olen = len;
-                    ubuf = ts-&gt;userbuf.base;
-                    i = 0;
-                    if (crflag) {
-                        ts-&gt;flags &amp;= ~TSF_CRFLAG;
-                        if (cbuf[0] != '\n') {
-                            ubuf[i++] = '\n';
-                            len++;
-                            ts-&gt;linepos--;
-                        }
-                    }
-                    for (j = 0; i &lt; len; i++, j++)
-                        ubuf[i] = (jschar) (unsigned char) cbuf[j];
-                    ts-&gt;userbuf.limit = ubuf + len;
-                    ts-&gt;userbuf.ptr = ubuf;
+                    ts-&gt;flags |= TSF_EOF;
+                    return EOF;
                 }
-                if (ts-&gt;listener) {
-                    ts-&gt;listener(ts-&gt;filename, ts-&gt;lineno, ts-&gt;userbuf.ptr, len,
-                                 &amp;ts-&gt;listenerTSData, ts-&gt;listenerData);
+                olen = len;
+                ubuf = ts-&gt;userbuf.base;
+                i = 0;
+                if (crflag) {
+                    ts-&gt;flags &amp;= ~TSF_CRFLAG;
+                    if (cbuf[0] != '\n') {
+                        ubuf[i++] = '\n';
+                        len++;
+                        ts-&gt;linepos--;
+                    }
                 }
-            
-                nl = ts-&gt;saveEOL;
-                if (!nl) {
+                for (j = 0; i &lt; len; i++, j++)
+                    ubuf[i] = (jschar) (unsigned char) cbuf[j];
+                ts-&gt;userbuf.limit = ubuf + len;
+                ts-&gt;userbuf.ptr = ubuf;
+            }
+            if (ts-&gt;listener) {
+                ts-&gt;listener(ts-&gt;filename, ts-&gt;lineno, ts-&gt;userbuf.ptr, len,
+                             &amp;ts-&gt;listenerTSData, ts-&gt;listenerData);
+            }
+        
+            nl = ts-&gt;saveEOL;
+            if (!nl) {
+                /*
+                 * Any one of \n, \r, or \r\n ends a line (the longest
+                 * match wins).  Also allow the Unicode line and paragraph
+                 * separators.
+                 */
+                for (nl = ts-&gt;userbuf.ptr; nl &lt; ts-&gt;userbuf.limit; nl++) {
                     /*
-                     * Any one of \n, \r, or \r\n ends a line (the longest
-                     * match wins).  Also allow the Unicode line and paragraph
-                     * separators.
+                     * Try to prevent value-testing on most characters by
+                     * filtering out characters that aren't 000x or 202x.
                      */
-                    for (nl = ts-&gt;userbuf.ptr; nl &lt; ts-&gt;userbuf.limit; nl++) {
-                        /*
-                         * Try to prevent value-testing on most characters by
-                         * filtering out characters that aren't 000x or 202x.
-                         */
-                        if ((*nl &amp; 0xDFD0) == 0) {
-                            if (*nl == '\n')
-                                break;
-                            if (*nl == '\r') {
-                                if (nl + 1 &lt; ts-&gt;userbuf.limit &amp;&amp; nl[1] == '\n')
-                                    nl++;
-                                break;
-                            }
-                            if (*nl == LINE_SEPARATOR || *nl == PARA_SEPARATOR)
-                                break;
+                    if ((*nl &amp; 0xDFD0) == 0) {
+                        if (*nl == '\n')
+                            break;
+                        if (*nl == '\r') {
+                            if (nl + 1 &lt; ts-&gt;userbuf.limit &amp;&amp; nl[1] == '\n')
+                                nl++;
+                            break;
                         }
+                        if (*nl == LINE_SEPARATOR || *nl == PARA_SEPARATOR)
+                            break;
                     }
                 }
-            
-                /*
-                 * If there was a line terminator, copy thru it into linebuf.
-                 * Else copy JS_LINE_LIMIT-1 bytes into linebuf.
-                 */
-                if (nl &lt; ts-&gt;userbuf.limit)
-                    len = PTRDIFF(nl, ts-&gt;userbuf.ptr, jschar) + 1;
-                if (len &gt;= JS_LINE_LIMIT) {
-                    len = JS_LINE_LIMIT - 1;
-                    ts-&gt;saveEOL = nl;
-                } else {
-                    ts-&gt;saveEOL = NULL;
-                }
-                js_strncpy(ts-&gt;linebuf.base, ts-&gt;userbuf.ptr, len);
-                ts-&gt;userbuf.ptr += len;
-                olen = len;
-            
-                /*
-                 * Make sure linebuf contains \n for EOL (don't do this in
-                 * userbuf because the user's string might be readonly).
-                 */
-                if (nl &lt; ts-&gt;userbuf.limit) {
-                    if (*nl == '\r') {
-                        if (ts-&gt;linebuf.base[len-1] == '\r') {
-                            /*
-                             * Does the line segment end in \r?  We must check
-                             * for a \n at the front of the next segment before
-                             * storing a \n into linebuf.  This case matters
-                             * only when we're reading from a file.
-                             */
-                            if (nl + 1 == ts-&gt;userbuf.limit &amp;&amp; ts-&gt;file) {
-                                len--;
-                                ts-&gt;flags |= TSF_CRFLAG; /* clear NLFLAG? */
-                                if (len == 0) {
-                                    /*
-                                     * This can happen when a segment ends in
-                                     * \r\r.  Start over.  ptr == limit in this
-                                     * case, so we'll fall into buffer-filling
-                                     * code.
-                                     */
-                                    return GetChar(ts);
-                                }
-                            } else {
-                                ts-&gt;linebuf.base[len-1] = '\n';
-                            }
-                        }
-                    } else if (*nl == '\n') {
-                        if (nl &gt; ts-&gt;userbuf.base &amp;&amp;
-                            nl[-1] == '\r' &amp;&amp;
-                            ts-&gt;linebuf.base[len-2] == '\r') {
+            }
+        
+            /*
+             * If there was a line terminator, copy thru it into linebuf.
+             * Else copy JS_LINE_LIMIT-1 bytes into linebuf.
+             */
+            if (nl &lt; ts-&gt;userbuf.limit)
+                len = PTRDIFF(nl, ts-&gt;userbuf.ptr, jschar) + 1;
+            if (len &gt;= JS_LINE_LIMIT) {
+                len = JS_LINE_LIMIT - 1;
+                ts-&gt;saveEOL = nl;
+            } else {
+                ts-&gt;saveEOL = NULL;
+            }
+            js_strncpy(ts-&gt;linebuf.base, ts-&gt;userbuf.ptr, len);
+            ts-&gt;userbuf.ptr += len;
+            olen = len;
+        
+            /*
+             * Make sure linebuf contains \n for EOL (don't do this in
+             * userbuf because the user's string might be readonly).
+             */
+            if (nl &lt; ts-&gt;userbuf.limit) {
+                if (*nl == '\r') {
+                    if (ts-&gt;linebuf.base[len-1] == '\r') {
+                        /*
+                         * Does the line segment end in \r?  We must check
+                         * for a \n at the front of the next segment before
+                         * storing a \n into linebuf.  This case matters
+                         * only when we're reading from a file.
+                         */
+                        if (nl + 1 == ts-&gt;userbuf.limit &amp;&amp; ts-&gt;file) {
                             len--;
-                            JS_ASSERT(ts-&gt;linebuf.base[len] == '\n');
+                            ts-&gt;flags |= TSF_CRFLAG; /* clear NLFLAG? */
+                            if (len == 0) {
+                                /*
+                                 * This can happen when a segment ends in
+                                 * \r\r.  Start over.  ptr == limit in this
+                                 * case, so we'll fall into buffer-filling
+                                 * code.
+                                 */
+                                return GetChar(ts);
+                            }
+                        } else {
                             ts-&gt;linebuf.base[len-1] = '\n';
                         }
-                    } else if (*nl == LINE_SEPARATOR || *nl == PARA_SEPARATOR) {
+                    }
+                } else if (*nl == '\n') {
+                    if (nl &gt; ts-&gt;userbuf.base &amp;&amp;
+                        nl[-1] == '\r' &amp;&amp;
+                        ts-&gt;linebuf.base[len-2] == '\r') {
+                        len--;
+                        JS_ASSERT(ts-&gt;linebuf.base[len] == '\n');
                         ts-&gt;linebuf.base[len-1] = '\n';
                     }
+                } else if (*nl == LINE_SEPARATOR || *nl == PARA_SEPARATOR) {
+                    ts-&gt;linebuf.base[len-1] = '\n';
                 }
-            
-                /* Reset linebuf based on adjusted segment length. */
-                ts-&gt;linebuf.limit = ts-&gt;linebuf.base + len;
-                ts-&gt;linebuf.ptr = ts-&gt;linebuf.base;
-            
-                /* Update position of linebuf within physical userbuf line. */
-                if (!(ts-&gt;flags &amp; TSF_NLFLAG))
-                    ts-&gt;linepos += ts-&gt;linelen;
-                else
-                    ts-&gt;linepos = 0;
-                if (ts-&gt;linebuf.limit[-1] == '\n')
-                    ts-&gt;flags |= TSF_NLFLAG;
-                else
-                    ts-&gt;flags &amp;= ~TSF_NLFLAG;
-            
-                /* Update linelen from original segment length. */
-                ts-&gt;linelen = olen;
             }
-            c = *ts-&gt;linebuf.ptr++;
-        /*
-         * In the hopes of being liberal in what we accept, we toss out little-
-         * and big-endian byte order markers here, see bug 368516.
-         */
-        } while (c == 0xfffe || c == 0xfeff);
+        
+            /* Reset linebuf based on adjusted segment length. */
+            ts-&gt;linebuf.limit = ts-&gt;linebuf.base + len;
+            ts-&gt;linebuf.ptr = ts-&gt;linebuf.base;
+        
+            /* Update position of linebuf within physical userbuf line. */
+            if (!(ts-&gt;flags &amp; TSF_NLFLAG))
+                ts-&gt;linepos += ts-&gt;linelen;
+            else
+                ts-&gt;linepos = 0;
+            if (ts-&gt;linebuf.limit[-1] == '\n')
+                ts-&gt;flags |= TSF_NLFLAG;
+            else
+                ts-&gt;flags &amp;= ~TSF_NLFLAG;
+        
+            /* Update linelen from original segment length. */
+            ts-&gt;linelen = olen;
+        }
+        c = *ts-&gt;linebuf.ptr++;
     }
     if (c == '\n')
         ts-&gt;lineno++;
@@ -819,6 +813,8 @@ GetXMLEntity(JSContext *cx, JSTokenStream *ts)
     /* Put the entity, including the '&amp;' already scanned, in ts-&gt;tokenbuf. */
     offset = PTRDIFF(ts-&gt;tokenbuf.ptr, ts-&gt;tokenbuf.base, jschar);
     FastAppendChar(&amp;ts-&gt;tokenbuf, '&amp;');
+    if (!STRING_BUFFER_OK(&amp;ts-&gt;tokenbuf))
+        return JS_FALSE;
     while ((c = GetChar(ts)) != ';') {
         if (c == EOF || c == '\n') {
             js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
@@ -826,6 +822,8 @@ GetXMLEntity(JSContext *cx, JSTokenStream *ts)
             return JS_FALSE;
         }
         FastAppendChar(&amp;ts-&gt;tokenbuf, (jschar) c);
+        if (!STRING_BUFFER_OK(&amp;ts-&gt;tokenbuf))
+            return JS_FALSE;
     }
 
     /* Let length be the number of jschars after the '&amp;', including the ';'. */
@@ -911,6 +909,8 @@ badncr:
     msg = JSMSG_BAD_XML_NCR;
 bad:
     /* No match: throw a TypeError per ECMA-357 10.3.2.1 step 8(a). */
+    JS_ASSERT(STRING_BUFFER_OK(&amp;ts-&gt;tokenbuf));
+    JS_ASSERT(PTRDIFF(ts-&gt;tokenbuf.ptr, bp, jschar) &gt;= 1);
     bytes = js_DeflateString(cx, bp + 1,
                              PTRDIFF(ts-&gt;tokenbuf.ptr, bp, jschar) - 1);
     if (bytes) {
@@ -990,6 +990,15 @@ NewToken(JSTokenStream *ts, ptrdiff_t adjust)
     return tp;
 }
 
+static JS_INLINE JSBool
+ScanAsSpace(jschar c)
+{
+    /* Treat little- and big-endian BOMs as whitespace for compatibility. */
+    if (JS_ISSPACE(c) || c == 0xfffe || c == 0xfeff)
+        return JS_TRUE;
+    return JS_FALSE;
+}
+
 JSTokenType
 js_GetToken(JSContext *cx, JSTokenStream *ts)
 {
@@ -1200,7 +1209,7 @@ retry:
             if (ts-&gt;flags &amp; TSF_NEWLINES)
                 break;
         }
-    } while (JS_ISSPACE(c));
+    } while (ScanAsSpace(c));
 
     tp = NewToken(ts, -1);
     if (c == EOF) {
@@ -1722,7 +1731,7 @@ retry:
                     cp[3] == 'n' &amp;&amp;
                     cp[4] == 'e') {
                     SkipChars(ts, 5);
-                    while ((c = GetChar(ts)) != '\n' &amp;&amp; JS_ISSPACE(c))
+                    while ((c = GetChar(ts)) != '\n' &amp;&amp; ScanAsSpace(c))
                         continue;
                     if (JS7_ISDEC(c)) {
                         line = JS7_UNDEC(c);
@@ -1734,7 +1743,7 @@ retry:
                             }
                             line = temp;
                         }
-                        while (c != '\n' &amp;&amp; JS_ISSPACE(c))
+                        while (c != '\n' &amp;&amp; ScanAsSpace(c))
                             c = GetChar(ts);
                         i = 0;
                         if (c == '&quot;') {
@@ -1749,7 +1758,7 @@ retry:
                             }
                             if (c == '&quot;') {
                                 while ((c = GetChar(ts)) != '\n' &amp;&amp;
-                                       JS_ISSPACE(c)) {
+                                       ScanAsSpace(c)) {
                                     continue;
                                 }
                             }</diff>
      <filename>vendor/spidermonkey/jsscan.c</filename>
    </modified>
    <modified>
      <diff>@@ -809,6 +809,7 @@ GetPropertyTreeChild(JSContext *cx, JSScopeProperty *parent,
     JSScopeProperty *sprop;
     PropTreeKidsChunk *chunk;
     uintN i, n;
+    uint32 shape;
 
     rt = cx-&gt;runtime;
     if (!parent) {
@@ -895,6 +896,12 @@ GetPropertyTreeChild(JSContext *cx, JSScopeProperty *parent,
     }
 
 locked_not_found:
+    /*
+     * Call js_GenerateShape before the allocation to prevent collecting the
+     * new property when the shape generation triggers the GC.
+     */
+    shape = js_GenerateShape(cx, JS_TRUE, NULL);
+
     sprop = NewScopeProperty(rt);
     if (!sprop)
         goto out_of_memory;
@@ -907,7 +914,7 @@ locked_not_found:
     sprop-&gt;flags = child-&gt;flags;
     sprop-&gt;shortid = child-&gt;shortid;
     sprop-&gt;parent = sprop-&gt;kids = NULL;
-    sprop-&gt;shape = js_GenerateShape(cx, JS_TRUE);
+    sprop-&gt;shape = shape;
 
     if (!parent) {
         entry-&gt;child = sprop;
@@ -1256,9 +1263,11 @@ js_AddScopeProperty(JSContext *cx, JSScope *scope, jsid id,
          */
         if (!JS_CLIST_IS_EMPTY(&amp;cx-&gt;runtime-&gt;watchPointList) &amp;&amp;
             js_FindWatchPoint(cx-&gt;runtime, scope, id)) {
-            JS_PUSH_TEMP_ROOT_SPROP(cx, overwriting, &amp;tvr);
+            if (overwriting)
+                JS_PUSH_TEMP_ROOT_SPROP(cx, overwriting, &amp;tvr);
             setter = js_WrapWatchedSetter(cx, id, attrs, setter);
-            JS_POP_TEMP_ROOT(cx, &amp;tvr);
+            if (overwriting)
+                JS_POP_TEMP_ROOT(cx, &amp;tvr);
             if (!setter)
                 goto fail_overwrite;
         }</diff>
      <filename>vendor/spidermonkey/jsscope.c</filename>
    </modified>
    <modified>
      <diff>@@ -220,7 +220,7 @@ JS_STATIC_ASSERT(offsetof(JSScope, title) == sizeof(JSObjectMap));
 #define OBJ_SCOPE(obj)                  ((JSScope *)(obj)-&gt;map)
 
 #define SCOPE_MAKE_UNIQUE_SHAPE(cx,scope)                                     \
-    ((scope)-&gt;shape = js_GenerateShape((cx), JS_FALSE))
+    ((scope)-&gt;shape = js_GenerateShape((cx), JS_FALSE, NULL))
 
 #define SCOPE_EXTEND_SHAPE(cx,scope,sprop)                                    \
     JS_BEGIN_MACRO                                                            \
@@ -228,7 +228,7 @@ JS_STATIC_ASSERT(offsetof(JSScope, title) == sizeof(JSObjectMap));
             (scope)-&gt;shape == (scope)-&gt;lastProp-&gt;shape) {                     \
             (scope)-&gt;shape = (sprop)-&gt;shape;                                  \
         } else {                                                              \
-            (scope)-&gt;shape = js_GenerateShape((cx), JS_FALSE);                \
+            (scope)-&gt;shape = js_GenerateShape((cx), JS_FALSE, sprop);         \
         }                                                                     \
     JS_END_MACRO
 </diff>
      <filename>vendor/spidermonkey/jsscope.h</filename>
    </modified>
    <modified>
      <diff>@@ -1216,9 +1216,7 @@ match_or_replace(JSContext *cx,
 
             /* Assume a full array result is required, then prove otherwise. */
             test = JS_FALSE;
-            if (fp) {
-                JS_ASSERT(*fp-&gt;regs-&gt;pc == JSOP_CALL ||
-                          *fp-&gt;regs-&gt;pc == JSOP_NEW);
+            if (fp &amp;&amp; (*fp-&gt;regs-&gt;pc == JSOP_CALL || *fp-&gt;regs-&gt;pc == JSOP_NEW)) {
                 JS_ASSERT(js_CodeSpec[*fp-&gt;regs-&gt;pc].length == 3);
                 switch (fp-&gt;regs-&gt;pc[3]) {
                   case JSOP_POP:
@@ -1949,6 +1947,9 @@ str_concat(JSContext *cx, uintN argc, jsval *vp)
 
     NORMALIZE_THIS(cx, vp, str);
 
+    /* Set vp (aka rval) early to handle the argc == 0 case. */
+    *vp = STRING_TO_JSVAL(str);
+
     for (i = 0, argv = vp + 2; i &lt; argc; i++) {
         str2 = js_ValueToString(cx, argv[i]);
         if (!str2)
@@ -1958,9 +1959,9 @@ str_concat(JSContext *cx, uintN argc, jsval *vp)
         str = js_ConcatStrings(cx, str, str2);
         if (!str)
             return JS_FALSE;
+        *vp = STRING_TO_JSVAL(str);
     }
 
-    *vp = STRING_TO_JSVAL(str);
     return JS_TRUE;
 }
 </diff>
      <filename>vendor/spidermonkey/jsstr.c</filename>
    </modified>
    <modified>
      <diff>@@ -728,7 +728,8 @@ js_IsXMLName(JSContext *cx, jsval v)
 }
 
 static JSBool
-Namespace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+NamespaceHelper(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
+                jsval *rval)
 {
     jsval urival, prefixval;
     JSObject *uriobj;
@@ -750,7 +751,7 @@ Namespace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
     else uriobj = NULL;
 #endif
 
-    if (!(cx-&gt;fp-&gt;flags &amp; JSFRAME_CONSTRUCTING)) {
+    if (!obj) {
         /* Namespace called as function. */
         if (argc == 1 &amp;&amp; isNamespace) {
             /* Namespace called with one Namespace argument is identity. */
@@ -837,22 +838,32 @@ Namespace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 }
 
 static JSBool
-QName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+Namespace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+    return NamespaceHelper(cx,
+                           (cx-&gt;fp-&gt;flags &amp; JSFRAME_CONSTRUCTING) ? obj : NULL,
+                           argc, argv, rval);
+}
+
+static JSBool
+QNameHelper(JSContext *cx, JSObject *obj, JSClass *clasp, uintN argc,
+            jsval *argv, jsval *rval)
 {
     jsval nameval, nsval;
     JSBool isQName, isNamespace;
     JSXMLQName *qn;
     JSString *uri, *prefix, *name;
     JSObject *nsobj;
-    JSClass *clasp;
     JSXMLNamespace *ns;
 
+    JS_ASSERT(clasp == &amp;js_QNameClass.base ||
+              clasp == &amp;js_AttributeNameClass);
     nameval = argv[argc &gt; 1];
     isQName =
         !JSVAL_IS_PRIMITIVE(nameval) &amp;&amp;
         OBJ_GET_CLASS(cx, JSVAL_TO_OBJECT(nameval)) == &amp;js_QNameClass.base;
 
-    if (!(cx-&gt;fp-&gt;flags &amp; JSFRAME_CONSTRUCTING)) {
+    if (!obj) {
         /* QName called as function. */
         if (argc == 1 &amp;&amp; isQName) {
             /* QName called with one QName argument is identity. */
@@ -861,13 +872,10 @@ QName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
         }
 
         /*
-         * Create and return a new QName object exactly as if constructed.
-         * Use the constructor's clasp so we can be shared by AttributeName
-         * (see below after this function).
+         * Create and return a new QName or AttributeName object exactly as if
+         * constructed.
          */
-        obj = js_NewObject(cx,
-                           JS_ValueToFunction(cx, argv[-2])-&gt;u.n.clasp,
-                           NULL, NULL, 0);
+        obj = js_NewObject(cx, clasp, NULL, NULL, 0);
         if (!obj)
             return JS_FALSE;
         *rval = OBJECT_TO_JSVAL(obj);
@@ -962,14 +970,18 @@ out:
 }
 
 static JSBool
+QName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+    return QNameHelper(cx, (cx-&gt;fp-&gt;flags &amp; JSFRAME_CONSTRUCTING) ? obj : NULL,
+                       &amp;js_QNameClass.base, argc, argv, rval);
+}
+
+static JSBool
 AttributeName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
               jsval *rval)
 {
-    /*
-     * Since js_AttributeNameClass was initialized, obj will have that as its
-     * class, not js_QNameClass.
-     */
-    return QName(cx, obj, argc, argv, rval);
+    return QNameHelper(cx, (cx-&gt;fp-&gt;flags &amp; JSFRAME_CONSTRUCTING) ? obj : NULL,
+                       &amp;js_AttributeNameClass, argc, argv, rval);
 }
 
 /*
@@ -1963,6 +1975,7 @@ ParseXMLSource(JSContext *cx, JSString *src)
 {
     jsval nsval;
     JSXMLNamespace *ns;
+    JSString *uri;
     size_t urilen, srclen, length, offset, dstlen;
     jschar *chars;
     const jschar *srcp, *endp;
@@ -1976,8 +1989,8 @@ ParseXMLSource(JSContext *cx, JSString *src)
     JSXMLArray nsarray;
     uintN flags;
 
-    static const char prefix[] = &quot;&lt;parent xmlns='&quot;;
-    static const char middle[] = &quot;'&gt;&quot;;
+    static const char prefix[] = &quot;&lt;parent xmlns=\&quot;&quot;;
+    static const char middle[] = &quot;\&quot;&gt;&quot;;
     static const char suffix[] = &quot;&lt;/parent&gt;&quot;;
 
 #define constrlen(constr)   (sizeof(constr) - 1)
@@ -1985,8 +1998,9 @@ ParseXMLSource(JSContext *cx, JSString *src)
     if (!js_GetDefaultXMLNamespace(cx, &amp;nsval))
         return NULL;
     ns = (JSXMLNamespace *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(nsval));
+    uri = js_EscapeAttributeValue(cx, ns-&gt;uri, JS_FALSE);
 
-    urilen = JSSTRING_LENGTH(ns-&gt;uri);
+    urilen = JSSTRING_LENGTH(uri);
     srclen = JSSTRING_LENGTH(src);
     length = constrlen(prefix) + urilen + constrlen(middle) + srclen +
              constrlen(suffix);
@@ -1998,7 +2012,7 @@ ParseXMLSource(JSContext *cx, JSString *src)
     dstlen = length;
     js_InflateStringToBuffer(cx, prefix, constrlen(prefix), chars, &amp;dstlen);
     offset = dstlen;
-    js_strncpy(chars + offset, JSSTRING_CHARS(ns-&gt;uri), urilen);
+    js_strncpy(chars + offset, JSSTRING_CHARS(uri), urilen);
     offset += urilen;
     dstlen = length - offset + 1;
     js_InflateStringToBuffer(cx, middle, constrlen(middle), chars + offset,
@@ -5587,21 +5601,6 @@ JS_FRIEND_DATA(JSClass) js_XMLClass = {
     NULL,              NULL,              JS_CLASS_TRACE(xml_trace), NULL
 };
 
-static JSObject *
-CallConstructorFunction(JSContext *cx, JSObject *obj, JSClass *clasp,
-                        uintN argc, jsval *argv)
-{
-    JSObject *tmp;
-    jsval rval;
-
-    while ((tmp = OBJ_GET_PARENT(cx, obj)) != NULL)
-        obj = tmp;
-    if (!JS_CallFunctionName(cx, obj, clasp-&gt;name, argc, argv, &amp;rval))
-        return NULL;
-    JS_ASSERT(!JSVAL_IS_PRIMITIVE(rval));
-    return JSVAL_TO_OBJECT(rval);
-}
-
 static JSXML *
 StartNonListXMLMethod(JSContext *cx, jsval *vp, JSObject **objp)
 {
@@ -5652,26 +5651,25 @@ StartNonListXMLMethod(JSContext *cx, jsval *vp, JSObject **objp)
 static JSBool
 xml_addNamespace(JSContext *cx, uintN argc, jsval *vp)
 {
-    JSObject *nsobj;
     JSXMLNamespace *ns;
 
     NON_LIST_XML_METHOD_PROLOG;
     if (xml-&gt;xml_class != JSXML_CLASS_ELEMENT)
-        return JS_TRUE;
+        goto done;
     xml = CHECK_COPY_ON_WRITE(cx, xml, obj);
     if (!xml)
         return JS_FALSE;
 
-    nsobj = CallConstructorFunction(cx, obj, &amp;js_NamespaceClass.base, 1,
-                                    vp + 2);
-    if (!nsobj)
+    if (!NamespaceHelper(cx, NULL, 1, vp + 2, vp))
         return JS_FALSE;
-    vp[2] = OBJECT_TO_JSVAL(nsobj);
-
-    ns = (JSXMLNamespace *) JS_GetPrivate(cx, nsobj);
+    JS_ASSERT(!JSVAL_IS_PRIMITIVE(*vp));
+    
+    ns = (JSXMLNamespace *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(*vp));
     if (!AddInScopeNamespace(cx, xml, ns))
         return JS_FALSE;
     ns-&gt;declared = JS_TRUE;
+
+  done:
     *vp = OBJECT_TO_JSVAL(obj);
     return JS_TRUE;
 }
@@ -6791,40 +6789,39 @@ xml_removeNamespace_helper(JSContext *cx, JSXML *xml, JSXMLNamespace *ns)
 static JSBool
 xml_removeNamespace(JSContext *cx, uintN argc, jsval *vp)
 {
-    JSObject *nsobj;
     JSXMLNamespace *ns;
 
     NON_LIST_XML_METHOD_PROLOG;
-    *vp = OBJECT_TO_JSVAL(obj);
     if (xml-&gt;xml_class != JSXML_CLASS_ELEMENT)
-        return JS_TRUE;
+        goto done;
     xml = CHECK_COPY_ON_WRITE(cx, xml, obj);
     if (!xml)
         return JS_FALSE;
 
-    nsobj = CallConstructorFunction(cx, obj, &amp;js_NamespaceClass.base, 1, vp + 2);
-    if (!nsobj)
+    if (!NamespaceHelper(cx, NULL, 1, vp + 2, vp))
         return JS_FALSE;
-    vp[2] = OBJECT_TO_JSVAL(nsobj);
-    ns = (JSXMLNamespace *) JS_GetPrivate(cx, nsobj);
+    JS_ASSERT(!JSVAL_IS_PRIMITIVE(*vp));
+    ns = (JSXMLNamespace *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(*vp));
 
     /* NOTE: remove ns from each ancestor if not used by that ancestor. */
-    return xml_removeNamespace_helper(cx, xml, ns);
+    if (!xml_removeNamespace_helper(cx, xml, ns))
+        return JS_FALSE;
+  done:
+    *vp = OBJECT_TO_JSVAL(obj);
+    return JS_TRUE;
 }
 
 static JSBool
 xml_replace(JSContext *cx, uintN argc, jsval *vp)
 {
-    jsval name, value;
+    jsval value;
     JSXML *vxml, *kid;
-    uint32 index, matchIndex;
-    JSObject *nameobj;
+    uint32 index, i;
     JSXMLQName *nameqn;
 
     NON_LIST_XML_METHOD_PROLOG;
-    *vp = OBJECT_TO_JSVAL(obj);
     if (xml-&gt;xml_class != JSXML_CLASS_ELEMENT)
-        return JS_TRUE;
+        goto done;
 
     value = vp[3];
     vxml = VALUE_IS_XML(cx, value)
@@ -6845,30 +6842,38 @@ xml_replace(JSContext *cx, uintN argc, jsval *vp)
     if (!xml)
         return JS_FALSE;
 
-    name = vp[2];
-    if (js_IdIsIndex(name, &amp;index))
-        return Replace(cx, xml, index, value);
-
-    /* Call function QName per spec, not ToXMLName, to avoid attribute names. */
-    nameobj = CallConstructorFunction(cx, obj, &amp;js_QNameClass.base, 1, &amp;name);
-    if (!nameobj)
-        return JS_FALSE;
-    vp[2] = OBJECT_TO_JSVAL(nameobj);
-    nameqn = (JSXMLQName *) JS_GetPrivate(cx, nameobj);
-
-    index = xml-&gt;xml_kids.length;
-    matchIndex = XML_NOT_FOUND;
-    while (index != 0) {
-        --index;
-        kid = XMLARRAY_MEMBER(&amp;xml-&gt;xml_kids, index, JSXML);
-        if (kid &amp;&amp; MatchElemName(nameqn, kid)) {
-            if (matchIndex != XML_NOT_FOUND)
-                DeleteByIndex(cx, xml, matchIndex);
-            matchIndex = index;
+    if (!js_IdIsIndex(vp[2], &amp;index)) {
+        /*
+         * Call function QName per spec, not ToXMLName, to avoid attribute
+         * names.
+         */
+        if (!QNameHelper(cx, NULL, &amp;js_QNameClass.base, 1, vp + 2, vp))
+            return JS_FALSE;
+        JS_ASSERT(!JSVAL_IS_PRIMITIVE(*vp));
+        nameqn = (JSXMLQName *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(*vp));
+        
+        i = xml-&gt;xml_kids.length;
+        index = XML_NOT_FOUND;
+        while (i != 0) {
+            --i;
+            kid = XMLARRAY_MEMBER(&amp;xml-&gt;xml_kids, i, JSXML);
+            if (kid &amp;&amp; MatchElemName(nameqn, kid)) {
+                if (i != XML_NOT_FOUND)
+                    DeleteByIndex(cx, xml, i);
+                index = i;
+            }
         }
+
+        if (index == XML_NOT_FOUND)
+            goto done;
     }
 
-    return matchIndex == XML_NOT_FOUND || Replace(cx, xml, matchIndex, value);
+    if (!Replace(cx, xml, index, value))
+        return JS_FALSE;
+
+  done:
+    *vp = OBJECT_TO_JSVAL(obj);
+    return JS_TRUE;
 }
 
 static JSBool</diff>
      <filename>vendor/spidermonkey/jsxml.c</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>vendor/spidermonkey/CVS/Entries</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/CVS/Repository</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/CVS/Root</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/config/CVS/Entries</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/config/CVS/Repository</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/config/CVS/Root</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/config/FreeBSD.mk</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/editline/CVS/Entries</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/editline/CVS/Repository</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/editline/CVS/Root</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/fdlibm/CVS/Entries</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/fdlibm/CVS/Repository</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/fdlibm/CVS/Root</filename>
    </removed>
    <removed>
      <filename>vendor/spidermonkey/js.mak</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>42d2e468f462b0e6f9470afd6772da240eb07db3</id>
    </parent>
  </parents>
  <author>
    <name>John Barnette</name>
    <email>jbarnette@gmail.com</email>
  </author>
  <url>http://github.com/jbarnette/johnson/commit/7346114ff2fe4e3169a8ff17c017409ae552b66d</url>
  <id>7346114ff2fe4e3169a8ff17c017409ae552b66d</id>
  <committed-date>2009-03-26T17:39:11-07:00</committed-date>
  <authored-date>2009-03-26T17:39:11-07:00</authored-date>
  <message>Update vendored SpiderMonkey.

Updated to JavaScript-C 1.8.0 pre-release 1 2009-02-16, which is
several years more recent than the last 1.8 drop we were using.</message>
  <tree>62d8ce7caf1e5f3c127aa63fb6b67b394bef0486</tree>
  <committer>
    <name>John Barnette</name>
    <email>jbarnette@gmail.com</email>
  </committer>
</commit>
