问题标签 [graaljs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 你可以远程调试在 Graal JVM 中运行的 Graal.js 脚本吗?
我在 Graal JVM (graalvm-ce-java8-19.3.0) 上运行 Java 程序,在该程序中我通过 Graal.js 引擎运行 JS 脚本。我想为那个 JS 脚本(不是 Java 程序)配置远程调试连接。我已经发现Graal通过 Chrome DevTools 协议/标准支持这种调试。
文档解释了如何使用独立的 Graal.js 解释器,但它也说你可以在 JVM 中使用相同的选项,方法是在它们前面加上-Dpolyglot
.
因此,--inspect
您不需要使用-Dpolyglot.inspect
:
现在我尝试通过设置将其用于远程调试,-Dpolyglot.inspect=exampleHost:9229
其中 exampleHost 解析为我的外部 ip。不幸的是,这个设置会阻止 Graal.js 引擎正确初始化。没有太多关于真正错误的迹象,只有 stderr 上的这个消息:
这是否意味着不支持远程配置?这里有什么问题?
java - Graal.js 导入模块导致 org.graalvm.polyglot.PolyglotException: SyntaxError: Expected an operand but found import
我正在尝试使用 Grall.js 的实验性 ES 模块支持。我使用以下脚本: ES 模块“lib”
和主脚本“脚本”
我使用 graalvm-ce-19.2.1 并通过JSR 223在 JVM 中使用 Polyglot来运行主脚本。它不会尝试从磁盘上的某个位置加载 lib,而是抛出:
怎么了?
graalvm - 使用 Graal 时如何配置 js 节点堆栈大小?
当我尝试在 js 中使用深度递归函数时遇到问题,我得到异常(RangeError:超出最大调用堆栈大小)。这个功能完美的工作了 Graal。只有在调用 polyglot 时才会复制它Context.execute()
。第一次调用完成无异常但其他抛出。我使用 docker 和 graaljdk 图像oracle/graalvm-ce:20.0.0-java11
并为所有线程使用一个引擎并为每个线程创建上下文。我可以通过 graal 选项或其他方式增加节点堆栈大小吗?
javascript - 我应该如何从正确编码的 GraalJS 脚本引擎获取脚本输出?
我们通过执行动态生成的 JavaScript 代码在 Scala 程序中处理 JSON。当使用包含的 Nashorn 脚本引擎时,这在 Java 8 中运行良好。
我们现在已经切换到 Java 13。不再包含 Nashorn,因此我们包含了 GraalJS。它工作正常,除了在输出中处理错误的国际字符。看起来输出被转换为 UTF-8 两次。
这是一个显示问题的简短示例:
结果是:Test ᅢᆬᅢ내ᄊ !
我做错了吗,或者这是 GraalJSScriptEngine 中的错误?我找不到任何文件。
注意:我已经通过使用我自己的存储原始字节的 StringWriter 暂时解决了这个问题,然后将它们作为 UTF-8 再次读取,但感觉不像这样做的方法......
graalvm - GraalJs - 调用 java 对象的构造函数
我想使用 graal js 为我的应用程序提供一些脚本扩展
如何在 javascript 端初始化一个新的 java 对象?
以下代码抛出异常
运行 graalvm-ce-java11 19.3.2
graalvm - 节点调用 Java 多语言应用程序所需的 Graal VM 组件
我计划将 GraalVM合并两个(一个使用 Node 的服务和另一个基于 Java 的服务),其中 Node 作为调用 Java 中的类/结构的主要入口点语言。我正在阅读有关 GraalVM 的信息,但无法清楚地找到以下信息。如果有人可以帮助我,那就太好了(或者指出我是否遗漏/忽略了某些东西)
上述用例所需的最低 GraalVM 组件是什么?我知道 Graal VM 有核心和可选组件。我们是否需要整个 GraalVM,包括此用例的热点 VM,或者仅以下组件就足够了?(请添加/更正我缺少一些组件)。我更喜欢使用 OpenJDK8 作为我的 JVM
- GraalJS
- GraalSDK
- 松露
纠正我如果我错了——我对提出上述组件的理解是——GraalJS 包含通过松露实现的节点/js 运行时并支持多语言,并且具有包含多语言 api 的节点模块。GraalSDK - 包含 Java 的多语言 API。Truffle 具有将 JS 转换为在 JVM 上运行的字节码的逻辑
是否有关于每个模块如何协同工作的明确文档? 我正在寻找一个小/抽象图/流程图,它告诉 GraalJS 、 GraalSDK 和 Truffle 以及底层 JVM 如何协同工作以实现多语言。这有助于进一步了解和确定我的用例需要哪些组件
谢谢
javascript - 使用 Symbol.iterator 访问 ProxyObject 的迭代器
我创建了一个实现 Graal ProxyObject 接口的 Java 类。hasMember(String key)
我可以通过和方法访问该类的所有方法和属性getMember(String key)
。但是如果我使用类似的东西
我得到一个例外:
问题是 myObject[Symbol.iterator] 返回未定义。如何通过 Symbol 访问我的代理对象的成员...?
java - GraalJSEngineFactory 无法实例化
我是格拉尔的新手。我指的是这个文件。我正在使用 JDK 11。
下面是我试图运行的代码:
正在使用的罐子:
在尝试执行上面的代码时,我遇到了以下错误:
ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.oracle.truffle.js.scriptengine.GraalJSEngineFactory 无法实例化
我尝试使用以下 VM 选项运行代码:
它仍然没有解决问题。
javascript - Graaljs 脚本引擎评估 java 脚本字符串条件
我正在使用 jdk11,graal.js 脚本引擎。
我们得到两个 json 字符串消息,一个有规则/条件(jsRules),另一个有消息。如果 message 中的值满足 jsRules 中的条件,则它应该评估为 1 else 0 。
因此,例如在下面的代码中,字符串“消息”code: CU_USER
因此具有 jsRules 条件
应该已经满足,因此下面的 eval 应该打印 1 ,但它给出了 0。请解释导致这种行为的原因以及如何获得所需的行为?.
javascript - Stencil.js:组件级服务器端渲染
模板文档提出了一种在页面级别上工作的服务器端渲染方法。它创建了一个完整的 hydra 应用程序,其中包含在单个 index.js 文件中创建的所有组件,该文件使用整个 HTML 源页面作为输入。
有没有办法逐个组件地对 Web 组件进行服务器端渲染?我需要携带的基本思想是通过 graaljs 在 Java 后端执行 SSR。上面的加载时间非常长,初始油漆需要 30 秒,进一步加载需要 8-9 秒。输入页面可以复杂到 150kB。