src: add process.versions.icu
authorEvan Lucas <evanlucas@me.com>
Sun, 27 Sep 2015 15:59:02 +0000 (10:59 -0500)
committerJames M Snell <jasnell@gmail.com>
Thu, 8 Oct 2015 03:39:15 +0000 (20:39 -0700)
If i18n support is present, add the icu version
to process.versions

Fixes: https://github.com/nodejs/node/issues/3089
PR-URL: https://github.com/nodejs/node/pull/3102
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Rod Vagg <rod@vagg.org>
doc/api/process.markdown
src/node.cc
test/parallel/test-process-versions.js

index ee6f540..7195376 100644 (file)
@@ -648,6 +648,7 @@ Will print something like:
       zlib: '1.2.8',
       ares: '1.10.0-DEV',
       modules: '43',
+      icu: '55.1',
       openssl: '1.0.1k' }
 
 ## process.config
index b6acc9d..501caf2 100644 (file)
 #include <string.h>
 #include <sys/types.h>
 
+#if defined(NODE_HAVE_I18N_SUPPORT)
+#include <unicode/uvernum.h>
+#endif
+
 #if defined(LEAK_SANITIZER)
 #include <sanitizer/lsan_interface.h>
 #endif
@@ -2681,6 +2685,12 @@ void SetupProcessObject(Environment* env,
                     "ares",
                     FIXED_ONE_BYTE_STRING(env->isolate(), ARES_VERSION_STR));
 
+#if defined(NODE_HAVE_I18N_SUPPORT) && defined(U_ICU_VERSION)
+  READONLY_PROPERTY(versions,
+                    "icu",
+                    OneByteString(env->isolate(), U_ICU_VERSION));
+#endif
+
   const char node_modules_version[] = NODE_STRINGIFY(NODE_MODULE_VERSION);
   READONLY_PROPERTY(
       versions,
index 637ada7..900143d 100644 (file)
@@ -9,4 +9,8 @@ if (common.hasCrypto) {
   expected_keys.push('openssl');
 }
 
+if (typeof Intl !== 'undefined') {
+  expected_keys.push('icu');
+}
+
 assert.deepEqual(Object.keys(process.versions).sort(), expected_keys.sort());