webkit在win32下的编译规则(四)

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

接下来看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>
JavaScriptCoreCFLite.vsprops用于设置CFLite库:
 
<?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 /bset 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 andREM were set to an empty string, set will set the errorlevel to 1,REM which will cause the project-specific script to think the buildREM 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 bashif errorlevel 1 set PATH=%SystemDrive%/cygwin/bin;%PATH%cmd /cif exist "%CONFIGURATIONBUILDDIR%/buildfailed" grep XX%PROJECTNAME%XX "%CONFIGURATIONBUILDDIR%/buildfailed"if errorlevel 1 exit 1echo XX%PROJECTNAME%XX > "%CONFIGURATIONBUILDDIR%/buildfailed"bash "%WEBKITLIBRARIESDIR%/tools/scripts/auto-version.sh" "%INTDIR%"
从上面的代码可以看出,JavaScriptCorePreBuild.cmd这个脚本的作用主要是调用 auto-version.sh生成版本信息的头文件,前面已经介绍,这里就不再描述了。

在编译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
类似ENABLE的还有USE,PLATFORM,HAVE等,这些宏的定义在D:/tools/cygwin/home/xufan/WebKit/Source/JavaScriptCore/wtf/Platform.h 里面定义:
 
/* ==== 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::NaNunsigned 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::commentAtombool 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::defaultAttributesclass 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::emptyAtombool 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::jsArrayVPtrvoid * JSC::JSGlobalData::jsByteArrayVPtrvoid * JSC::JSGlobalData::jsFunctionVPtrclass 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::jsStringVPtrunsigned 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::nullAtomclass std::nullptr_t nullptrclass 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_infostruct JSC::ClassInfo const JSC::InternalFunction::s_infostruct JSC::ClassInfo const JSC::JSArray::s_infostruct JSC::ClassInfo const JSC::JSFunction::s_infostruct JSC::ClassInfo const JSC::JSObject::s_infostruct JSC::ClassInfo const JSC::RegExpObject::s_infostruct JSC::ClassInfo const JSC::StringObject::s_infounsigned int const JSC::JSString::s_maxInternalRopeLengthvoid 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::starAtomvoid 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::staticDatavoid 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::textAtomclass 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::Exec

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/tduycc/article/details/84195690
今日推荐