JavaScript: Added missing static modifiers to avoid duplicate symbol problems with multiple SWIG modules.
JavaScriptCore: Bug fix for finalizer. The finalizer needs to be set on the objectDefinition, not the classDefinition. Otherwise, all the finalize callbacks get NULL back for the PrivateData and can't free the SwigPrivData, causing massive leakage.
JavascriptCore: fix cleanup code.
JavaScriptCore: Bug fix for SWIGJSC_AppendOutput. This function requires a return value. I think it should be arr, but somebody should scrutinize this.
JavaScriptCore: C89: declare variables at the top for antiquated compilers like Microsoft Visual Studio.
JavaScriptCore: More missing static modifiers.
JavaScriptCore: ConvertPtr should allow JavaScript null to be a valid value.

It is common in C to accept NULL to functions for pointer parameters.
extern void DoSomething(struct Foo* foo);
...
DoSomething(NULL);

Thus, JavaScript null should be allowed:
module.DoSomething(null);

But the current ConvertPtr definition accepts only objects. This modifies it to allow null.