Split the RUNTIME_FUNCTION_LIST_ALWAYS macro into two as this macro is
authoriposva@chromium.org <iposva@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 13 May 2009 05:46:51 +0000 (05:46 +0000)
committeriposva@chromium.org <iposva@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 13 May 2009 05:46:51 +0000 (05:46 +0000)
very large for Visual Studio's
intellisense operation thus causing it to crash.

Fixes bug http://code.google.com/p/chromium/issues/detail?id=11837

Bug=11837

Patch submitted by: ananta@chromium.org

Review URL: http://codereview.chromium.org/115287

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/runtime.h

index 2041295..a91d0ec 100644 (file)
@@ -37,7 +37,10 @@ namespace v8 { namespace internal {
 // release and debug mode.
 // This macro should only be used by the macro RUNTIME_FUNCTION_LIST.
 
-#define RUNTIME_FUNCTION_LIST_ALWAYS(F) \
+// WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused
+// MSVC Intellisense to crash.  It was broken into two macros to work around
+// this problem. Please avoid large recursive macros whenever possible.
+#define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \
   /* Property access */ \
   F(GetProperty, 2) \
   F(KeyedGetProperty, 2) \
@@ -153,8 +156,9 @@ namespace v8 { namespace internal {
   F(NumberToRadixString, 2) \
   F(NumberToFixed, 2) \
   F(NumberToExponential, 2) \
-  F(NumberToPrecision, 2) \
-  \
+  F(NumberToPrecision, 2)
+
+#define RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \
   /* Reflection */ \
   F(FunctionSetInstanceClassName, 2) \
   F(FunctionSetLength, 2) \
@@ -320,7 +324,8 @@ namespace v8 { namespace internal {
 // via a native call by name (from within JS code).
 
 #define RUNTIME_FUNCTION_LIST(F) \
-  RUNTIME_FUNCTION_LIST_ALWAYS(F) \
+  RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \
+  RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \
   RUNTIME_FUNCTION_LIST_DEBUG(F) \
   RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F)