minor clean-ups (#5282)

This commit is contained in:
Alex Lam S.L
2022-01-10 05:02:26 +00:00
committed by GitHub
parent 4b949f6686
commit caaa753861
7 changed files with 30 additions and 17 deletions

View File

@@ -116,9 +116,7 @@ function Compressor(options, false_by_default) {
var global_defs = this.options["global_defs"];
if (typeof global_defs == "object") for (var key in global_defs) {
if (/^@/.test(key) && HOP(global_defs, key)) {
global_defs[key.slice(1)] = parse(global_defs[key], {
expression: true
});
global_defs[key.slice(1)] = parse(global_defs[key], { expression: true });
}
}
if (this.options["inline"] === true) this.options["inline"] = 4;
@@ -4917,7 +4915,7 @@ Compressor.prototype.compress = function(node) {
return result;
function decimals(operand) {
var match = /(\.[0-9]*)?(e.+)?$/.exec(+operand);
var match = /(\.[0-9]*)?(e[^e]+)?$/.exec(+operand);
return (match[1] || ".").length - 1 - (match[2] || "").slice(1);
}
});
@@ -7862,7 +7860,7 @@ Compressor.prototype.compress = function(node) {
s = s.parent_scope;
} while (s && s !== this);
});
prefix = prefix.replace(/(?:^[^a-z_$]|[^a-z0-9_$])/ig, "_");
prefix = prefix.replace(/^[^a-z_$]|[^a-z0-9_$]/gi, "_");
var name = prefix;
for (var i = 0; !all(scopes, function(scope) {
return !scope.var_names().has(name);

View File

@@ -28,7 +28,7 @@ function read_source_map(name, toplevel) {
var match = /^# ([^\s=]+)=(\S+)\s*$/.exec(comment.value);
if (!match) break;
if (match[1] == "sourceMappingURL") {
match = /^data:application\/json(;.*?)?;base64,(\S+)$/.exec(match[2]);
match = /^data:application\/json(;.*?)?;base64,([^,]+)$/.exec(match[2]);
if (!match) break;
return to_ascii(match[2]);
}

View File

@@ -1005,7 +1005,7 @@
});
def_to_moz(AST_RegExp, function To_Moz_RegExpLiteral(M) {
var flags = M.value.toString().match(/[gimuy]*$/)[0];
var flags = M.value.toString().match(/\/([gimuy]*)$/)[1];
var value = "/" + M.value.raw_source + "/" + flags;
return {
type: "Literal",
@@ -1013,8 +1013,8 @@
raw: value,
regex: {
pattern: M.value.raw_source,
flags: flags
}
flags: flags,
},
};
});

View File

@@ -521,9 +521,7 @@ function OutputStream(options) {
indent();
}
var preamble = options.preamble;
if (preamble) {
print(preamble.replace(/\r\n?|[\n\u2028\u2029]|\s*$/g, "\n"));
}
if (preamble) print(preamble.replace(/\r\n?|\u2028|\u2029|(^|\S)\s*$/g, "$1\n"));
}
comments = comments.filter(comment_filter, node);
@@ -1870,8 +1868,8 @@ function OutputStream(options) {
len = match[0].length;
digits = str.slice(len);
candidates.push(digits + "e-" + (digits.length + len - 1));
} else if (match = /0+$/.exec(str)) {
len = match[0].length;
} else if (match = /[^0]0+$/.exec(str)) {
len = match[0].length - 1;
candidates.push(str.slice(0, -len) + "e" + len);
} else if (match = /^(\d)\.(\d+)e(-?\d+)$/.exec(str)) {
candidates.push(match[1] + match[2] + "e" + (match[3] - match[2].length));

View File

@@ -11,6 +11,21 @@ async_arrow: {
node_version: ">=8"
}
async_computed: {
input: {
var o = {
async [42]() {
return this.p;
},
p: "PASS",
};
o[42]().then(console.log);
}
expect_exact: 'var o={async[42](){return this.p},p:"PASS"};o[42]().then(console.log);'
expect_stdout: "PASS"
node_version: ">=8"
}
async_label: {
input: {
(async function() {

View File

@@ -26,9 +26,11 @@ exports.run_code = semver.satisfies(process.version, "0.8") ? function(code, top
return stdout;
} : semver.satisfies(process.version, "<0.12") ? run_code_vm : function(code, toplevel, timeout) {
if ([
/\basync[ \t]*\([\s\S]*?\)[ \t]*=>/,
/\b(async[ \t]+function|Promise|setImmediate|setInterval|setTimeout)\b/,
/\basync([ \t]+|[ \t]*#|[ \t]*\*[ \t]*)[^\s()[\]{}#:;,.&|!~=*%/+-]+(\s*\(|[ \t]*=>)/,
/\basync([ \t]+|[ \t]*#)[^\s()[\]{}#:;,.&|!~=*%/+-]+(\s*\(|[ \t]*=>)/,
/\basync[ \t]*\*[ \t]*[^\s()[\]{}#:;,.&|!~=*%/+-]+\s*\(/,
/\basync([ \t]*\*)?[ \t]*\[[\s\S]*?\]\s*\(/,
/\basync[ \t]*\([\s\S]*?\)[ \t]*=>/,
].some(function(pattern) {
return pattern.test(code);
})) {

View File

@@ -2290,7 +2290,7 @@ function fuzzy_match(original, uglified) {
return true;
function collect(input, nums) {
return input.replace(/-?([1-9][0-9]*(\.[0-9]+)?|0\.[0-9]+)(e-?[1-9][0-9]*)?/ig, function(num) {
return input.replace(/-?([1-9][0-9]*(\.[0-9]+)?|0\.[0-9]+)(e-?[1-9][0-9]*)?/gi, function(num) {
return "<|" + nums.push(+num) + "|>";
});
}