From 320cede9be47fa13bc526c76e8ea7cdcf04ebada Mon Sep 17 00:00:00 2001 From: Amjad Masad Date: Tue, 15 Dec 2015 17:46:42 -0800 Subject: [PATCH 1/2] Fix invalid codegen for number member expr --- packages/babel-generator/src/generators/expressions.js | 10 ++-------- packages/babel-generator/test/index.js | 5 +++++ 2 files changed, 7 insertions(+), 8 deletions(-) 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..99e371723a 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -16,6 +16,11 @@ suite("generation", function () { assert.ok(t.VISITOR_KEYS[type], type + " should not exist"); }); }); + + test("valid code", function() { + // Should not generate `0.foo` + new Function(generate.default(t.memberExpression(t.numericLiteral(60702), t.identifier("foo"))).code); + }); }); var suites = require("babel-helper-fixtures").default(__dirname + "/fixtures"); From 178da2f59b9134da0cc7cf8f1ead9bbb85b1f148 Mon Sep 17 00:00:00 2001 From: Amjad Masad Date: Wed, 16 Dec 2015 12:20:49 -0800 Subject: [PATCH 2/2] var --- packages/babel-generator/test/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index 99e371723a..7425677929 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -19,7 +19,8 @@ suite("generation", function () { test("valid code", function() { // Should not generate `0.foo` - new Function(generate.default(t.memberExpression(t.numericLiteral(60702), t.identifier("foo"))).code); + var mem = t.memberExpression(t.numericLiteral(60702), t.identifier("foo")); + new Function(generate.default(mem).code); }); });