diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index fbad28e03b30..985daa477b34 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -120,8 +120,11 @@ export function NullLiteral() { export function NumericLiteral(node: Object) { const raw = this.getPossibleRaw(node); + const opts = this.format.jsescOption; const value = node.value + ""; - if (raw == null) { + if (opts.numbers) { + this.number(jsesc(node.value, opts)); + } else if (raw == null) { this.number(value); // normalize } else if (this.format.minified) { this.number(raw.length < value.length ? raw : value); diff --git a/packages/babel-generator/test/fixtures/escapes/options.json b/packages/babel-generator/test/fixtures/escapes/jsonEscape/options.json similarity index 100% rename from packages/babel-generator/test/fixtures/escapes/options.json rename to packages/babel-generator/test/fixtures/escapes/jsonEscape/options.json diff --git a/packages/babel-generator/test/fixtures/escapes/numeric-literals/input.js b/packages/babel-generator/test/fixtures/escapes/numeric-literals/input.js new file mode 100644 index 000000000000..91c93b0951e1 --- /dev/null +++ b/packages/babel-generator/test/fixtures/escapes/numeric-literals/input.js @@ -0,0 +1 @@ +let x = 42 \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/escapes/numeric-literals/options.json b/packages/babel-generator/test/fixtures/escapes/numeric-literals/options.json new file mode 100644 index 000000000000..0e857996e427 --- /dev/null +++ b/packages/babel-generator/test/fixtures/escapes/numeric-literals/options.json @@ -0,0 +1,6 @@ +{ + "jsescOption": { + "numbers": "hexadecimal", + "lowercaseHex": true + } +} diff --git a/packages/babel-generator/test/fixtures/escapes/numeric-literals/output.js b/packages/babel-generator/test/fixtures/escapes/numeric-literals/output.js new file mode 100644 index 000000000000..7ba9bc21a7c6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/escapes/numeric-literals/output.js @@ -0,0 +1 @@ +let x = 0x2a; \ No newline at end of file