From 007abb09893493ce1fca906c42a50f4cdc61bf51 Mon Sep 17 00:00:00 2001 From: Voltrex Date: Sat, 31 Jul 2021 15:20:19 +0430 Subject: [PATCH] lib: use `validateObject` Used the validateObject() validator to keep consistency instead of a custom validator which was only used to validate objects. Refs: #39595 --- lib/internal/encoding.js | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/lib/internal/encoding.js b/lib/internal/encoding.js index f6e52238a1270c..cb75eb499d4717 100644 --- a/lib/internal/encoding.js +++ b/lib/internal/encoding.js @@ -39,7 +39,10 @@ const { isUint8Array } = require('internal/util/types'); -const { validateString } = require('internal/validators'); +const { + validateString, + validateObject, +} = require('internal/validators'); const { encodeInto, @@ -63,12 +66,6 @@ function validateDecoder(obj) { throw new ERR_INVALID_THIS('TextDecoder'); } -function validateArgument(prop, expected, propName, expectedName) { - // eslint-disable-next-line valid-typeof - if (typeof prop !== expected) - throw new ERR_INVALID_ARG_TYPE(propName, expectedName, prop); -} - const CONVERTER_FLAGS_FLUSH = 0x1; const CONVERTER_FLAGS_FATAL = 0x2; const CONVERTER_FLAGS_IGNORE_BOM = 0x4; @@ -381,7 +378,10 @@ function makeTextDecoderICU() { class TextDecoder { constructor(encoding = 'utf-8', options = {}) { encoding = `${encoding}`; - validateArgument(options, 'object', 'options', 'Object'); + validateObject(options, 'options', { + nullable: true, + allowArray: true + }); const enc = getEncodingFromLabel(encoding); if (enc === undefined) @@ -413,7 +413,10 @@ function makeTextDecoderICU() { ['ArrayBuffer', 'ArrayBufferView'], input); } - validateArgument(options, 'object', 'options', 'Object'); + validateObject(options, 'options', { + nullable: true, + allowArray: true + }); let flags = 0; if (options !== null) @@ -447,7 +450,10 @@ function makeTextDecoderJS() { class TextDecoder { constructor(encoding = 'utf-8', options = {}) { encoding = `${encoding}`; - validateArgument(options, 'object', 'options', 'Object'); + validateObject(options, 'options', { + nullable: true, + allowArray: true + }); const enc = getEncodingFromLabel(encoding); if (enc === undefined || !hasConverter(enc)) @@ -481,7 +487,10 @@ function makeTextDecoderJS() { ['ArrayBuffer', 'ArrayBufferView'], input); } - validateArgument(options, 'object', 'options', 'Object'); + validateObject(options, 'options', { + nullable: true, + allowArray: true + }); if (this[kFlags] & CONVERTER_FLAGS_FLUSH) { this[kBOMSeen] = false;