Fix Mozilla AST import of arrays with holes
This commit is contained in:
parent
5bf617ebde
commit
a1001819bb
|
|
@ -163,6 +163,20 @@
|
||||||
end : my_end_token(M),
|
end : my_end_token(M),
|
||||||
name : M.name
|
name : M.name
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
ArrayExpression: function (M) {
|
||||||
|
var start = my_start_token(M);
|
||||||
|
var end = my_end_token(M);
|
||||||
|
return new AST_Array({
|
||||||
|
start: start,
|
||||||
|
end: end,
|
||||||
|
elements: M.elements.map(function (E) {
|
||||||
|
return E ? from_moz(E) : new AST_Hole({
|
||||||
|
start: start,
|
||||||
|
end: end
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -199,7 +213,6 @@
|
||||||
map("CatchClause", AST_Catch, "param>argname, body%body");
|
map("CatchClause", AST_Catch, "param>argname, body%body");
|
||||||
|
|
||||||
map("ThisExpression", AST_This);
|
map("ThisExpression", AST_This);
|
||||||
map("ArrayExpression", AST_Array, "elements@elements");
|
|
||||||
map("FunctionExpression", AST_Function, "id>name, params@argnames, body%body");
|
map("FunctionExpression", AST_Function, "id>name, params@argnames, body%body");
|
||||||
map("BinaryExpression", AST_Binary, "operator=operator, left>left, right>right");
|
map("BinaryExpression", AST_Binary, "operator=operator, left>left, right>right");
|
||||||
map("LogicalExpression", AST_Binary, "operator=operator, left>left, right>right");
|
map("LogicalExpression", AST_Binary, "operator=operator, left>left, right>right");
|
||||||
|
|
@ -208,6 +221,13 @@
|
||||||
map("NewExpression", AST_New, "callee>expression, arguments@args");
|
map("NewExpression", AST_New, "callee>expression, arguments@args");
|
||||||
map("CallExpression", AST_Call, "callee>expression, arguments@args");
|
map("CallExpression", AST_Call, "callee>expression, arguments@args");
|
||||||
|
|
||||||
|
def_to_moz(AST_Array, function To_Moz_ArrayExpression(M) {
|
||||||
|
return {
|
||||||
|
type: "ArrayExpression",
|
||||||
|
elements: M.elements.map(to_moz)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
def_to_moz(AST_Directive, function To_Moz_Directive(M) {
|
def_to_moz(AST_Directive, function To_Moz_Directive(M) {
|
||||||
return {
|
return {
|
||||||
type: "ExpressionStatement",
|
type: "ExpressionStatement",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user