#小程序
共 14 篇文章
JSVM2:表达式求值的现实主义,左值、运算符与 ES2015 裁剪
赋值难在左值是引用不是值;运算符能委给宿主的全委;ES2015 只做了够用的一部分,readme 打钩的 for-of 和 ** 实测并没有实现。
JSVM2:return/break/continue 怎么传,Signal 信号与 finally 的坑
throw 可以白嫖宿主异常,return/break/continue 只能造 Signal 对象逐层仲裁;label 协议、switch 的 matched 布尔、finally 覆盖 return,以及两个读代码读出来的真 bug。
JSVM2:变量提升与闭包,两阶段扫描与一道经典面试题
上一篇把骨架搭完了:visitor 按节点类型分发,Path 带着 scope 和 ctx 往下传,Scope 链管所有名字的来去。这篇讲这套骨架上长出来的第一个反直觉语义:变量提升。顺着它会碰到闭包,碰到那道 循环里 和 的面试题,最后还得坦白一件没做的事:TDZ。 提升不是挪代码,是先跑一遍声明 讲变量提升…
JSVM2:解释器的骨架,visitor、Path 与作用域链
上一篇说了为什么要自研,以及整体链路:源码经 @babel/parser 出 AST,然后交给解释器求值。这篇拆开解释器本身。它的中枢代码只有 5 行,真正花心思的是两个抽象:Path 和 Scope。前者向 Babel 借的,后者对应 ECMA-262 里的环境记录。这套结构的雏形在 [2020 年那篇综述](/p…
使用TS 开发 JS 虚拟机
背景 在我们的小程序&低代码平台中,有需要执行动态下发代码的诉求。世面上已知的一些 vm 没有完整通过 es5 或 es2015 测试用例的,无法在生产环境使用。因此需要自研一个 JSVM 引擎。 目前已放到 github 上 :jsvm 2 传送门。 目前除了 WithStatement 语句外,其他 es5 特性…
使用 完整react能力 开发小程序
最近这一年在小象负责移动端相关的架构工作,之前提到我们游戏基于 pixi 自研了一个游戏框架,成功的将 react 桥接到 pixi 上。这给了我很大的信息,开始思考是否能让 react 跑在任意平台上、 我们的小程序是一个电商业务比较复杂,可以微信搜索“美团买菜”体验一下,和 APP 的交互都是对齐的。这就导致这个…
小程序工程化-构建工具:重新定义小程序开发体验
MT内部已经广泛使用,目前已开源 详情参考官网: https://ximing.github.io/mpbuild/ Github: https://github.com/ximing/mpbuild 背景 在小程序开发的实践中发现传统构建工具在小程序场景下的水土不服。小程序有着独特的架构设计和运行机制,它既不是传统…
