diff --git a/CHANGELOG.md b/CHANGELOG.md index a8d2e66a1d..950b1e150b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # 1.12.11 * Block scope classes. - * Add `moduleName` option. + * Fix generation of integer `Literal`s in `MemberExpression`. # 1.12.10 diff --git a/lib/6to5/generation/generators/expressions.js b/lib/6to5/generation/generators/expressions.js index c0bb19e01f..65d0be8710 100644 --- a/lib/6to5/generation/generators/expressions.js +++ b/lib/6to5/generation/generators/expressions.js @@ -1,4 +1,5 @@ -var t = require("../../types"); +var util = require("../../util"); +var t = require("../../types"); exports.UnaryExpression = function (node, print) { var hasSpace = /[a-z]$/.test(node.operator); @@ -105,6 +106,11 @@ exports.MemberExpression = function (node, print) { print(node.property); this.push("]"); } else { + // 5..toFixed(2); + if (t.isLiteral(node.object) && util.isInteger(node.object.value)) { + this.push("."); + } + this.push("."); print(node.property); } diff --git a/lib/6to5/generation/node/index.js b/lib/6to5/generation/node/index.js index 68f6bc1f82..847508fb55 100644 --- a/lib/6to5/generation/node/index.js +++ b/lib/6to5/generation/node/index.js @@ -2,8 +2,8 @@ module.exports = Node; var whitespace = require("./whitespace"); var parens = require("./parentheses"); -var t = require("../../types"); -var _ = require("lodash"); +var t = require("../../types"); +var _ = require("lodash"); var find = function (obj, node, parent) { var result; diff --git a/lib/6to5/util.js b/lib/6to5/util.js index f4c689f6af..d9175afeb1 100644 --- a/lib/6to5/util.js +++ b/lib/6to5/util.js @@ -17,6 +17,10 @@ exports.canCompile = function (filename, altExts) { return _.contains(exts, ext); }; +exports.isInteger = function (i) { + return _.isNumber(i) && i % 1 === 0; +}; + exports.resolve = function (loc) { try { return require.resolve(loc);