问题标签 [chakra]
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.
javascript - 如何从 .js 代码中确定 JavaScript 引擎?
有没有一种方法可以使用 JavaScript 代码来了解 JavaScript 引擎是运行该代码的引擎?
我不想只获取 JavaScript 引擎的浏览器类型。
javascript - 这是 JavaScript 优化与否?
有人可以解释一下下面这两个功能之间的区别吗?
我想知道 JavaScript 引擎是否在这里进行了某种纳米优化。
vb6 - 如何在 VB6 主机中使用 jScript 9 功能
我想在 VB6 主机上使用 IE9(本机 json,...)中的新 JScript 功能。从我读到的(见http://blogs.msdn.com/b/jscript/archive/2009/04/17/versioning-language-features-in-jscript.aspx),我必须调用IActiveScriptProperty: :SetProperty 并将 SCRIPTPROP_INVOKEVERSIONING 设置为 2 (SCRIPTLANGUAGEVERSION_5_8)。因此,我已将接口添加到我的 odl 文件中:
在 VB6 主机中,我使用以下命令创建引擎:
在上一篇文章的最后一条评论中,Byron 说: “带有 SCRIPTPTOP_INVOKEVERSIONING 的 SetProperty 的未记录‘特征’是该值必须是 VT_I4 或 VT_I2 - 任何其他整数类型都将被视为无效而被拒绝。”
所以我将上面的代码修改为(VariantType属性来自http://www.xbeat.net/vbspeed/i_OpenODL.htm#VBVM6Lib):
注意:如果我不尝试设置 SCRIPTPROP_INVOKEVERSIONING 属性,引擎工作正常,如果我运行:ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion() 我得到“9.0.16457”,但我无法以原生 json 的形式访问新功能。
有任何想法吗?
谢谢!
javascript - 在 Windows RT 上,我的 JS 应用程序在启用调试的情况下运行良好,但否则会失败
- 应用程序在 x86 机器上运行良好
- 如果附加了调试器或在启用调试器的情况下运行(http://bit.ly/WO52kJ) ,则在 Surface 上按预期运行
- 但是当我在禁用调试器的情况下在 Surface 上启动应用程序时失败。
我试图通过将日志写入页面上的 div 来跟踪执行流程。我注意到一些函数调用没有按预期工作(例如,dojo.publish 的 3 个订阅者中只有 2 个被执行)。没有例外。该问题可以在每次运行时重现。
这看起来很奇怪!我已经尝试了很多事情,包括重置 Surface 以重新开始。行为没有变化。有没有人遇到过这个问题?JS 运行时是否存在任何已知问题?
javascript - 是否可以独立运行 IE9 或 IE10 Chakra JS 引擎?
我需要在不同的 JS 引擎上运行一些基准测试,需要测量时间、CPU 和内存使用情况。我想从命令行运行我的测试。找到了一些 V8 和 SpiderMonkey 的解决方案,有什么方法可以用 Chakra 做到这一点吗?
internet-explorer-9 - 使用 IE9 JS 引擎 (Chakra) 添加 SCRIPTITEM_CODEONLY 符号时出错
一段时间以来,我们一直在浏览器扩展 (BHO) 中使用旧的 JScript 引擎 (CLSID_JScript) 中的活动脚本,最近我们决定也支持新的 IE9 脚本引擎 (Chakra)。我们要做的一件事是使用选项向引擎添加符号以AddNamedItem
创建SCRIPTITEM_CODEONLY
我们自己的模块(命名空间)。不幸的是,我们无法让它与 Chakra 一起工作。即使是我们添加符号并立即检索其脚本调度的最简单的示例也会产生E_OUTOFMEMORY
错误。
GetScriptDispatch
调用返回错误。您可以在 Github 上查看整个示例。
我在所有方法上都设置了断点,IActiveScriptSite
唯一调用的是GetLCID
and OnStateChange
,所以不要认为站点实现是问题。
我查看了我能找到的每个示例,并尝试了我能想到的一切,包括SCRIPTSTATE_CONNECTED
手动设置引擎状态、实现它所支持的任何其他接口等。我什至尝试返回一个有效的LCID
. 似乎没有什么不同。
知道什么给出了吗?我假设这个基本示例应该在 Chakra 中工作。
javascript - Javascript 引擎和虚拟机有什么相似之处?
这是一个非常简单的问题,我似乎无法找到答案:
chromes V8 和 Internet Explorers Chakra(EI9+ 中)等 javascript 引擎在功能上是否类似于 Java 等语言的虚拟机?
c# - 使用 C# 在 Win 8.1 Chakra 中执行 JS 的失败最小示例
我正在尝试通过以下代码执行一小段 JS(利用来自 MSDN 的 Chakra Host 示例中的 Native 类):
问题是它返回一个“ScriptCompile”错误,没有我能够发现的其他详细信息。
有没有人能够透露我错过了什么/做的愚蠢/感到困惑?
stack-trace - IE11 控制台:增加堆栈跟踪深度
--js-flags="--stack-trace-limit <value>"
在 Chrome 中,您可以通过在运行时设置标志(使用)或通过控制台(使用)来增加堆栈跟踪深度Error.stackTraceLimit
,此处解释:https ://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
据我了解,这在 Firebug 中也是可能的,尽管我对该工具的复杂性不太熟悉。
IE11中是否对此有任何规定?我正在处理一个特定于 IE 的问题,堆栈跟踪并没有揭示超出我的库代码 (AngularJS) 的任何信息。增加堆栈跟踪深度可能会对我有所帮助。
谢谢!
javascript - setInterval 和 setTimeout 是如何工作的?
我陷入了尴尬的境地,
我用纯 JavaScript 工作了将近 3 年,我知道 JavaScript 是单线程语言,你可以使用setInterval
和setTimeout
函数来模拟异步执行,
但是当我想到它们如何工作时,我无法清楚地理解它。那么这些函数如何影响执行上下文呢?
我想在特定时间只运行代码的一部分,然后切换到另一部分。如果是这样,那么很多setInterval
orsetTimeout
调用会影响性能吗?