2007-11-27 Alp Toker <alp@atoker.com>
authoralp@webkit.org <alp@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Nov 2007 04:31:51 +0000 (04:31 +0000)
committeralp@webkit.org <alp@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Nov 2007 04:31:51 +0000 (04:31 +0000)
        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15569
        [gtk] GTK JavaScriptCore needs to export symbols for JSC API and WTF

        Introduce JS_EXPORT to mark symbols to be exported as public API.

        Export all public symbols in the JavaScriptCore C API.

        This matches conventions for exporting symbols set by the CF and CG
        frameworks.

        * API/JSBase.h:
        * API/JSContextRef.h:
        * API/JSObjectRef.h:
        * API/JSStringRef.h:
        * API/JSStringRefBSTR.h:
        * API/JSStringRefCF.h:
        * API/JSValueRef.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28097 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/API/JSBase.h
JavaScriptCore/API/JSContextRef.h
JavaScriptCore/API/JSObjectRef.h
JavaScriptCore/API/JSStringRef.h
JavaScriptCore/API/JSStringRefBSTR.h
JavaScriptCore/API/JSStringRefCF.h
JavaScriptCore/API/JSValueRef.h
JavaScriptCore/ChangeLog

index 6f4ac660fd5030a6af586d0bbfdaa89e53c0f961..b02cc7a64f6c6bfe82006f30aab5b60a09da974c 100644 (file)
@@ -58,6 +58,21 @@ typedef const struct OpaqueJSValue* JSValueRef;
 /*! @typedef JSObjectRef A JavaScript object. A JSObject is a JSValue. */
 typedef struct OpaqueJSValue* JSObjectRef;
 
+/* JavaScript symbol exports */
+
+#undef JS_EXPORT
+#if defined(WIN32) || defined(_WIN32)
+    #if defined(JS_BUILDING_JS)
+        #define JS_EXPORT __declspec(dllexport) extern
+    #else
+        #define JS_EXPORT __declspec(dllimport) extern
+    #endif
+#elif defined(__GNUC__)
+    #define JS_EXPORT __attribute__((visibility("default")))
+#else
+    #define JS_EXPORT extern
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -75,7 +90,7 @@ extern "C" {
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result The JSValue that results from evaluating script, or NULL if an exception is thrown.
 */
-JSValueRef JSEvaluateScript(JSContextRef ctx, JSStringRef script, JSObjectRef thisObject, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception);
+JS_EXPORT JSValueRef JSEvaluateScript(JSContextRef ctx, JSStringRef script, JSObjectRef thisObject, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception);
 
 /*!
 @function JSCheckScriptSyntax
@@ -87,7 +102,7 @@ JSValueRef JSEvaluateScript(JSContextRef ctx, JSStringRef script, JSObjectRef th
 @param exception A pointer to a JSValueRef in which to store a syntax error exception, if any. Pass NULL if you do not care to store a syntax error exception.
 @result true if the script is syntactically correct, otherwise false.
 */
-bool JSCheckScriptSyntax(JSContextRef ctx, JSStringRef script, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception);
+JS_EXPORT bool JSCheckScriptSyntax(JSContextRef ctx, JSStringRef script, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception);
 
 /*!
 @function
@@ -103,7 +118,7 @@ bool JSCheckScriptSyntax(JSContextRef ctx, JSStringRef script, JSStringRef sourc
  At that point, a garbage collection can free the objects still referenced by the 
  JSGlobalContextRef's global object, along with the global object itself.
 */
-void JSGarbageCollect(JSContextRef ctx);
+JS_EXPORT void JSGarbageCollect(JSContextRef ctx);
 
 #ifdef __cplusplus
 }
