mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
+2








4f6797378e
Make node-report part of core runtime because: 1. When enabled, node-report significantly helps root cause various types of problems, including support issues sent to the various repos of the Node.js organization. 2. The requirement of explicitly adding the dependency to node-report in user applications often represents a blocker to adoption. Major deviation from the module version of the node-report is that the report is generated in JSON format, as opposed to human readable text. No new functionalities have been added, changes that are required for melding it as a built-in capability has been affected on the module version of node-report (https://github.com/nodejs/node-report) Co-authored-by: Bidisha Pyne <bidipyne@in.ibm.com> Co-authored-by: Howard Hellyer <hhellyer@uk.ibm.com> Co-authored-by: Jeremiah Senkpiel <fishrock123@rocketmail.com> Co-authored-by: Julian Alimin <dmastag@yahoo.com> Co-authored-by: Lakshmi Swetha Gopireddy <lakshmigopireddy@in.ibm.com> Co-authored-by: Manusaporn Treerungroj <m.treerungroj@gmail.com> Co-authored-by: Michael Dawson <michael_dawson@ca.ibm.com> Co-authored-by: Richard Chamberlain <richard_chamberlain@uk.ibm.com> Co-authored-by: Richard Lau <riclau@uk.ibm.com> Co-authored-by: Sam Roberts <vieuxtech@gmail.com> Co-authored-by: Vipin Menon <vipinmv1@in.ibm.com> PR-URL: https://github.com/nodejs/node/pull/22712 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <Michael_Dawson@ca.ibm.com> Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
100 lines
2.8 KiB
C++
100 lines
2.8 KiB
C++
#include "env-inl.h"
|
|
#include "node.h"
|
|
#include "node_i18n.h"
|
|
#include "node_options-inl.h"
|
|
#include "util-inl.h"
|
|
|
|
namespace node {
|
|
|
|
using v8::Boolean;
|
|
using v8::Context;
|
|
using v8::Integer;
|
|
using v8::Isolate;
|
|
using v8::Local;
|
|
using v8::Number;
|
|
using v8::Object;
|
|
using v8::Value;
|
|
|
|
// The config binding is used to provide an internal view of compile or runtime
|
|
// config options that are required internally by lib/*.js code. This is an
|
|
// alternative to dropping additional properties onto the process object as
|
|
// has been the practice previously in node.cc.
|
|
|
|
static void Initialize(Local<Object> target,
|
|
Local<Value> unused,
|
|
Local<Context> context) {
|
|
Environment* env = Environment::GetCurrent(context);
|
|
Isolate* isolate = env->isolate();
|
|
|
|
#if defined(DEBUG) && DEBUG
|
|
READONLY_TRUE_PROPERTY(target, "isDebugBuild");
|
|
#else
|
|
READONLY_FALSE_PROPERTY(target, "isDebugBuild");
|
|
#endif // defined(DEBUG) && DEBUG
|
|
|
|
#if HAVE_OPENSSL
|
|
READONLY_TRUE_PROPERTY(target, "hasOpenSSL");
|
|
#else
|
|
READONLY_FALSE_PROPERTY(target, "hasOpenSSL");
|
|
#endif // HAVE_OPENSSL
|
|
|
|
#ifdef NODE_FIPS_MODE
|
|
READONLY_TRUE_PROPERTY(target, "fipsMode");
|
|
// TODO(addaleax): Use options parser variable instead.
|
|
if (per_process::cli_options->force_fips_crypto)
|
|
READONLY_TRUE_PROPERTY(target, "fipsForced");
|
|
#endif
|
|
|
|
#ifdef NODE_HAVE_I18N_SUPPORT
|
|
|
|
READONLY_TRUE_PROPERTY(target, "hasIntl");
|
|
|
|
#ifdef NODE_HAVE_SMALL_ICU
|
|
READONLY_TRUE_PROPERTY(target, "hasSmallICU");
|
|
#endif // NODE_HAVE_SMALL_ICU
|
|
|
|
#if NODE_USE_V8_PLATFORM
|
|
READONLY_TRUE_PROPERTY(target, "hasTracing");
|
|
#endif
|
|
|
|
#if HAVE_INSPECTOR
|
|
READONLY_TRUE_PROPERTY(target, "hasInspector");
|
|
#else
|
|
READONLY_FALSE_PROPERTY(target, "hasInspector");
|
|
#endif
|
|
|
|
#if !defined(NODE_WITHOUT_NODE_OPTIONS)
|
|
READONLY_TRUE_PROPERTY(target, "hasNodeOptions");
|
|
#endif
|
|
|
|
#endif // NODE_HAVE_I18N_SUPPORT
|
|
|
|
#if defined(NODE_REPORT)
|
|
READONLY_TRUE_PROPERTY(target, "hasReport");
|
|
#endif // NODE_REPORT
|
|
|
|
if (env->abort_on_uncaught_exception())
|
|
READONLY_TRUE_PROPERTY(target, "shouldAbortOnUncaughtException");
|
|
|
|
READONLY_PROPERTY(target,
|
|
"bits",
|
|
Number::New(env->isolate(), 8 * sizeof(intptr_t)));
|
|
|
|
Local<Object> debug_options_obj = Object::New(isolate);
|
|
READONLY_PROPERTY(target, "debugOptions", debug_options_obj);
|
|
|
|
const DebugOptions& debug_options = env->options()->debug_options();
|
|
READONLY_PROPERTY(debug_options_obj,
|
|
"inspectorEnabled",
|
|
Boolean::New(isolate, debug_options.inspector_enabled));
|
|
READONLY_STRING_PROPERTY(
|
|
debug_options_obj, "host", debug_options.host_port.host());
|
|
READONLY_PROPERTY(debug_options_obj,
|
|
"port",
|
|
Integer::New(isolate, debug_options.host_port.port()));
|
|
} // InitConfig
|
|
|
|
} // namespace node
|
|
|
|
NODE_MODULE_CONTEXT_AWARE_INTERNAL(config, node::Initialize)
|