Index: include/v8-preparser.h |
diff --git a/include/v8-preparser.h b/include/v8-preparser.h |
index 1da77185af86fb90015fe5e6f75e3af22a7495b2..3e39823d65ccdd8d78cd189581bdd6e2e5c7f4a0 100644 |
--- a/include/v8-preparser.h |
+++ b/include/v8-preparser.h |
@@ -28,14 +28,48 @@ |
#ifndef PREPARSER_H |
#define PREPARSER_H |
-#include "v8.h" |
#include "v8stdint.h" |
+#ifdef _WIN32 |
+ |
+// Setup for Windows DLL export/import. When building the V8 DLL the |
+// BUILDING_V8_SHARED needs to be defined. When building a program which uses |
+// the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8 |
+// static library or building a program which uses the V8 static library neither |
+// BUILDING_V8_SHARED nor USING_V8_SHARED should be defined. |
+#if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED) |
+#error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\ |
+ build configuration to ensure that at most one of these is set |
+#endif |
+ |
+#ifdef BUILDING_V8_SHARED |
+#define V8EXPORT __declspec(dllexport) |
+#elif USING_V8_SHARED |
+#define V8EXPORT __declspec(dllimport) |
+#else |
+#define V8EXPORT |
+#endif // BUILDING_V8_SHARED |
+ |
+#else // _WIN32 |
+ |
+// Setup for Linux shared library export. There is no need to distinguish |
+// between building or using the V8 shared library, but we should not |
+// export symbols when we are building a static library. |
+#if defined(__GNUC__) && ((__GNUC__ >= 4) || \ |
+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(V8_SHARED) |
+#define V8EXPORT __attribute__ ((visibility("default"))) |
+#else |
+#define V8EXPORT |
+#endif |
+ |
+#endif // _WIN32 |
+ |
+ |
namespace v8 { |
// The result of preparsing is either a stack overflow error, or an opaque |
// blob of data that can be passed back into the parser. |
-class V8_EXPORT PreParserData { |
+class V8EXPORT PreParserData { |
public: |
PreParserData(size_t size, const uint8_t* data) |
: data_(data), size_(size) { } |
@@ -60,7 +94,7 @@ class V8_EXPORT PreParserData { |
// Interface for a stream of Unicode characters. |
-class V8_EXPORT UnicodeInputStream { // NOLINT - V8_EXPORT is not a class name. |
+class V8EXPORT UnicodeInputStream { // NOLINT - Thinks V8EXPORT is class name. |
public: |
virtual ~UnicodeInputStream(); |
@@ -76,9 +110,11 @@ class V8_EXPORT UnicodeInputStream { // NOLINT - V8_EXPORT is not a class name. |
// more stack space than the limit provided, the result's stack_overflow() |
// method will return true. Otherwise the result contains preparser |
// data that can be used by the V8 parser to speed up parsing. |
-PreParserData V8_EXPORT Preparse(UnicodeInputStream* input, |
+PreParserData V8EXPORT Preparse(UnicodeInputStream* input, |
size_t max_stack_size); |
} // namespace v8. |
+#undef V8EXPORT |
+ |
#endif // PREPARSER_H |