diff --git a/packages/babel-core/src/tools/build-external-helpers.js b/packages/babel-core/src/tools/build-external-helpers.js index fd1e91940b..057e4b69e9 100644 --- a/packages/babel-core/src/tools/build-external-helpers.js +++ b/packages/babel-core/src/tools/build-external-helpers.js @@ -73,26 +73,8 @@ function buildVar(namespace, builder) { } function buildHelpers(body, namespace, whitelist) { - function shouldIgnore(name) { - if (!whitelist) { - return false; - } - - // check for the raw name - if (whitelist.indexOf(name) >= 0) { - return false; - } - - // typeof -> _typeof - if (name[0] === "_" && whitelist.indexOf(name.slice(1)) >= 0) { - return false; - } - - return true; - } - each(helpers.list, function (name) { - if (shouldIgnore(name)) return; + if (whitelist && whitelist.indexOf(name) >= 0) return; let key = t.identifier(t.toIdentifier(name)); body.push(t.expressionStatement( diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index 8871182bf6..80c4365e32 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -274,8 +274,7 @@ export default class File extends Store { let res = generator(name); if (res) return res; } else if (runtime) { - let id = t.identifier(t.toIdentifier(name)); - return t.memberExpression(runtime, id); + return t.memberExpression(runtime, t.identifier(name)); } let ref = getHelper(name); diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index 33280ecce8..cb27e684f2 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -6,6 +6,7 @@ import * as t from "babel-types"; import n from "../node"; const SCIENTIFIC_NOTATION = /e/i; +const ZERO_DECIMAL_INTEGER = /\.0+$/; export function UnaryExpression(node: Object) { let needsSpace = /[a-z]$/.test(node.operator); @@ -208,7 +209,7 @@ export function MemberExpression(node: Object) { } else { if (t.isLiteral(node.object) && !t.isTemplateLiteral(node.object)) { let val = this.getPossibleRaw(node.object) || this._stringLiteral(node.object); - if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val) && !this.endsWith(".")) { + if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val) && !ZERO_DECIMAL_INTEGER.test(val) && !this.endsWith(".")) { this.push("."); } } diff --git a/packages/babel-generator/test/fixtures/types/MemberExpression/actual.js b/packages/babel-generator/test/fixtures/types/MemberExpression/actual.js index b1b488aa12..9b64980fc1 100644 --- a/packages/babel-generator/test/fixtures/types/MemberExpression/actual.js +++ b/packages/babel-generator/test/fixtures/types/MemberExpression/actual.js @@ -9,3 +9,5 @@ foo[test()][bar()]; 0..toString(); 0.5.toString(); +1.0.toString(); +1.000.toString(); diff --git a/packages/babel-generator/test/fixtures/types/MemberExpression/expected.js b/packages/babel-generator/test/fixtures/types/MemberExpression/expected.js index b1b488aa12..9b64980fc1 100644 --- a/packages/babel-generator/test/fixtures/types/MemberExpression/expected.js +++ b/packages/babel-generator/test/fixtures/types/MemberExpression/expected.js @@ -9,3 +9,5 @@ foo[test()][bar()]; 0..toString(); 0.5.toString(); +1.0.toString(); +1.000.toString(); diff --git a/packages/babel-helpers/src/index.js b/packages/babel-helpers/src/index.js index 7a83143ccc..46fb1080e0 100644 --- a/packages/babel-helpers/src/index.js +++ b/packages/babel-helpers/src/index.js @@ -7,6 +7,8 @@ export function get(name) { return fn().expression; } -export let list = Object.keys(helpers).filter(name => name !== "__esModule"); +export let list = Object.keys(helpers) + .map(name => name[0] === "_" ? name.slice(1) : name) + .filter(name => name !== "__esModule"); export default get; diff --git a/packages/babel-preset-react/index.js b/packages/babel-preset-react/index.js index 54489509f4..89f691a454 100644 --- a/packages/babel-preset-react/index.js +++ b/packages/babel-preset-react/index.js @@ -6,11 +6,11 @@ module.exports = { require("babel-plugin-syntax-jsx"), require("babel-plugin-transform-react-display-name"), ], - env: { + /*env: { development: { plugins: [ require("babel-plugin-transform-react-jsx-source") ] } - } + }*/ }; diff --git a/packages/babel-register/package.json b/packages/babel-register/package.json index ce15d07fce..007ddd760b 100644 --- a/packages/babel-register/package.json +++ b/packages/babel-register/package.json @@ -13,9 +13,7 @@ "path-exists": "^1.0.0", "lodash": "^3.10.0", "source-map-support": "^0.2.10", - "babel-core": "^6.1.4" - }, - "devDependencies": { + "babel-core": "^6.1.4", "babel-runtime": "^5.0.0" } }