AST模块其实要写的话,100篇都写不完,我将一些简单知识点翻译成JavaScript代码来进行讲解(v8内部的复杂性永远都能超出我的意料,现在看到万行的源码都已经没感觉了),如果谁想看C++源码,就 ...
AST模块其实要写的话,100篇都写不完,我将一些简单知识点翻译成JavaScript代码来进行讲解(v8内部的复杂性永远都能超出我的意料,现在看到万行的源码都已经没感觉了),如果谁想看C++源码,就 ...
没办法了,开坑吧,接下来的几篇会讲述JavaScript字符串源码在v8中转换成AST(抽象语法树)的过程。 JS代码在V8的解析只有简单的几步,其中第一步就是将源字符串转换为抽象语法树,非 ...
上一篇讲了字符串的解析过程,这一篇来讲讲标识符(IDENTIFIER)的解析。 先上知识点,标识符的扫描分为快解析和慢解析,一旦出现Ascii编码大于127的字符或者转义字符,会进入慢解析,略微影响 ...
记录一下步骤,方便以后换了电脑重新编译。 1、搞定depot_tools,git地址:git clone https://chromium.googlesource.com/chromium/too ...
v8的初始化三部曲,前面花了三篇解决了第一步,由于只是生成了一个对象,第二步就是将其嵌入v8中,先看一下三个步骤。 第一步可以由用户自己手动实现platform,只要按照规范来继承对应 ...
这博客是越来越难写了,参考资料少,难度又高,看到什么写什么吧! 众多周知,在JavaScript中有几个基本类型,包括字符串、数字、布尔、null、undefined、Symbol,其中大部 ...
本来寻思着写一篇"'Hello' + ', World'"是怎么从JS代码编译然后输出的,然而compile过程的复杂性远超我的想象,强上怕会走火入魔,还是老老实实先回家种田,找点咸鱼方法先写着。 ...
上一篇的源码看得十分无趣,官方文档跟黑心棉一样渣。 这一篇讲讲windows操作系统上的时间戳实现,由于类的声明,方法解释上一篇都贴过了,所以这次直接上对应版本的代码。 wind ...
上一篇其实想讲初始化的第二步,但是内容比较无聊,所以换了一个话题,谈了谈v8的命名空间和宏,稍微轻松一下。 在这里还是接着说说初始化过程,毕竟写博客的初衷是对自己努力的记录,不是为了吸粉,这篇没图, ...
由于底层逻辑实现不同操作系统区别很大,所以干脆分篇来说。 主要讲一下Time、TimeTicks两个类里面对于时间戳的实现,其余的运算符重载、边缘工具方法就不看了,先是Time。 T ...