| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 127439d commit 2bd7437
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -306,6 +306,24 @@ function startup() { | |||
| 306 | 306 | 'process.assert() is deprecated. Please use the `assert` module instead.', | |
| 307 | 307 | 'DEP0100'); | |
| 308 | 308 | ||
| 309 | + // TODO(joyeecheung): this property has not been well-maintained, should we | ||
| 310 | + // deprecate it in favor of a better API? | ||
| 311 | + const { isDebugBuild, hasOpenSSL } = internalBinding('config'); | ||
| 312 | + Object.defineProperty(process, 'features', { | ||
| 313 | + enumerable: true, | ||
| 314 | + writable: false, | ||
| 315 | + configurable: false, | ||
| 316 | + value: { | ||
| 317 | + debug: isDebugBuild, | ||
| 318 | + uv: true, | ||
| 319 | + ipv6: true, // TODO(bnoordhuis) ping libuv | ||
| 320 | + tls_alpn: hasOpenSSL, | ||
| 321 | + tls_sni: hasOpenSSL, | ||
| 322 | + tls_ocsp: hasOpenSSL, | ||
| 323 | + tls: hasOpenSSL | ||
| 324 | + } | ||
| 325 | + }); | ||
| 326 | + | ||
| 309 | 327 | const perf = internalBinding('performance'); | |
| 310 | 328 | const { | |
| 311 | 329 | NODE_PERFORMANCE_MILESTONE_BOOTSTRAP_COMPLETE, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -809,49 +809,6 @@ static void OnMessage(Local<Message> message, Local<Value> error) { | |||
| 809 | 809 | } | |
| 810 | 810 | } | |
| 811 | 811 | ||
| 812 | - static Local<Object> GetFeatures(Environment* env) { | ||
| 813 | - EscapableHandleScope scope(env->isolate()); | ||
| 814 | - | ||
| 815 | - Local<Object> obj = Object::New(env->isolate()); | ||
| 816 | - #if defined(DEBUG) && DEBUG | ||
| 817 | - Local<Value> debug = True(env->isolate()); | ||
| 818 | - #else | ||
| 819 | - Local<Value> debug = False(env->isolate()); | ||
| 820 | - #endif // defined(DEBUG) && DEBUG | ||
| 821 | - | ||
| 822 | - obj->Set(env->context(), | ||
| 823 | - FIXED_ONE_BYTE_STRING(env->isolate(), "debug"), | ||
| 824 | - debug).FromJust(); | ||
| 825 | - obj->Set(env->context(), | ||
| 826 | - FIXED_ONE_BYTE_STRING(env->isolate(), "uv"), | ||
| 827 | - True(env->isolate())).FromJust(); | ||
| 828 | - // TODO(bnoordhuis) ping libuv | ||
| 829 | - obj->Set(env->context(), | ||
| 830 | - FIXED_ONE_BYTE_STRING(env->isolate(), "ipv6"), | ||
| 831 | - True(env->isolate())).FromJust(); | ||
| 832 | - | ||
| 833 | - #ifdef HAVE_OPENSSL | ||
| 834 | - Local<Boolean> have_openssl = True(env->isolate()); | ||
| 835 | - #else | ||
| 836 | - Local<Boolean> have_openssl = False(env->isolate()); | ||
| 837 | - #endif | ||
| 838 | - | ||
| 839 | - obj->Set(env->context(), | ||
| 840 | - FIXED_ONE_BYTE_STRING(env->isolate(), "tls_alpn"), | ||
| 841 | - have_openssl).FromJust(); | ||
| 842 | - obj->Set(env->context(), | ||
| 843 | - FIXED_ONE_BYTE_STRING(env->isolate(), "tls_sni"), | ||
| 844 | - have_openssl).FromJust(); | ||
| 845 | - obj->Set(env->context(), | ||
| 846 | - FIXED_ONE_BYTE_STRING(env->isolate(), "tls_ocsp"), | ||
| 847 | - have_openssl).FromJust(); | ||
| 848 | - obj->Set(env->context(), | ||
| 849 | - FIXED_ONE_BYTE_STRING(env->isolate(), "tls"), | ||
| 850 | - have_openssl).FromJust(); | ||
| 851 | - | ||
| 852 | - return scope.Escape(obj); | ||
| 853 | - } | ||
| 854 | - | ||
| 855 | 812 | void SetupProcessObject(Environment* env, | |
| 856 | 813 | const std::vector<std::string>& args, | |
| 857 | 814 | const std::vector<std::string>& exec_args) { | |
@@ -934,7 +891,6 @@ void SetupProcessObject(Environment* env, | |||
| 934 | 891 | ||
| 935 | 892 | READONLY_PROPERTY(process, "pid", | |
| 936 | 893 | Integer::New(env->isolate(), uv_os_getpid())); | |
| 937 | - READONLY_PROPERTY(process, "features", GetFeatures(env)); | ||
| 938 | 894 | ||
| 939 | 895 | CHECK(process->SetAccessor(env->context(), | |
| 940 | 896 | FIXED_ONE_BYTE_STRING(env->isolate(), "ppid"), | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -26,6 +26,18 @@ static void Initialize(Local<Object> target, | |||
| 26 | 26 | Environment* env = Environment::GetCurrent(context); | |
| 27 | 27 | Isolate* isolate = env->isolate(); | |
| 28 | 28 | ||
| 29 | + #if defined(DEBUG) && DEBUG | ||
| 30 | + READONLY_TRUE_PROPERTY(target, "isDebugBuild"); | ||
| 31 | + #else | ||
| 32 | + READONLY_FALSE_PROPERTY(target, "isDebugBuild"); | ||
| 33 | + #endif // defined(DEBUG) && DEBUG | ||
| 34 | + | ||
| 35 | + #if HAVE_OPENSSL | ||
| 36 | + READONLY_TRUE_PROPERTY(target, "hasOpenSSL"); | ||
| 37 | + #else | ||
| 38 | + READONLY_FALSE_PROPERTY(target, "hasOpenSSL"); | ||
| 39 | + #endif // HAVE_OPENSSL | ||
| 40 | + | ||
| 29 | 41 | #ifdef NODE_FIPS_MODE | |
| 30 | 42 | READONLY_TRUE_PROPERTY(target, "fipsMode"); | |
| 31 | 43 | // TODO(addaleax): Use options parser variable instead. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -555,8 +555,11 @@ inline v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context, | |||
| 555 | 555 | .FromJust(); \ | |
| 556 | 556 | } while (0) | |
| 557 | 557 | ||
| 558 | + #define READONLY_FALSE_PROPERTY(obj, name) \ | ||
| 559 | + READONLY_PROPERTY(obj, name, v8::False(isolate)) | ||
| 560 | + | ||
| 558 | 561 | #define READONLY_TRUE_PROPERTY(obj, name) \ | |
| 559 | - READONLY_PROPERTY(obj, name, True(isolate)) | ||
| 562 | + READONLY_PROPERTY(obj, name, v8::True(isolate)) | ||
| 560 | 563 | ||
| 561 | 564 | #define READONLY_STRING_PROPERTY(obj, name, str) \ | |
| 562 | 565 | READONLY_PROPERTY(obj, name, ToV8Value(context, str).ToLocalChecked()) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,20 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + | ||
| 3 | + require('../common'); | ||
| 4 | + const assert = require('assert'); | ||
| 5 | + | ||
| 6 | + const keys = new Set(Object.keys(process.features)); | ||
| 7 | + | ||
| 8 | + assert.deepStrictEqual(keys, new Set([ | ||
| 9 | + 'debug', | ||
| 10 | + 'uv', | ||
| 11 | + 'ipv6', | ||
| 12 | + 'tls_alpn', | ||
| 13 | + 'tls_sni', | ||
| 14 | + 'tls_ocsp', | ||
| 15 | + 'tls' | ||
| 16 | + ])); | ||
| 17 | + | ||
| 18 | + for (const key of keys) { | ||
| 19 | + assert.strictEqual(typeof process.features[key], 'boolean'); | ||
| 20 | + } | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments