From aa33303112c0e988b180369f93154e0add41e9d5 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Sat, 15 Sep 2018 15:37:03 -0700 Subject: [PATCH] Fix logic/Flow error with versionRange. (#8714) --- packages/babel-core/src/transformation/file/file.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/babel-core/src/transformation/file/file.js b/packages/babel-core/src/transformation/file/file.js index df71a1ba65..bbc2876718 100644 --- a/packages/babel-core/src/transformation/file/file.js +++ b/packages/babel-core/src/transformation/file/file.js @@ -156,7 +156,7 @@ export default class File { * helper exists, but was not available for the full given range, it will be * considered unavailable. */ - availableHelper(name: string, versionRange: ?string) { + availableHelper(name: string, versionRange: ?string): boolean { let minVersion; try { minVersion = helpers.minVersion(name); @@ -166,6 +166,8 @@ export default class File { return false; } + if (typeof versionRange !== "string") return true; + // semver.intersects() has some surprising behavior with comparing ranges // with preprelease versions. We add '^' to ensure that we are always // comparing ranges with ranges, which sidesteps this logic. @@ -186,9 +188,8 @@ export default class File { if (semver.valid(versionRange)) versionRange = `^${versionRange}`; return ( - typeof versionRange !== "string" || - (!semver.intersects(`<${minVersion}`, versionRange) && - !semver.intersects(`>=8.0.0`, versionRange)) + !semver.intersects(`<${minVersion}`, versionRange) && + !semver.intersects(`>=8.0.0`, versionRange) ); }