embedded-v8相关内容

Android NDK链接V8静态库:找不到符号,但它们在那里

我一直把头发拉到这个上面.我正在 Ubuntu 12.04 64 位上开发.我创建了一个嵌入了 V8 的原生 Android 应用程序,但重新启动计算机后,它不再与 V8 链接!我尝试重新安装 ndk 并重新编译 V8,但无济于事.看起来链接器确实包含静态库,但没有在其中找到符号.我用nm检查,符号似乎在那里. 当我运行 ndk_build 时,我得到以下输出: $ ndk-build V ..
发布时间:2022-01-10 23:28:40 C/C++开发

如何为 Windows 编译尽可能小的 V8 库?

我正在为学校制作一个游戏引擎,我想使用 Google 的 V8 来允许在引擎中编写 JavaScript 脚本.引擎是使用Visual Studio 2013编写的,由于最终的游戏不能超过50MB,所以我想尽量减少对V8文件大小的影响. 在互联网上寻找如何使用 V8 做事,我遇到了一系列关于 V8 的教程,它带有一个用于 V8 的预编译 .lib 文件.然而,它已经四岁了.我假设自己构建一个 ..
发布时间:2021-12-31 14:05:50 其他开发

访问 V8 引擎的抽象语法树

对于给定的 JavaScript 代码,是否可以访问 v8 引擎的 AST?我正在使用 V8 引擎开发 JavaScript 静态分析器. 解决方案 这已经很老了,但也许这个答案可以帮助那些偶然发现的人.答案是肯定的,假设您愿意修改 V8 并编译您自己的版本. 如果是这样,那么在 compiler.cc 中您会找到一个在整个 MakeFunctionInfo 中调用 MakeCode ..

嵌入式 V8 上下文和脚本编译崩溃

请教 V8 专家.我将 V8 嵌入到我的一个项目中,并且遇到了模块化代码的问题.最简单的例子是编译和运行一个打印“Hello World!"的小脚本.来自 C++ 函数.工作版本如下: void testV8(const v8::FunctionCallbackInfo& args) {printf("你好世界!\n");}无效工作(){v8::Isolate*isolate = nullptr ..
发布时间:2021-09-15 20:29:26 C/C++开发

无法通过“回调"访问V8上下文功能

