summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRongjian Zhang <pd4d10@gmail.com>2019-11-24 12:40:40 +0800
committerGuy Bedford <guybedford@gmail.com>2019-12-04 22:36:37 -0500
commitaa4c57ae7e74a623f5255a7f05a6ff9d5bc335d0 (patch)
tree9d7ab21bd8ace8e731ae5ecf9c79489236fe0455 /src
parent110dc02747473ae8193d71c1aa9cbedd71bfaa01 (diff)
downloadandroid-node-v8-aa4c57ae7e74a623f5255a7f05a6ff9d5bc335d0.tar.gz
android-node-v8-aa4c57ae7e74a623f5255a7f05a6ff9d5bc335d0.tar.bz2
android-node-v8-aa4c57ae7e74a623f5255a7f05a6ff9d5bc335d0.zip
module: add warnings for experimental flags
PR-URL: https://github.com/nodejs/node/pull/30617 Fixes: https://github.com/nodejs/node/issues/30600 Reviewed-By: Guy Bedford <guybedford@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/module_wrap.cc3
-rw-r--r--src/node_process.h2
-rw-r--r--src/node_process_events.cc16
3 files changed, 21 insertions, 0 deletions
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
index 3c3d568329..2fa8ba498e 100644
--- a/src/module_wrap.cc
+++ b/src/module_wrap.cc
@@ -7,6 +7,7 @@
#include "util-inl.h"
#include "node_contextify.h"
#include "node_watchdog.h"
+#include "node_process.h"
#include <sys/stat.h> // S_IFDIR
@@ -962,6 +963,7 @@ Maybe<URL> ResolveExportsTarget(Environment* env,
Maybe<URL> resolved = ResolveExportsTarget(env, pjson_url,
conditionalTarget, subpath, pkg_subpath, base, false);
if (!resolved.IsNothing()) {
+ ProcessEmitExperimentalWarning(env, "Conditional exports");
return resolved;
}
}
@@ -1267,6 +1269,7 @@ Maybe<URL> PackageResolve(Environment* env,
Maybe<URL> self_url = ResolveSelf(env, specifier, base);
if (self_url.IsJust()) {
+ ProcessEmitExperimentalWarning(env, "Package name self resolution");
return self_url;
}
diff --git a/src/node_process.h b/src/node_process.h
index 5db7b004d6..ad86b449f9 100644
--- a/src/node_process.h
+++ b/src/node_process.h
@@ -27,6 +27,8 @@ v8::Maybe<bool> ProcessEmitWarningGeneric(Environment* env,
const char* code = nullptr);
v8::Maybe<bool> ProcessEmitWarning(Environment* env, const char* fmt, ...);
+v8::Maybe<bool> ProcessEmitExperimentalWarning(Environment* env,
+ const char* warning);
v8::Maybe<bool> ProcessEmitDeprecationWarning(Environment* env,
const char* warning,
const char* deprecation_code);
diff --git a/src/node_process_events.cc b/src/node_process_events.cc
index 0609622662..d192ef19b7 100644
--- a/src/node_process_events.cc
+++ b/src/node_process_events.cc
@@ -1,4 +1,5 @@
#include <cstdarg>
+#include <set>
#include "env-inl.h"
#include "node_process.h"
@@ -95,6 +96,21 @@ Maybe<bool> ProcessEmitWarning(Environment* env, const char* fmt, ...) {
return ProcessEmitWarningGeneric(env, warning);
}
+
+std::set<std::string> experimental_warnings;
+
+Maybe<bool> ProcessEmitExperimentalWarning(Environment* env,
+ const char* warning) {
+ if (experimental_warnings.find(warning) != experimental_warnings.end())
+ return Nothing<bool>();
+
+ experimental_warnings.insert(warning);
+ std::string message(warning);
+ message.append(
+ " is an experimental feature. This feature could change at any time");
+ return ProcessEmitWarningGeneric(env, message.c_str(), "ExperimentalWarning");
+}
+
Maybe<bool> ProcessEmitDeprecationWarning(Environment* env,
const char* warning,
const char* deprecation_code) {