@@ -104,7 +104,7 @@ more on color support in terminal environments, read the tty
104
104
105
105
## Legacy assertion mode
106
106
107
- Legacy assertion mode uses the [ Abstract Equality Comparison ] [ ] in:
107
+ Legacy assertion mode uses the ` == ` operator in:
108
108
109
109
* [ ` assert.deepEqual() ` ] [ ]
110
110
* [ ` assert.equal() ` ] [ ]
@@ -121,13 +121,11 @@ import assert from 'assert';
121
121
const assert = require (' assert' );
122
122
```
123
123
124
- Whenever possible, use the [ strict assertion mode] [ ] instead. Otherwise, the
125
- [ Abstract Equality Comparison] [ ] may cause surprising results. This is
126
- especially true for [ ` assert.deepEqual() ` ] [ ] , where the comparison rules are
127
- lax:
124
+ Legacy assertion mode may have surprising results, especially when using
125
+ [ ` assert.deepEqual() ` ] [ ] :
128
126
129
127
``` cjs
130
- // WARNING: This does not throw an AssertionError!
128
+ // WARNING: This does not throw an AssertionError in legacy assertion mode !
131
129
assert .deepEqual (/ a/ gi , new Date ());
132
130
```
133
131
@@ -473,7 +471,7 @@ changes:
473
471
Legacy.
474
472
- version: v14.0.0
475
473
pr-url: https://github.com/nodejs/node/pull/30766
476
- description: NaN is now treated as being identical in case both sides are
474
+ description: NaN is now treated as being identical if both sides are
477
475
NaN.
478
476
- version: v12.0.0
479
477
pr-url: https://github.com/nodejs/node/pull/25008
@@ -523,8 +521,8 @@ are also recursively evaluated by the following rules.
523
521
524
522
### Comparison details
525
523
526
- * Primitive values are compared with the [ Abstract Equality Comparison ] [ ]
527
- ( ` == ` ) with the exception of ` NaN ` . It is treated as being identical in case
524
+ * Primitive values are compared with the ` == ` operator,
525
+ with the exception of ` NaN ` . It is treated as being identical in case
528
526
both sides are ` NaN ` .
529
527
* [ Type tags] [ Object.prototype.toString() ] of objects should be the same.
530
528
* Only [ enumerable "own" properties] [ ] are considered.
@@ -541,8 +539,7 @@ are also recursively evaluated by the following rules.
541
539
* [ ` WeakMap ` ] [ ] and [ ` WeakSet ` ] [ ] comparison does not rely on their values.
542
540
543
541
The following example does not throw an [ ` AssertionError ` ] [ ] because the
544
- primitives are considered equal by the [ Abstract Equality Comparison] [ ]
545
- ( ` == ` ).
542
+ primitives are compared using the ` == ` operator.
546
543
547
544
``` mjs
548
545
import assert from ' assert' ;
@@ -1142,7 +1139,7 @@ changes:
1142
1139
Legacy.
1143
1140
- version: v14.0.0
1144
1141
pr-url: https://github.com/nodejs/node/pull/30766
1145
- description: NaN is now treated as being identical in case both sides are
1142
+ description: NaN is now treated as being identical if both sides are
1146
1143
NaN.
1147
1144
-->
1148
1145
@@ -1159,8 +1156,8 @@ An alias of [`assert.strictEqual()`][].
1159
1156
> Stability: 3 - Legacy: Use [ ` assert.strictEqual() ` ] [ ] instead.
1160
1157
1161
1158
Tests shallow, coercive equality between the ` actual ` and ` expected ` parameters
1162
- using the [ Abstract Equality Comparison ] [ ] ( ` == ` ) . ` NaN ` is special handled
1163
- and treated as being identical in case both sides are ` NaN ` .
1159
+ using the ` == ` operator . ` NaN ` is specially handled
1160
+ and treated as being identical if both sides are ` NaN ` .
1164
1161
1165
1162
``` mjs
1166
1163
import assert from ' assert' ;
@@ -1477,7 +1474,7 @@ changes:
1477
1474
Legacy.
1478
1475
- version: v14.0.0
1479
1476
pr-url: https://github.com/nodejs/node/pull/30766
1480
- description: NaN is now treated as being identical in case both sides are
1477
+ description: NaN is now treated as being identical if both sides are
1481
1478
NaN.
1482
1479
- version: v9.0.0
1483
1480
pr-url: https://github.com/nodejs/node/pull/15001
@@ -1661,7 +1658,7 @@ changes:
1661
1658
Legacy.
1662
1659
- version: v14.0.0
1663
1660
pr-url: https://github.com/nodejs/node/pull/30766
1664
- description: NaN is now treated as being identical in case both sides are
1661
+ description: NaN is now treated as being identical if both sides are
1665
1662
NaN.
1666
1663
-->
1667
1664
@@ -1677,8 +1674,8 @@ An alias of [`assert.notStrictEqual()`][].
1677
1674
1678
1675
> Stability: 3 - Legacy: Use [ ` assert.notStrictEqual() ` ] [ ] instead.
1679
1676
1680
- Tests shallow, coercive inequality with the [ Abstract Equality Comparison ] [ ]
1681
- ( ` != ` ) . ` NaN ` is special handled and treated as being identical in case both
1677
+ Tests shallow, coercive inequality with the
1678
+ ` != ` operator . ` NaN ` is specially handled and treated as being identical if
1682
1679
sides are ` NaN ` .
1683
1680
1684
1681
``` mjs
@@ -2438,7 +2435,6 @@ assert.throws(throwingFirst, /Second$/);
2438
2435
Due to the confusing error-prone notation, avoid a string as the second
2439
2436
argument.
2440
2437
2441
- [ Abstract Equality Comparison ] : https://tc39.github.io/ecma262/#sec-abstract-equality-comparison
2442
2438
[ Object wrappers ] : https://developer.mozilla.org/en-US/docs/Glossary/Primitive#Primitive_wrapper_objects_in_JavaScript
2443
2439
[ Object.prototype.toString() ] : https://tc39.github.io/ecma262/#sec-object.prototype.tostring
2444
2440
[ SameValue Comparison ] : https://tc39.github.io/ecma262/#sec-samevalue
@@ -2474,4 +2470,3 @@ argument.
2474
2470
[ `tracker.verify()` ] : #trackerverify
2475
2471
[ enumerable "own" properties ] : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties
2476
2472
[ prototype-spec ] : https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots
2477
- [ strict assertion mode ] : #strict-assertion-mode
0 commit comments