index ea27764a80a6016a69dfda98d5588677fce11bba..df0a39724ed3bfcf8a752e34e3a385631cd46994 100644 (file)
@@ -45,7 +45,7 @@ extern "C" {
  NULL to use the default object class.
 @result A JSGlobalContext with a global object of class globalObjectClass.
 */
-JSGlobalContextRef JSGlobalContextCreate(JSClassRef globalObjectClass);
+JS_EXPORT JSGlobalContextRef JSGlobalContextCreate(JSClassRef globalObjectClass);
 
 /*!
 @function
@@ -53,14 +53,14 @@ JSGlobalContextRef JSGlobalContextCreate(JSClassRef globalObjectClass);
 @param ctx The JSGlobalContext to retain.
 @result A JSGlobalContext that is the same as ctx.
 */
-JSGlobalContextRef JSGlobalContextRetain(JSGlobalContextRef ctx);
+JS_EXPORT JSGlobalContextRef JSGlobalContextRetain(JSGlobalContextRef ctx);
 
 /*!
 @function
 @abstract Releases a global JavaScript execution context.
 @param ctx The JSGlobalContext to release.
 */
-void JSGlobalContextRelease(JSGlobalContextRef ctx);
+JS_EXPORT void JSGlobalContextRelease(JSGlobalContextRef ctx);
 
 /*!
 @function
@@ -68,7 +68,7 @@ void JSGlobalContextRelease(JSGlobalContextRef ctx);
 @param ctx The JSContext whose global object you want to get.
 @result ctx's global object.
 */
-JSObjectRef JSContextGetGlobalObject(JSContextRef ctx);
+JS_EXPORT JSObjectRef JSContextGetGlobalObject(JSContextRef ctx);
 
 #ifdef __cplusplus
 }
index 5ed34270a02e6a0908a410d1f2552835824191e3..9cfa099e0de75b15031d53a997217fa4d3a350e6 100644 (file)
@@ -376,7 +376,7 @@ extern const JSClassDefinition kJSClassDefinitionEmpty;
 @param definition A JSClassDefinition that defines the class.
 @result A JSClass with the given definition. Ownership follows the Create Rule.
 */
-JSClassRef JSClassCreate(const JSClassDefinition* definition);
+JS_EXPORT JSClassRef JSClassCreate(const JSClassDefinition* definition);
 
 /*!
 @function
@@ -384,14 +384,14 @@ JSClassRef JSClassCreate(const JSClassDefinition* definition);
 @param jsClass The JSClass to retain.
 @result A JSClass that is the same as jsClass.
 */
-JSClassRef JSClassRetain(JSClassRef jsClass);
+JS_EXPORT JSClassRef JSClassRetain(JSClassRef jsClass);
 
 /*!
 @function
 @abstract Releases a JavaScript class.
 @param jsClass The JSClass to release.
 */
-void JSClassRelease(JSClassRef jsClass);
+JS_EXPORT void JSClassRelease(JSClassRef jsClass);
 
 /*!
 @function
@@ -404,7 +404,7 @@ void JSClassRelease(JSClassRef jsClass);
 
 data is set on the created object before the intialize methods in its class chain are called. This enables the initialize methods to retrieve and manipulate data through JSObjectGetPrivate.
 */
-JSObjectRef JSObjectMake(JSContextRef ctx, JSClassRef jsClass, void* data);
+JS_EXPORT JSObjectRef JSObjectMake(JSContextRef ctx, JSClassRef jsClass, void* data);
 
 /*!
 @function
@@ -414,7 +414,7 @@ JSObjectRef JSObjectMake(JSContextRef ctx, JSClassRef jsClass, void* data);
 @param callAsFunction The JSObjectCallAsFunctionCallback to invoke when the function is called.
 @result A JSObject that is a function. The object's prototype will be the default function prototype.
 */
-JSObjectRef JSObjectMakeFunctionWithCallback(JSContextRef ctx, JSStringRef name, JSObjectCallAsFunctionCallback callAsFunction);
+JS_EXPORT JSObjectRef JSObjectMakeFunctionWithCallback(JSContextRef ctx, JSStringRef name, JSObjectCallAsFunctionCallback callAsFunction);
 
 /*!
 @function
@@ -425,7 +425,7 @@ JSObjectRef JSObjectMakeFunctionWithCallback(JSContextRef ctx, JSStringRef name,
 @result A JSObject that is a constructor. The object's prototype will be the default object prototype.
 @discussion The default object constructor takes no arguments and constructs an object of class jsClass with no private data.
 */
-JSObjectRef JSObjectMakeConstructor(JSContextRef ctx, JSClassRef jsClass, JSObjectCallAsConstructorCallback callAsConstructor);
+JS_EXPORT JSObjectRef JSObjectMakeConstructor(JSContextRef ctx, JSClassRef jsClass, JSObjectCallAsConstructorCallback callAsConstructor);
 
 /*!
 @function
@@ -441,7 +441,7 @@ JSObjectRef JSObjectMakeConstructor(JSContextRef ctx, JSClassRef jsClass, JSObje
 @result A JSObject that is a function, or NULL if either body or parameterNames contains a syntax error. The object's prototype will be the default function prototype.
 @discussion Use this method when you want to execute a script repeatedly, to avoid the cost of re-parsing the script before each execution.
 */
