小编Eki*_*kim的帖子

什么是Gecko的Javascript解释器引擎语义?

编辑

考虑以下关于参考ECMAScript语言规范答案响应- 11.13.2化合物分配

考虑为什么这些,

javascript:
   o="";  o = o + (o+=1)    ; alert(o);
   o="";  o =     (o+=1) + o; alert(o);
Run Code Online (Sandbox Code Playgroud)

不一样.从左到右的脚本评估存在时间语义问题(参考:ECMA规范. - 加法运算符).一个结果是+操作员不一定是可交换的.

这可以通过以下方式看出:

javascript:
   o=1;  o = o + (o+=1)    ; alert(o);
   o=1;  o =     (o+=1) + o; alert(o);
Run Code Online (Sandbox Code Playgroud)

要么

javascript:
   o=" _ ";  o = o + (o+=1)    ; alert(o);
   o=" _ ";  o =     (o+=1) + o; alert(o);
Run Code Online (Sandbox Code Playgroud)

懒惰的评估范例,由我错误地和不恰当地使用从而产生下面的问题,也是我个人工作方式的一个不好的属性.


原帖

以下考虑因素可能已经得到解决,但似乎没有.如果是这样,是否可以提供与讨论的链接?

Gecko Javascript运行时引擎的正式指称语义是一个谜.经验测试令人筋疲力尽,无法详尽无遗.

  • 是否有可用的权威形式规范或官方参考,明确定义Gecko如何解释Javascript?

参考文献ECMAScript语言规范似乎不够,但是为这些脚本的混合提供了信任,例如, …

javascript javascript-engine formal-semantics denotational-semantics

8
推荐指数
1
解决办法
854
查看次数