20
20
21
21
'use strict' ;
22
22
23
- // UTILITY
24
- const compare = process . binding ( 'buffer' ) . compare ;
23
+ const { compare } = process . binding ( 'buffer' ) ;
25
24
const util = require ( 'util' ) ;
26
25
const Buffer = require ( 'buffer' ) . Buffer ;
27
26
const pToString = ( obj ) => Object . prototype . toString . call ( obj ) ;
@@ -49,7 +48,7 @@ assert.AssertionError = function AssertionError(options) {
49
48
this . message = getMessage ( this ) ;
50
49
this . generatedMessage = true ;
51
50
}
52
- var stackStartFunction = options . stackStartFunction || fail ;
51
+ const stackStartFunction = options . stackStartFunction || fail ;
53
52
Error . captureStackTrace ( this , stackStartFunction ) ;
54
53
} ;
55
54
@@ -73,7 +72,7 @@ function getMessage(self) {
73
72
74
73
// All of the following functions must throw an AssertionError
75
74
// when a corresponding condition is not met, with a message that
76
- // may be undefined if not provided. All assertion methods provide
75
+ // may be undefined if not provided. All assertion methods provide
77
76
// both the actual and expected values to the assertion error for
78
77
// display purposes.
79
78
@@ -86,57 +85,44 @@ function fail(actual, expected, message, operator, stackStartFunction) {
86
85
stackStartFunction : stackStartFunction
87
86
} ) ;
88
87
}
89
-
90
- // EXTENSION! allows for well behaved errors defined elsewhere.
91
88
assert . fail = fail ;
92
89
93
90
// Pure assertion tests whether a value is truthy, as determined
94
- // by !!guard.
95
- // assert.ok(guard, message_opt);
96
- // This statement is equivalent to assert.equal(true, !!guard,
97
- // message_opt);. To test strictly for the value true, use
98
- // assert.strictEqual(true, guard, message_opt);.
99
-
91
+ // by !!value.
100
92
function ok ( value , message ) {
101
- if ( ! value ) fail ( value , true , message , '==' , assert . ok ) ;
93
+ if ( ! value ) fail ( value , true , message , '==' , ok ) ;
102
94
}
103
95
assert . ok = ok ;
104
96
105
- // The equality assertion tests shallow, coercive equality with
106
- // ==.
107
- // assert.equal(actual, expected, message_opt);
97
+ // The equality assertion tests shallow, coercive equality with ==.
108
98
/* eslint-disable no-restricted-properties */
109
99
assert . equal = function equal ( actual , expected , message ) {
110
100
if ( actual != expected ) fail ( actual , expected , message , '==' , assert . equal ) ;
111
101
} ;
112
102
113
103
// The non-equality assertion tests for whether two objects are not
114
104
// equal with !=.
115
- // assert.notEqual(actual, expected, message_opt);
116
-
117
105
assert . notEqual = function notEqual ( actual , expected , message ) {
118
106
if ( actual == expected ) {
119
- fail ( actual , expected , message , '!=' , assert . notEqual ) ;
107
+ fail ( actual , expected , message , '!=' , notEqual ) ;
120
108
}
121
109
} ;
122
110
123
111
// The equivalence assertion tests a deep equality relation.
124
- // assert.deepEqual(actual, expected, message_opt);
125
-
126
112
assert . deepEqual = function deepEqual ( actual , expected , message ) {
127
- if ( ! _deepEqual ( actual , expected , false ) ) {
128
- fail ( actual , expected , message , 'deepEqual' , assert . deepEqual ) ;
113
+ if ( ! innerDeepEqual ( actual , expected , false ) ) {
114
+ fail ( actual , expected , message , 'deepEqual' , deepEqual ) ;
129
115
}
130
116
} ;
131
117
/* eslint-enable */
132
118
133
119
assert . deepStrictEqual = function deepStrictEqual ( actual , expected , message ) {
134
- if ( ! _deepEqual ( actual , expected , true ) ) {
135
- fail ( actual , expected , message , 'deepStrictEqual' , assert . deepStrictEqual ) ;
120
+ if ( ! innerDeepEqual ( actual , expected , true ) ) {
121
+ fail ( actual , expected , message , 'deepStrictEqual' , deepStrictEqual ) ;
136
122
}
137
123
} ;
138
124
139
- function _deepEqual ( actual , expected , strict , memos ) {
125
+ function innerDeepEqual ( actual , expected , strict , memos ) {
140
126
// All identical values are equivalent, as determined by ===.
141
127
if ( actual === expected ) {
142
128
return true ;
@@ -247,45 +233,40 @@ function objEquiv(a, b, strict, actualVisitedObjects) {
247
233
// Possibly expensive deep test:
248
234
for ( i = ka . length - 1 ; i >= 0 ; i -- ) {
249
235
key = ka [ i ] ;
250
- if ( ! _deepEqual ( a [ key ] , b [ key ] , strict , actualVisitedObjects ) )
236
+ if ( ! innerDeepEqual ( a [ key ] , b [ key ] , strict , actualVisitedObjects ) )
251
237
return false ;
252
238
}
253
239
return true ;
254
240
}
255
241
256
242
// The non-equivalence assertion tests for any deep inequality.
257
- // assert.notDeepEqual(actual, expected, message_opt);
258
-
259
243
assert . notDeepEqual = function notDeepEqual ( actual , expected , message ) {
260
- if ( _deepEqual ( actual , expected , false ) ) {
261
- fail ( actual , expected , message , 'notDeepEqual' , assert . notDeepEqual ) ;
244
+ if ( innerDeepEqual ( actual , expected , false ) ) {
245
+ fail ( actual , expected , message , 'notDeepEqual' , notDeepEqual ) ;
262
246
}
263
247
} ;
264
248
265
249
assert . notDeepStrictEqual = notDeepStrictEqual ;
266
250
function notDeepStrictEqual ( actual , expected , message ) {
267
- if ( _deepEqual ( actual , expected , true ) ) {
268
- fail ( actual , expected , message , 'notDeepStrictEqual' , notDeepStrictEqual ) ;
251
+ if ( innerDeepEqual ( actual , expected , true ) ) {
252
+ fail ( actual , expected , message , 'notDeepStrictEqual' ,
253
+ notDeepStrictEqual ) ;
269
254
}
270
255
}
271
256
272
257
273
258
// The strict equality assertion tests strict equality, as determined by ===.
274
- // assert.strictEqual(actual, expected, message_opt);
275
-
276
259
assert . strictEqual = function strictEqual ( actual , expected , message ) {
277
260
if ( actual !== expected ) {
278
- fail ( actual , expected , message , '===' , assert . strictEqual ) ;
261
+ fail ( actual , expected , message , '===' , strictEqual ) ;
279
262
}
280
263
} ;
281
264
282
265
// The strict non-equality assertion tests for strict inequality, as
283
266
// determined by !==.
284
- // assert.notStrictEqual(actual, expected, message_opt);
285
-
286
267
assert . notStrictEqual = function notStrictEqual ( actual , expected , message ) {
287
268
if ( actual === expected ) {
288
- fail ( actual , expected , message , '!==' , assert . notStrictEqual ) ;
269
+ fail ( actual , expected , message , '!==' , notStrictEqual ) ;
289
270
}
290
271
} ;
291
272
@@ -314,7 +295,7 @@ function expectedException(actual, expected) {
314
295
return expected . call ( { } , actual ) === true ;
315
296
}
316
297
317
- function _tryBlock ( block ) {
298
+ function tryBlock ( block ) {
318
299
var error ;
319
300
try {
320
301
block ( ) ;
@@ -324,9 +305,7 @@ function _tryBlock(block) {
324
305
return error ;
325
306
}
326
307
327
- function _throws ( shouldThrow , block , expected , message ) {
328
- var actual ;
329
-
308
+ function innerThrows ( shouldThrow , block , expected , message ) {
330
309
if ( typeof block !== 'function' ) {
331
310
throw new TypeError ( '"block" argument must be a function' ) ;
332
311
}
@@ -336,13 +315,13 @@ function _throws(shouldThrow, block, expected, message) {
336
315
expected = null ;
337
316
}
338
317
339
- actual = _tryBlock ( block ) ;
318
+ const actual = tryBlock ( block ) ;
340
319
341
320
message = ( expected && expected . name ? ' (' + expected . name + ').' : '.' ) +
342
321
( message ? ' ' + message : '.' ) ;
343
322
344
323
if ( shouldThrow && ! actual ) {
345
- fail ( actual , expected , 'Missing expected exception' + message ) ;
324
+ fail ( actual , expected , 'Missing expected exception' + message , fail ) ;
346
325
}
347
326
348
327
const userProvidedMessage = typeof message === 'string' ;
@@ -353,7 +332,7 @@ function _throws(shouldThrow, block, expected, message) {
353
332
userProvidedMessage &&
354
333
expectedException ( actual , expected ) ) ||
355
334
isUnexpectedException ) {
356
- fail ( actual , expected , 'Got unwanted exception' + message ) ;
335
+ fail ( actual , expected , 'Got unwanted exception' + message , fail ) ;
357
336
}
358
337
359
338
if ( ( shouldThrow && actual && expected &&
@@ -363,15 +342,12 @@ function _throws(shouldThrow, block, expected, message) {
363
342
}
364
343
365
344
// Expected to throw an error.
366
- // assert.throws(block, Error_opt, message_opt);
367
-
368
- assert . throws = function ( block , /*optional*/ error , /*optional*/ message ) {
369
- _throws ( true , block , error , message ) ;
345
+ assert . throws = function throws ( block , error , message ) {
346
+ innerThrows ( true , block , error , message ) ;
370
347
} ;
371
348
372
- // EXTENSION! This is annoying to write outside this module.
373
- assert . doesNotThrow = function ( block , /*optional*/ error , /*optional*/ message ) {
374
- _throws ( false , block , error , message ) ;
349
+ assert . doesNotThrow = function doesNotThrow ( block , error , message ) {
350
+ innerThrows ( false , block , error , message ) ;
375
351
} ;
376
352
377
- assert . ifError = function ( err ) { if ( err ) throw err ; } ;
353
+ assert . ifError = function ifError ( err ) { if ( err ) throw err ; } ;
0 commit comments