-JSObjectRef JSObjectMakeFunction(JSContextRef ctx, JSStringRef name, unsigned parameterCount, const JSStringRef parameterNames[], JSStringRef body, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception);
+JS_EXPORT JSObjectRef JSObjectMakeFunction(JSContextRef ctx, JSStringRef name, unsigned parameterCount, const JSStringRef parameterNames[], JSStringRef body, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception);
 
 /*!
 @function
@@ -450,7 +450,7 @@ JSObjectRef JSObjectMakeFunction(JSContextRef ctx, JSStringRef name, unsigned pa
 @param object A JSObject whose prototype you want to get.
 @result A JSValue that is the object's prototype.
 */
-JSValueRef JSObjectGetPrototype(JSContextRef ctx, JSObjectRef object);
+JS_EXPORT JSValueRef JSObjectGetPrototype(JSContextRef ctx, JSObjectRef object);
 
 /*!
 @function
@@ -459,7 +459,7 @@ JSValueRef JSObjectGetPrototype(JSContextRef ctx, JSObjectRef object);
 @param object The JSObject whose prototype you want to set.
 @param value A JSValue to set as the object's prototype.
 */
-void JSObjectSetPrototype(JSContextRef ctx, JSObjectRef object, JSValueRef value);
+JS_EXPORT void JSObjectSetPrototype(JSContextRef ctx, JSObjectRef object, JSValueRef value);
 
 /*!
 @function
@@ -468,7 +468,7 @@ void JSObjectSetPrototype(JSContextRef ctx, JSObjectRef object, JSValueRef value
 @param propertyName A JSString containing the property's name.
 @result true if the object has a property whose name matches propertyName, otherwise false.
 */
-bool JSObjectHasProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName);
+JS_EXPORT bool JSObjectHasProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName);
 
 /*!
 @function
@@ -479,7 +479,7 @@ bool JSObjectHasProperty(JSContextRef ctx, JSObjectRef object, JSStringRef prope
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result The property's value if object has the property, otherwise the undefined value.
 */
-JSValueRef JSObjectGetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception);
+JS_EXPORT JSValueRef JSObjectGetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception);
 
 /*!
 @function
@@ -491,7 +491,7 @@ JSValueRef JSObjectGetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @param attributes A logically ORed set of JSPropertyAttributes to give to the property.
 */
-void JSObjectSetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception);
+JS_EXPORT void JSObjectSetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception);
 
 /*!
 @function
@@ -502,7 +502,7 @@ void JSObjectSetProperty(JSContextRef ctx, JSObjectRef object, JSStringRef prope
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result true if the delete operation succeeds, otherwise false (for example, if the property has the kJSPropertyAttributeDontDelete attribute set).
 */
-bool JSObjectDeleteProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception);
+JS_EXPORT bool JSObjectDeleteProperty(JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception);
 
 /*!
 @function
@@ -514,7 +514,7 @@ bool JSObjectDeleteProperty(JSContextRef ctx, JSObjectRef object, JSStringRef pr
 @result The property's value if object has the property, otherwise the undefined value.
 @discussion Calling JSObjectGetPropertyAtIndex is equivalent to calling JSObjectGetProperty with a string containing propertyIndex, but JSObjectGetPropertyAtIndex provides optimized access to numeric properties.
 */
-JSValueRef JSObjectGetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef* exception);
+JS_EXPORT JSValueRef JSObjectGetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef* exception);
 
 /*!
 @function
@@ -526,7 +526,7 @@ JSValueRef JSObjectGetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsi
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @discussion Calling JSObjectSetPropertyAtIndex is equivalent to calling JSObjectSetProperty with a string containing propertyIndex, but JSObjectSetPropertyAtIndex provides optimized access to numeric properties.
 */
-void JSObjectSetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef value, JSValueRef* exception);
+JS_EXPORT void JSObjectSetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef value, JSValueRef* exception);
 
 /*!
 @function
@@ -534,7 +534,7 @@ void JSObjectSetPropertyAtIndex(JSContextRef ctx, JSObjectRef object, unsigned p
 @param object A JSObject whose private data you want to get.
 @result A void* that is the object's private data, if the object has private data, otherwise NULL.
 */
-void* JSObjectGetPrivate(JSObjectRef object);
+JS_EXPORT void* JSObjectGetPrivate(JSObjectRef object);
 
 /*!
 @function
@@ -544,7 +544,7 @@ void* JSObjectGetPrivate(JSObjectRef object);
 @result true if object can store private data, otherwise false.
 @discussion The default object class does not allocate storage for private data. Only objects created with a non-NULL JSClass can store private data.
 */
