首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取JavaScript字节码

获取JavaScript字节码
EN

Stack Overflow用户
提问于 2011-11-28 22:08:11
回答 2查看 1.4K关注 0票数 1

我读到过Javascript源代码首先编译成中间表示(字节码)。然后使用jit将字节码编译为本机代码。所以我在我的linux机器上编译webkit,并希望获得源文件的字节码。但我不知道该怎么做?

如何查看/访问javascript解释器生成的中间字节码?

EN

回答 2

Stack Overflow用户

发布于 2017-08-18 11:05:20

如果您使用Chrome或Node,JS引擎V8会生成字节码。Safari也有类似的标志。

V8在2016年引入了字节码解释器Ignition。可以使用-- print -bytecode (Node8.3及更新版本)打印字节码。

代码语言:javascript
复制
$ node --print-bytecode incrementX.js -e 'function incrementX(obj) {return 1 + obj.x;} incrementX({x: 42});`
...
[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)

参见Understanding V8's Bytecode

票数 2
EN

Stack Overflow用户

发布于 2011-11-28 22:24:02

不,那是Java。

JavaScript和Java是两种完全不同的语言,尽管在名称上有相似之处。

直到最近,Javascript还是一种解释语言,但最近的浏览器版本以这样或那样的方式编译Javascript。如何做到这一点是完全不同的浏览器与浏览器。

注意:解释器不产生字节码,它执行源代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8297016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档