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;
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);
}
});
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);
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]);
}
});
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",
raw: value,
regex: {
pattern: M.value.raw_source,
- flags: flags
- }
+ flags: flags,
+ },
};
});
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);
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));
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() {
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);
})) {
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) + "|>";
});
}