From f4020a4f16b65a4d3b3abae4b44e900fb75ff9d8 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Mon, 25 Jul 2022 18:40:24 -0700 Subject: [PATCH] Added soft deprecation warning for deprecated methods and properties. --- nginx/ngx_http_js_module.c | 4 ++++ src/njs.h | 11 +++++++++++ src/njs_string.c | 10 ++++++++++ 3 files changed, 25 insertions(+) diff --git a/nginx/ngx_http_js_module.c b/nginx/ngx_http_js_module.c index 6a3527c3..f948c007 100644 --- a/nginx/ngx_http_js_module.c +++ b/nginx/ngx_http_js_module.c @@ -2572,6 +2572,8 @@ ngx_http_js_ext_get_request_body(njs_vm_t *vm, njs_object_prop_t *prop, ngx_http_js_ctx_t *ctx; ngx_http_request_t *r; + njs_deprecated(vm, "r.requestBody"); + r = njs_vm_external(vm, ngx_http_js_request_proto_id, value); if (r == NULL) { njs_value_undefined_set(retval); @@ -3416,6 +3418,8 @@ ngx_http_js_ext_get_response_body(njs_vm_t *vm, njs_object_prop_t *prop, ngx_http_js_ctx_t *ctx; ngx_http_request_t *r; + njs_deprecated(vm, "r.responseBody"); + r = njs_vm_external(vm, ngx_http_js_request_proto_id, value); if (r == NULL) { njs_value_undefined_set(retval); diff --git a/src/njs.h b/src/njs.h index 9d8811e7..0b9c5513 100644 --- a/src/njs.h +++ b/src/njs.h @@ -81,6 +81,17 @@ extern const njs_value_t njs_value_undefined; #define njs_vm_err(vm, fmt, ...) njs_vm_logger(vm, NJS_LOG_LEVEL_ERROR, fmt, \ ##__VA_ARGS__) +#define njs_deprecated(vm, text) \ + do { \ + static njs_bool_t reported; \ + \ + if (!reported) { \ + njs_vm_warn(vm, text " is deprecated " \ + "and will be removed in the future"); \ + reported = 1; \ + } \ + } while(0) + /* * njs_prop_handler_t operates as a property getter/setter or delete handler. * - retval != NULL && setval == NULL - GET context. diff --git a/src/njs_string.c b/src/njs_string.c index 9ff3ae61..83cede54 100644 --- a/src/njs_string.c +++ b/src/njs_string.c @@ -982,6 +982,8 @@ njs_string_prototype_from_utf8(njs_vm_t *vm, njs_value_t *args, njs_slice_prop_t slice; njs_string_prop_t string; + njs_deprecated(vm, "String.prototype.fromUTF8()"); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; @@ -1025,6 +1027,8 @@ njs_string_prototype_to_utf8(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_slice_prop_t slice; njs_string_prop_t string; + njs_deprecated(vm, "String.prototype.toUTF8()"); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; @@ -1059,6 +1063,8 @@ njs_string_prototype_from_bytes(njs_vm_t *vm, njs_value_t *args, njs_slice_prop_t slice; njs_string_prop_t string; + njs_deprecated(vm, "String.prototype.fromBytes()"); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; @@ -1125,6 +1131,8 @@ njs_string_prototype_to_bytes(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_string_prop_t string; njs_unicode_decode_t ctx; + njs_deprecated(vm, "String.prototype.toBytes()"); + ret = njs_string_object_validate(vm, njs_argument(args, 0)); if (njs_slow_path(ret != NJS_OK)) { return ret; @@ -1617,6 +1625,8 @@ njs_string_bytes_from(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, { njs_value_t *value; + njs_deprecated(vm, "String.bytesFrom()"); + value = njs_arg(args, nargs, 1); if (njs_is_string(value)) { -- 2.47.3