Fixed RegExp literal in mozilla AST generation/output and added a --dump-spidermonkey-ast flag

This commit is contained in:
kzc
2015-11-01 01:02:52 -04:00
parent bd0ae6569f
commit 83db98ad3b
2 changed files with 39 additions and 20 deletions

View File

@@ -146,7 +146,7 @@
case "boolean":
return new (val ? AST_True : AST_False)(args);
default:
args.value = val;
args.value = M.regex && M.raw ? M.raw : val;
return new AST_RegExp(args);
}
},
@@ -334,6 +334,19 @@
};
});
def_to_moz(AST_RegExp, function To_Moz_Literal(M) {
var value = M.value;
return {
type: "Literal",
value: value,
raw: value.toString(),
regex: {
pattern: value.source,
flags: value.toString().match(/[gimuy]*$/)[0]
}
};
});
def_to_moz(AST_Constant, function To_Moz_Literal(M) {
var value = M.value;
if (typeof value === 'number' && (value < 0 || (value === 0 && 1 / value < 0))) {