Skip to content

Commit 3238232

Browse files
committed
lib: rename validateSafeInteger to validateInteger
validateInteger() was renamed to validateSafeInteger() in nodejs#26572. However, this function also works with unsafe integers. This commit restores the old name, and adds some basic tests. PR-URL: nodejs#29184 Refs: nodejs#26572 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Yongsheng Zhang <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]>
1 parent 37321a9 commit 3238232

File tree

5 files changed

+41
-16
lines changed

5 files changed

+41
-16
lines changed

lib/fs.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ const {
8585
isUint32,
8686
parseMode,
8787
validateBuffer,
88-
validateSafeInteger,
88+
validateInteger,
8989
validateInt32,
9090
validateUint32
9191
} = require('internal/validators');
@@ -469,7 +469,7 @@ function read(fd, buffer, offset, length, position, callback) {
469469
if (offset == null) {
470470
offset = 0;
471471
} else {
472-
validateSafeInteger(offset, 'offset');
472+
validateInteger(offset, 'offset');
473473
}
474474

475475
length |= 0;
@@ -511,7 +511,7 @@ function readSync(fd, buffer, offset, length, position) {
511511
if (offset == null) {
512512
offset = 0;
513513
} else {
514-
validateSafeInteger(offset, 'offset');
514+
validateInteger(offset, 'offset');
515515
}
516516

517517
length |= 0;
@@ -557,7 +557,7 @@ function write(fd, buffer, offset, length, position, callback) {
557557
if (offset == null || typeof offset === 'function') {
558558
offset = 0;
559559
} else {
560-
validateSafeInteger(offset, 'offset');
560+
validateInteger(offset, 'offset');
561561
}
562562
if (typeof length !== 'number')
563563
length = buffer.length - offset;
@@ -599,7 +599,7 @@ function writeSync(fd, buffer, offset, length, position) {
599599
if (offset == null) {
600600
offset = 0;
601601
} else {
602-
validateSafeInteger(offset, 'offset');
602+
validateInteger(offset, 'offset');
603603
}
604604
if (typeof length !== 'number')
605605
length = buffer.byteLength - offset;
@@ -698,7 +698,7 @@ function truncate(path, len, callback) {
698698
len = 0;
699699
}
700700

701-
validateSafeInteger(len, 'len');
701+
validateInteger(len, 'len');
702702
callback = maybeCallback(callback);
703703
fs.open(path, 'r+', (er, fd) => {
704704
if (er) return callback(er);
@@ -739,7 +739,7 @@ function ftruncate(fd, len = 0, callback) {
739739
len = 0;
740740
}
741741
validateInt32(fd, 'fd', 0);
742-
validateSafeInteger(len, 'len');
742+
validateInteger(len, 'len');
743743
len = Math.max(0, len);
744744
const req = new FSReqCallback();
745745
req.oncomplete = makeCallback(callback);
@@ -748,7 +748,7 @@ function ftruncate(fd, len = 0, callback) {
748748

749749
function ftruncateSync(fd, len = 0) {
750750
validateInt32(fd, 'fd', 0);
751-
validateSafeInteger(len, 'len');
751+
validateInteger(len, 'len');
752752
len = Math.max(0, len);
753753
const ctx = {};
754754
binding.ftruncate(fd, len, undefined, ctx);

lib/internal/crypto/scrypt.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
const { AsyncWrap, Providers } = internalBinding('async_wrap');
44
const { Buffer } = require('buffer');
55
const { scrypt: _scrypt } = internalBinding('crypto');
6-
const { validateSafeInteger, validateUint32 } = require('internal/validators');
6+
const { validateInteger, validateUint32 } = require('internal/validators');
77
const {
88
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER,
99
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED,
@@ -108,7 +108,7 @@ function check(password, salt, keylen, options) {
108108
}
109109
if (options.maxmem !== undefined) {
110110
maxmem = options.maxmem;
111-
validateSafeInteger(maxmem, 'maxmem', 0);
111+
validateInteger(maxmem, 'maxmem', 0);
112112
}
113113
if (N === 0) N = defaults.N;
114114
if (r === 0) r = defaults.r;

lib/internal/fs/promises.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const {
3636
const {
3737
parseMode,
3838
validateBuffer,
39-
validateSafeInteger,
39+
validateInteger,
4040
validateUint32
4141
} = require('internal/validators');
4242
const pathModule = require('path');
@@ -209,7 +209,7 @@ async function read(handle, buffer, offset, length, position) {
209209
if (offset == null) {
210210
offset = 0;
211211
} else {
212-
validateSafeInteger(offset, 'offset');
212+
validateInteger(offset, 'offset');
213213
}
214214

215215
length |= 0;
@@ -243,7 +243,7 @@ async function write(handle, buffer, offset, length, position) {
243243
if (offset == null) {
244244
offset = 0;
245245
} else {
246-
validateSafeInteger(offset, 'offset');
246+
validateInteger(offset, 'offset');
247247
}
248248
if (typeof length !== 'number')
249249
length = buffer.length - offset;
@@ -278,7 +278,7 @@ async function truncate(path, len = 0) {
278278

279279
async function ftruncate(handle, len = 0) {
280280
validateFileHandle(handle);
281-
validateSafeInteger(len, 'len');
281+
validateInteger(len, 'len');
282282
len = Math.max(0, len);
283283
return binding.ftruncate(handle.fd, len, kUsePromises);
284284
}

lib/internal/validators.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ function parseMode(value, name, def) {
6262
throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc);
6363
}
6464

65-
const validateSafeInteger = hideStackFrames(
65+
const validateInteger = hideStackFrames(
6666
(value, name, min = MIN_SAFE_INTEGER, max = MAX_SAFE_INTEGER) => {
6767
if (typeof value !== 'number')
6868
throw new ERR_INVALID_ARG_TYPE(name, 'number', value);
@@ -161,7 +161,7 @@ module.exports = {
161161
parseMode,
162162
validateBuffer,
163163
validateEncoding,
164-
validateSafeInteger,
164+
validateInteger,
165165
validateInt32,
166166
validateUint32,
167167
validateString,

test/parallel/test-validators.js

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Flags: --expose-internals
2+
'use strict';
3+
const common = require('../common');
4+
const {
5+
validateInteger
6+
} = require('internal/validators');
7+
const { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } = Number;
8+
const outOfRangeError = {
9+
code: 'ERR_OUT_OF_RANGE',
10+
type: RangeError
11+
};
12+
13+
// validateInteger() defaults to validating safe integers.
14+
validateInteger(MAX_SAFE_INTEGER, 'foo');
15+
validateInteger(MIN_SAFE_INTEGER, 'foo');
16+
common.expectsError(() => {
17+
validateInteger(MAX_SAFE_INTEGER + 1, 'foo');
18+
}, outOfRangeError);
19+
common.expectsError(() => {
20+
validateInteger(MIN_SAFE_INTEGER - 1, 'foo');
21+
}, outOfRangeError);
22+
23+
// validateInteger() works with unsafe integers.
24+
validateInteger(MAX_SAFE_INTEGER + 1, 'foo', 0, MAX_SAFE_INTEGER + 1);
25+
validateInteger(MIN_SAFE_INTEGER - 1, 'foo', MIN_SAFE_INTEGER - 1);

0 commit comments

Comments
 (0)