diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index 599f77bc6b..db021892af 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -221,14 +221,8 @@ export function MemberExpression(node: Object) { this.print(node.property, node); this.push("]"); } else { - if (t.isLiteral(node.object) && !t.isTemplateLiteral(node.object)) { - let val; - if (this.format.minified) { - val = this._stringLiteral(node.object); - } else { - val = this.getPossibleRaw(node.object) || this._stringLiteral(node.object); - } - + if (t.isNumericLiteral(node.object)) { + let val = this.getPossibleRaw(node.object) || node.object.value; if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val) && !ZERO_DECIMAL_INTEGER.test(val) && !this.endsWith(".")) { this.push("."); } diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index f08dae94ac..7425677929 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -16,6 +16,12 @@ suite("generation", function () { assert.ok(t.VISITOR_KEYS[type], type + " should not exist"); }); }); + + test("valid code", function() { + // Should not generate `0.foo` + var mem = t.memberExpression(t.numericLiteral(60702), t.identifier("foo")); + new Function(generate.default(mem).code); + }); }); var suites = require("babel-helper-fixtures").default(__dirname + "/fixtures");