ast还原ob3-拆分对象的合并

目标:
请添加图片描述

3.1 拿到重新赋值的语句

首先考虑的是谁被重新赋值,就是那个var _0xxxxxx = { xxx: xxx}有可能会被重新赋值,所以先来对这个赋值语句来进行遍历:
请添加图片描述
由此可以拿到可能被重新赋值的变量名,然后对变量名进行绑定拿到所有的引用值:
请添加图片描述
所以下一步就是拿到我们想要的重新赋值的语句:
请添加图片描述
拿到赋值语句之后拿到左边的那个变量名,将所有引用了这个变量名的所有语句全部变成被重新赋值的变量名,然后就可以将这个赋值语句给删除了:
请添加图片描述
将赋值语句改完之后就可以进行分散对象的合并了

3.2 进行分散对象的合并

这一步就很简单了,只需要对path作用域里的赋值语句进行遍历,如果遍历(_path)的左边的变量名与path遍历的变量名一致就说名匹配成功,匹配成功之后就可以将其写入到path的值数组里面了
请添加图片描述
最后保存的结果:
请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值