lib: expose all type checks from the internal types module

Combine all type checks on the internal types module and do not use
the types binding anywhere else anymore. This makes sure all of those
checks exist when required.

PR-URL: https://github.com/nodejs/node/pull/25149
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
This commit is contained in:
Ruben Bridgewater 2018-12-20 17:35:40 +01:00
parent d385e2cc5a
commit 5ac30c99a9
No known key found for this signature in database
GPG Key ID: F07496B3EB3C1762
8 changed files with 19 additions and 25 deletions

View File

@ -37,7 +37,6 @@ const {
kMaxLength,
kStringMaxLength
} = internalBinding('buffer');
const { isAnyArrayBuffer } = internalBinding('types');
const {
getOwnNonIndexProperties,
propertyFilter: {
@ -52,6 +51,7 @@ const {
kIsEncodingSymbol
} = require('internal/util');
const {
isAnyArrayBuffer,
isArrayBufferView,
isUint8Array
} = require('internal/util/types');

View File

@ -228,7 +228,7 @@ function startup() {
// TODO(addaleax): Turn into a full runtime deprecation.
const pendingDeprecation = getOptionValue('--pending-deprecation');
const utilBinding = internalBinding('util');
const types = internalBinding('types');
const types = NativeModule.require('internal/util/types');
for (const name of [
'isArrayBuffer', 'isArrayBufferView', 'isAsyncFunction',
'isDataView', 'isDate', 'isExternal', 'isMap', 'isMapIterator',

View File

@ -21,11 +21,10 @@ const {
customInspectSymbol: inspect
} = require('internal/util');
const { isArrayBufferView } = require('internal/util/types');
const {
isArrayBuffer
} = internalBinding('types');
isArrayBuffer,
isArrayBufferView
} = require('internal/util/types');
const {
encodeUtf8String

View File

@ -14,7 +14,7 @@ const {
} = internalBinding('util');
const {
isNativeError
} = internalBinding('types');
} = require('internal/util/types');
const { errmap } = internalBinding('uv');

View File

@ -1,9 +1,9 @@
'use strict';
const { compare } = internalBinding('buffer');
const { isArrayBufferView } = require('internal/util/types');
const {
isAnyArrayBuffer,
isArrayBufferView,
isDate,
isMap,
isRegExp,
@ -15,7 +15,7 @@ const {
isBooleanObject,
isBigIntObject,
isSymbolObject
} = internalBinding('types');
} = require('internal/util/types');
const {
getOwnNonIndexProperties,
propertyFilter: {

View File

@ -27,8 +27,6 @@ const {
isStackOverflowError
} = require('internal/errors');
const types = internalBinding('types');
Object.assign(types, require('internal/util/types'));
const {
isAnyArrayBuffer,
isArrayBuffer,
@ -38,6 +36,8 @@ const {
isExternal,
isMap,
isMapIterator,
isModuleNamespaceObject,
isNativeError,
isPromise,
isSet,
isSetIterator,
@ -61,7 +61,7 @@ const {
isFloat64Array,
isBigInt64Array,
isBigUint64Array
} = types;
} = require('internal/util/types');
const ReflectApply = Reflect.apply;
@ -385,9 +385,9 @@ function getKeys(value, showHidden) {
try {
keys = Object.keys(value);
} catch (err) {
if (types.isNativeError(err) &&
if (isNativeError(err) &&
err.name === 'ReferenceError' &&
types.isModuleNamespaceObject(value)) {
isModuleNamespaceObject(value)) {
keys = Object.getOwnPropertyNames(value);
} else {
throw err;
@ -693,7 +693,7 @@ function formatRaw(ctx, value, recurseTimes) {
} else if (isWeakMap(value)) {
braces[0] = `${getPrefix(constructor, tag, 'WeakMap')}{`;
formatter = ctx.showHidden ? formatWeakMap : formatWeakCollection;
} else if (types.isModuleNamespaceObject(value)) {
} else if (isModuleNamespaceObject(value)) {
braces[0] = `[${tag}] {`;
formatter = formatNamespaceObject;
skip = true;
@ -880,7 +880,7 @@ function formatNamespaceObject(ctx, value, recurseTimes, keys) {
output[i] = formatProperty(ctx, value, recurseTimes, keys[i],
kObjectType);
} catch (err) {
if (!(types.isNativeError(err) && err.name === 'ReferenceError')) {
if (!(isNativeError(err) && err.name === 'ReferenceError')) {
throw err;
}
// Use the existing functionality. This makes sure the indentation and

View File

@ -70,6 +70,7 @@ function isBigUint64Array(value) {
}
module.exports = {
...internalBinding('types'),
isArrayBufferView,
isTypedArray,
isUint8Array,

View File

@ -31,13 +31,7 @@ const {
const { validateNumber } = require('internal/validators');
const { TextDecoder, TextEncoder } = require('internal/encoding');
const { isBuffer } = require('buffer').Buffer;
const types = internalBinding('types');
Object.assign(types, require('internal/util/types'));
const {
isRegExp,
isDate,
} = types;
const types = require('internal/util/types');
const {
deprecate,
@ -432,9 +426,9 @@ module.exports = exports = {
isString,
isSymbol,
isUndefined,
isRegExp,
isRegExp: types.isRegExp,
isObject,
isDate,
isDate: types.isDate,
isError(e) {
return objectToString(e) === '[object Error]' || e instanceof Error;
},