我正在编写一个NodeJS插件,其中使用了一个C库,该库可让您在某些事件下注册回调.触发回调后,我想调用NodeJS回调函数.问题是,在我的C回调函数中,尝试执行与V8相关的任何操作(例如创建HandleScope)时都会遇到分段错误. 在test.js中: ... myaddon.register(function(data) { console.log("data: " + ..
发布时间:2020-06-13 19:12:49 C/C++开发

V8 C ++嵌入问题

我是V8嵌入的新手,并且刚开始用V8库替换我当前的脚本语言.但是,我遇到了一些非常奇怪的问题(至少对我来说).有点像我是做自己正在做的事情的唯一人,我感觉自己在做愚蠢的事情. 我制作了一个包装器类,用于包装V8引擎函数并在构造包装器时构造引擎(尝试忽略低劣的变量名或愚蠢的样式): engine.h: namespace JSEngine { class Engine { ..
发布时间:2020-06-13 19:12:47 C/C++开发

V8隔离映射的内存泄漏

需要V8开发人员. 我注意到以下代码泄漏了映射内存(mmap,munmap),具体来说,cat /proc//maps中的映射区域数量持续增长并很快达到系统限制(/proc/sys/vm/max_map_count). void f() { auto platform = v8::platform::CreateDefaultPlatform(); v8::Isola ..
发布时间:2020-06-13 19:12:45 其他开发

V8垃圾收集器回调,用于测量GC活动

我有一个关于V8 6.7.240 GC行为和AddGCPrologueCallback/AddGCEpilogueCallback回调的小问题. 问题背后的一个小故事:我们使用V8引擎启动自定义JS代码,并且为了限制执行时间,我们有一个watchdog(带有isolate->TerminateExecution()调用的单独线程)来监视代码并在发生情况时将其杀死长时间运行,但与GC活动有关. ..
发布时间:2020-06-13 19:12:42 C/C++开发

v8 :: ResourceConstraints的语义?

v8::ResourceConstraints类的定义如下: class V8EXPORT ResourceConstraints { public: ResourceConstraints(); int max_young_space_size() const { return max_young_space_size_; } void set_max_young_space ..
发布时间:2020-06-13 19:12:38 其他开发

如何在没有“外部启动数据"的情况下构建V8?

我想要一个独立的JavaScript库进行嵌入.我已经构建了V8,它可以正常工作,但是二进制文件需要两个“外部数据"文件.我不要这个文件. 我试图在没有“外部启动数据"的情况下构建V8.我试图在build.common.gypi和build/standalone.gypi中将v8_use_external_startup_data设置为0,但是make在某些时候报告失败. 我正在使用以 ..
发布时间:2020-06-13 19:12:36 其他开发

如何在v8 Javascript中的多个函数中使用相同的上下文?

我是V8的新手,正在尝试在我的C ++和JS代码之间创建一些绑定.问题是我无法跨不同的Javascript函数访问全局Javascript变量.原因是因为每个Javascript函数都称为我不同的C ++函数.我想我的代码的问题是我正在每个C ++函数中创建一个新的本地上下文. 我的JS代码: var test = []; function f1() { var obj = ..
发布时间:2020-06-13 19:12:29 C/C++开发

在V8中使用TerminateExecution

此刻,我正在尝试V8.我希望能够在一个线程中运行一些(可能是长时间运行的)javascript,然后能够随意从另一个线程“优雅地"终止执行. 我已经编写了这个简单的代码片段来测试Lockers的概念以及TerminateExecution的用法: void breaker( Isolate* isolate, int tid ) { getchar(); //wai ..
发布时间:2020-06-13 19:12:25 其他开发

为什么v8将原生JavaScript的源代码保存在生成​​的二进制文件中?

我一直在研究v8源码,特别是在"mksnapshot"工具如何在v8二进制文件中包含本机javascript文件(runtime.js,json.js ...)的编译图像的同时,我注意到包括源代码(略微)的缩小版本.例如,在检查d8可执行文件的内容时,我看到以下代码段: var $JSON=global.JSON; function Revive(a,b,c){ var d=a[b]; i ..
发布时间:2020-06-13 19:12:19 前端开发

Perl:Javascript :: V8模板-来自perl

正在寻找诸如HTML :: Mason(或Mason)之类的模板引擎,因此将源组件“编译"为perl代码的是什么,而不是perl-code会将“组件"“编译"为JavaScript代码,并在使用Javascript运行/执行它们之后:: V8 perl模块. 动机:寻找安全模板语言的解决方案,可以编辑用户而又不影响服务器安全性的. JavaScript是全功能语言,因此使用它可能比TT或类似 ..
发布时间:2020-06-13 19:12:17 其他开发

如何为Windows编译最小的V8库?

我正在为学校制作游戏引擎,我想使用Google的V8允许在引擎中编写JavaScript脚本.该引擎是使用Visual Studio 2013编写的,由于最终游戏不得超过50MB,因此我希望将V8文件大小的影响保持尽可能小. 在Internet上寻找如何使用V8的东西,我遇到了有关V8的一系列教程,它带有针对V8的预编译的.lib文件.但是,它已经四岁了.我以为自己构建一个更新的版本可以提高 ..
发布时间:2020-06-13 19:12:15 其他开发

v8 :: Isolate和v8 :: Context之间到底有什么区别?

V8中这些对象之间的区别/联系是什么?上下文是否“属于"隔离对象,反之亦然? 我知道单个隔离只能一次被一个线程访问(我猜这就是v8 :: Locker吗?). 我已经仔细阅读了文档,但似乎无法掌握这些概念-感谢您提供任何帮助! 解决方案 我确定以下内容是一种简化,但对我有用. 隔离是V8运行时的独立副本,包括堆管理器,垃圾收集器等.一次只能有一个线程访问给定的隔离,但是不 ..
发布时间:2020-06-13 19:12:12 其他开发

在Ubuntu上安装PHPv8js

在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. ..
发布时间:2020-05-27 02:46:26 PHP