首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Google V8中添加一个新类?

如何在Google V8中添加一个新类?
EN

Stack Overflow用户
提问于 2012-12-18 09:18:34
回答 1查看 3.7K关注 0票数 10

我是Google V8和Javascript的新成员,我正在尝试使用C++向Javascript添加一个新的类。

我已经使用Webkit的V8绑定完成了一些工作,参考文献有:webkit idlv8 binding

现在,我想直接将它集成到V8引擎中,方法是修改V8的代码,而不是简单地使用V8的api进行扩展。换句话说,我希望使用相同的实现机制,在Javascript中添加一个与Array类型类似的新类。

我在互联网上搜索过,包括谷歌的文档,但我只看到了使用本机代码嵌入V8的指南。

我在哪里可以找到修改V8代码的指南?

或者在哪里可以找到关于V8设计架构的文档?

或任何人都可以描述V8如何在C++?中实现数组类型

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-18 11:37:19

首先,您很可能实际上可以使用v8 api来做您想做的任何事情。您可以使用它创建与内置对象行为基本相同的原型,还可以将C++函数调用绑定到JS函数调用。没有理由修改v8本身,除非您需要一些非常快的东西,或者检查或操作v8内部。例如,Chrome的DOM实现使用v8 API,而不是直接在v8中实现。嵌入器的指南实际上拥有创建“类”所需的所有信息(请记住,在JS中,它实际上是原型继承):https://developers.google.com/v8/embed#templates

这就是说,这里有一些很好的地方可以在源代码中查看,比如说,数组对象。我不确定是否有任何设计文档,你最好看一下源代码。

数组对象本身在这里:https://code.google.com/p/v8/source/browse/trunk/src/objects.h#8409

一些数组api函数是在这里实现的(许多函数使用与扩展相同的公共api):https://code.google.com/p/v8/source/browse/trunk/src/builtins.cc#511

一些数组api函数是在JavaScript:https://code.google.com/p/v8/source/browse/trunk/src/array.js中实现的。

搜索一下JSArray,你就会看到更多。请特别注意本机代码生成器中的位,因为如果您真的想利用在此级别上编写的某些自定义类型,您也需要编写代码来生成高效的机器代码,用于一组不同的体系结构.

编辑:看起来V8文档已经移动(并且比编写这个答案时更好),这里有一些指向有用文档的快速链接:

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

https://stackoverflow.com/questions/13929716

复制
相关文章

相似问题

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