diff --git a/src/babel/generation/generators/types.js b/src/babel/generation/generators/types.js index 809a38b783..8771dee2e6 100644 --- a/src/babel/generation/generators/types.js +++ b/src/babel/generation/generators/types.js @@ -97,7 +97,8 @@ export function Literal(node) { if (type === "string") { this._stringLiteral(val); } else if (type === "number") { - this.push(val + ""); + var raw = node.raw; + this.push(val === +raw ? raw : val + ""); } else if (type === "boolean") { this.push(val ? "true" : "false"); } else if (node.regex) { diff --git a/test/core/fixtures/generation/types/Literal/actual.js b/test/core/fixtures/generation/types/Literal/actual.js index 89db0341a3..2deda11c7b 100644 --- a/test/core/fixtures/generation/types/Literal/actual.js +++ b/test/core/fixtures/generation/types/Literal/actual.js @@ -1,4 +1,5 @@ 5; +5.0; "foobar"; "\n\r\u2028\u2029"; /foobar/g; diff --git a/test/core/fixtures/generation/types/Literal/expected.js b/test/core/fixtures/generation/types/Literal/expected.js index 89db0341a3..2deda11c7b 100644 --- a/test/core/fixtures/generation/types/Literal/expected.js +++ b/test/core/fixtures/generation/types/Literal/expected.js @@ -1,4 +1,5 @@ 5; +5.0; "foobar"; "\n\r\u2028\u2029"; /foobar/g;