2020
2121'use strict' ;
2222
23- // UTILITY
24- const compare = process . binding ( 'buffer' ) . compare ;
23+ const { compare } = process . binding ( 'buffer' ) ;
2524const util = require ( 'util' ) ;
2625const Buffer = require ( 'buffer' ) . Buffer ;
2726const pToString = ( obj ) => Object . prototype . toString . call ( obj ) ;
@@ -49,7 +48,7 @@ assert.AssertionError = function AssertionError(options) {
4948 this . message = getMessage ( this ) ;
5049 this . generatedMessage = true ;
5150 }
52- var stackStartFunction = options . stackStartFunction || fail ;
51+ const stackStartFunction = options . stackStartFunction || fail ;
5352 Error . captureStackTrace ( this , stackStartFunction ) ;
5453} ;
5554
@@ -73,7 +72,7 @@ function getMessage(self) {
7372
7473// All of the following functions must throw an AssertionError
7574// 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
7776// both the actual and expected values to the assertion error for
7877// display purposes.
7978
@@ -86,57 +85,44 @@ function fail(actual, expected, message, operator, stackStartFunction) {
8685 stackStartFunction : stackStartFunction
8786 } ) ;
8887}
89-
90- // EXTENSION! allows for well behaved errors defined elsewhere.
9188assert . fail = fail ;
9289
9390// 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.
10092function ok ( value , message ) {
101- if ( ! value ) fail ( value , true , message , '==' , assert . ok ) ;
93+ if ( ! value ) fail ( value , true , message , '==' , ok ) ;
10294}
10395assert . ok = ok ;
10496
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 ==.
10898/* eslint-disable no-restricted-properties */
10999assert . equal = function equal ( actual , expected , message ) {
110100 if ( actual != expected ) fail ( actual , expected , message , '==' , assert . equal ) ;
111101} ;
112102
113103// The non-equality assertion tests for whether two objects are not
114104// equal with !=.
115- // assert.notEqual(actual, expected, message_opt);
116-
117105assert . notEqual = function notEqual ( actual , expected , message ) {
118106 if ( actual == expected ) {
119- fail ( actual , expected , message , '!=' , assert . notEqual ) ;
107+ fail ( actual , expected , message , '!=' , notEqual ) ;
120108 }
121109} ;
122110
123111// The equivalence assertion tests a deep equality relation.
124- // assert.deepEqual(actual, expected, message_opt);
125-
126112assert . 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 ) ;
129115 }
130116} ;
131117/* eslint-enable */
132118
133119assert . 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 ) ;
136122 }
137123} ;
138124
139- function _deepEqual ( actual , expected , strict , memos ) {
125+ function innerDeepEqual ( actual , expected , strict , memos ) {
140126 // All identical values are equivalent, as determined by ===.
141127 if ( actual === expected ) {
142128 return true ;
@@ -247,45 +233,40 @@ function objEquiv(a, b, strict, actualVisitedObjects) {
247233 // Possibly expensive deep test:
248234 for ( i = ka . length - 1 ; i >= 0 ; i -- ) {
249235 key = ka [ i ] ;
250- if ( ! _deepEqual ( a [ key ] , b [ key ] , strict , actualVisitedObjects ) )
236+ if ( ! innerDeepEqual ( a [ key ] , b [ key ] , strict , actualVisitedObjects ) )
251237 return false ;
252238 }
253239 return true ;
254240}
255241
256242// The non-equivalence assertion tests for any deep inequality.
257- // assert.notDeepEqual(actual, expected, message_opt);
258-
259243assert . 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 ) ;
262246 }
263247} ;
264248
265249assert . notDeepStrictEqual = notDeepStrictEqual ;
266250function 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 ) ;
269254 }
270255}
271256
272257
273258// The strict equality assertion tests strict equality, as determined by ===.
274- // assert.strictEqual(actual, expected, message_opt);
275-
276259assert . strictEqual = function strictEqual ( actual , expected , message ) {
277260 if ( actual !== expected ) {
278- fail ( actual , expected , message , '===' , assert . strictEqual ) ;
261+ fail ( actual , expected , message , '===' , strictEqual ) ;
279262 }
280263} ;
281264
282265// The strict non-equality assertion tests for strict inequality, as
283266// determined by !==.
284- // assert.notStrictEqual(actual, expected, message_opt);
285-
286267assert . notStrictEqual = function notStrictEqual ( actual , expected , message ) {
287268 if ( actual === expected ) {
288- fail ( actual , expected , message , '!==' , assert . notStrictEqual ) ;
269+ fail ( actual , expected , message , '!==' , notStrictEqual ) ;
289270 }
290271} ;
291272
@@ -314,7 +295,7 @@ function expectedException(actual, expected) {
314295 return expected . call ( { } , actual ) === true ;
315296}
316297
317- function _tryBlock ( block ) {
298+ function tryBlock ( block ) {
318299 var error ;
319300 try {
320301 block ( ) ;
@@ -324,9 +305,7 @@ function _tryBlock(block) {
324305 return error ;
325306}
326307
327- function _throws ( shouldThrow , block , expected , message ) {
328- var actual ;
329-
308+ function innerThrows ( shouldThrow , block , expected , message ) {
330309 if ( typeof block !== 'function' ) {
331310 throw new TypeError ( '"block" argument must be a function' ) ;
332311 }
@@ -336,13 +315,13 @@ function _throws(shouldThrow, block, expected, message) {
336315 expected = null ;
337316 }
338317
339- actual = _tryBlock ( block ) ;
318+ const actual = tryBlock ( block ) ;
340319
341320 message = ( expected && expected . name ? ' (' + expected . name + ').' : '.' ) +
342321 ( message ? ' ' + message : '.' ) ;
343322
344323 if ( shouldThrow && ! actual ) {
345- fail ( actual , expected , 'Missing expected exception' + message ) ;
324+ fail ( actual , expected , 'Missing expected exception' + message , fail ) ;
346325 }
347326
348327 const userProvidedMessage = typeof message === 'string' ;
@@ -353,7 +332,7 @@ function _throws(shouldThrow, block, expected, message) {
353332 userProvidedMessage &&
354333 expectedException ( actual , expected ) ) ||
355334 isUnexpectedException ) {
356- fail ( actual , expected , 'Got unwanted exception' + message ) ;
335+ fail ( actual , expected , 'Got unwanted exception' + message , fail ) ;
357336 }
358337
359338 if ( ( shouldThrow && actual && expected &&
@@ -363,15 +342,12 @@ function _throws(shouldThrow, block, expected, message) {
363342}
364343
365344// 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 ) ;
370347} ;
371348
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 ) ;
375351} ;
376352
377- assert . ifError = function ( err ) { if ( err ) throw err ; } ;
353+ assert . ifError = function ifError ( err ) { if ( err ) throw err ; } ;
0 commit comments