fix corner case in evaluate (#5729)

fixes #5728
This commit is contained in:
Alex Lam S.L
2022-11-03 04:25:48 +00:00
committed by GitHub
parent 8d28052182
commit 2b1c321ac8
3 changed files with 19 additions and 1 deletions

View File

@@ -1783,6 +1783,9 @@ function OutputStream(options) {
output.print(self.strings[i]);
output.print("`");
});
DEFPRINT(AST_BigInt, function(output) {
output.print(this.value + "n");
});
DEFPRINT(AST_Constant, function(output) {
output.print("" + this.value);
});

View File

@@ -391,7 +391,8 @@ function tokenizer($TEXT, filename, html5_comments, shebang) {
var valid = parse_js_number(num);
if (isNaN(valid)) parse_error("Invalid syntax: " + num);
if (has_dot || has_e || peek() != "n") return token("num", valid);
return token("bigint", num.toLowerCase() + next());
next();
return token("bigint", num.toLowerCase());
}
function read_escaped_char(in_string) {

View File

@@ -90,3 +90,17 @@ issue_4801: {
expect_stdout: "PASS"
node_version: ">=10.4.0"
}
issue_5728: {
options = {
evaluate: true,
}
input: {
console.log("" + 4n + 2);
}
expect: {
console.log("42");
}
expect_stdout: "42"
node_version: ">=10.4.0"
}