接下来看JavaScriptCore这个工程,这个工程继承的project property sheet如下:
../../../../WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops
../../../../WebKitLibraries/win/tools/vsprops/common.vsprops
../../../../WebKitLibraries/win/tools/vsprops/debug.vsprops
../../../../WebKitLibraries/win/tools/vsprops/debug_wincairo.vsprops
./JavaScriptCoreCommon.vsprops
./JavaScriptCoreCFLite.vsprops
上面的前面4个与WTF工程一样,就不介绍了。
JavaScriptCoreCommon.vsprops主要用于设置javascriptcore依赖的头文件目录和库文件,文件内容如下:
xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="JavaScriptCoreCommon"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""$(ConfigurationBuildDir)/obj/JavaScriptCore/DerivedSources/";../../;../../API/;../../parser/;../../bytecompiler/;../../jit/;../../runtime/;../../bytecode/;../../interpreter/;../../wtf/;../../profiler;../../assembler/;../../debugger/;../../collector/handles/;"$(WebKitLibrariesDir)/include";"$(WebKitLibrariesDir)/include/private";"$(ConfigurationBuildDir)/include";"$(ConfigurationBuildDir)/include/JavaScriptCore";"$(ConfigurationBuildDir)/include/private";"$(WebKitLibrariesDir)/include/pthreads""
PreprocessorDefinitions="__STD_C"
ForcedIncludeFiles="ICUVersion.h"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="gdi32.lib oleaut32.lib winmm.lib libicuin$(LibraryConfigSuffix).lib libicuuc$(LibraryConfigSuffix).lib pthreadVC2$(LibraryConfigSuffix).lib WTF$(WebKitConfigSuffix).lib"
OutputFile="$(OutDir)/$(ProjectName)$(WebKitDLLConfigSuffix).dll"
AdditionalLibraryDirectories=""$(IntDir)/lib""
ModuleDefinitionFile="JavaScriptCore.def"
/>
VisualStudioPropertySheet>
xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="JavaScriptCoreCFLite"
>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="CFLite$(WebKitConfigSuffix).lib"
/>
VisualStudioPropertySheet>
CFlite是Apple 的基础组件,苹果开源了Core Foundation的部分内容,可以到http://opensource.apple.com/source/下载。但webkit依赖的cflite苹果并没有公开全,不过网上有开源版本OpenCFLite(http://sourceforge.net/projects/opencflite/)。还有另外一个版本,请参考:http://www.yonsm.net/read.php?507 。
JavaScriptCore这个工程的pre-build event脚本如下:
REM Do not edit from the Visual Studio IDE! Customize via a $(ProjectName)PreBuild.cmd file. if not exist "$(ProjectDir)$(ProjectName)PreBuild.cmd" exit /b set CONFIGURATIONBUILDDIR=$(ConfigurationBuildDir) set CONFIGURATIONNAME=$(ConfigurationName) set INPUTDIR=$(InputDir) set INPUTFILENAME=$(InputFileName) set INPUTPATH=$(InputPath) set INTDIR=$(IntDir) set LIBRARYCONFIGSUFFIX=$(LibraryConfigSuffix) set OUTDIR=$(OutDir) set PLATFORMNAME=$(PlatformName) set PROJECTDIR=$(ProjectDir) set PROJECTFILENAME=$(ProjectFileName) set PROJECTNAME=$(ProjectName) set PROJECTPATH=$(ProjectPath) set SOLUTIONDIR=$(SolutionDir) set SOLUTIONFILENAME=$(SolutionFileName) set SOLUTIONNAME=$(SolutionName) set SOLUTIONPATH=$(SolutionPath) set TARGETDIR=$(TargetDir) set TARGETEXT=$(TargetExt) set TARGETFILENAME=$(TargetFileName) set TARGETPATH=$(TargetPath) set WEBKITCONFIGSUFFIX=$(WebKitConfigSuffix) set WEBKITDLLCONFIGSUFFIX=$(WebKitDLLConfigSuffix) REM If any of the above variables didn't exist previously and REM were set to an empty string, set will set the errorlevel to 1, REM which will cause the project-specific script to think the build REM has failed. This cmd /c call will clear the errorlevel. cmd /c "$(ProjectDir)$(ProjectName)PreBuild.cmd"
主要是调用JavaScriptCorePreBuild.cmd这个文件,JavaScriptCorePreBuild.cmd这个文件内容如下:
%SystemDrive%/cygwin/bin/which.exe bash if errorlevel 1 set PATH=%SystemDrive%/cygwin/bin;%PATH% cmd /c if exist "%CONFIGURATIONBUILDDIR%/buildfailed" grep XX%PROJECTNAME%XX "%CONFIGURATIONBUILDDIR%/buildfailed" if errorlevel 1 exit 1 echo XX%PROJECTNAME%XX > "%CONFIGURATIONBUILDDIR%/buildfailed" bash "%WEBKITLIBRARIESDIR%/tools/scripts/auto-version.sh" "%INTDIR%"
在编译JavaScriptCore这个工程时,cl.exe所使用的参数展开后如下:
/Od /I "C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/obj/JavaScriptCore/DerivedSources//" /I "../../" /I "../../API/" /I "../../parser/" /I "../../bytecompiler/" /I "../../jit/" /I "../../runtime/" /I "../../bytecode/" /I "../../interpreter/" /I "../../wtf/" /I "../../profiler" /I "../../assembler/" /I "../../debugger/" /I "../../collector/handles/" /I "C:/cygwin/home/xufan/WebKit/WebKitLibraries/win/include" /I "C:/cygwin/home/xufan/WebKit/WebKitLibraries/win/include/private" /I "C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/include" /I "C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/include/JavaScriptCore" /I "C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/include/private" /I "C:/cygwin/home/xufan/WebKit/WebKitLibraries/win/include/pthreads" /I "C:/cygwin/home/xufan/WebKit/WebKitLibraries/win/include/cairo" /D "__STD_C" /D "WIN32" /D "_WINDOWS" /D "WINVER=0x502" /D "_WIN32_WINNT=0x502" /D "_WIN32_IE=0x603" /D "_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1" /D "__PRODUCTION__=0" /D "_HAS_EXCEPTIONS=0" /D "BUILDING_JavaScriptCore" /D "ENABLE_CHANNEL_MESSAGING" /D "ENABLE_DATABASE" /D "ENABLE_DATALIST" /D "ENABLE_DOM_STORAGE" /D "ENABLE_EVENTSOURCE" /D "ENABLE_FILTERS" /D "ENABLE_ICONDATABASE" /D "ENABLE_JAVASCRIPT_DEBUGGER" /D "ENABLE_METER_TAG" /D "ENABLE_OFFLINE_WEB_APPLICATIONS" /D "ENABLE_SHARED_WORKERS" /D "ENABLE_SVG" /D "ENABLE_SVG_ANIMATION" /D "ENABLE_SVG_AS_IMAGE" /D "ENABLE_SVG_FONTS" /D "ENABLE_SVG_FOREIGN_OBJECT" /D "ENABLE_SVG_USE" /D "ENABLE_WEB_SOCKETS" /D "ENABLE_WORKERS" /D "ENABLE_XPATH" /D "ENABLE_XSLT" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /Gm /RTC1 /MTd /GR- /Fo"C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/obj/JavaScriptCore//" /Fd"C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/obj/JavaScriptCore/vc80.pdb" /W4 /nologo /c /Zi /TP /wd4018 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4180 /wd4189 /wd4201 /wd4244 /wd4251 /wd4275 /wd4288 /wd4291 /wd4305 /wd4344 /wd4355 /wd4389 /wd4503 /wd4505 /wd4510 /wd4512 /wd4610 /wd4706 /wd4800 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387 /FI "ICUVersion.h" /errorReport:prompt /GS
里面的类似于/D "ENABLE_SVG"的宏定义就是用于开启webkit的相关特性的,在cpp里面的一般用这种写法来判断是否开启:
#if ENABLE(SVG) #include "XLinkNames.h" #include "SVGNames.h" #endif
/* ==== PLATFORM handles OS, operating environment, graphics API, and CPU. This macro will be phased out in favor of platform adaptation macros, policy decision macros, and top-level port definitions. ==== */ #define PLATFORM(WTF_FEATURE) (defined WTF_PLATFORM_##WTF_FEATURE && WTF_PLATFORM_##WTF_FEATURE) /* ==== Platform adaptation macros: these describe properties of the target environment. ==== */ /* COMPILER() - the compiler being used to build the project */ #define COMPILER(WTF_FEATURE) (defined WTF_COMPILER_##WTF_FEATURE && WTF_COMPILER_##WTF_FEATURE) /* CPU() - the target CPU architecture */ #define CPU(WTF_FEATURE) (defined WTF_CPU_##WTF_FEATURE && WTF_CPU_##WTF_FEATURE) /* HAVE() - specific system features (headers, functions or similar) that are present or not */ #define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE && HAVE_##WTF_FEATURE) /* OS() - underlying operating system; only to be used for mandated low-level services like virtual memory, not to choose a GUI toolkit */ #define OS(WTF_FEATURE) (defined WTF_OS_##WTF_FEATURE && WTF_OS_##WTF_FEATURE) /* ==== Policy decision macros: these define policy choices for a particular port. ==== */ /* USE() - use a particular third-party library or optional OS service */ #define USE(WTF_FEATURE) (defined WTF_USE_##WTF_FEATURE && WTF_USE_##WTF_FEATURE) /* ENABLE() - turn on a specific feature of WebKit */ #define ENABLE(WTF_FEATURE) (defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE)
Platform.h还定义了其他很多跟平台相关的宏,这些宏在移植webkit到其他平台(例如arm)时要特别注意。
JavaScriptCore这个工程的link参数如下:
/OUT:"C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/bin/JavaScriptCore_debug.dll" /INCREMENTAL /NOLOGO /LIBPATH:"C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/obj/JavaScriptCore/lib" /LIBPATH:"C:/cygwin/home/xufan/WebKit/WebKitLibraries/win/lib" /LIBPATH:"C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/lib" /DLL /MANIFEST /MANIFESTFILE:"C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/obj/JavaScriptCore/JavaScriptCore_debug.dll.intermediate.manifest" /DEF:"JavaScriptCore.def" /DEBUG /PDB:"c:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/bin/JavaScriptCore_debug.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:"C:/cygwin/home/xufan/WebKit/WebKitBuild/Debug_Cairo_CFLite/lib/JavaScriptCore_debug.lib" /MACHINE:X86 /ERRORREPORT:PROMPT CFLite_debug.lib gdi32.lib oleaut32.lib winmm.lib libicuin.lib libicuuc.lib pthreadVC2.lib WTF_debug.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /SAFESEH /FIXED:NO /dynamicbase /ignore:4221
JavaScriptCore这个工程最终编译成JavaScriptCore.dll(或JavaScriptCore_debug.dll),这个dll到处和如下函数供jsc,webcore等工程使用(c:/cygwin/home/xufan/WebKit/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def,这里面的很多函数可以到苹果的网站http://developer.apple.com/library/mac/#documentation/Carbon/Reference/WebKit_JavaScriptCore_Ref/index.html看帮助):
WTF::CString::CString(char const *) WTF::CString::CString(char const *,unsigned int) WTF::Collator::Collator(char const *) JSC::DateInstance::DateInstance(class JSC::ExecState *,double) JSC::DateInstance::DateInstance(class JSC::ExecState *,class WTF::NonNullPassRefPtr<class JSC::Structure>,double) JSC::DefaultGCActivityCallback::DefaultGCActivityCallback(class JSC::Heap *) JSC::JSLock::DropAllLocks::DropAllLocks(enum JSC::JSLockBehavior) JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope(class JSC::ExecState *,class JSC::JSGlobalObject *) JSC::InternalFunction::InternalFunction(class JSC::JSGlobalData *,class JSC::JSGlobalObject *,class WTF::NonNullPassRefPtr<class JSC::Structure>,class JSC::Identifier const &) JSC::JSArray::JSArray(class JSC::JSGlobalData &,class WTF::NonNullPassRefPtr<class JSC::Structure>,class JSC::ArgList const &) JSC::JSArray::JSArray(class WTF::NonNullPassRefPtr<class JSC::Structure>) JSC::JSByteArray::JSByteArray(class JSC::ExecState *,class WTF::NonNullPassRefPtr<class JSC::Structure>,class WTF::ByteArray *) JSC::JSFunction::JSFunction(class JSC::ExecState *,class JSC::JSGlobalObject *,class WTF::NonNullPassRefPtr<class JSC::Structure>,int,class JSC::Identifier const &,__int64 (*)(class JSC::ExecState *)) JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject(class JSC::JSGlobalObject *,class WTF::NonNullPassRefPtr<class JSC::Structure>) JSC::JSString::JSString(enum JSC::JSString::VPtrStealingHackType) JSC::JSString::JSString(class JSC::ExecState *,class JSC::JSValue,class JSC::JSValue,class JSC::JSValue) JSC::JSString::JSString(class JSC::JSGlobalData *,class JSC::UString const &,class JSC::UString const &,class JSC::UString const &) JSC::JSString::JSString(class JSC::JSGlobalData *,class JSC::UString const &,class JSC::UString const &) JSC::JSString::JSString(class JSC::JSGlobalData *,class JSC::UString const &) JSC::JSString::JSString(class JSC::JSGlobalData *,class JSC::UString const &,void (*)(class JSC::JSString *,void *),void *) JSC::JSString::JSString(class JSC::JSGlobalData *,class JSC::UString const &,enum JSC::JSString::HasOtherOwnerType) JSC::JSString::JSString(class JSC::JSGlobalData *,unsigned int,class JSC::UString const &,class JSC::JSString *) JSC::JSString::JSString(class JSC::JSGlobalData *,unsigned int,class JSC::JSString *,class JSC::JSString *) JSC::JSString::JSString(class JSC::JSGlobalData *,unsigned int,class JSC::JSString *,class JSC::UString const &) JSC::JSString::JSString(class JSC::JSGlobalData *,class WTF::PassRefPtr<class JSC::RopeImpl>) JSC::JSString::JSString(class JSC::JSGlobalData *,class WTF::PassRefPtr<class WTF::StringImpl>,enum JSC::JSString::HasOtherOwnerType) WTF::MD5::MD5(void) WTF::Mutex::Mutex(void) WTF::RefCountedLeakCounter::RefCountedLeakCounter(char const *) JSC::RegExpObject::RegExpObject(class JSC::JSGlobalObject *,class WTF::NonNullPassRefPtr<class JSC::Structure>,class WTF::NonNullPassRefPtr<class JSC::RegExp>) JSC::StringObject::StringObject(class JSC::ExecState *,class WTF::NonNullPassRefPtr<class JSC::Structure>,class JSC::UString const &) JSC::Structure::Structure(class JSC::JSValue,class JSC::TypeInfo const &,unsigned int,struct JSC::ClassInfo const *) WTF::ThreadCondition::ThreadCondition(void) JSC::UString::UString(char const *) JSC::UString::UString(char const *,unsigned int) JSC::UString::UString(wchar_t const *,unsigned int) WTF::WTFThreadData::WTFThreadData(void) JSC::Yarr::YarrPattern::YarrPattern(class JSC::UString const &,bool,bool,char const * *) JSC::JSGlobalData::ClientData::~ClientData(void) WTF::Collator::~Collator(void) JSC::Debugger::~Debugger(void) JSC::JSLock::DropAllLocks::~DropAllLocks(void) JSC::JSGlobalData::~JSGlobalData(void) JSC::JSGlobalObject::~JSGlobalObject(void) JSC::JSString::~JSString(void) WTF::Mutex::~Mutex(void) WTF::RefCountedLeakCounter::~RefCountedLeakCounter(void) JSC::RegExp::~RegExp(void) JSC::SourceProviderCache::~SourceProviderCache(void) JSC::Structure::~Structure(void) WTF::ThreadCondition::~ThreadCondition(void) WTF::WTFThreadData::~WTFThreadData(void) void * JSC::JSGlobalObject::operator new(unsigned int,class JSC::JSGlobalData *) bool JSC::operator==(class JSC::UString const &,class JSC::UString const &) bool WTF::operator==(class WTF::CString const &,class WTF::CString const &) const JSC::JSString::`vftable' double const JSC::NaN unsigned long WTF::absoluteTimeToWaitTimeoutInterval(double) class WTF::PassRefPtr<class WTF::StringImpl> JSC::Identifier::add(class JSC::ExecState *,char const *) void JSC::PropertyNameArray::add(class WTF::StringImpl *) void WTF::MD5::addBytes(unsigned char const *,unsigned int) class WTF::PassRefPtr<class JSC::Structure> JSC::Structure::addPropertyTransition(class JSC::Structure *,class JSC::Identifier const &,unsigned int,class JSC::JSCell *,unsigned int &) class WTF::PassRefPtr<class JSC::Structure> JSC::Structure::addPropertyTransitionToExistingStructure(class JSC::Structure *,class JSC::Identifier const &,unsigned int,class JSC::JSCell *,unsigned int &) unsigned int JSC::Structure::addPropertyWithoutTransition(class JSC::Identifier const &,unsigned int,class JSC::JSCell *) class WTF::PassRefPtr<class WTF::StringImpl> JSC::Identifier::addSlowCase(class JSC::ExecState *,class WTF::StringImpl *) void * JSC::Heap::allocate(unsigned int) void JSC::JSObject::allocatePropertyStorage(unsigned int,unsigned int) void * JSC::MarkStack::allocateStack(unsigned int) void WTF::StringBuilder::append(char const *,unsigned int) void WTF::StringBuilder::append(wchar_t const *,unsigned int) void JSC::JSString::appendStringInConstruct(unsigned int &,class JSC::UString const &) void JSC::JSString::appendStringInConstruct(unsigned int &,class JSC::JSString *) void JSC::JSString::appendValueInConstructAndIncrementLength(class JSC::ExecState *,unsigned int &,class JSC::JSValue) class WTF::CString JSC::UString::ascii(void) void JSC::Debugger::attach(class JSC::JSGlobalObject *) void WTF::ThreadCondition::broadcast(void) unsigned int WTF::DecimalNumber::bufferLengthForStringDecimal(void) class WTF::PassOwnPtr<struct JSC::Yarr::BytecodePattern> JSC::Yarr::byteCompile(struct JSC::Yarr::YarrPattern &,class WTF::BumpPointerAllocator *) unsigned int JSC::SourceProviderCache::byteSize(void) double WTF::calculateDSTOffset(double,double) unsigned int WTF::Unicode::calculateStringHashAndLengthFromUTF8(char const *,unsigned int &,unsigned int &) unsigned int WTF::Unicode::calculateStringHashFromUTF8(char const *,char const *,unsigned int &) int WTF::calculateUTCOffset(void) class JSC::UString JSC::DebuggerCallFrame::calculatedFunctionName(void) class JSC::JSValue JSC::call(class JSC::ExecState *,class JSC::JSValue,enum JSC::CallType,union JSC::CallData const &,class JSC::JSValue,class JSC::ArgList const &) void WTF::callOnMainThread(void (*)(void *),void *) void WTF::callOnMainThreadAndWait(void (*)(void *),void *) bool JSC::JSString::canGetIndex(unsigned int) void WTF::cancelCallOnMainThread(void (*)(void *),void *) unsigned int JSC::Heap::capacity(void) class WTF::PassRefPtr<class JSC::Structure> JSC::Structure::changePrototypeTransition(class JSC::Structure *,class JSC::JSValue) void JSC::Identifier::checkCurrentIdentifierTable(class JSC::ExecState *) void JSC::Identifier::checkCurrentIdentifierTable(class JSC::JSGlobalData *) class JSC::Completion JSC::checkSyntax(class JSC::ExecState *,class JSC::SourceCode const &) void WTF::MD5::checksum(class WTF::Vector<unsigned char,16> &) class JSC::UString JSC::JSObject::className(void) void JSC::SourceProviderCache::clear(void) enum WTF::Collator::Result WTF::Collator::collate(wchar_t const *,unsigned int,wchar_t const *,unsigned int) void JSC::Heap::collectAllGarbage(void) class WTF::AtomicString const WTF::commentAtom bool JSC::PropertyDescriptor::configurable(void) class JSC::JSObject * JSC::construct(class JSC::ExecState *,class JSC::JSValue,enum JSC::ConstructType,union JSC::ConstructData const &,class JSC::ArgList const &) class JSC::JSArray * JSC::constructArray(class JSC::ExecState *,class JSC::ArgList const &) class JSC::JSArray * JSC::constructEmptyArray(class JSC::ExecState *) class JSC::JSObject * JSC::constructEmptyObject(class JSC::ExecState *) class JSC::JSObject * JSC::constructFunction(class JSC::ExecState *,class JSC::ArgList const &,class JSC::Identifier const &,class JSC::UString const &,int) enum WTF::Unicode::ConversionResult WTF::Unicode::convertUTF16ToUTF8(wchar_t const * *,wchar_t const *,char * *,char *,bool) enum WTF::Unicode::ConversionResult WTF::Unicode::convertUTF8ToUTF16(char const * *,char const *,wchar_t * *,wchar_t *,bool) class WTF::PassRefPtr<class WTF::ByteArray> WTF::ByteArray::create(unsigned int) class WTF::PassRefPtr<class JSC::JSGlobalData> JSC::JSGlobalData::create(enum JSC::ThreadStackType) class WTF::PassRefPtr<struct OpaqueJSString> OpaqueJSString::create(class JSC::UString const &) class WTF::PassRefPtr<class JSC::RegExp> JSC::RegExp::create(class JSC::JSGlobalData *,class JSC::UString const &,class JSC::UString const &) void JSC::SmallStrings::createEmptyString(class JSC::JSGlobalData *) class JSC::JSObject * JSC::createError(class JSC::ExecState *,class JSC::UString const &) class JSC::Structure * JSC::JSObject::createInheritorID(void) class JSC::JSObject * JSC::createInterruptedExecutionException(class JSC::JSGlobalData *) class WTF::PassRefPtr<class JSC::JSGlobalData> JSC::JSGlobalData::createLeaked(enum JSC::ThreadStackType) class JSC::JSObject * JSC::createRangeError(class JSC::ExecState *,class JSC::UString const &) class JSC::JSObject * JSC::createReferenceError(class JSC::ExecState *,class JSC::UString const &) void JSC::SmallStrings::createSingleCharacterString(class JSC::JSGlobalData *,unsigned char) class JSC::JSObject * JSC::createStackOverflowError(class JSC::ExecState *) class WTF::PassRefPtr<class JSC::Structure> JSC::JSByteArray::createStructure(class JSC::JSValue,struct JSC::ClassInfo const *) class WTF::PassRefPtr<class JSC::Structure> JSC::JSString::createStructure(class JSC::JSValue) class JSC::JSObject * JSC::createSyntaxError(class JSC::ExecState *,class JSC::UString const &) void JSC::HashTable::createTable(class JSC::JSGlobalData *) unsigned int WTF::createThread(void * (*)(void *),void *) unsigned int WTF::createThread(void * (*)(void *),void *,char const *) class JSC::JSObject * JSC::createTypeError(class JSC::ExecState *,class JSC::UString const &) unsigned int WTF::cryptographicallyRandomNumber(void) void WTF::cryptographicallyRandomValues(void *,unsigned int) unsigned int WTF::currentThread(void) double WTF::currentTime(void) char const * WTF::CString::data(void) double WTF::dateToDaysFrom1970(int,int,int) int WTF::dayInMonthFromDayInYear(int,bool) int WTF::dayInYear(double,int) void WTF::RefCountedLeakCounter::decrement(void) unsigned int JSC::PropertyDescriptor::defaultAttributes class JSC::JSValue JSC::JSObject::defaultValue(class JSC::ExecState *,enum JSC::PreferredPrimitiveType) void JSC::JSGlobalObject::defineGetter(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSObject *,unsigned int) void JSC::JSObject::defineGetter(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSObject *,unsigned int) bool JSC::JSObject::defineOwnProperty(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertyDescriptor &,bool) void JSC::JSGlobalObject::defineSetter(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSObject *,unsigned int) void JSC::JSObject::defineSetter(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSObject *,unsigned int) void WTF::deleteOwnedPtr(struct HBITMAP__ *) void WTF::deleteOwnedPtr(struct HBRUSH__ *) void WTF::deleteOwnedPtr(struct HDC__ *) void WTF::deleteOwnedPtr(struct HFONT__ *) void WTF::deleteOwnedPtr(struct HRGN__ *) bool JSC::JSCell::deleteProperty(class JSC::ExecState *,class JSC::Identifier const &) bool JSC::JSCell::deleteProperty(class JSC::ExecState *,unsigned int) bool JSC::JSObject::deleteProperty(class JSC::ExecState *,class JSC::Identifier const &) bool JSC::JSObject::deleteProperty(class JSC::ExecState *,unsigned int) bool JSC::JSVariableObject::deleteProperty(class JSC::ExecState *,class JSC::Identifier const &) bool JSC::StringObject::deleteProperty(class JSC::ExecState *,class JSC::Identifier const &) void JSC::HashTable::deleteTable(void) void JSC::Structure::despecifyDictionaryFunction(class JSC::Identifier const &) class WTF::PassRefPtr<class JSC::Structure> JSC::Structure::despecifyFunctionTransition(class JSC::Structure *,class JSC::Identifier const &) void JSC::Heap::destroy(void) void JSC::JSGlobalObject::destroyJSGlobalObjectData(void *) void JSC::Debugger::detach(class JSC::JSGlobalObject *) void WTF::detachThread(unsigned int) bool JSC::TimeoutChecker::didTimeOut(class JSC::ExecState *) void WTF::dtoa(char * const,double,bool &,int &,unsigned int &) void JSC::JSGlobalData::dumpSampleData(class JSC::ExecState *) class WTF::StringImpl * WTF::StringImpl::empty(void) class WTF::AtomicString const WTF::emptyAtom bool JSC::PropertyDescriptor::enumerable(void) bool JSC::Identifier::equal(class WTF::StringImpl const *,char const *) bool WTF::Unicode::equalUTF16WithUTF8(wchar_t const *,wchar_t const *,char const *,char const *) class JSC::JSValue JSC::DebuggerCallFrame::evaluate(class JSC::UString const &,class JSC::JSValue &) class JSC::Completion JSC::evaluate(class JSC::ExecState *,class JSC::ScopeChain &,class JSC::SourceCode const &,class JSC::JSValue) void JSC::Profile::exclude(class JSC::ProfileNode const *) void * WTF::fastCalloc(unsigned int,unsigned int) void WTF::fastFree(void *) void * WTF::fastMalloc(unsigned int) unsigned int WTF::fastMallocSize(void const *) void * WTF::fastRealloc(void *,unsigned int) char * WTF::fastStrDup(char const *) void * WTF::fastZeroedMalloc(unsigned int) unsigned int JSC::JSString::fiberCount(void) void JSC::JSObject::fillGetterPropertySlot(class JSC::PropertySlot &,class JSC::WriteBarrierBase<enum JSC::Unknown> *) void JSC::Profile::focus(class JSC::ProfileNode const *) class JSC::Identifier JSC::Identifier::from(class JSC::ExecState *,int) class JSC::Identifier JSC::Identifier::from(class JSC::ExecState *,unsigned int) class JSC::JSValue JSC::PropertySlot::functionGetter(class JSC::ExecState *) class JSC::UString const * JSC::DebuggerCallFrame::functionName(void) unsigned int JSC::Structure::get(class WTF::StringImpl const *,unsigned int &,class JSC::JSCell * &) enum JSC::CallType JSC::JSCell::getCallData(union JSC::CallData &) enum JSC::ConstructType JSC::JSCell::getConstructData(union JSC::ConstructData &) class JSC::JSString * JSC::JSString::getIndex(class JSC::ExecState *,unsigned int) class JSC::JSString * JSC::JSString::getIndexSlowCase(class JSC::ExecState *,unsigned int) class JSC::JSValue JSC::JSCell::getJSNumber(void) class JSC::JSObject * JSC::JSCell::getObject(void) bool JSC::JSObject::getOwnPropertyDescriptor(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertyDescriptor &) bool JSC::JSString::getOwnPropertyDescriptor(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertyDescriptor &) bool JSC::StringObject::getOwnPropertyDescriptor(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertyDescriptor &) void JSC::JSObject::getOwnPropertyNames(class JSC::ExecState *,class JSC::PropertyNameArray &,enum JSC::EnumerationMode) void JSC::JSVariableObject::getOwnPropertyNames(class JSC::ExecState *,class JSC::PropertyNameArray &,enum JSC::EnumerationMode) void JSC::StringObject::getOwnPropertyNames(class JSC::ExecState *,class JSC::PropertyNameArray &,enum JSC::EnumerationMode) bool JSC::JSArray::getOwnPropertySlot(class JSC::ExecState *,unsigned int,class JSC::PropertySlot &) bool JSC::JSCell::getOwnPropertySlot(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertySlot &) bool JSC::JSCell::getOwnPropertySlot(class JSC::ExecState *,unsigned int,class JSC::PropertySlot &) bool JSC::JSObject::getOwnPropertySlot(class JSC::ExecState *,unsigned int,class JSC::PropertySlot &) bool JSC::JSString::getOwnPropertySlot(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertySlot &) bool JSC::JSString::getOwnPropertySlot(class JSC::ExecState *,unsigned int,class JSC::PropertySlot &) bool JSC::StringObject::getOwnPropertySlot(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertySlot &) bool JSC::StringObject::getOwnPropertySlot(class JSC::ExecState *,unsigned int,class JSC::PropertySlot &) bool JSC::JSCell::getPrimitiveNumber(class JSC::ExecState *,double &,class JSC::JSValue &) bool JSC::JSObject::getPrimitiveNumber(class JSC::ExecState *,double &,class JSC::JSValue &) bool JSC::JSString::getPrimitiveNumber(class JSC::ExecState *,double &,class JSC::JSValue &) bool JSC::JSObject::getPropertyDescriptor(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertyDescriptor &) void JSC::JSObject::getPropertyNames(class JSC::ExecState *,class JSC::PropertyNameArray &,enum JSC::EnumerationMode) void JSC::ArgList::getSlice(int,class JSC::ArgList &) class JSC::UString JSC::JSCell::getString(class JSC::ExecState *) bool JSC::JSCell::getString(class JSC::ExecState *,class JSC::UString &) bool JSC::JSString::getStringPropertyDescriptor(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertyDescriptor &) bool JSC::JSString::getStringPropertySlot(class JSC::ExecState *,class JSC::Identifier const &,class JSC::PropertySlot &) bool JSC::JSString::getStringPropertySlot(class JSC::ExecState *,unsigned int,class JSC::PropertySlot &) bool JSC::JSCell::getUInt32(unsigned int &) class JSC::JSValue JSC::PropertyDescriptor::getter(void) class JSC::ExecState * JSC::JSGlobalObject::globalExec(void) class JSC::JSGlobalObject * JSC::JSObjectWithGlobalObject::globalObject(void) unsigned int JSC::Heap::globalObjectCount(void) void JSC::HandleHeap::grow(void) bool JSC::JSObject::hasInstance(class JSC::ExecState *,class JSC::JSValue,class JSC::JSValue) bool JSC::JSObject::hasProperty(class JSC::ExecState *,class JSC::Identifier const &) bool JSC::JSObject::hasProperty(class JSC::ExecState *,unsigned int) class JSC::Heap * JSC::Heap::heap(class JSC::JSValue) void WTF::RefCountedLeakCounter::increment(void) void WTF::AtomicString::init(void) void JSC::JSGlobalObject::init(class JSC::JSObject *) void WTF::initializeMainThread(void) void JSC::initializeThreading(void) void WTF::initializeThreading(void) int JSC::Yarr::interpret(struct JSC::Yarr::BytecodePattern *,wchar_t const *,unsigned int,unsigned int,int *) bool JSC::PropertyDescriptor::isAccessorDescriptor(void) bool JSC::Heap::isBusy(void) bool JSC::PropertyDescriptor::isDataDescriptor(void) bool JSC::JSGlobalObject::isDynamicScope(bool &) bool JSC::JSCell::isGetterSetter(void) bool JSC::JSFunction::isHostFunctionNonInline(void) bool WTF::isMainThread(void) bool JSC::JSString::isRope(void) bool JSC::JSValue::isValidCallee(void) bool JSC::JSVariableObject::isVariableObject(void) void * JSC::JSGlobalData::jsArrayVPtr void * JSC::JSGlobalData::jsByteArrayVPtr void * JSC::JSGlobalData::jsFunctionVPtr class JSC::JSValue JSC::jsNumberCell(class JSC::ExecState *,double) class JSC::JSString * JSC::jsOwnedString(class JSC::JSGlobalData *,class JSC::UString const &) class JSC::JSString * JSC::jsString(class JSC::JSGlobalData *,class JSC::UString const &) void * JSC::JSGlobalData::jsStringVPtr unsigned int WTF::CString::length(void) unsigned int JSC::JSString::length(void) void JSC::JSLock::lock(enum JSC::JSLockBehavior) void WTF::Mutex::lock(void) void WTF::lockAtomicallyInitializedStaticMutex(void) class JSC::JSValue JSC::JSObject::lookupGetter(class JSC::ExecState *,class JSC::Identifier const &) class JSC::JSValue JSC::JSObject::lookupSetter(class JSC::ExecState *,class JSC::Identifier const &) void JSC::JSGlobalObject::markChildren(class JSC::MarkStack &) void JSC::JSObject::markChildren(class JSC::MarkStack &) void JSC::JSWrapperObject::markChildren(class JSC::MarkStack &) void JSC::Structure::materializePropertyMap(void) int WTF::monthFromDayInYear(int,bool) int WTF::msToYear(double) class JSC::UString const & JSC::InternalFunction::name(class JSC::ExecState *) class JSC::UString const & JSC::JSFunction::name(class JSC::ExecState *) class WTF::CString WTF::CString::newUninitialized(unsigned int,char * &) double JSC::nonInlineNaN(void) class WTF::AtomicString const WTF::nullAtom class std::nullptr_t nullptr class JSC::UString JSC::UString::number(int) class JSC::UString JSC::UString::number(unsigned int) class JSC::UString JSC::UString::number(double) unsigned int WTF::numberToString(double,wchar_t * const) unsigned int JSC::Heap::objectCount(void) __int64 JSC::objectProtoFuncToString(class JSC::ExecState *) double WTF::parseDateFromNullTerminatedCharacters(char const *) class JSC::Profiler * JSC::Profiler::profiler(void) void JSC::Heap::protect(class JSC::JSValue) unsigned int JSC::Heap::protectedGlobalObjectCount(void) unsigned int JSC::Heap::protectedObjectCount(void) class WTF::PassOwnPtr<class WTF::HashCountedSet<char const *,struct WTF::PtrHash<char const *>,struct WTF::HashTraits<char const *> > > JSC::Heap::protectedObjectTypeCounts(void) void JSC::JSCell::put(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSValue,class JSC::PutPropertySlot &) void JSC::JSCell::put(class JSC::ExecState *,unsigned int,class JSC::JSValue) void JSC::JSGlobalObject::put(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSValue,class JSC::PutPropertySlot &) void JSC::JSObject::put(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSValue,class JSC::PutPropertySlot &) void JSC::JSObject::put(class JSC::ExecState *,unsigned int,class JSC::JSValue) void JSC::StringObject::put(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSValue,class JSC::PutPropertySlot &) void JSC::JSObject::putDirectFunction(class JSC::ExecState *,class JSC::InternalFunction *,unsigned int) void JSC::JSObject::putDirectFunction(class JSC::ExecState *,class JSC::JSFunction *,unsigned int) void JSC::JSGlobalObject::putWithAttributes(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSValue,unsigned int) void JSC::JSObject::putWithAttributes(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSValue,unsigned int) void JSC::JSObject::putWithAttributes(class JSC::ExecState *,class JSC::Identifier const &,class JSC::JSValue,unsigned int,bool,class JSC::PutPropertySlot &) void JSC::JSObject::putWithAttributes(class JSC::ExecState *,unsigned int,class JSC::JSValue,unsigned int) void JSC::JSObject::putWithAttributes(class JSC::JSGlobalData *,class JSC::Identifier const &,class JSC::JSValue,unsigned int) void JSC::JSObject::putWithAttributes(class JSC::JSGlobalData *,class JSC::Identifier const &,class JSC::JSValue,unsigned int,bool,class JSC::PutPropertySlot &) void JSC::JSObject::putWithAttributes(class JSC::JSGlobalData *,unsigned int,class JSC::JSValue,unsigned int) double WTF::randomNumber(void) void JSC::Debugger::recompileAllJSFunctions(class JSC::JSGlobalData *) void WTF::StringBuilder::reifyString(void) void WTF::OSAllocator::releaseDecommitted(void *,unsigned int) void JSC::MarkStack::releaseStack(void *,unsigned int) class JSC::JSValue JSC::JSString::replaceCharacter(class JSC::ExecState *,wchar_t,class JSC::UString const &) void JSC::Heap::reportExtraMemoryCostSlowCase(unsigned int) void * WTF::OSAllocator::reserveAndCommit(unsigned int,enum WTF::OSAllocator::Usage,bool,bool) void JSC::ParserArena::reset(void) void JSC::TimeoutChecker::reset(void) void JSC::JSGlobalData::resetDateCache(void) void WTF::StringBuilder::resize(unsigned int) void JSC::JSString::resolveRope(class JSC::ExecState *) void JSC::Profile::restoreAll(void) class JSC::JSValue JSC::Interpreter::retrieveCaller(class JSC::ExecState *,class JSC::JSFunction *) void JSC::Interpreter::retrieveLastCaller(class JSC::ExecState *,int &,int &,class JSC::UString &,class JSC::JSValue &) struct JSC::ClassInfo const JSC::DateInstance::s_info struct JSC::ClassInfo const JSC::InternalFunction::s_info struct JSC::ClassInfo const JSC::JSArray::s_info struct JSC::ClassInfo const JSC::JSFunction::s_info struct JSC::ClassInfo const JSC::JSObject::s_info struct JSC::ClassInfo const JSC::RegExpObject::s_info struct JSC::ClassInfo const JSC::StringObject::s_info unsigned int const JSC::JSString::s_maxInternalRopeLength void JSC::PropertyDescriptor::setAccessorDescriptor(class JSC::JSValue,class JSC::JSValue,unsigned int) void JSC::PropertyDescriptor::setConfigurable(bool) void JSC::PropertyDescriptor::setDescriptor(class JSC::JSValue,unsigned int) void JSC::BytecodeGenerator::setDumpsGeneratedCode(bool) void JSC::PropertyDescriptor::setEnumerable(bool) void JSC::PropertyDescriptor::setGetter(class JSC::JSValue) void JSC::JSArray::setLength(unsigned int) void JSC::StatementNode::setLoc(int,int) void WTF::setMainThreadCallbacksPaused(bool) void WTF::Collator::setOrderLowerFirst(bool) void JSC::PropertyDescriptor::setSetter(class JSC::JSValue) void JSC::PropertyDescriptor::setUndefined(void) void JSC::setUpStaticFunctionSlot(class JSC::ExecState *,class JSC::HashEntry const *,class JSC::JSObject *,class JSC::Identifier const &,class JSC::PropertySlot &) void JSC::PropertyDescriptor::setWritable(bool) class JSC::JSValue JSC::PropertyDescriptor::setter(void) void WTF::StringBuilder::shrinkToFit(void) void WTF::ThreadCondition::signal(void) unsigned int JSC::Heap::size(void) void JSC::MarkedArgumentBuffer::slowAppend(class JSC::JSValue) class WTF::AtomicString const WTF::starAtom void JSC::Structure::startIgnoringLeaks(void) void JSC::Profiler::startProfiling(class JSC::ExecState *,class JSC::UString const &) void JSC::JSGlobalData::startSampling(void) class WTF::ThreadSpecific<class WTF::WTFThreadData> * WTF::WTFThreadData::staticData void JSC::Structure::stopIgnoringLeaks(void) class WTF::PassRefPtr<class JSC::Profile> JSC::Profiler::stopProfiling(class JSC::ExecState *,class JSC::UString const &) void JSC::JSGlobalData::stopSampling(void) class JSC::UString & JSC::JSString::string(void) double WTF::strtod(char const *,char * *) class JSC::JSString * JSC::JSString::substringFromRope(class JSC::ExecState *,unsigned int,unsigned int) class JSC::UString JSC::UString::substringSharingImpl(unsigned int,unsigned int) bool JSC::JSVariableObject::symbolTableGet(class JSC::Identifier const &,class JSC::PropertyDescriptor &) class JSC::JSObject * JSC::JSValue::synthesizePrototype(class JSC::ExecState *) class WTF::AtomicString const WTF::textAtom class JSC::JSObject * JSC::DebuggerCallFrame::thisObject(void) class JSC::JSValue JSC::throwError(class JSC::ExecState *,class JSC::JSValue) class JSC::JSObject * JSC::throwError(class JSC::ExecState *,class JSC::JSObject *) class JSC::JSObject * JSC::throwSyntaxError(class JSC::ExecState *) class JSC::JSObject * JSC::throwTypeError(class JSC::ExecState *) bool WTF::ThreadCondition::timedWait(class WTF::Mutex &,double) long & WTF::tlsKeyCount(void) unsigned long * WTF::tlsKeys(void) bool JSC::JSCell::toBoolean(class JSC::ExecState *) bool JSC::JSObject::toBoolean(class JSC::ExecState *) bool JSC::JSString::toBoolean(class JSC::ExecState *) int JSC::toInt32(double) double JSC::JSValue::toInteger(class JSC::ExecState *) double JSC::JSCell::toNumber(class JSC::ExecState *) double JSC::JSObject::toNumber(class JSC::ExecState *) double JSC::JSString::toNumber(class JSC::ExecState *) class JSC::JSObject * JSC::JSCell::toObject(class JSC::ExecState *) class JSC::JSObject * JSC::JSObject::toObject(class JSC::ExecState *) class JSC::JSObject * JSC::JSString::toObject(class JSC::ExecState *) class JSC::JSObject * JSC::JSValue::toObjectSlowCase(class JSC::ExecState *) class JSC::JSValue JSC::JSCell::toPrimitive(class JSC::ExecState *,enum JSC::PreferredPrimitiveType) class JSC::JSValue JSC::JSString::toPrimitive(class JSC::ExecState *,enum JSC::PreferredPrimitiveType) class JSC::JSValue JSC::JSObject::toStrictThisObject(class JSC::ExecState *) class JSC::UString JSC::JSCell::toString(class JSC::ExecState *) class JSC::UString JSC::JSObject::toString(class JSC::ExecState *) class JSC::UString JSC::JSString::toString(class JSC::ExecState *) unsigned int WTF::DecimalNumber::toStringDecimal(wchar_t *,unsigned int) class JSC::JSObject * JSC::JSCell::toThisObject(class JSC::ExecState *) class JSC::JSObject * JSC::JSObject::toThisObject(class JSC::ExecState *) class JSC::JSObject * JSC::JSString::toThisObject(class JSC::ExecState *) class JSC::JSObject * JSC::JSValue::toThisObjectSlowCase(class JSC::ExecState *) unsigned int JSC::Identifier::toUInt32(class JSC::UString const &,bool &) struct WTF::TryMallocReturnValue WTF::tryFastCalloc(unsigned int,unsigned int) struct WTF::TryMallocReturnValue WTF::tryFastMalloc(unsigned int) struct WTF::TryMallocReturnValue WTF::tryFastRealloc(void *,unsigned int) class JSC::UString const & JSC::JSString::tryGetValue(void) bool WTF::Mutex::tryLock(void) enum JSC::DebuggerCallFrame::Type JSC::DebuggerCallFrame::type(void) void JSC::JSLock::unlock(enum JSC::JSLockBehavior) void WTF::Mutex::unlock(void) void WTF::unlockAtomicallyInitializedStaticMutex(void) bool JSC::Heap::unprotect(class JSC::JSValue) class JSC::JSObject * JSC::JSObject::unwrappedObject(void) class WTF::CString JSC::UString::utf8(bool) class JSC::UString const & JSC::JSString::value(class JSC::ExecState *) void JSC::InternalFunction::vtableAnchor(void) void WTF::ThreadCondition::wait(class WTF::Mutex &) int WTF::waitForThreadCompletion(unsigned int,void * *) bool JSC::PropertyDescriptor::writable(void) void JSC::HandleHeap::writeBarrier(class JSC::JSValue *,class JSC::JSValue const &) class WTF::AtomicString const WTF::xmlAtom class WTF::AtomicString const WTF::xmlnsAtom void WTF::yield(void) JSCheckScriptSyntax JSClassCreate JSClassRelease JSClassRetain JSContextGetGlobalContext JSContextGetGlobalObject JSContextGetGroup JSContextGroupCreate JSContextGroupRelease JSContextGroupRetain JSEvaluateScript JSGarbageCollect JSGlobalContextCreate JSGlobalContextCreateInGroup JSGlobalContextRelease JSGlobalContextRetain JSObjectCallAsConstructor JSObjectCallAsFunction JSObjectCopyPropertyNames JSObjectDeletePrivateProperty JSObjectDeleteProperty JSObjectGetPrivate JSObjectGetPrivateProperty JSObjectGetProperty JSObjectGetPropertyAtIndex JSObjectGetPrototype JSObjectHasProperty JSObjectIsConstructor JSObjectIsFunction JSObjectMake JSObjectMakeArray JSObjectMakeConstructor JSObjectMakeDate JSObjectMakeError JSObjectMakeFunction JSObjectMakeFunctionWithCallback JSObjectMakeRegExp JSObjectSetPrivate JSObjectSetPrivateProperty JSObjectSetProperty JSObjectSetPropertyAtIndex JSObjectSetPrototype JSPropertyNameAccumulatorAddName JSPropertyNameArrayGetCount JSPropertyNameArrayGetNameAtIndex JSPropertyNameArrayRelease JSPropertyNameArrayRetain JSReportExtraMemoryCost JSStringCopyBSTR JSStringCopyCFString JSStringCreateWithBSTR JSStringCreateWithCFString JSStringCreateWithCharacters JSStringCreateWithUTF8CString JSStringGetCharactersPtr JSStringGetLength JSStringGetMaximumUTF8CStringSize JSStringGetUTF8CString JSStringIsEqual JSStringIsEqualToUTF8CString JSStringRelease JSStringRetain JSValueCreateJSONString JSValueGetType JSValueIsBoolean JSValueIsEqual JSValueIsInstanceOfConstructor JSValueIsNull JSValueIsNumber JSValueIsObject JSValueIsObjectOfClass JSValueIsStrictEqual JSValueIsString JSValueIsUndefined JSValueMakeBoolean JSValueMakeFromJSONString JSValueMakeNull JSValueMakeNumber JSValueMakeString JSValueMakeUndefined JSValueProtect JSValueToBoolean JSValueToNumber JSValueToObject JSValueToStringCopy JSValueUnprotect JSWeakObjectMapClear JSWeakObjectMapCreate JSWeakObjectMapGet JSWeakObjectMapSet WTFLog WTFLogVerbose WTFReportArgumentAssertionFailure WTFReportAssertionFailure WTFReportAssertionFailureWithMessage WTFReportBacktrace WTFReportError kJSClassDefinitionEmpty