webkit中的JavaScriptCore部分
JavaScriptCore
JavaScriptCore是WebKit内嵌的JavaScript引擎,在WebKit下的Source/JavaScriptCore文件夹下。
Core Engine
JavaScriptCore包括三步分:词法分析器(lexer)、语法分析器(parser)、解释器(interpreter)
lexer:对脚本源代码进行词法分析,生成一系列token。有关文件放在JavaScriptCore/parser/Lexer.h和Lexer.cpp中;
parser:对lexer获得的tokens进行语法分析,生成相应的语法树(syntax tree)。有关文件放在parser/JSParser.h和JSParser.cpp中;
interpreter:运行parser产生的字节码(bytecodes)。JavaScriptCore一般有两种Interpreter:bytecode_based 和JIT_based(jit:just-in-time),其中bytecode_based在虚拟机中运行bytecode,在文件夹JavaScriptCore/bytecode下;JIT_based编译产生本地机器代码,运行速度更快,相应代码在JavaScriptCore/jit下;