* `name`: a string with a value that will always be `"node"` for Node.js. For
legacy io.js releases, this will be `"io.js"`.
+* `lts`: a string with a value indicating the _codename_ of the LTS (Long-term
+ Support) line the current release is part of. This property only exists for
+ LTS releases and is `undefined` for all other release types, including stable
+ releases. Current valid values are:
+ - `"Argon"` for the v4.x LTS line beginning with v4.2.0.
* `sourceUrl`: a complete URL pointing to a _.tar.gz_ file containing the
source of the current release.
* `headersUrl`: a complete URL pointing to a _.tar.gz_ file containing only
READONLY_PROPERTY(process, "release", release);
READONLY_PROPERTY(release, "name", OneByteString(env->isolate(), "node"));
+#if NODE_VERSION_IS_LTS
+ READONLY_PROPERTY(release, "lts",
+ OneByteString(env->isolate(), NODE_VERSION_LTS_CODENAME));
+#endif
+
// if this is a release build and no explicit base has been set
// substitute the standard release download URL
#ifndef NODE_RELEASE_URLBASE
#define NODE_MINOR_VERSION 1
#define NODE_PATCH_VERSION 3
+#define NODE_VERSION_IS_LTS 1
+#define NODE_VERSION_LTS_CODENAME "Argon"
+
#define NODE_VERSION_IS_RELEASE 0
#ifndef NODE_STRINGIFY
--- /dev/null
+'use strict';
+const common = require('../common');
+const assert = require('assert');
+const versionParts = process.versions.node.split('.');
+
+assert.equal(process.release.name, 'node');
+
+// it's expected that future LTS release lines will have additional
+// branches in here
+if (versionParts[0] === '4' && versionParts[1] >= 2) {
+ assert.equal(process.release.lts, 'Argon');
+} else {
+ assert.strictEqual(process.release.lts, undefined);
+}