diff options
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 3c3d5683292..2fa8ba498ed 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 5db7b004d6f..ad86b449f95 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 06096226625..d192ef19b7a 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) { |