From 2c23e31c317025f6064c194f8850a474f4b6bf53 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Mon, 16 Apr 2018 22:58:19 +0800 Subject: src: throw ERR_INVALID_ARG_TYPE in C++ argument checks - Moves THROW_AND_RETURN_IF_NOT_BUFFER and THROW_AND_RETURN_IF_NOT_STRING from node_crypto.cc to node_errors.h so it can be reused. - Move THROW_AND_RETURN_UNLESS_BUFFER in util.h to node_buffer.cc and call THROW_AND_RETURN_IF_NOT_BUFFER there. The only other reference to THROW_AND_RETURN_UNLESS_BUFFER in node_i18n.cc can be safely replaced by an assertion since the argument will be checked in JS land. - Migrate ERR_INVALID_ARG_TYPE errors in C++. We can move the checks to JS land if possible later without having to go semver-major. PR-URL: https://github.com/nodejs/node/pull/20121 Reviewed-By: Daniel Bevenius Reviewed-By: Anna Henningsen Reviewed-By: Matteo Collina Reviewed-By: James M Snell Reviewed-By: Jeremiah Senkpiel --- src/node_i18n.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/node_i18n.cc') diff --git a/src/node_i18n.cc b/src/node_i18n.cc index 7f462d5aea..f491d2191d 100644 --- a/src/node_i18n.cc +++ b/src/node_i18n.cc @@ -46,6 +46,7 @@ #include "node.h" #include "node_buffer.h" +#include "node_errors.h" #include "env-inl.h" #include "util-inl.h" #include "base_object-inl.h" @@ -447,7 +448,7 @@ void Transcode(const FunctionCallbackInfo&args) { UErrorCode status = U_ZERO_ERROR; MaybeLocal result; - THROW_AND_RETURN_UNLESS_BUFFER(env, args[0]); + CHECK(Buffer::HasInstance(args[0])); SPREAD_BUFFER_ARG(args[0], ts_obj); const enum encoding fromEncoding = ParseEncoding(isolate, args[1], BUFFER); const enum encoding toEncoding = ParseEncoding(isolate, args[2], BUFFER); -- cgit v1.2.3