From 396a69c11c5e76516552b40eced6ae7c8ddc1e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Sat, 24 Mar 2018 13:23:24 +0100 Subject: [PATCH 1/2] process: remove compareVersion and computedVersion Both designs are flawed and will likely find very little adoption in userland while causing confusion. --- doc/api/process.md | 14 +------------- lib/internal/bootstrap/node.js | 1 - lib/internal/process.js | 13 +------------ src/node.cc | 7 ------- test/parallel/test-process-release.js | 15 --------------- 5 files changed, 2 insertions(+), 48 deletions(-) diff --git a/doc/api/process.md b/doc/api/process.md index 8348a9bdb980f1..d4b8ffda095230 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -1507,17 +1507,6 @@ tarball. * `minorVersion` {number} The minor version of Node.js. * `patchVersion` {number} The patch version of Node.js. * `prereleaseTag` {string} The SemVer pre-release tag for Node.js. -* `computedVersion` {number} A number representing the current version, created - using the following method: - `(majorVersion << 16) + (minorVersion << 8) + patchVersion` -* `compareVersion` {function} Perform a SemVer comparison to the release - version. - * `major` - * `minor` - * `patch` - * Returns: {number} `-1` if the given version is lower than the release - version, `0` if the given version matches the process version, and `1` - if the given version is greater than the release version. ```js @@ -1530,8 +1519,7 @@ tarball. majorVersion: 4, minorVersion: 4, patchVersion: 5, - prereleaseTag: '', - computedVersion: 263173, + prereleaseTag: '' } ``` diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index 4b5498a07da9cf..7d7ca03d36f7ac 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -38,7 +38,6 @@ _process.setupConfig(NativeModule._source); _process.setupSignalHandlers(); _process.setupUncaughtExceptionCapture(exceptionHandlerState); - _process.setupCompareVersion(); NativeModule.require('internal/process/warning').setup(); NativeModule.require('internal/process/next_tick').setup(); NativeModule.require('internal/process/stdio').setup(); diff --git a/lib/internal/process.js b/lib/internal/process.js index 573ffc1600ff74..d64fe9877198b8 100644 --- a/lib/internal/process.js +++ b/lib/internal/process.js @@ -269,16 +269,6 @@ function setupUncaughtExceptionCapture(exceptionHandlerState) { }; } -function setupCompareVersion() { - const { computedVersion } = process.release; - process.release.compareVersion = (major, minor, patch) => { - const comp = (major << 16) + (minor << 8) + patch; - if (comp === computedVersion) - return 0; - return comp > computedVersion ? 1 : -1; - }; -} - module.exports = { setup_performance, setup_cpuUsage, @@ -289,6 +279,5 @@ module.exports = { setupSignalHandlers, setupChannel, setupRawDebug, - setupUncaughtExceptionCapture, - setupCompareVersion, + setupUncaughtExceptionCapture }; diff --git a/src/node.cc b/src/node.cc index c3172723910fbd..ced17d531745dd 100644 --- a/src/node.cc +++ b/src/node.cc @@ -3032,13 +3032,6 @@ void SetupProcessObject(Environment* env, READONLY_PROPERTY(release, "prereleaseTag", OneByteString(env->isolate(), NODE_TAG)); - READONLY_PROPERTY(release, - "computedVersion", - Integer::New(env->isolate(), - (NODE_MAJOR_VERSION << 16) + - (NODE_MINOR_VERSION << 8) + - NODE_PATCH_VERSION)); - #if NODE_VERSION_IS_LTS READONLY_PROPERTY(release, "lts", OneByteString(env->isolate(), NODE_VERSION_LTS_CODENAME)); diff --git a/test/parallel/test-process-release.js b/test/parallel/test-process-release.js index 6356b1a7250f7d..8b6bca9141beed 100644 --- a/test/parallel/test-process-release.js +++ b/test/parallel/test-process-release.js @@ -18,18 +18,3 @@ if (versionParts[0] === '4' && versionParts[1] >= 2) { } else { assert.strictEqual(process.release.lts, undefined); } - -const { - majorVersion: major, - minorVersion: minor, - patchVersion: patch, - computedVersion, - compareVersion, -} = process.release; - -assert.strictEqual( - (major << 16) + (minor << 8) + patch, computedVersion); - -assert.strictEqual(0, compareVersion(major, minor, patch)); -assert.strictEqual(1, compareVersion(major, minor, patch + 1)); -assert.strictEqual(-1, compareVersion(major - 1, minor, patch)); From bd1a28091e68944d55e0f2ed3ea279a839a74084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Sat, 24 Mar 2018 16:07:58 +0100 Subject: [PATCH 2/2] test: add test for process.release.xxxVersion --- test/parallel/test-process-release.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/parallel/test-process-release.js b/test/parallel/test-process-release.js index 8b6bca9141beed..cc50615feae2a9 100644 --- a/test/parallel/test-process-release.js +++ b/test/parallel/test-process-release.js @@ -18,3 +18,13 @@ if (versionParts[0] === '4' && versionParts[1] >= 2) { } else { assert.strictEqual(process.release.lts, undefined); } + +const { + majorVersion: major, + minorVersion: minor, + patchVersion: patch, + prereleaseTag: prerelease +} = process.release; + +assert.strictEqual(process.versions.node, + `${major}.${minor}.${patch}${prerelease}`);