问题标签 [jint]

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.

0 投票
1 回答
978 浏览

javascript - 在 Jint 中使用第三方 js 库

我正在开发一项功能,其中需要在 ASP.Net 应用程序的上下文中在服务器端执行从数据库中检索的用户定义、匿名、javascript 函数。

为此,我正在评估 Jint(来自 NuGet 的最新版本)。我已经能够运行执行基本操作并返回值的函数,而不会出现以下问题。

我的问题是 Jint 是否有助于执行使用第三方库(如 lodash)的 javascript 函数?如果是这样,我将如何让 Jint 引擎意识到它(即第三方库)?

一个例子是执行以下函数。

提前非常感谢。

0 投票
0 回答
370 浏览

javascript - 在 Jint 中使用 Promises\A+ polyfill 库,我有什么替代 setTimeout 的方法?

我正在使用托管在Jint引擎中的 es6 Promises polyfill 库( es6-promise ),并且在大多数情况下,它运行良好。

为了让它工作,我需要提供一个setTimeout实现,我的灵感来自how-to-create-timer-on-jint-javascript-side

然而,这种setTimeout实现的使用并非完美无缺,因为有时 .NET 计时器会在 Promise 库完成其构建要回调的 Promise 的工作之前触发回调。

我必须解决这个特定问题的一种补救措施是延迟setTimeout回调的实现及其执行;给图书馆更多的时间来完成它的工作。然而,随着我的 javascript 的复杂性增加,我发现自己增加了延迟,我正在寻找一个可靠的替代方案。

碰巧这个库本身就关心替代品。setTimeout只有在找不到其他替代方案时才考虑 使用它: process.nextTick()for node; BrowserMutationObserver对于 webkit;vertxTimer(对于Java?);MessageChannel对于网络工作者。

我的问题是,Jint(Jint 是否可以)公开任何类似于这些概念的东西,允许我在下一次事件循环时执行回调并保持同步,而不是异步调用 .NET 计时器?

0 投票
3 回答
2251 浏览

c# - 如何在 Jint 解释器中解析 javascript 代码?

我想确保 javascript 代码是有效的语法:

0 投票
1 回答
522 浏览

wpf - JINT 是否支持 TypeScript

我们需要编写 Java 脚本函数并使用 Jint 从 WPF 应用程序调用它们。

我们想转向 Typescript,因为它是 JavaScript 的超集,主要提供可选的静态类型、类和接口。

是否可以在 Jint 中使用 TypeScript 而不是 javascript?如果是这样,会不会有任何挑战?

提前致谢。

0 投票
1 回答
988 浏览

javascript - C# Jint Set value to javascript variable

Need to assign value to javascript variabile

in this example in need to return value.

1° First i register a simple function

In this case, i try to return a value from C# function but after execute the metod, on the screen i see "null" value how to?

anyone have a idea?

0 投票
1 回答
864 浏览

c# - 从 JINT 中的 Javascript 回调传递 JSON

我有一个库,允许开发人员通过 JavaScript 扩展业务规则触发器。基本上,有一个函数允许开发人员(在 JavaScript 中)订阅事件并将委托作为“发生这种情况时给我打电话”传递。

我能够成功地做到这一点,但是当函数尝试将 JSON 或 JavaScript 对象传回 C# 层时遇到了障碍。

基本上像这个单元测试这样的代码功能:

我希望 C# 变量“结果”可以有一个 JsValue 或其他包含数据的对象,但是该方法抛出异常:必须在最后一行实现 IConvertable。

我可以验证“回调”是否设置为适当类型的委托: Jint.Native.JsValue lambda_method(System.Runtime.CompilerServices.Closure, System.String)}

如果我传回 NULL,我就没有问题。我敢肯定有一些微小的(一旦我弄清楚了)丢失了一块......

0 投票
0 回答
147 浏览

c# - jint 如何减慢它调用的纯 clr 代码

我最终将其简化为一个非常简单的测试(来自一个巨大的 500,000 行系统)。当我运行这个测试应用程序时

我明白了

请注意,唯一的区别是第一个 Foo 调用是由 jint 调用的,第二个是直接调用的。Foo 中的循环没有涉及到 jint/js/ 等。当通过 jint 调用时,运行代码需要 2 到 3 倍的时间!

感觉就像 jint 在环境中插入了一些东西,当它在堆栈中时会减慢速度,但我看不到是什么。它有一些 CAS 调用,我把它们拿出来了,没有任何区别。我难住了。

感觉就像是 CAS 的东西,但我无法让它表现得始终如一。

0 投票
1 回答
917 浏览

javascript - 使用 jint 从 c# 中使用 d3 调用 javascript

我目前正在做一个项目,我们需要根据一些输入数据生成一些 SVG。目前,所有这些 SVG 生成都是使用 d3 库在 javascript 中实现的。请注意,我的目标是能够重用此逻辑,而不是全部实现。

我的问题是我希望能够从 C# 调用这个 javascript。

我尝试过使用 PhantomJS 并且能够生成 SVG 但我不满意,因为

  • 每次我想调用 javascript 它都会启动一个新进程,我注意到它使用了大量内存(在我的情况下,我看到 100 mb 在我的情况下太多了)
  • 好像有点不稳定。我遇到过一些过程只是挂起的情况
  • 开发(在 javascript 方面)非常令人沮丧,因为它很难调试

因为我对 PhantomJS 不满意,所以我也尝试过使用 jint,这看起来非常好用。不幸的是,我还没有设法让一个工作示例启动并运行。目前我正在使用 AngleSharp 来提供 DOM,以便 D3 有一个地方来写入它的数据。这给了我以下示例:

问题是行 var res = jintEngine.Invoke("testFunc").ToObject(); 抛出异常。

异常截图

如果我尝试更换线路

那么该函数就可以毫无例外地运行。通过玩一点逻辑,我得出的结论是 .append(\"span\") 导致异常。

我有点卡住了,所以我希望有人可能有一个想法,可以为我指明正确的方向。

0 投票
1 回答
290 浏览

javascript - CSharp 中的 JavaScript“打包”函数

我有一个(p,a,c,k,e,d)来自 JavaScript 的混淆函数。

我试图用来jint解释和获取上面的值,function但是当我执行其中的语句时,jint engine它会抛出一个异常jwplayer is not defined

我知道为什么会抛出异常,但我只想得到p上面的值。但是jint运行整个函数,然后以一个不存在的空函数结束,当它尝试运行它时,会引发异常。

我只希望它返回字符串中的值,并且它不应该进一步运行它。我已经尝试搜索它以寻找答案,但到目前为止一无所获。
我正在使用以下代码:

我在这里缺少什么吗?如果有人可以对此有所了解。这将不胜感激。谢谢

0 投票
1 回答
1074 浏览

javascript - 使用jint解码Jsfuck

我正在尝试使用 jint 来解码 jsfuck,并以这个项目为基础:https://github.com/enkhee-Osiris/Decoder-JSFuck(这是我发现的唯一一个可以正确解码 jsfuck 的) . 以下 c# 无法正常工作:

我收到以下异常:Line 2: Unexpected token ILLEGAL