node.js - 生成 v8 的字节码时会丢失常量池内容
问题描述
这是执行'node --print-bytecode --print-bytecode-filter=incrementX index.js > code.txt'生成的输出。它丢失了常量池内容。只有池大小。我在Node中测试过。 js 版本 v8.3.0 和 v14.2.0,它们都有相同的输出。我尝试执行 'node --print-bytecode --print-bytecode-filter=incrementX index.js > code.txt v8_enable_object_print = true' ,但它没有用。
[generating bytecode for function: incrementX]
Parameter count 2
Frame size 8
81 E> 000003FC1A1C4316 @ 0 : 93 StackCheck
91 S> 000003FC1A1C4317 @ 1 : 03 01 LdaSmi [1]
000003FC1A1C4319 @ 3 : 1f fa Star r0
105 E> 000003FC1A1C431B @ 5 : 21 02 00 03 LdaNamedProperty a0, [0], [3]
100 E> 000003FC1A1C431F @ 9 : 2c fa 05 Add r0, [5]
110 S> 000003FC1A1C4322 @ 12 : 97 Return
Constant pool (size = 1)
Handler Table (size = 16)
这是有内容的例子。
[generating bytecode for function: incrementX]
Parameter count 2
Frame size 8
12 E> 0x2ddf8802cf6e @ StackCheck
19 S> 0x2ddf8802cf6f @ LdaSmi [1]
0x2ddf8802cf71 @ Star r0
34 E> 0x2ddf8802cf73 @ LdaNamedProperty a0, [0], [4]
28 E> 0x2ddf8802cf77 @ Add r0, [6]
36 S> 0x2ddf8802cf7a @ Return
Constant pool (size = 1)
0x2ddf8802cf21: [FixedArray] in OldSpace
- map = 0x2ddfb2d02309 <Map(HOLEY_ELEMENTS)>
- length: 1
0: 0x2ddf8db91611 <String[1]: x>
Handler Table (size = 16)
我在网上找了很久的答案。但是没有用。请帮助或尝试提供一些想法如何实现这一目标。
解决方案
推荐阅读
- scrapy - 在 javascript 中跟踪 url - Scrapy Splash
- firebase - 首次启动时从远程配置 Firebase 获取 0 而不是 #ffffff -React-native-
- c# - Cant bind RouteValueDictionary as HtmlAttributes to EditorFor
- ssl - 即使禁用验证,客户端也无法验证 SSL 证书
- jquery - 单击时如何将折叠按钮移至底部?
- javascript - 模态组件内的工具提示定位
- android - 为什么 Braintree 支付插件不起作用?
- karate - 空手道:试图让全局标题工作
- mysql - 计算两个查询的平均值
- windows - Wingdings 字体,某些字符未正确显示。显示为框