embedded-v8相关内容
我一直把头发拉到这个上面.我正在 Ubuntu 12.04 64 位上开发.我创建了一个嵌入了 V8 的原生 Android 应用程序,但重新启动计算机后,它不再与 V8 链接!我尝试重新安装 ndk 并重新编译 V8,但无济于事.看起来链接器确实包含静态库,但没有在其中找到符号.我用nm检查,符号似乎在那里. 当我运行 ndk_build 时,我得到以下输出: $ ndk-build V
..
我正在为学校制作一个游戏引擎,我想使用 Google 的 V8 来允许在引擎中编写 JavaScript 脚本.引擎是使用Visual Studio 2013编写的,由于最终的游戏不能超过50MB,所以我想尽量减少对V8文件大小的影响. 在互联网上寻找如何使用 V8 做事,我遇到了一系列关于 V8 的教程,它带有一个用于 V8 的预编译 .lib 文件.然而,它已经四岁了.我假设自己构建一个
..
对于给定的 JavaScript 代码,是否可以访问 v8 引擎的 AST?我正在使用 V8 引擎开发 JavaScript 静态分析器. 解决方案 这已经很老了,但也许这个答案可以帮助那些偶然发现的人.答案是肯定的,假设您愿意修改 V8 并编译您自己的版本. 如果是这样,那么在 compiler.cc 中您会找到一个在整个 MakeFunctionInfo 中调用 MakeCode
..
请教 V8 专家.我将 V8 嵌入到我的一个项目中,并且遇到了模块化代码的问题.最简单的例子是编译和运行一个打印“Hello World!"的小脚本.来自 C++ 函数.工作版本如下: void testV8(const v8::FunctionCallbackInfo& args) {printf("你好世界!\n");}无效工作(){v8::Isolate*isolate = nullptr
..
我似乎无法弄清楚如何启动 V8.我有这个代码: if (!_V8Initialized){v8::V8::InitializeICU();v8::V8::InitializeExternalStartupData("x86\\");//(这加载没问题,我检查过)自动平台 = v8::platform::CreateDefaultPlatform();v8::V8::InitializePlatf
..
我正在编写一个NodeJS插件,其中使用了一个C库,该库可让您在某些事件下注册回调.触发回调后,我想调用NodeJS回调函数.问题是,在我的C回调函数中,尝试执行与V8相关的任何操作(例如创建HandleScope)时都会遇到分段错误. 在test.js中: ... myaddon.register(function(data) { console.log("data: " +
..
我是V8嵌入的新手,并且刚开始用V8库替换我当前的脚本语言.但是,我遇到了一些非常奇怪的问题(至少对我来说).有点像我是做自己正在做的事情的唯一人,我感觉自己在做愚蠢的事情. 我制作了一个包装器类,用于包装V8引擎函数并在构造包装器时构造引擎(尝试忽略低劣的变量名或愚蠢的样式): engine.h: namespace JSEngine { class Engine {
..
需要V8开发人员. 我注意到以下代码泄漏了映射内存(mmap,munmap),具体来说,cat /proc//maps中的映射区域数量持续增长并很快达到系统限制(/proc/sys/vm/max_map_count). void f() { auto platform = v8::platform::CreateDefaultPlatform(); v8::Isola
..
我有一个关于V8 6.7.240 GC行为和AddGCPrologueCallback/AddGCEpilogueCallback回调的小问题. 问题背后的一个小故事:我们使用V8引擎启动自定义JS代码,并且为了限制执行时间,我们有一个watchdog(带有isolate->TerminateExecution()调用的单独线程)来监视代码并在发生情况时将其杀死长时间运行,但与GC活动有关.
..
v8::ResourceConstraints类的定义如下: class V8EXPORT ResourceConstraints { public: ResourceConstraints(); int max_young_space_size() const { return max_young_space_size_; } void set_max_young_space
..
我想要一个独立的JavaScript库进行嵌入.我已经构建了V8,它可以正常工作,但是二进制文件需要两个“外部数据"文件.我不要这个文件. 我试图在没有“外部启动数据"的情况下构建V8.我试图在build.common.gypi和build/standalone.gypi中将v8_use_external_startup_data设置为0,但是make在某些时候报告失败. 我正在使用以
..
因此,我在 eventmachine 和因此,我做了一个小型基准测试,以查看将rubyracer与Ruby相比要慢得多,当我看到结果时,我感到震惊: user system total real V8: 0.060000 0.000000 0.060000 ( 0.059903) Ruby: 0.000000 0.
..
我是V8的新手,正在尝试在我的C ++和JS代码之间创建一些绑定.问题是我无法跨不同的Javascript函数访问全局Javascript变量.原因是因为每个Javascript函数都称为我不同的C ++函数.我想我的代码的问题是我正在每个C ++函数中创建一个新的本地上下文. 我的JS代码: var test = []; function f1() { var obj =
..
此刻,我正在尝试V8.我希望能够在一个线程中运行一些(可能是长时间运行的)javascript,然后能够随意从另一个线程“优雅地"终止执行. 我已经编写了这个简单的代码片段来测试Lockers的概念以及TerminateExecution的用法: void breaker( Isolate* isolate, int tid ) { getchar(); //wai
..
我想在使用v8引擎的嵌入式JavaScript应用程序中实现此功能. function myFunction1() { //do stuff } function myFunction2() { //do other stuff } myAddon.addCallback(myFunction1); myAddon.addCallback(myFunction2); myAd
..
我一直在研究v8源码,特别是在"mksnapshot"工具如何在v8二进制文件中包含本机javascript文件(runtime.js,json.js ...)的编译图像的同时,我注意到包括源代码(略微)的缩小版本.例如,在检查d8可执行文件的内容时,我看到以下代码段: var $JSON=global.JSON; function Revive(a,b,c){ var d=a[b]; i
..
正在寻找诸如HTML :: Mason(或Mason)之类的模板引擎,因此将源组件“编译"为perl代码的是什么,而不是perl-code会将“组件"“编译"为JavaScript代码,并在使用Javascript运行/执行它们之后:: V8 perl模块. 动机:寻找安全模板语言的解决方案,可以编辑用户而又不影响服务器安全性的. JavaScript是全功能语言,因此使用它可能比TT或类似
..
我正在为学校制作游戏引擎,我想使用Google的V8允许在引擎中编写JavaScript脚本.该引擎是使用Visual Studio 2013编写的,由于最终游戏不得超过50MB,因此我希望将V8文件大小的影响保持尽可能小. 在Internet上寻找如何使用V8的东西,我遇到了有关V8的一系列教程,它带有针对V8的预编译的.lib文件.但是,它已经四岁了.我以为自己构建一个更新的版本可以提高
..
V8中这些对象之间的区别/联系是什么?上下文是否“属于"隔离对象,反之亦然? 我知道单个隔离只能一次被一个线程访问(我猜这就是v8 :: Locker吗?). 我已经仔细阅读了文档,但似乎无法掌握这些概念-感谢您提供任何帮助! 解决方案 我确定以下内容是一种简化,但对我有用. 隔离是V8运行时的独立副本,包括堆管理器,垃圾收集器等.一次只能有一个线程访问给定的隔离,但是不
..
在Ubuntu上安装phpv8js时遇到了一些麻烦. 我已经确保安装了最新版本的libv8,并且具有必需的PHP版本,但是使用PECL安装失败. 这是输出: libtool: compile: g++ -I. -I/tmp/pear/temp/v8js -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootFyySRS/v8js-0.1.
..