V8

看了Js引擎之后の随想

有时编写 Web 应用的代码会感觉充满魔力,因为我们只是写了一系列字符,就能在浏览器里看到效果了。但是理解魔法背后的技术,可以帮助你更好地提高编程技巧。至少当你试 图解释在 JavaScript 驱动的 web 或移动应用的幕后发生了什么的时候,会觉得自己不那么白痴了。 尝试向工程师解释 NativeScript 是如何通过 JavaScript 引擎在幕后工作、 在运行时连接调用原生的 APIs——面对这样一件复杂的工作很容易在一片杂草中迷失方向。事实上,任何 JavaScript 开发者都应该对我们每天使用的这门技术基础的引擎感到好奇。现在我们一起来仔细分析下 JavaScript 引擎到底做了什么,为什么不同的平台使用不同引擎,多年来它们是如何发展的,以及作为开发者我们为什么要关注这些。 首先,

  • Sky Lan
    Sky Lan
8 min read
V8

JS 引擎 V8 Parser 源码分析

V8 对 js 的脚本的处理流程大体分为 : parser 生成抽象语法树,这里将每一句 js 语句(statement) 生成为一个节点 本地代码引擎将抽象语法树生成对应的二进制代码,依次 取出每个节点,不同类型的节点有着不同代码生成方法 执行,遇到新的函数调用再次启动这个过程(这时 是 lazy_parser) 本文所研究的正是这个流程第一步。 V8 parser 处理脚本的层次 进入 FunctionLiteral* MakeAST(...),这里分辨出要处理时 json 还是普通的 js 脚本,

  • Sky Lan
    Sky Lan
15 min read