Fix numeric separator Number transform (#5825)
This commit is contained in:
committed by
Henry Zhu
parent
123dce5fcd
commit
8df5514083
@@ -1,15 +1,20 @@
|
||||
import syntaxNumericSeparator from "babel-plugin-syntax-numeric-separator";
|
||||
|
||||
export default function () {
|
||||
export default function ({ types: t }) {
|
||||
|
||||
function replacer(value) {
|
||||
return value.replace(/_/g, "");
|
||||
}
|
||||
|
||||
function replaceNumberArg({ node }) {
|
||||
if (node.callee.name === "Number") {
|
||||
node.arguments[0].value = replacer(node.arguments[0].value);
|
||||
if (node.callee.name !== "Number") {
|
||||
return;
|
||||
}
|
||||
const arg = node.arguments[0];
|
||||
if (!t.isStringLiteral(arg)) {
|
||||
return;
|
||||
}
|
||||
arg.value = replacer(arg.value);
|
||||
}
|
||||
|
||||
const CallExpression = replaceNumberArg;
|
||||
|
||||
@@ -7,3 +7,13 @@ assert.equal(new Number("1_000").valueOf(), new Number("1000").valueOf());
|
||||
assert.equal(new Number("0xAE_BE_CE").valueOf(), new Number("0xAEBECE").valueOf());
|
||||
assert.equal(new Number("0b1010_0001_1000_0101").valueOf(), new Number("0b1010000110000101").valueOf());
|
||||
assert.equal(new Number("0o0_6_6_6").valueOf(), new Number("0o0666").valueOf());
|
||||
|
||||
assert.equal(Number(1_000), Number("1000"));
|
||||
assert.equal(Number(0xAE_BE_CE), Number("0xAEBECE"));
|
||||
assert.equal(Number(0b1010_0001_1000_0101), Number("0b1010000110000101"));
|
||||
assert.equal(Number(0o0_6_6_6), Number("0o0666"));
|
||||
|
||||
assert.equal(new Number(1_000).valueOf(), new Number("1000").valueOf());
|
||||
assert.equal(new Number(0xAE_BE_CE).valueOf(), new Number("0xAEBECE").valueOf());
|
||||
assert.equal(new Number(0b1010_0001_1000_0101).valueOf(), new Number("0b1010000110000101").valueOf());
|
||||
assert.equal(new Number(0o0_6_6_6).valueOf(), new Number("0o0666").valueOf());
|
||||
|
||||
Reference in New Issue
Block a user