Push version 1.3.9 to trunk.

Optimized stack guard checks on ARM.

Optimized API operations by inlining more in the API.

Optimized creation of objects from simple constructor functions.

Enabled a number of missing optimizations in the 64-bit port.

Implemented native-code support for regular expressions on ARM.

Stopped using the 'sahf' instruction on 64-bit machines that do not support it.

Fixed a bug in the support for forceful termination of JavaScript execution.



git-svn-id: http://v8.googlecode.com/svn/trunk@2811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/SConstruct b/SConstruct
index 5e9747c..71673c0 100644
--- a/SConstruct
+++ b/SConstruct
@@ -99,12 +99,10 @@
     'CPPDEFINES':   ['ENABLE_LOGGING_AND_PROFILING'],
     'CPPPATH': [join(root_dir, 'src')],
     'regexp:native': {
-      'arch:ia32' : {
         'CPPDEFINES': ['V8_NATIVE_REGEXP']
-      },
-      'arch:x64' : {
-        'CPPDEFINES': ['V8_NATIVE_REGEXP']
-      }
+    },
+    'mode:debug': {
+      'CPPDEFINES': ['V8_ENABLE_CHECKS']
     }
   },
   'gcc': {
@@ -178,17 +176,25 @@
   },
   'msvc': {
     'all': {
-      'DIALECTFLAGS': ['/nologo'],
       'CCFLAGS':      ['$DIALECTFLAGS', '$WARNINGFLAGS'],
       'CXXFLAGS':     ['$CCFLAGS', '/GR-', '/Gy'],
-      'CPPDEFINES':   ['WIN32', '_USE_32BIT_TIME_T'],
-      'LINKFLAGS':    ['/NOLOGO', '/MACHINE:X86', '/INCREMENTAL:NO',
-          '/NXCOMPAT', '/IGNORE:4221'],
-      'ARFLAGS':      ['/NOLOGO'],
+      'CPPDEFINES':   ['WIN32'],
+      'LINKFLAGS':    ['/INCREMENTAL:NO', '/NXCOMPAT', '/IGNORE:4221'],
       'CCPDBFLAGS':   ['/Zi']
     },
+    'verbose:off': {
+      'DIALECTFLAGS': ['/nologo'],
+      'ARFLAGS':      ['/NOLOGO']
+    },
     'arch:ia32': {
-      'CPPDEFINES':   ['V8_TARGET_ARCH_IA32']
+      'CPPDEFINES':   ['V8_TARGET_ARCH_IA32', '_USE_32BIT_TIME_T'],
+      'LINKFLAGS':    ['/MACHINE:X86'],
+      'ARFLAGS':      ['/MACHINE:X86']
+    },
+    'arch:x64': {
+      'CPPDEFINES':   ['V8_TARGET_ARCH_X64'],
+      'LINKFLAGS':    ['/MACHINE:X64'],
+      'ARFLAGS':      ['/MACHINE:X64']
     },
     'mode:debug': {
       'CCFLAGS':      ['/Od', '/Gm'],
@@ -250,11 +256,13 @@
   },
   'msvc': {
     'all': {
-      'WARNINGFLAGS': ['/W3', '/WX', '/wd4355', '/wd4800']
+      'WARNINGFLAGS': ['/WX', '/wd4355', '/wd4800']
     },
-    'library:shared': {
-      'CPPDEFINES':   ['BUILDING_V8_SHARED'],
-      'LIBS': ['winmm', 'ws2_32']
+    'arch:ia32': {
+      'WARNINGFLAGS': ['/W3']
+    },
+    'arch:x64': {
+      'WARNINGFLAGS': ['/W2']
     },
     'arch:arm': {
       'CPPDEFINES':   ['V8_TARGET_ARCH_ARM'],
@@ -352,7 +360,10 @@
     },
     'arch:ia32': {
       'CPPDEFINES': ['V8_TARGET_ARCH_IA32']
-    }
+    },
+    'arch:x64': {
+      'CPPDEFINES':   ['V8_TARGET_ARCH_X64']
+    },
   }
 }
 
@@ -417,10 +428,15 @@
   },
   'msvc': {
     'all': {
-      'CCFLAGS': ['/nologo'],
-      'LINKFLAGS': ['/nologo'],
       'LIBS': ['winmm', 'ws2_32']
     },
+    'verbose:off': {
+      'CCFLAGS': ['/nologo'],
+      'LINKFLAGS': ['/NOLOGO']
+    },
+    'verbose:on': {
+      'LINKFLAGS': ['/VERBOSE']
+    },
     'library:shared': {
       'CPPDEFINES': ['USING_V8_SHARED']
     },
@@ -442,7 +458,12 @@
       }
     },
     'arch:ia32': {
-      'CPPDEFINES':     ['V8_TARGET_ARCH_IA32']
+      'CPPDEFINES': ['V8_TARGET_ARCH_IA32'],
+      'LINKFLAGS': ['/MACHINE:X86']
+    },
+    'arch:x64': {
+      'CPPDEFINES': ['V8_TARGET_ARCH_X64'],
+      'LINKFLAGS': ['/MACHINE:X64']
     },
     'mode:debug': {
       'CCFLAGS':   ['/Od'],
@@ -585,6 +606,11 @@
     'values': ['dumb', 'readline'],
     'default': 'dumb',
     'help': 'the console to use for the d8 shell'
+  },
+  'verbose': {
+    'values': ['on', 'off'],
+    'default': 'off',
+    'help': 'more output from compiler and linker'
   }
 }