Skip to content

Commit

Permalink
lib: rename validateSafeInteger to validateInteger
Browse files Browse the repository at this point in the history
validateInteger() was renamed to validateSafeInteger() in
#26572. However, this
function also works with unsafe integers. This commit restores
the old name, and adds some basic tests.

PR-URL: #29184
Refs: #26572
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
  • Loading branch information
cjihrig committed Aug 19, 2019
1 parent 37321a9 commit 3238232
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 16 deletions.
16 changes: 8 additions & 8 deletions lib/fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ const {
isUint32,
parseMode,
validateBuffer,
validateSafeInteger,
validateInteger,
validateInt32,
validateUint32
} = require('internal/validators');
Expand Down Expand Up @@ -469,7 +469,7 @@ function read(fd, buffer, offset, length, position, callback) {
if (offset == null) {
offset = 0;
} else {
validateSafeInteger(offset, 'offset');
validateInteger(offset, 'offset');
}

length |= 0;
Expand Down Expand Up @@ -511,7 +511,7 @@ function readSync(fd, buffer, offset, length, position) {
if (offset == null) {
offset = 0;
} else {
validateSafeInteger(offset, 'offset');
validateInteger(offset, 'offset');
}

length |= 0;
Expand Down Expand Up @@ -557,7 +557,7 @@ function write(fd, buffer, offset, length, position, callback) {
if (offset == null || typeof offset === 'function') {
offset = 0;
} else {
validateSafeInteger(offset, 'offset');
validateInteger(offset, 'offset');
}
if (typeof length !== 'number')
length = buffer.length - offset;
Expand Down Expand Up @@ -599,7 +599,7 @@ function writeSync(fd, buffer, offset, length, position) {
if (offset == null) {
offset = 0;
} else {
validateSafeInteger(offset, 'offset');
validateInteger(offset, 'offset');
}
if (typeof length !== 'number')
length = buffer.byteLength - offset;
Expand Down Expand Up @@ -698,7 +698,7 @@ function truncate(path, len, callback) {
len = 0;
}

validateSafeInteger(len, 'len');
validateInteger(len, 'len');
callback = maybeCallback(callback);
fs.open(path, 'r+', (er, fd) => {
if (er) return callback(er);
Expand Down Expand Up @@ -739,7 +739,7 @@ function ftruncate(fd, len = 0, callback) {
len = 0;
}
validateInt32(fd, 'fd', 0);
validateSafeInteger(len, 'len');
validateInteger(len, 'len');
len = Math.max(0, len);
const req = new FSReqCallback();
req.oncomplete = makeCallback(callback);
Expand All @@ -748,7 +748,7 @@ function ftruncate(fd, len = 0, callback) {

function ftruncateSync(fd, len = 0) {
validateInt32(fd, 'fd', 0);
validateSafeInteger(len, 'len');
validateInteger(len, 'len');
len = Math.max(0, len);
const ctx = {};
binding.ftruncate(fd, len, undefined, ctx);
Expand Down
4 changes: 2 additions & 2 deletions lib/internal/crypto/scrypt.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
const { AsyncWrap, Providers } = internalBinding('async_wrap');
const { Buffer } = require('buffer');
const { scrypt: _scrypt } = internalBinding('crypto');
const { validateSafeInteger, validateUint32 } = require('internal/validators');
const { validateInteger, validateUint32 } = require('internal/validators');
const {
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER,
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED,
Expand Down Expand Up @@ -108,7 +108,7 @@ function check(password, salt, keylen, options) {
}
if (options.maxmem !== undefined) {
maxmem = options.maxmem;
validateSafeInteger(maxmem, 'maxmem', 0);
validateInteger(maxmem, 'maxmem', 0);
}
if (N === 0) N = defaults.N;
if (r === 0) r = defaults.r;
Expand Down
8 changes: 4 additions & 4 deletions lib/internal/fs/promises.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const {
const {
parseMode,
validateBuffer,
validateSafeInteger,
validateInteger,
validateUint32
} = require('internal/validators');
const pathModule = require('path');
Expand Down Expand Up @@ -209,7 +209,7 @@ async function read(handle, buffer, offset, length, position) {
if (offset == null) {
offset = 0;
} else {
validateSafeInteger(offset, 'offset');
validateInteger(offset, 'offset');
}

length |= 0;
Expand Down Expand Up @@ -243,7 +243,7 @@ async function write(handle, buffer, offset, length, position) {
if (offset == null) {
offset = 0;
} else {
validateSafeInteger(offset, 'offset');
validateInteger(offset, 'offset');
}
if (typeof length !== 'number')
length = buffer.length - offset;
Expand Down Expand Up @@ -278,7 +278,7 @@ async function truncate(path, len = 0) {

async function ftruncate(handle, len = 0) {
validateFileHandle(handle);
validateSafeInteger(len, 'len');
validateInteger(len, 'len');
len = Math.max(0, len);
return binding.ftruncate(handle.fd, len, kUsePromises);
}
Expand Down
4 changes: 2 additions & 2 deletions lib/internal/validators.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ function parseMode(value, name, def) {
throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc);
}

const validateSafeInteger = hideStackFrames(
const validateInteger = hideStackFrames(
(value, name, min = MIN_SAFE_INTEGER, max = MAX_SAFE_INTEGER) => {
if (typeof value !== 'number')
throw new ERR_INVALID_ARG_TYPE(name, 'number', value);
Expand Down Expand Up @@ -161,7 +161,7 @@ module.exports = {
parseMode,
validateBuffer,
validateEncoding,
validateSafeInteger,
validateInteger,
validateInt32,
validateUint32,
validateString,
Expand Down
25 changes: 25 additions & 0 deletions test/parallel/test-validators.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Flags: --expose-internals
'use strict';
const common = require('../common');
const {
validateInteger
} = require('internal/validators');
const { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } = Number;
const outOfRangeError = {
code: 'ERR_OUT_OF_RANGE',
type: RangeError
};

// validateInteger() defaults to validating safe integers.
validateInteger(MAX_SAFE_INTEGER, 'foo');
validateInteger(MIN_SAFE_INTEGER, 'foo');
common.expectsError(() => {
validateInteger(MAX_SAFE_INTEGER + 1, 'foo');
}, outOfRangeError);
common.expectsError(() => {
validateInteger(MIN_SAFE_INTEGER - 1, 'foo');
}, outOfRangeError);

// validateInteger() works with unsafe integers.
validateInteger(MAX_SAFE_INTEGER + 1, 'foo', 0, MAX_SAFE_INTEGER + 1);
validateInteger(MIN_SAFE_INTEGER - 1, 'foo', MIN_SAFE_INTEGER - 1);

0 comments on commit 3238232

Please sign in to comment.