From 20fa6cd8f466196c7da9d44c4b85d28add962a28 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 7 Aug 2015 19:11:54 +0100 Subject: [PATCH] check for ending dot before pushing on another when trying to fix integer member expressions - fixes #2177 --- packages/babel/src/generation/generators/expressions.js | 2 +- .../test/fixtures/generation/types/MemberExpression/actual.js | 3 +++ .../fixtures/generation/types/MemberExpression/expected.js | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/babel/src/generation/generators/expressions.js b/packages/babel/src/generation/generators/expressions.js index e0d07fa4a6..8d380dc507 100644 --- a/packages/babel/src/generation/generators/expressions.js +++ b/packages/babel/src/generation/generators/expressions.js @@ -280,7 +280,7 @@ export function MemberExpression(node, print) { } else { if (t.isLiteral(node.object)) { var val = this._Literal(node.object); - if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val)) { + if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val) && !this.endsWith(".")) { this.push("."); } } diff --git a/packages/babel/test/fixtures/generation/types/MemberExpression/actual.js b/packages/babel/test/fixtures/generation/types/MemberExpression/actual.js index 6dd85f4b19..b1b488aa12 100644 --- a/packages/babel/test/fixtures/generation/types/MemberExpression/actual.js +++ b/packages/babel/test/fixtures/generation/types/MemberExpression/actual.js @@ -6,3 +6,6 @@ foo.bar["foo"]; foo["foo"]["bar"]; foo[test()][bar()]; + +0..toString(); +0.5.toString(); diff --git a/packages/babel/test/fixtures/generation/types/MemberExpression/expected.js b/packages/babel/test/fixtures/generation/types/MemberExpression/expected.js index 6dd85f4b19..b1b488aa12 100644 --- a/packages/babel/test/fixtures/generation/types/MemberExpression/expected.js +++ b/packages/babel/test/fixtures/generation/types/MemberExpression/expected.js @@ -6,3 +6,6 @@ foo.bar["foo"]; foo["foo"]["bar"]; foo[test()][bar()]; + +0..toString(); +0.5.toString();