-bool JSObjectSetPrivate(JSObjectRef object, void* data);
+JS_EXPORT bool JSObjectSetPrivate(JSObjectRef object, void* data);
 
 /*!
 @function
@@ -553,7 +553,7 @@ bool JSObjectSetPrivate(JSObjectRef object, void* data);
 @param object The JSObject to test.
 @result true if the object can be called as a function, otherwise false.
 */
-bool JSObjectIsFunction(JSContextRef ctx, JSObjectRef object);
+JS_EXPORT bool JSObjectIsFunction(JSContextRef ctx, JSObjectRef object);
 
 /*!
 @function
@@ -566,7 +566,7 @@ bool JSObjectIsFunction(JSContextRef ctx, JSObjectRef object);
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result The JSValue that results from calling object as a function, or NULL if an exception is thrown or object is not a function.
 */
-JSValueRef JSObjectCallAsFunction(JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+JS_EXPORT JSValueRef JSObjectCallAsFunction(JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
 
 /*!
 @function
@@ -575,7 +575,7 @@ JSValueRef JSObjectCallAsFunction(JSContextRef ctx, JSObjectRef object, JSObject
 @param object The JSObject to test.
 @result true if the object can be called as a constructor, otherwise false.
 */
-bool JSObjectIsConstructor(JSContextRef ctx, JSObjectRef object);
+JS_EXPORT bool JSObjectIsConstructor(JSContextRef ctx, JSObjectRef object);
 
 /*!
 @function
@@ -587,7 +587,7 @@ bool JSObjectIsConstructor(JSContextRef ctx, JSObjectRef object);
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result The JSObject that results from calling object as a constructor, or NULL if an exception is thrown or object is not a constructor.
 */
-JSObjectRef JSObjectCallAsConstructor(JSContextRef ctx, JSObjectRef object, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
+JS_EXPORT JSObjectRef JSObjectCallAsConstructor(JSContextRef ctx, JSObjectRef object, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
 
 /*!
 @function
@@ -596,7 +596,7 @@ JSObjectRef JSObjectCallAsConstructor(JSContextRef ctx, JSObjectRef object, size
 @param object The object whose property names you want to get.
 @result A JSPropertyNameArray containing the names object's enumerable properties.
 */
-JSPropertyNameArrayRef JSObjectCopyPropertyNames(JSContextRef ctx, JSObjectRef object);
+JS_EXPORT JSPropertyNameArrayRef JSObjectCopyPropertyNames(JSContextRef ctx, JSObjectRef object);
 
 /*!
 @function
@@ -604,14 +604,14 @@ JSPropertyNameArrayRef JSObjectCopyPropertyNames(JSContextRef ctx, JSObjectRef o
 @param array The JSPropertyNameArray to retain.
 @result A JSPropertyNameArray that is the same as array.
 */
-JSPropertyNameArrayRef JSPropertyNameArrayRetain(JSPropertyNameArrayRef array);
+JS_EXPORT JSPropertyNameArrayRef JSPropertyNameArrayRetain(JSPropertyNameArrayRef array);
 
 /*!
 @function
 @abstract Releases a JavaScript property name array.
 @param array The JSPropetyNameArray to release.
 */
-void JSPropertyNameArrayRelease(JSPropertyNameArrayRef array);
+JS_EXPORT void JSPropertyNameArrayRelease(JSPropertyNameArrayRef array);
 
 /*!
 @function
@@ -619,7 +619,7 @@ void JSPropertyNameArrayRelease(JSPropertyNameArrayRef array);
 @param array The array from which to retrieve the count.
 @result An integer count of the number of names in array.
 */
-size_t JSPropertyNameArrayGetCount(JSPropertyNameArrayRef array);
+JS_EXPORT size_t JSPropertyNameArrayGetCount(JSPropertyNameArrayRef array);
 
 /*!
 @function
@@ -628,7 +628,7 @@ size_t JSPropertyNameArrayGetCount(JSPropertyNameArrayRef array);
 @param index The index of the property name to retrieve.
 @result A JSStringRef containing the property name.
 */
-JSStringRef JSPropertyNameArrayGetNameAtIndex(JSPropertyNameArrayRef array, size_t index);
+JS_EXPORT JSStringRef JSPropertyNameArrayGetNameAtIndex(JSPropertyNameArrayRef array, size_t index);
 
 /*!
 @function
@@ -636,7 +636,7 @@ JSStringRef JSPropertyNameArrayGetNameAtIndex(JSPropertyNameArrayRef array, size
 @param accumulator The accumulator object to which to add the property name.
 @param propertyName The property name to add.
 */
-void JSPropertyNameAccumulatorAddName(JSPropertyNameAccumulatorRef accumulator, JSStringRef propertyName);
+JS_EXPORT void JSPropertyNameAccumulatorAddName(JSPropertyNameAccumulatorRef accumulator, JSStringRef propertyName);
 
 #ifdef __cplusplus
 }
index 65b125042b271d9500a5ee027492ab3215426ab2..c23d713803b4d0132f2bec1796137adef8896080 100644 (file)
@@ -53,14 +53,14 @@ extern "C" {
 @param numChars   The number of characters to copy from the buffer pointed to by chars.
 @result           A JSString containing chars. Ownership follows the Create Rule.
 */
-JSStringRef JSStringCreateWithCharacters(const JSChar* chars, size_t numChars);
+JS_EXPORT JSStringRef JSStringCreateWithCharacters(const JSChar* chars, size_t numChars);
 /*!
 @function
 @abstract         Creates a JavaScript string from a null-terminated UTF8 string.
 @param string     The null-terminated UTF8 string to copy into the new JSString.
 @result           A JSString containing string. Ownership follows the Create Rule.
 */
-JSStringRef JSStringCreateWithUTF8CString(const char* string);
+JS_EXPORT JSStringRef JSStringCreateWithUTF8CString(const char* string);
 
 /*!
 @function
@@ -68,13 +68,13 @@ JSStringRef JSStringCreateWithUTF8CString(const char* string);
 @param string     The JSString to retain.
 @result           A JSString that is the same as string.
 */
-JSStringRef JSStringRetain(JSStringRef string);
+JS_EXPORT JSStringRef JSStringRetain(JSStringRef string);
 /*!
 @function
 @abstract         Releases a JavaScript string.
 @param string     The JSString to release.
 */
-void JSStringRelease(JSStringRef string);
+JS_EXPORT void JSStringRelease(JSStringRef string);
 
 /*!
 @function
@@ -82,7 +82,7 @@ void JSStringRelease(JSStringRef string);
 @param string     The JSString whose length (in Unicode characters) you want to know.
 @result           The number of Unicode characters stored in string.
 */
-size_t JSStringGetLength(JSStringRef string);
+JS_EXPORT size_t JSStringGetLength(JSStringRef string);
 /*!
 @function
 @abstract         Returns a pointer to the Unicode character buffer that 
@@ -91,7 +91,7 @@ size_t JSStringGetLength(JSStringRef string);
 @result           A pointer to the Unicode character buffer that serves as string's 
  backing store, which will be deallocated when string is deallocated.
 */
-const JSChar* JSStringGetCharactersPtr(JSStringRef string);
+JS_EXPORT const JSChar* JSStringGetCharactersPtr(JSStringRef string);
 
 /*!
 @function
@@ -103,7 +103,7 @@ const JSChar* JSStringGetCharactersPtr(JSStringRef string);
  null-terminated UTF8 string. The number of bytes that the conversion actually ends 
  up requiring could be less than this, but never more.
 */
-size_t JSStringGetMaximumUTF8CStringSize(JSStringRef string);
+JS_EXPORT size_t JSStringGetMaximumUTF8CStringSize(JSStringRef string);
 /*!
 @function
 @abstract Converts a JavaScript string into a null-terminated UTF8 string, 
@@ -117,7 +117,7 @@ size_t JSStringGetMaximumUTF8CStringSize(JSStringRef string);
 @param bufferSize The size of the external buffer in bytes.
 @result The number of bytes written into buffer (including the null-terminator byte).
 */
-size_t JSStringGetUTF8CString(JSStringRef string, char* buffer, size_t bufferSize);
+JS_EXPORT size_t JSStringGetUTF8CString(JSStringRef string, char* buffer, size_t bufferSize);
 
 /*!
 @function
@@ -126,7 +126,7 @@ size_t JSStringGetUTF8CString(JSStringRef string, char* buffer, size_t bufferSiz
 @param b      The second JSString to test.
 @result       true if the two strings match, otherwise false.
 */
-bool JSStringIsEqual(JSStringRef a, JSStringRef b);
+JS_EXPORT bool JSStringIsEqual(JSStringRef a, JSStringRef b);
 /*!
 @function
 @abstract     Tests whether a JavaScript string matches a null-terminated UTF8 string.
@@ -134,7 +134,7 @@ bool JSStringIsEqual(JSStringRef a, JSStringRef b);
 @param b      The null-terminated UTF8 string to test.
 @result       true if the two strings match, otherwise false.
 */
-bool JSStringIsEqualToUTF8CString(JSStringRef a, const char* b);
+JS_EXPORT bool JSStringIsEqualToUTF8CString(JSStringRef a, const char* b);
 
 #ifdef __cplusplus
 }
index 85916dd2a015b188a174f24a50098cb2dad6761f..4987f83eb0159bee77173a881d25f5a7ada908c8 100644 (file)
@@ -46,7 +46,7 @@ extern "C" {
 @param string     The BSTR to copy into the new JSString.
 @result           A JSString containing string. Ownership follows the Create Rule.
 */
-JSStringRef JSStringCreateWithBSTR(const BSTR string);
+JS_EXPORT JSStringRef JSStringCreateWithBSTR(const BSTR string);
 
 /*!
 @function
@@ -54,7 +54,7 @@ JSStringRef JSStringCreateWithBSTR(const BSTR string);
 @param string     The JSString to copy into the new BSTR.
 @result           A BSTR containing string. Ownership follows the Create Rule.
 */
-BSTR JSStringCopyBSTR(const JSStringRef string);
+JS_EXPORT BSTR JSStringCopyBSTR(const JSStringRef string);
     
 #ifdef __cplusplus
 }
index eb9aefee6b30747407e98b8720e7a86e8feb7aa8..ef84a9cdaaeb67f88c81561795efd26d5dfcf272 100644 (file)
@@ -44,7 +44,7 @@ extern "C" {
 @param string     The CFString to copy into the new JSString.
 @result           A JSString containing string. Ownership follows the Create Rule.
 */
-JSStringRef JSStringCreateWithCFString(CFStringRef string);
+JS_EXPORT JSStringRef JSStringCreateWithCFString(CFStringRef string);
 /*!
 @function
 @abstract         Creates a CFString from a JavaScript string.
@@ -52,7 +52,7 @@ JSStringRef JSStringCreateWithCFString(CFStringRef string);
 @param string     The JSString to copy into the new CFString.
 @result           A CFString containing string. Ownership follows the Create Rule.
 */
-CFStringRef JSStringCopyCFString(CFAllocatorRef alloc, JSStringRef string);
+JS_EXPORT CFStringRef JSStringCopyCFString(CFAllocatorRef alloc, JSStringRef string);
     
 #ifdef __cplusplus
 }
index 7046d4940dffce44f87abb91361995e81f8cfded..c3f75eaebf276f98e8c285eb00cd91eada13c1da 100644 (file)
@@ -61,7 +61,7 @@ extern "C" {
 @param value    The JSValue whose type you want to obtain.
 @result         A value of type JSType that identifies value's type.
 */
-JSType JSValueGetType(JSContextRef ctx, JSValueRef value);
+JS_EXPORT JSType JSValueGetType(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -70,7 +70,7 @@ JSType JSValueGetType(JSContextRef ctx, JSValueRef value);
 @param value    The JSValue to test.
 @result         true if value's type is the undefined type, otherwise false.
 */
-bool JSValueIsUndefined(JSContextRef ctx, JSValueRef value);
+JS_EXPORT bool JSValueIsUndefined(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -79,7 +79,7 @@ bool JSValueIsUndefined(JSContextRef ctx, JSValueRef value);
 @param value    The JSValue to test.
 @result         true if value's type is the null type, otherwise false.
 */
-bool JSValueIsNull(JSContextRef ctx, JSValueRef value);
+JS_EXPORT bool JSValueIsNull(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -88,7 +88,7 @@ bool JSValueIsNull(JSContextRef ctx, JSValueRef value);
 @param value    The JSValue to test.
 @result         true if value's type is the boolean type, otherwise false.
 */
-bool JSValueIsBoolean(JSContextRef ctx, JSValueRef value);
+JS_EXPORT bool JSValueIsBoolean(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -97,7 +97,7 @@ bool JSValueIsBoolean(JSContextRef ctx, JSValueRef value);
 @param value    The JSValue to test.
 @result         true if value's type is the number type, otherwise false.
 */
-bool JSValueIsNumber(JSContextRef ctx, JSValueRef value);
+JS_EXPORT bool JSValueIsNumber(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -106,7 +106,7 @@ bool JSValueIsNumber(JSContextRef ctx, JSValueRef value);
 @param value    The JSValue to test.
 @result         true if value's type is the string type, otherwise false.
 */
-bool JSValueIsString(JSContextRef ctx, JSValueRef value);
+JS_EXPORT bool JSValueIsString(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -115,7 +115,7 @@ bool JSValueIsString(JSContextRef ctx, JSValueRef value);
 @param value    The JSValue to test.
 @result         true if value's type is the object type, otherwise false.
 */
-bool JSValueIsObject(JSContextRef ctx, JSValueRef value);
+JS_EXPORT bool JSValueIsObject(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -125,7 +125,7 @@ bool JSValueIsObject(JSContextRef ctx, JSValueRef value);
 @param jsClass The JSClass to test against.
 @result true if value is an object and has jsClass in its class chain, otherwise false.
 */
-bool JSValueIsObjectOfClass(JSContextRef ctx, JSValueRef value, JSClassRef jsClass);
+JS_EXPORT bool JSValueIsObjectOfClass(JSContextRef ctx, JSValueRef value, JSClassRef jsClass);
 
 // Comparing values
 
@@ -138,7 +138,7 @@ bool JSValueIsObjectOfClass(JSContextRef ctx, JSValueRef value, JSClassRef jsCla
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result true if the two values are equal, false if they are not equal or an exception is thrown.
 */
-bool JSValueIsEqual(JSContextRef ctx, JSValueRef a, JSValueRef b, JSValueRef* exception);
+JS_EXPORT bool JSValueIsEqual(JSContextRef ctx, JSValueRef a, JSValueRef b, JSValueRef* exception);
 
 /*!
 @function
@@ -148,7 +148,7 @@ bool JSValueIsEqual(JSContextRef ctx, JSValueRef a, JSValueRef b, JSValueRef* ex
 @param b        The second value to test.
 @result         true if the two values are strict equal, otherwise false.
 */
-bool JSValueIsStrictEqual(JSContextRef ctx, JSValueRef a, JSValueRef b);
+JS_EXPORT bool JSValueIsStrictEqual(JSContextRef ctx, JSValueRef a, JSValueRef b);
 
 /*!
 @function
@@ -159,7 +159,7 @@ bool JSValueIsStrictEqual(JSContextRef ctx, JSValueRef a, JSValueRef b);
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result true if value is an object constructed by constructor, as compared by the JS instanceof operator, otherwise false.
 */
-bool JSValueIsInstanceOfConstructor(JSContextRef ctx, JSValueRef value, JSObjectRef constructor, JSValueRef* exception);
+JS_EXPORT bool JSValueIsInstanceOfConstructor(JSContextRef ctx, JSValueRef value, JSObjectRef constructor, JSValueRef* exception);
 
 // Creating values
 
@@ -169,7 +169,7 @@ bool JSValueIsInstanceOfConstructor(JSContextRef ctx, JSValueRef value, JSObject
 @param ctx  The execution context to use.
 @result         The unique undefined value.
 */
-JSValueRef JSValueMakeUndefined(JSContextRef ctx);
+JS_EXPORT JSValueRef JSValueMakeUndefined(JSContextRef ctx);
 
 /*!
 @function
@@ -177,7 +177,7 @@ JSValueRef JSValueMakeUndefined(JSContextRef ctx);
 @param ctx  The execution context to use.
 @result         The unique null value.
 */
-JSValueRef JSValueMakeNull(JSContextRef ctx);
+JS_EXPORT JSValueRef JSValueMakeNull(JSContextRef ctx);
 
 /*!
 @function
@@ -186,7 +186,7 @@ JSValueRef JSValueMakeNull(JSContextRef ctx);
 @param boolean  The bool to assign to the newly created JSValue.
 @result         A JSValue of the boolean type, representing the value of boolean.
 */
-JSValueRef JSValueMakeBoolean(JSContextRef ctx, bool boolean);
+JS_EXPORT JSValueRef JSValueMakeBoolean(JSContextRef ctx, bool boolean);
 
 /*!
 @function
@@ -195,7 +195,7 @@ JSValueRef JSValueMakeBoolean(JSContextRef ctx, bool boolean);
 @param number   The double to assign to the newly created JSValue.
 @result         A JSValue of the number type, representing the value of number.
 */
-JSValueRef JSValueMakeNumber(JSContextRef ctx, double number);
+JS_EXPORT JSValueRef JSValueMakeNumber(JSContextRef ctx, double number);
 
 /*!
 @function
@@ -205,7 +205,7 @@ JSValueRef JSValueMakeNumber(JSContextRef ctx, double number);
  newly created JSValue retains string, and releases it upon garbage collection.
 @result         A JSValue of the string type, representing the value of string.
 */
-JSValueRef JSValueMakeString(JSContextRef ctx, JSStringRef string);
+JS_EXPORT JSValueRef JSValueMakeString(JSContextRef ctx, JSStringRef string);
 
 // Converting to primitive values
 
@@ -216,7 +216,7 @@ JSValueRef JSValueMakeString(JSContextRef ctx, JSStringRef string);
 @param value    The JSValue to convert.
 @result         The boolean result of conversion.
 */
-bool JSValueToBoolean(JSContextRef ctx, JSValueRef value);
+JS_EXPORT bool JSValueToBoolean(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -226,7 +226,7 @@ bool JSValueToBoolean(JSContextRef ctx, JSValueRef value);
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result         The numeric result of conversion, or NaN if an exception is thrown.
 */
-double JSValueToNumber(JSContextRef ctx, JSValueRef value, JSValueRef* exception);
+JS_EXPORT double JSValueToNumber(JSContextRef ctx, JSValueRef value, JSValueRef* exception);
 
 /*!
 @function
@@ -236,7 +236,7 @@ double JSValueToNumber(JSContextRef ctx, JSValueRef value, JSValueRef* exception
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result         A JSString with the result of conversion, or NULL if an exception is thrown. Ownership follows the Create Rule.
 */
-JSStringRef JSValueToStringCopy(JSContextRef ctx, JSValueRef value, JSValueRef* exception);
+JS_EXPORT JSStringRef JSValueToStringCopy(JSContextRef ctx, JSValueRef value, JSValueRef* exception);
 
 /*!
 @function
@@ -246,7 +246,7 @@ JSStringRef JSValueToStringCopy(JSContextRef ctx, JSValueRef value, JSValueRef*
 @param exception A pointer to a JSValueRef in which to store an exception, if any. Pass NULL if you do not care to store an exception.
 @result         The JSObject result of conversion, or NULL if an exception is thrown.
 */
-JSObjectRef JSValueToObject(JSContextRef ctx, JSValueRef value, JSValueRef* exception);
+JS_EXPORT JSObjectRef JSValueToObject(JSContextRef ctx, JSValueRef value, JSValueRef* exception);
 
 // Garbage collection
 /*!
@@ -258,7 +258,7 @@ JSObjectRef JSValueToObject(JSContextRef ctx, JSValueRef value, JSValueRef* exce
  
 A value may be protected multiple times and must be unprotected an equal number of times before becoming eligible for garbage collection.
 */
-void JSValueProtect(JSContextRef ctx, JSValueRef value);
+JS_EXPORT void JSValueProtect(JSContextRef ctx, JSValueRef value);
 
 /*!
 @function
@@ -268,7 +268,7 @@ void JSValueProtect(JSContextRef ctx, JSValueRef value);
 @discussion     A value may be protected multiple times and must be unprotected an 
  equal number of times before becoming eligible for garbage collection.
 */
-void JSValueUnprotect(JSContextRef ctx, JSValueRef value);
+JS_EXPORT void JSValueUnprotect(JSContextRef ctx, JSValueRef value);
 
 #ifdef __cplusplus
 }
index f6af0cc039bf599cfb2594fa2b1e4c98233ab2e3..179a7ec7afe70d5146e1e54f741bf871c8c9d8e1 100644 (file)
@@ -1,3 +1,25 @@
+2007-11-27  Alp Toker  <alp@atoker.com>
+
+        Reviewed by Maciej.
+
+        http://bugs.webkit.org/show_bug.cgi?id=15569
+        [gtk] GTK JavaScriptCore needs to export symbols for JSC API and WTF
+
+        Introduce JS_EXPORT to mark symbols to be exported as public API.
+
+        Export all public symbols in the JavaScriptCore C API.
+
+        This matches conventions for exporting symbols set by the CF and CG
+        frameworks.
+
+        * API/JSBase.h:
+        * API/JSContextRef.h:
+        * API/JSObjectRef.h:
+        * API/JSStringRef.h:
+        * API/JSStringRefBSTR.h:
+        * API/JSStringRefCF.h:
+        * API/JSValueRef.h:
+
 2007-11-27  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Adam.