diff options
author | Rongjian Zhang <pd4d10@gmail.com> | 2019-11-24 12:40:40 +0800 |
---|---|---|
committer | Guy Bedford <guybedford@gmail.com> | 2019-12-04 22:36:37 -0500 |
commit | aa4c57ae7e74a623f5255a7f05a6ff9d5bc335d0 (patch) | |
tree | 9d7ab21bd8ace8e731ae5ecf9c79489236fe0455 /src | |
parent | 110dc02747473ae8193d71c1aa9cbedd71bfaa01 (diff) | |
download | android-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.cc | 3 | ||||
-rw-r--r-- | src/node_process.h | 2 | ||||
-rw-r--r-- | src/node_process_events.cc | 16 |
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) { |