问题标签 [ecma262]

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 回答
191 浏览

c# - 如何提高我的 ECMAScript 实现的递归能力?

经过一些重新测试后,我发现我的实现无法处理很多递归。虽然在 Firefox 中运行了一些测试后,我发现这可能比我最初想象的更常见。我相信基本问题是我的实现需要 3 次调用才能进行函数调用。第一次调用是对一个名为的方法进行的,该方法Call确保调用是对一个可调用对象并获取任何引用的参数的值。第二次调用一个名为的方法,该方法Call定义在ICallable界面。此方法创建新的执行上下文并构建 lambda 表达式(如果尚未创建)。最后调用函数对象封装的 lambda。显然,进行函数调用非常繁重,但我确信通过一些调整,我可以在使用此实现时使递归成为一个可行的工具。

0 投票
2 回答
11171 浏览

javascript - Javascript IN 运算符兼容性

有人可以告诉我 IN 运算符可用的 ECMA 版本以及哪些浏览器(版本)支持它吗?

解释:

IN 运算符可以像下面这样使用:

0 投票
1 回答
110 浏览

c# - 如何有效地测试脚本引擎?

我一直在研究 ECMAScript 实现,目前正在完善该项目。作为其中的一部分,我一直在编写如下测试:

问题是这个测试和类似的测试有太多的失败点,几乎不值得。似乎我的努力会更好地用于减少模块之间的耦合。要编写一个真正的单元测试,我必须假设如下:

这样做需要我编写数千个测试,这似乎又不值得。

0 投票
1 回答
290 浏览

javascript - 为什么 ECMAScript RegExp 文法的 Alternative 符号是左递归的?

我一生都无法弄清楚为什么 Alternative 是递归的。它真的给我的解析器带来了麻烦。

这是规范的语义部分中的一个注释,并不完全清楚。也许一旦我理解了这一点,推理就会被揭示出来?

注意 连续术语尝试同时匹配输入字符串的连续部分。如果左边的 Alternative、右边的 Term 和正则表达式的 sequel 都有选择点,则 sequel 中的所有选择都尝试过,然后再继续 right Term 中的下一个选择,并且 right Term 中的所有选择都尝试过继续左侧备选方案中的下一个选择。

什么样的解析器可以正确处理左递归语法?

0 投票
4 回答
573 浏览

javascript - JavaScript / ECMA的许多名称

我正在查找 JavaScript 的更新函数并找到了 ECMAScript/ECMA 5。

因为我从未听说过它,所以我对其进行了更多研究,发现它以不同名称的形式出现,例如:

从我读到的内容看来,虽然正在起草 JavaScript 的较新实现,但它被称为 ECMA-262 版本 {edition_number} 或 {name}。

我知道,如果是 ECMAScript 的实现,每一个都是方言,所以如果没有稍微不同的方式,它会以相同的方式工作。

JavaScript 和 ECMAScript 有什么不同,还是只是名称不同?

0 投票
2 回答
214 浏览

c# - 如何优化“toExponential”算法的实现以提高精度?

我觉得我的实现有点幼稚。注意具有+/- 0.0001的相当小的精度的变量min。如果我进一步提高精度,代码就太慢了。max

算法

替代文字 http://img35.imageshack.us/img35/2060/toexponential.jpg

代码

最终版本

我发誓,当我最初写这篇文章时,一定有人用特别大的锤子敲了我的后背……

0 投票
5 回答
14081 浏览

c# - Why does "dtoa.c" contain so much code?

I'll be the first to admit that my overall knowledge of low level programming is a bit sparse. I understand many of the core concepts but I do not use them on a regular basis. That being said I was absolutely astounded at how much code was needed for dtoa.c.

For the past couple months I have been working on an ECMAScript implementation in C# and I've been slowing filling in the holes in my engine. Last night I started working on Number.prototype.toString which is described in section 15.7.4.2 of the ECMAScript specification (pdf). In section 9.8.1, NOTE 3 offers a link to dtoa.c but I was looking for a challenge so I waited to view it. The following is what I came up with.

Can anyone with more experience in low level programming explain why dtoa.c has roughly 40 times as much code? I just cannot imagine C# being that much more productive.

0 投票
1 回答
257 浏览

javascript - NullLiteral 如何以树的形式表示?

根据第7.8.1节中的ECMAScript 规范, a定义如下:NullLiteral

我想了解的是,当 aNullLiteral包含在第7.6.17.8节中的以下产品中时,它是如何以树形表示的。

我对它的外观的最佳猜测是:

不过,这对我来说似乎不正确。

笔记

根据我的研究,似乎很少有编译器真正从语言语法生成 CST。我当然可以理解为什么,但这对我来说是一个学习练习,所以我想在我转向更专业的解析方法(例如使用解析器生成器)之前解决这个问题。

0 投票
3 回答
3509 浏览

javascript - 用于 ECMAScript-262 的 IDE,用于 node.js/V8 的 IDE 执行/调试

我目前使用 Eclipse 作为其他语言的 IDE,而且我习惯于不必离开 IDE 做任何事情 - 但是我真的很难为纯 ECMAScript-262 找到相同或类似的设置。

澄清一下,我不是在寻找 DOM 支持、jquery、HTML 或类似的东西,最好只是一个内置 ECMAScript-262 支持(pref node.js)的 IDE(调试不重要),这样我就可以简单地运行我的代码IDE。

有任何想法吗?

ps:请不要推荐aptana。

0 投票
2 回答
212 浏览

c# - 这种技术叫什么名字?

我刚刚为我的 ECMAScript 实现编写了一个日期解析器。以前我写过一个正则表达式编译器,规范描述过程的方式给我留下了深刻的印象。本质上,输入通过一系列测试字符串的每个部分的延续传递。我的日期解析器松散地基于这个想法,我真的很想知道它叫什么。

注意:我只留下了解析器的核心以减少噪音。