奇怪的JavaScript赋值与逻辑或

时间:2012-02-28 07:07:17

标签: javascript parsing

我正在构建一个JavaScript解析器,并在第496行的jQuery上测试时遇到错误:

isArray: Array.isArray || function( obj ) {
    return jQuery.type(obj) === "array";
},

我把它简化为:

a = b || function() {}

这是有效的ECMA-262还是从那时起添加的功能?无论哪种方式,我如何用解析器表达它?

我的赋值表达式的抽象语法树是:

data Assignment
    = CondExpr        CondExpr
    | Assign          LeftExpr AssignOp Assignment 
    | AssignFuncDecl  FuncDecl

这不支持上述格式的作业。

如果需要,我可以更多地解释我的AST。感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:2)

你应该寻找“ecma bnf”。这是链接的one