Fix spidermonkey AST (ESTree) export and import, Array holes

Fixes: #1156 #1161

Also add test to exercise Uglify after spidermonkey export/import of itself.
This commit is contained in:
kzc
2016-06-23 12:54:38 -04:00
committed by Richard van Velzen
parent 3a7d53f3cf
commit 335b72df03
3 changed files with 50 additions and 2 deletions

View File

@@ -94,6 +94,15 @@
return new AST_ObjectGetter(args);
}
},
ArrayExpression: function(M) {
return new AST_Array({
start : my_start_token(M),
end : my_end_token(M),
elements : M.elements.map(function(elem){
return elem === null ? new AST_Hole() : from_moz(elem);
})
});
},
ObjectExpression: function(M) {
return new AST_Object({
start : my_start_token(M),
@@ -206,7 +215,6 @@
map("CatchClause", AST_Catch, "param>argname, body%body");
map("ThisExpression", AST_This);
map("ArrayExpression", AST_Array, "elements@elements");
map("FunctionExpression", AST_Function, "id>name, params@argnames, body%body");
map("BinaryExpression", AST_Binary, "operator=operator, left>left, right>right");
map("LogicalExpression", AST_Binary, "operator=operator, left>left, right>right");
@@ -302,6 +310,13 @@
};
});
def_to_moz(AST_Array, function To_Moz_ArrayExpression(M) {
return {
type: "ArrayExpression",
elements: M.elements.map(to_moz)
};
});
def_to_moz(AST_Object, function To_Moz_ObjectExpression(M) {
return {
type: "ObjectExpression",