diff --git a/lib/internal/vm/module.js b/lib/internal/vm/module.js index 7e0131c7db2872..7c0890c967ebc6 100644 --- a/lib/internal/vm/module.js +++ b/lib/internal/vm/module.js @@ -21,7 +21,6 @@ const { const { isContext } = internalBinding('contextify'); const { isModuleNamespaceObject, - isArrayBufferView, } = require('internal/util/types'); const { customInspectSymbol, @@ -41,6 +40,7 @@ const { } = require('internal/errors').codes; const { validateBoolean, + validateBuffer, validateFunction, validateInt32, validateObject, @@ -276,25 +276,16 @@ class SourceTextModule extends Module { validateInt32(lineOffset, 'options.lineOffset'); validateInt32(columnOffset, 'options.columnOffset'); - if (initializeImportMeta !== undefined && - typeof initializeImportMeta !== 'function') { - throw new ERR_INVALID_ARG_TYPE( - 'options.initializeImportMeta', 'function', initializeImportMeta); + if (initializeImportMeta !== undefined) { + validateFunction(initializeImportMeta, 'options.initializeImportMeta'); } - if (importModuleDynamically !== undefined && - typeof importModuleDynamically !== 'function') { - throw new ERR_INVALID_ARG_TYPE( - 'options.importModuleDynamically', 'function', - importModuleDynamically); + if (importModuleDynamically !== undefined) { + validateFunction(importModuleDynamically, 'options.importModuleDynamically'); } - if (cachedData !== undefined && !isArrayBufferView(cachedData)) { - throw new ERR_INVALID_ARG_TYPE( - 'options.cachedData', - ['Buffer', 'TypedArray', 'DataView'], - cachedData - ); + if (cachedData !== undefined) { + validateBuffer(cachedData, 'options.cachedData'); } super({