| Index: include/v8config.h | 
| diff --git a/include/v8config.h b/include/v8config.h | 
| index 3502dd6553d715261e7e8cab7fa515f6fc7e505b..e72560f5ae2040ad4127ee9580b0bdbf96576198 100644 | 
| --- a/include/v8config.h | 
| +++ b/include/v8config.h | 
| @@ -112,12 +112,14 @@ | 
| //  V8_HAS_ATTRIBUTE_ALWAYS_INLINE      - __attribute__((always_inline)) | 
| //                                        supported | 
| //  V8_HAS_ATTRIBUTE_DEPRECATED         - __attribute__((deprecated)) supported | 
| +//  V8_HAS_ATTRIBUTE_NOINLINE           - __attribute__((noinline)) supported | 
| //  V8_HAS_ATTRIBUTE_VISIBILITY         - __attribute__((visibility)) supported | 
| //  V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT - __attribute__((warn_unused_result)) | 
| //                                        supported | 
| //  V8_HAS_BUILTIN_EXPECT               - __builtin_expect() supported | 
| //  V8_HAS_DECLSPEC_ALIGN               - __declspec(align(n)) supported | 
| //  V8_HAS_DECLSPEC_DEPRECATED          - __declspec(deprecated) supported | 
| +//  V8_HAS_DECLSPEC_NOINLINE            - __declspec(noinline) supported | 
| //  V8_HAS___FINAL                      - __final supported in non-C++11 mode | 
| //  V8_HAS___FORCEINLINE                - __forceinline supported | 
| //  V8_HAS_SEALED                       - MSVC style sealed marker supported | 
| @@ -142,6 +144,7 @@ | 
| # define V8_HAS_ATTRIBUTE_ALIGNED (__has_attribute(aligned)) | 
| # define V8_HAS_ATTRIBUTE_ALWAYS_INLINE (__has_attribute(always_inline)) | 
| # define V8_HAS_ATTRIBUTE_DEPRECATED (__has_attribute(deprecated)) | 
| +# define V8_HAS_ATTRIBUTE_NOINLINE (__has_attribute(noinline)) | 
| # define V8_HAS_ATTRIBUTE_VISIBILITY (__has_attribute(visibility)) | 
| # define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT \ | 
| (__has_attribute(warn_unused_result)) | 
| @@ -173,6 +176,7 @@ | 
| // older compilers. | 
| # define V8_HAS_ATTRIBUTE_ALWAYS_INLINE (V8_GNUC_PREREQ(4, 4, 0)) | 
| # define V8_HAS_ATTRIBUTE_DEPRECATED (V8_GNUC_PREREQ(3, 4, 0)) | 
| +# define V8_HAS_ATTRIBUTE_NOINLINE (V8_GNUC_PREREQ(3, 4, 0)) | 
| # define V8_HAS_ATTRIBUTE_VISIBILITY (V8_GNUC_PREREQ(4, 3, 0)) | 
| # define V8_HAS_ATTRIBUTE_WARN_UNUSED_RESULT \ | 
| (!V8_CC_INTEL && V8_GNUC_PREREQ(4, 1, 0)) | 
| @@ -213,6 +217,7 @@ | 
|  | 
| # define V8_HAS_DECLSPEC_ALIGN 1 | 
| # define V8_HAS_DECLSPEC_DEPRECATED (_MSC_VER >= 1300) | 
| +# define V8_HAS_DECLSPEC_NOINLINE 1 | 
|  | 
| # define V8_HAS___FORCEINLINE 1 | 
|  | 
| @@ -232,6 +237,17 @@ | 
| #endif | 
|  | 
|  | 
| +// A macro used to tell the compiler to never inline a particular function. | 
| +// Don't bother for debug builds. | 
| +#if !defined(DEBUG) && V8_HAS_ATTRIBUTE_NOINLINE | 
| +# define V8_NOINLINE(declarator) __attribute__((noinline)) declarator | 
| +#elif !defined(DEBUG) && V8_HAS_DECLSPEC_NOINLINE | 
| +# define V8_NOINLINE(declarator) __declspec(noinline) declarator | 
| +#else | 
| +# define V8_NOINLINE(declarator) declarator | 
| +#endif | 
| + | 
| + | 
| // A macro to mark classes or functions as deprecated. | 
| #if !V8_DISABLE_DEPRECATIONS && V8_HAS_ATTRIBUTE_DEPRECATED | 
| # define V8_DEPRECATED(declarator) declarator __attribute__((deprecated)) | 
|  |