1# Deprecated APIs
2
3<!--introduced_in=v7.7.0-->
4<!-- type=misc -->
5
6Node.js may deprecate APIs when either: (a) use of the API is considered to be
7unsafe, (b) an improved alternative API is available, or (c) breaking changes to
8the API are expected in a future major release.
9
10Node.js utilizes three kinds of Deprecations:
11
12* Documentation-only
13* Runtime
14* End-of-Life
15
16A Documentation-only deprecation is one that is expressed only within the
17Node.js API docs. These generate no side-effects while running Node.js.
18Some Documentation-only deprecations trigger a runtime warning when launched
19with [`--pending-deprecation`][] flag (or its alternative,
20`NODE_PENDING_DEPRECATION=1` environment variable), similarly to Runtime
21deprecations below. Documentation-only deprecations that support that flag
22are explicitly labeled as such in the
23[list of Deprecated APIs](#deprecations_list_of_deprecated_apis).
24
25A Runtime deprecation will, by default, generate a process warning that will
26be printed to `stderr` the first time the deprecated API is used. When the
27`--throw-deprecation` command-line flag is used, a Runtime deprecation will
28cause an error to be thrown.
29
30An End-of-Life deprecation is used when functionality is or will soon be removed
31from Node.js.
32
33## Revoking deprecations
34
35Occasionally, the deprecation of an API may be reversed. In such situations,
36this document will be updated with information relevant to the decision.
37However, the deprecation identifier will not be modified.
38
39## List of Deprecated APIs
40
41<a id="DEP0001"></a>
42### DEP0001: http.OutgoingMessage.prototype.flush
43<!-- YAML
44changes:
45  - version:
46    - v4.8.6
47    - v6.12.0
48    pr-url: https://github.com/nodejs/node/pull/10116
49    description: A deprecation code has been assigned.
50  - version: v1.6.0
51    pr-url: https://github.com/nodejs/node/pull/1156
52    description: Runtime deprecation.
53-->
54
55Type: Runtime
56
57The `OutgoingMessage.prototype.flush()` method is deprecated. Use
58`OutgoingMessage.prototype.flushHeaders()` instead.
59
60<a id="DEP0002"></a>
61### DEP0002: require('\_linklist')
62<!-- YAML
63changes:
64  - version: v8.0.0
65    pr-url: https://github.com/nodejs/node/pull/12113
66    description: End-of-Life.
67  - version: v6.12.0
68    pr-url: https://github.com/nodejs/node/pull/10116
69    description: A deprecation code has been assigned.
70  - version: v5.0.0
71    pr-url: https://github.com/nodejs/node/pull/3078
72    description: Runtime deprecation.
73-->
74
75Type: End-of-Life
76
77The `_linklist` module is deprecated. Please use a userland alternative.
78
79<a id="DEP0003"></a>
80### DEP0003: \_writableState.buffer
81<!-- YAML
82changes:
83  - version:
84    - v4.8.6
85    - v6.12.0
86    pr-url: https://github.com/nodejs/node/pull/10116
87    description: A deprecation code has been assigned.
88  - version: v0.11.15
89    pr-url: https://github.com/nodejs/node-v0.x-archive/pull/8826
90    description: Runtime deprecation.
91-->
92
93Type: Runtime
94
95The `_writableState.buffer` property is deprecated. Use the
96`_writableState.getBuffer()` method instead.
97
98<a id="DEP0004"></a>
99### DEP0004: CryptoStream.prototype.readyState
100<!-- YAML
101changes:
102  - version: v10.0.0
103    pr-url: https://github.com/nodejs/node/pull/17882
104    description: End-of-Life.
105  - version:
106    - v4.8.6
107    - v6.12.0
108    pr-url: https://github.com/nodejs/node/pull/10116
109    description: A deprecation code has been assigned.
110  - version: 0.4.0
111    commit: 9c7f89bf56abd37a796fea621ad2e47dd33d2b82
112    description: Documentation-only deprecation.
113-->
114
115Type: End-of-Life
116
117The `CryptoStream.prototype.readyState` property was removed.
118
119<a id="DEP0005"></a>
120### DEP0005: Buffer() constructor
121<!-- YAML
122changes:
123  - version: v10.0.0
124    pr-url: https://github.com/nodejs/node/pull/19524
125    description: Runtime deprecation.
126  - version: v6.12.0
127    pr-url: https://github.com/nodejs/node/pull/10116
128    description: A deprecation code has been assigned.
129  - version: v6.0.0
130    pr-url: https://github.com/nodejs/node/pull/4682
131    description: Documentation-only deprecation.
132-->
133
134Type: Runtime (supports [`--pending-deprecation`][])
135
136The `Buffer()` function and `new Buffer()` constructor are deprecated due to
137API usability issues that can potentially lead to accidental security issues.
138
139As an alternative, use of the following methods of constructing `Buffer` objects
140is strongly recommended:
141
142* [`Buffer.alloc(size[, fill[, encoding]])`][alloc] - Create a `Buffer` with
143  *initialized* memory.
144* [`Buffer.allocUnsafe(size)`][alloc_unsafe_size] - Create a `Buffer` with
145  *uninitialized* memory.
146* [`Buffer.allocUnsafeSlow(size)`][] - Create a `Buffer` with *uninitialized*
147   memory.
148* [`Buffer.from(array)`][] - Create a `Buffer` with a copy of `array`
149* [`Buffer.from(arrayBuffer[, byteOffset[, length]])`][from_arraybuffer] -
150  Create a `Buffer` that wraps the given `arrayBuffer`.
151* [`Buffer.from(buffer)`][] - Create a `Buffer` that copies `buffer`.
152* [`Buffer.from(string[, encoding])`][from_string_encoding] - Create a `Buffer`
153  that copies `string`.
154
155As of v10.0.0, a deprecation warning is printed at runtime when
156`--pending-deprecation` is used or when the calling code is
157outside `node_modules` in order to better target developers, rather than users.
158
159<a id="DEP0006"></a>
160### DEP0006: child\_process options.customFds
161<!-- YAML
162changes:
163  - version:
164    - v4.8.6
165    - v6.12.0
166    pr-url: https://github.com/nodejs/node/pull/10116
167    description: A deprecation code has been assigned.
168  - version: v0.11.14
169    description: Runtime deprecation.
170  - version: v0.5.11
171    description: Documentation-only deprecation.
172-->
173
174Type: Runtime
175
176Within the [`child_process`][] module's `spawn()`, `fork()`, and `exec()`
177methods, the `options.customFds` option is deprecated. The `options.stdio`
178option should be used instead.
179
180<a id="DEP0007"></a>
181### DEP0007: Replace cluster worker.suicide with worker.exitedAfterDisconnect
182<!-- YAML
183changes:
184  - version: v9.0.0
185    pr-url: https://github.com/nodejs/node/pull/13702
186    description: End-of-Life.
187  - version: v7.0.0
188    pr-url: https://github.com/nodejs/node/pull/3747
189    description: Runtime deprecation.
190  - version: v6.12.0
191    pr-url: https://github.com/nodejs/node/pull/10116
192    description: A deprecation code has been assigned.
193  - version: v6.0.0
194    pr-url: https://github.com/nodejs/node/pull/3743
195    description: Documentation-only deprecation.
196-->
197
198Type: End-of-Life
199
200In an earlier version of the Node.js `cluster`, a boolean property with the name
201`suicide` was added to the `Worker` object. The intent of this property was to
202provide an indication of how and why the `Worker` instance exited. In Node.js
2036.0.0, the old property was deprecated and replaced with a new
204[`worker.exitedAfterDisconnect`][] property. The old property name did not
205precisely describe the actual semantics and was unnecessarily emotion-laden.
206
207<a id="DEP0008"></a>
208### DEP0008: require('constants')
209<!-- YAML
210changes:
211  - version: v6.12.0
212    pr-url: https://github.com/nodejs/node/pull/10116
213    description: A deprecation code has been assigned.
214  - version: v6.3.0
215    pr-url: https://github.com/nodejs/node/pull/6534
216    description: Documentation-only deprecation.
217-->
218
219Type: Documentation-only
220
221The `constants` module is deprecated. When requiring access to constants
222relevant to specific Node.js builtin modules, developers should instead refer
223to the `constants` property exposed by the relevant module. For instance,
224`require('fs').constants` and `require('os').constants`.
225
226<a id="DEP0009"></a>
227### DEP0009: crypto.pbkdf2 without digest
228<!-- YAML
229changes:
230  - version: v8.0.0
231    pr-url: https://github.com/nodejs/node/pull/11305
232    description: End-of-Life.
233  - version: v6.12.0
234    pr-url: https://github.com/nodejs/node/pull/10116
235    description: A deprecation code has been assigned.
236  - version: v6.0.0
237    pr-url: https://github.com/nodejs/node/pull/4047
238    description: Runtime deprecation.
239-->
240
241Type: End-of-Life
242
243Use of the [`crypto.pbkdf2()`][] API without specifying a digest was deprecated
244in Node.js 6.0 because the method defaulted to using the non-recommended
245`'SHA1'` digest. Previously, a deprecation warning was printed. Starting in
246Node.js 8.0.0, calling `crypto.pbkdf2()` or `crypto.pbkdf2Sync()` with an
247undefined `digest` will throw a `TypeError`.
248
249<a id="DEP0010"></a>
250### DEP0010: crypto.createCredentials
251<!-- YAML
252changes:
253  - version:
254    - v4.8.6
255    - v6.12.0
256    pr-url: https://github.com/nodejs/node/pull/10116
257    description: A deprecation code has been assigned.
258  - version: v0.11.13
259    pr-url: https://github.com/nodejs/node-v0.x-archive/pull/7265
260    description: Runtime deprecation.
261-->
262
263Type: Runtime
264
265The [`crypto.createCredentials()`][] API is deprecated. Please use
266[`tls.createSecureContext()`][] instead.
267
268<a id="DEP0011"></a>
269### DEP0011: crypto.Credentials
270<!-- YAML
271changes:
272  - version:
273    - v4.8.6
274    - v6.12.0
275    pr-url: https://github.com/nodejs/node/pull/10116
276    description: A deprecation code has been assigned.
277  - version: v0.11.13
278    pr-url: https://github.com/nodejs/node-v0.x-archive/pull/7265
279    description: Runtime deprecation.
280-->
281
282Type: Runtime
283
284The `crypto.Credentials` class is deprecated. Please use [`tls.SecureContext`][]
285instead.
286
287<a id="DEP0012"></a>
288### DEP0012: Domain.dispose
289<!-- YAML
290changes:
291  - version: v9.0.0
292    pr-url: https://github.com/nodejs/node/pull/15412
293    description: End-of-Life.
294  - version:
295    - v4.8.6
296    - v6.12.0
297    pr-url: https://github.com/nodejs/node/pull/10116
298    description: A deprecation code has been assigned.
299  - version: v0.11.7
300    pr-url: https://github.com/nodejs/node-v0.x-archive/pull/5021
301    description: Runtime deprecation.
302-->
303
304Type: End-of-Life
305
306`Domain.dispose()` has been removed. Recover from failed I/O actions
307explicitly via error event handlers set on the domain instead.
308
309<a id="DEP0013"></a>
310### DEP0013: fs asynchronous function without callback
311<!-- YAML
312changes:
313  - version: v10.0.0
314    pr-url: https://github.com/nodejs/node/pull/18668
315    description: End-of-Life.
316  - version: v7.0.0
317    pr-url: https://github.com/nodejs/node/pull/7897
318    description: Runtime deprecation.
319-->
320
321Type: End-of-Life
322
323Calling an asynchronous function without a callback throws a `TypeError`
324in Node.js 10.0.0 onwards. (See <https://github.com/nodejs/node/pull/12562>.)
325
326<a id="DEP0014"></a>
327### DEP0014: fs.read legacy String interface
328<!-- YAML
329changes:
330  - version: v8.0.0
331    pr-url: https://github.com/nodejs/node/pull/9683
332    description: End-of-Life.
333  - version: v6.0.0
334    pr-url: https://github.com/nodejs/node/pull/4525
335    description: Runtime deprecation.
336  - version:
337    - v4.8.6
338    - v6.12.0
339    pr-url: https://github.com/nodejs/node/pull/10116
340    description: A deprecation code has been assigned.
341  - version: v0.1.96
342    commit: c93e0aaf062081db3ec40ac45b3e2c979d5759d6
343    description: Documentation-only deprecation.
344-->
345
346Type: End-of-Life
347
348The [`fs.read()`][] legacy `String` interface is deprecated. Use the `Buffer`
349API as mentioned in the documentation instead.
350
351<a id="DEP0015"></a>
352### DEP0015: fs.readSync legacy String interface
353<!-- YAML
354changes:
355  - version: v8.0.0
356    pr-url: https://github.com/nodejs/node/pull/9683
357    description: End-of-Life.
358  - version: v6.0.0
359    pr-url: https://github.com/nodejs/node/pull/4525
360    description: Runtime deprecation.
361  - version:
362    - v4.8.6
363    - v6.12.0
364    pr-url: https://github.com/nodejs/node/pull/10116
365    description: A deprecation code has been assigned.
366  - version: v0.1.96
367    commit: c93e0aaf062081db3ec40ac45b3e2c979d5759d6
368    description: Documentation-only deprecation.
369-->
370
371Type: End-of-Life
372
373The [`fs.readSync()`][] legacy `String` interface is deprecated. Use the
374`Buffer` API as mentioned in the documentation instead.
375
376<a id="DEP0016"></a>
377### DEP0016: GLOBAL/root
378<!-- YAML
379changes:
380  - version: v6.12.0
381    pr-url: https://github.com/nodejs/node/pull/10116
382    description: A deprecation code has been assigned.
383  - version: v6.0.0
384    pr-url: https://github.com/nodejs/node/pull/1838
385    description: Runtime deprecation.
386-->
387
388Type: Runtime
389
390The `GLOBAL` and `root` aliases for the `global` property are deprecated
391and should no longer be used.
392
393<a id="DEP0017"></a>
394### DEP0017: Intl.v8BreakIterator
395<!-- YAML
396changes:
397  - version: v9.0.0
398    pr-url: https://github.com/nodejs/node/pull/15238
399    description: End-of-Life.
400  - version: v7.0.0
401    pr-url: https://github.com/nodejs/node/pull/8908
402    description: Runtime deprecation.
403-->
404
405Type: End-of-Life
406
407`Intl.v8BreakIterator` was a non-standard extension and has been removed.
408See [`Intl.Segmenter`](https://github.com/tc39/proposal-intl-segmenter).
409
410<a id="DEP0018"></a>
411### DEP0018: Unhandled promise rejections
412<!-- YAML
413changes:
414  - version: v7.0.0
415    pr-url: https://github.com/nodejs/node/pull/8217
416    description: Runtime deprecation.
417-->
418
419Type: Runtime
420
421Unhandled promise rejections are deprecated. In the future, promise rejections
422that are not handled will terminate the Node.js process with a non-zero exit
423code.
424
425<a id="DEP0019"></a>
426### DEP0019: require('.') resolved outside directory
427<!-- YAML
428changes:
429  - version:
430    - v4.8.6
431    - v6.12.0
432    pr-url: https://github.com/nodejs/node/pull/10116
433    description: A deprecation code has been assigned.
434  - version: v1.8.1
435    pr-url: https://github.com/nodejs/node/pull/1363
436    description: Runtime deprecation.
437-->
438
439Type: Runtime
440
441In certain cases, `require('.')` may resolve outside the package directory.
442This behavior is deprecated and will be removed in a future major Node.js
443release.
444
445<a id="DEP0020"></a>
446### DEP0020: Server.connections
447<!-- YAML
448changes:
449  - version:
450    - v4.8.6
451    - v6.12.0
452    pr-url: https://github.com/nodejs/node/pull/10116
453    description: A deprecation code has been assigned.
454  - version: v0.9.7
455    pr-url: https://github.com/nodejs/node-v0.x-archive/pull/4595
456    description: Runtime deprecation.
457-->
458
459Type: Runtime
460
461The [`Server.connections`][] property is deprecated. Please use the
462[`Server.getConnections()`][] method instead.
463
464<a id="DEP0021"></a>
465### DEP0021: Server.listenFD
466<!-- YAML
467changes:
468  - version:
469    - v4.8.6
470    - v6.12.0
471    pr-url: https://github.com/nodejs/node/pull/10116
472    description: A deprecation code has been assigned.
473  - version: v0.7.12
474    commit: 41421ff9da1288aa241a5e9dcf915b685ade1c23
475    description: Runtime deprecation.
476-->
477
478Type: Runtime
479
480The `Server.listenFD()` method is deprecated. Please use
481[`Server.listen({fd: <number>})`][] instead.
482
483<a id="DEP0022"></a>
484### DEP0022: os.tmpDir()
485<!-- YAML
486changes:
487  - version: v7.0.0
488    pr-url: https://github.com/nodejs/node/pull/6739
489    description: Runtime deprecation.
490-->
491
492Type: Runtime
493
494The `os.tmpDir()` API is deprecated. Please use [`os.tmpdir()`][] instead.
495
496<a id="DEP0023"></a>
497### DEP0023: os.getNetworkInterfaces()
498<!-- YAML
499changes:
500  - version:
501    - v4.8.6
502    - v6.12.0
503    pr-url: https://github.com/nodejs/node/pull/10116
504    description: A deprecation code has been assigned.
505  - version: v0.6.0
506    commit: 37bb37d151fb6ee4696730e63ff28bb7a4924f97
507    description: Runtime deprecation.
508-->
509
510Type: Runtime
511
512The `os.getNetworkInterfaces()` method is deprecated. Please use the
513[`os.networkInterfaces`][] property instead.
514
515<a id="DEP0024"></a>
516### DEP0024: REPLServer.prototype.convertToContext()
517<!-- YAML
518changes:
519  - version: v9.0.0
520    pr-url: https://github.com/nodejs/node/pull/13434
521    description: End-of-Life.
522  - version: v7.0.0
523    pr-url: https://github.com/nodejs/node/pull/7829
524    description: Runtime deprecation.
525-->
526
527Type: End-of-Life
528
529The `REPLServer.prototype.convertToContext()` API has been removed.
530
531<a id="DEP0025"></a>
532### DEP0025: require('sys')
533<!-- YAML
534changes:
535  - version:
536    - v4.8.6
537    - v6.12.0
538    pr-url: https://github.com/nodejs/node/pull/10116
539    description: A deprecation code has been assigned.
540  - version: v1.0.0
541    pr-url: https://github.com/nodejs/node/pull/317
542    description: Runtime deprecation.
543-->
544
545Type: Runtime
546
547The `sys` module is deprecated. Please use the [`util`][] module instead.
548
549<a id="DEP0026"></a>
550### DEP0026: util.print()
551<!-- YAML
552changes:
553  - version:
554    - v4.8.6
555    - v6.12.0
556    pr-url: https://github.com/nodejs/node/pull/10116
557    description: A deprecation code has been assigned.
558  - version: v0.11.3
559    commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce
560    description: Runtime deprecation.
561-->
562
563Type: Runtime
564
565The [`util.print()`][] API is deprecated. Please use [`console.log()`][]
566instead.
567
568<a id="DEP0027"></a>
569### DEP0027: util.puts()
570<!-- YAML
571changes:
572  - version:
573    - v4.8.6
574    - v6.12.0
575    pr-url: https://github.com/nodejs/node/pull/10116
576    description: A deprecation code has been assigned.
577  - version: v0.11.3
578    commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce
579    description: Runtime deprecation.
580-->
581
582Type: Runtime
583
584The [`util.puts()`][] API is deprecated. Please use [`console.log()`][] instead.
585
586<a id="DEP0028"></a>
587### DEP0028: util.debug()
588<!-- YAML
589changes:
590  - version:
591    - v4.8.6
592    - v6.12.0
593    pr-url: https://github.com/nodejs/node/pull/10116
594    description: A deprecation code has been assigned.
595  - version: v0.11.3
596    commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce
597    description: Runtime deprecation.
598-->
599
600Type: Runtime
601
602The [`util.debug()`][] API is deprecated. Please use [`console.error()`][]
603instead.
604
605<a id="DEP0029"></a>
606### DEP0029: util.error()
607<!-- YAML
608changes:
609  - version:
610    - v4.8.6
611    - v6.12.0
612    pr-url: https://github.com/nodejs/node/pull/10116
613    description: A deprecation code has been assigned.
614  - version: v0.11.3
615    commit: 896b2aa7074fc886efd7dd0a397d694763cac7ce
616    description: Runtime deprecation.
617-->
618
619Type: Runtime
620
621The [`util.error()`][] API is deprecated. Please use [`console.error()`][]
622instead.
623
624<a id="DEP0030"></a>
625### DEP0030: SlowBuffer
626<!-- YAML
627changes:
628  - version: v6.12.0
629    pr-url: https://github.com/nodejs/node/pull/10116
630    description: A deprecation code has been assigned.
631  - version: v6.0.0
632    pr-url: https://github.com/nodejs/node/pull/5833
633    description: Documentation-only deprecation.
634-->
635
636Type: Documentation-only
637
638The [`SlowBuffer`][] class is deprecated. Please use
639[`Buffer.allocUnsafeSlow(size)`][] instead.
640
641<a id="DEP0031"></a>
642### DEP0031: ecdh.setPublicKey()
643<!-- YAML
644changes:
645  - version: v6.12.0
646    pr-url: https://github.com/nodejs/node/pull/10116
647    description: A deprecation code has been assigned.
648  - version: v5.2.0
649    pr-url: https://github.com/nodejs/node/pull/3511
650    description: Documentation-only deprecation.
651-->
652
653Type: Documentation-only
654
655The [`ecdh.setPublicKey()`][] method is now deprecated as its inclusion in the
656API is not useful.
657
658<a id="DEP0032"></a>
659### DEP0032: domain module
660<!-- YAML
661changes:
662  - version:
663    - v4.8.6
664    - v6.12.0
665    pr-url: https://github.com/nodejs/node/pull/10116
666    description: A deprecation code has been assigned.
667  - version: v1.4.2
668    pr-url: https://github.com/nodejs/node/pull/943
669    description: Documentation-only deprecation.
670-->
671
672Type: Documentation-only
673
674The [`domain`][] module is deprecated and should not be used.
675
676<a id="DEP0033"></a>
677### DEP0033: EventEmitter.listenerCount()
678<!-- YAML
679changes:
680  - version:
681    - v4.8.6
682    - v6.12.0
683    pr-url: https://github.com/nodejs/node/pull/10116
684    description: A deprecation code has been assigned.
685  - version: v3.2.0
686    pr-url: https://github.com/nodejs/node/pull/2349
687    description: Documentation-only deprecation.
688-->
689
690Type: Documentation-only
691
692The [`EventEmitter.listenerCount(emitter, eventName)`][] API is
693deprecated. Please use [`emitter.listenerCount(eventName)`][] instead.
694
695<a id="DEP0034"></a>
696### DEP0034: fs.exists(path, callback)
697<!-- YAML
698changes:
699  - version:
700    - v4.8.6
701    - v6.12.0
702    pr-url: https://github.com/nodejs/node/pull/10116
703    description: A deprecation code has been assigned.
704  - version: v1.0.0
705    pr-url: https://github.com/iojs/io.js/pull/166
706    description: Documentation-only deprecation.
707-->
708
709Type: Documentation-only
710
711The [`fs.exists(path, callback)`][] API is deprecated. Please use
712[`fs.stat()`][] or [`fs.access()`][] instead.
713
714<a id="DEP0035"></a>
715### DEP0035: fs.lchmod(path, mode, callback)
716<!-- YAML
717changes:
718  - version:
719    - v4.8.6
720    - v6.12.0
721    pr-url: https://github.com/nodejs/node/pull/10116
722    description: A deprecation code has been assigned.
723  - version: v0.4.7
724    description: Documentation-only deprecation.
725-->
726
727Type: Documentation-only
728
729The [`fs.lchmod(path, mode, callback)`][] API is deprecated.
730
731<a id="DEP0036"></a>
732### DEP0036: fs.lchmodSync(path, mode)
733<!-- YAML
734changes:
735  - version:
736    - v4.8.6
737    - v6.12.0
738    pr-url: https://github.com/nodejs/node/pull/10116
739    description: A deprecation code has been assigned.
740  - version: v0.4.7
741    description: Documentation-only deprecation.
742-->
743
744Type: Documentation-only
745
746The [`fs.lchmodSync(path, mode)`][] API is deprecated.
747
748<a id="DEP0037"></a>
749### DEP0037: fs.lchown(path, uid, gid, callback)
750<!-- YAML
751changes:
752  - version: v10.6.0
753    pr-url: https://github.com/nodejs/node/pull/21498
754    description: Deprecation revoked.
755  - version:
756    - v4.8.6
757    - v6.12.0
758    pr-url: https://github.com/nodejs/node/pull/10116
759    description: A deprecation code has been assigned.
760  - version: v0.4.7
761    description: Documentation-only deprecation.
762-->
763
764Type: Deprecation revoked
765
766The [`fs.lchown(path, uid, gid, callback)`][] API is deprecated.
767
768<a id="DEP0038"></a>
769### DEP0038: fs.lchownSync(path, uid, gid)
770<!-- YAML
771changes:
772  - version: v10.6.0
773    pr-url: https://github.com/nodejs/node/pull/21498
774    description: Deprecation revoked.
775  - version:
776    - v4.8.6
777    - v6.12.0
778    pr-url: https://github.com/nodejs/node/pull/10116
779    description: A deprecation code has been assigned.
780  - version: v0.4.7
781    description: Documentation-only deprecation.
782-->
783
784Type: Deprecation revoked
785
786The [`fs.lchownSync(path, uid, gid)`][] API is deprecated.
787
788<a id="DEP0039"></a>
789### DEP0039: require.extensions
790<!-- YAML
791changes:
792  - version:
793    - v4.8.6
794    - v6.12.0
795    pr-url: https://github.com/nodejs/node/pull/10116
796    description: A deprecation code has been assigned.
797  - version: v0.10.6
798    commit: 7bd8a5a2a60b75266f89f9a32877d55294a3881c
799    description: Documentation-only deprecation.
800-->
801
802Type: Documentation-only
803
804The [`require.extensions`][] property is deprecated.
805
806<a id="DEP0040"></a>
807### DEP0040: punycode module
808<!-- YAML
809changes:
810  - version: v7.0.0
811    pr-url: https://github.com/nodejs/node/pull/7941
812    description: Documentation-only deprecation.
813-->
814
815Type: Documentation-only
816
817The [`punycode`][] module is deprecated. Please use a userland alternative
818instead.
819
820<a id="DEP0041"></a>
821### DEP0041: NODE\_REPL\_HISTORY\_FILE environment variable
822<!-- YAML
823changes:
824  - version: v10.0.0
825    pr-url: https://github.com/nodejs/node/pull/13876
826    description: End-of-Life.
827  - version:
828    - v4.8.6
829    - v6.12.0
830    pr-url: https://github.com/nodejs/node/pull/10116
831    description: A deprecation code has been assigned.
832  - version: v3.0.0
833    pr-url: https://github.com/nodejs/node/pull/2224
834    description: Documentation-only deprecation.
835-->
836
837Type: End-of-Life
838
839The `NODE_REPL_HISTORY_FILE` environment variable was removed. Please use
840`NODE_REPL_HISTORY` instead.
841
842<a id="DEP0042"></a>
843### DEP0042: tls.CryptoStream
844<!-- YAML
845changes:
846  - version: v10.0.0
847    pr-url: https://github.com/nodejs/node/pull/17882
848    description: End-of-Life.
849  - version:
850    - v4.8.6
851    - v6.12.0
852    pr-url: https://github.com/nodejs/node/pull/10116
853    description: A deprecation code has been assigned.
854  - version: v0.11.3
855    commit: af80e7bc6e6f33c582eb1f7d37c7f5bbe9f910f7
856    description: Documentation-only deprecation.
857-->
858
859Type: End-of-Life
860
861The [`tls.CryptoStream`][] class was removed. Please use
862[`tls.TLSSocket`][] instead.
863
864<a id="DEP0043"></a>
865### DEP0043: tls.SecurePair
866<!-- YAML
867changes:
868  - version: v8.0.0
869    pr-url: https://github.com/nodejs/node/pull/11349
870    description: Runtime deprecation.
871  - version: v6.12.0
872    pr-url: https://github.com/nodejs/node/pull/10116
873    description: A deprecation code has been assigned.
874  - version: v6.0.0
875    pr-url: https://github.com/nodejs/node/pull/6063
876    description: Documentation-only deprecation.
877  - version: v0.11.15
878    pr-url:
879      - https://github.com/nodejs/node-v0.x-archive/pull/8695
880      - https://github.com/nodejs/node-v0.x-archive/pull/8700
881    description: Deprecation revoked.
882  - version: v0.11.3
883    commit: af80e7bc6e6f33c582eb1f7d37c7f5bbe9f910f7
884    description: Runtime deprecation.
885-->
886
887Type: Documentation-only
888
889The [`tls.SecurePair`][] class is deprecated. Please use
890[`tls.TLSSocket`][] instead.
891
892<a id="DEP0044"></a>
893### DEP0044: util.isArray()
894<!-- YAML
895changes:
896  - version:
897    - v4.8.6
898    - v6.12.0
899    pr-url: https://github.com/nodejs/node/pull/10116
900    description: A deprecation code has been assigned.
901  - version:
902    - v3.3.1
903    - v4.0.0
904    pr-url: https://github.com/nodejs/node/pull/2447
905    description: Documentation-only deprecation.
906-->
907
908Type: Documentation-only
909
910The [`util.isArray()`][] API is deprecated. Please use `Array.isArray()`
911instead.
912
913<a id="DEP0045"></a>
914### DEP0045: util.isBoolean()
915<!-- YAML
916changes:
917  - version:
918    - v4.8.6
919    - v6.12.0
920    pr-url: https://github.com/nodejs/node/pull/10116
921    description: A deprecation code has been assigned.
922  - version:
923    - v3.3.1
924    - v4.0.0
925    pr-url: https://github.com/nodejs/node/pull/2447
926    description: Documentation-only deprecation.
927-->
928
929Type: Documentation-only
930
931The [`util.isBoolean()`][] API is deprecated.
932
933<a id="DEP0046"></a>
934### DEP0046: util.isBuffer()
935<!-- YAML
936changes:
937  - version:
938    - v4.8.6
939    - v6.12.0
940    pr-url: https://github.com/nodejs/node/pull/10116
941    description: A deprecation code has been assigned.
942  - version:
943    - v3.3.1
944    - v4.0.0
945    pr-url: https://github.com/nodejs/node/pull/2447
946    description: Documentation-only deprecation.
947-->
948
949Type: Documentation-only
950
951The [`util.isBuffer()`][] API is deprecated. Please use
952[`Buffer.isBuffer()`][] instead.
953
954<a id="DEP0047"></a>
955### DEP0047: util.isDate()
956<!-- YAML
957changes:
958  - version:
959    - v4.8.6
960    - v6.12.0
961    pr-url: https://github.com/nodejs/node/pull/10116
962    description: A deprecation code has been assigned.
963  - version:
964    - v3.3.1
965    - v4.0.0
966    pr-url: https://github.com/nodejs/node/pull/2447
967    description: Documentation-only deprecation.
968-->
969
970Type: Documentation-only
971
972The [`util.isDate()`][] API is deprecated.
973
974<a id="DEP0048"></a>
975### DEP0048: util.isError()
976<!-- YAML
977changes:
978  - version:
979    - v4.8.6
980    - v6.12.0
981    pr-url: https://github.com/nodejs/node/pull/10116
982    description: A deprecation code has been assigned.
983  - version:
984    - v3.3.1
985    - v4.0.0
986    pr-url: https://github.com/nodejs/node/pull/2447
987    description: Documentation-only deprecation.
988-->
989
990Type: Documentation-only
991
992The [`util.isError()`][] API is deprecated.
993
994<a id="DEP0049"></a>
995### DEP0049: util.isFunction()
996<!-- YAML
997changes:
998  - version:
999    - v4.8.6
1000    - v6.12.0
1001    pr-url: https://github.com/nodejs/node/pull/10116
1002    description: A deprecation code has been assigned.
1003  - version:
1004    - v3.3.1
1005    - v4.0.0
1006    pr-url: https://github.com/nodejs/node/pull/2447
1007    description: Documentation-only deprecation.
1008-->
1009
1010Type: Documentation-only
1011
1012The [`util.isFunction()`][] API is deprecated.
1013
1014<a id="DEP0050"></a>
1015### DEP0050: util.isNull()
1016<!-- YAML
1017changes:
1018  - version:
1019    - v4.8.6
1020    - v6.12.0
1021    pr-url: https://github.com/nodejs/node/pull/10116
1022    description: A deprecation code has been assigned.
1023  - version:
1024    - v3.3.1
1025    - v4.0.0
1026    pr-url: https://github.com/nodejs/node/pull/2447
1027    description: Documentation-only deprecation.
1028-->
1029
1030Type: Documentation-only
1031
1032The [`util.isNull()`][] API is deprecated.
1033
1034<a id="DEP0051"></a>
1035### DEP0051: util.isNullOrUndefined()
1036<!-- YAML
1037changes:
1038  - version:
1039    - v4.8.6
1040    - v6.12.0
1041    pr-url: https://github.com/nodejs/node/pull/10116
1042    description: A deprecation code has been assigned.
1043  - version:
1044    - v3.3.1
1045    - v4.0.0
1046    pr-url: https://github.com/nodejs/node/pull/2447
1047    description: Documentation-only deprecation.
1048-->
1049
1050Type: Documentation-only
1051
1052The [`util.isNullOrUndefined()`][] API is deprecated.
1053
1054<a id="DEP0052"></a>
1055### DEP0052: util.isNumber()
1056<!-- YAML
1057changes:
1058  - version:
1059    - v4.8.6
1060    - v6.12.0
1061    pr-url: https://github.com/nodejs/node/pull/10116
1062    description: A deprecation code has been assigned.
1063  - version:
1064    - v3.3.1
1065    - v4.0.0
1066    pr-url: https://github.com/nodejs/node/pull/2447
1067    description: Documentation-only deprecation.
1068-->
1069
1070Type: Documentation-only
1071
1072The [`util.isNumber()`][] API is deprecated.
1073
1074<a id="DEP0053"></a>
1075### DEP0053 util.isObject()
1076<!-- YAML
1077changes:
1078  - version:
1079    - v4.8.6
1080    - v6.12.0
1081    pr-url: https://github.com/nodejs/node/pull/10116
1082    description: A deprecation code has been assigned.
1083  - version:
1084    - v3.3.1
1085    - v4.0.0
1086    pr-url: https://github.com/nodejs/node/pull/2447
1087    description: Documentation-only deprecation.
1088-->
1089
1090Type: Documentation-only
1091
1092The [`util.isObject()`][] API is deprecated.
1093
1094<a id="DEP0054"></a>
1095### DEP0054: util.isPrimitive()
1096<!-- YAML
1097changes:
1098  - version:
1099    - v4.8.6
1100    - v6.12.0
1101    pr-url: https://github.com/nodejs/node/pull/10116
1102    description: A deprecation code has been assigned.
1103  - version:
1104    - v3.3.1
1105    - v4.0.0
1106    pr-url: https://github.com/nodejs/node/pull/2447
1107    description: Documentation-only deprecation.
1108-->
1109
1110Type: Documentation-only
1111
1112The [`util.isPrimitive()`][] API is deprecated.
1113
1114<a id="DEP0055"></a>
1115### DEP0055: util.isRegExp()
1116<!-- YAML
1117changes:
1118  - version:
1119    - v4.8.6
1120    - v6.12.0
1121    pr-url: https://github.com/nodejs/node/pull/10116
1122    description: A deprecation code has been assigned.
1123  - version:
1124    - v3.3.1
1125    - v4.0.0
1126    pr-url: https://github.com/nodejs/node/pull/2447
1127    description: Documentation-only deprecation.
1128-->
1129
1130Type: Documentation-only
1131
1132The [`util.isRegExp()`][] API is deprecated.
1133
1134<a id="DEP0056"></a>
1135### DEP0056: util.isString()
1136<!-- YAML
1137changes:
1138  - version:
1139    - v4.8.6
1140    - v6.12.0
1141    pr-url: https://github.com/nodejs/node/pull/10116
1142    description: A deprecation code has been assigned.
1143  - version:
1144    - v3.3.1
1145    - v4.0.0
1146    pr-url: https://github.com/nodejs/node/pull/2447
1147    description: Documentation-only deprecation.
1148-->
1149
1150Type: Documentation-only
1151
1152The [`util.isString()`][] API is deprecated.
1153
1154<a id="DEP0057"></a>
1155### DEP0057: util.isSymbol()
1156<!-- YAML
1157changes:
1158  - version:
1159    - v4.8.6
1160    - v6.12.0
1161    pr-url: https://github.com/nodejs/node/pull/10116
1162    description: A deprecation code has been assigned.
1163  - version:
1164    - v3.3.1
1165    - v4.0.0
1166    pr-url: https://github.com/nodejs/node/pull/2447
1167    description: Documentation-only deprecation.
1168-->
1169
1170Type: Documentation-only
1171
1172The [`util.isSymbol()`][] API is deprecated.
1173
1174<a id="DEP0058"></a>
1175### DEP0058: util.isUndefined()
1176<!-- YAML
1177changes:
1178  - version:
1179    - v4.8.6
1180    - v6.12.0
1181    pr-url: https://github.com/nodejs/node/pull/10116
1182    description: A deprecation code has been assigned.
1183  - version:
1184    - v3.3.1
1185    - v4.0.0
1186    pr-url: https://github.com/nodejs/node/pull/2447
1187    description: Documentation-only deprecation.
1188-->
1189
1190Type: Documentation-only
1191
1192The [`util.isUndefined()`][] API is deprecated.
1193
1194<a id="DEP0059"></a>
1195### DEP0059: util.log()
1196<!-- YAML
1197changes:
1198  - version: v6.12.0
1199    pr-url: https://github.com/nodejs/node/pull/10116
1200    description: A deprecation code has been assigned.
1201  - version: v6.0.0
1202    pr-url: https://github.com/nodejs/node/pull/6161
1203    description: Documentation-only deprecation.
1204-->
1205
1206Type: Documentation-only
1207
1208The [`util.log()`][] API is deprecated.
1209
1210<a id="DEP0060"></a>
1211### DEP0060: util.\_extend()
1212<!-- YAML
1213changes:
1214  - version: v6.12.0
1215    pr-url: https://github.com/nodejs/node/pull/10116
1216    description: A deprecation code has been assigned.
1217  - version: v6.0.0
1218    pr-url: https://github.com/nodejs/node/pull/4903
1219    description: Documentation-only deprecation.
1220-->
1221
1222Type: Documentation-only
1223
1224The [`util._extend()`][] API is deprecated.
1225
1226<a id="DEP0061"></a>
1227### DEP0061: fs.SyncWriteStream
1228<!-- YAML
1229changes:
1230  - version: v8.0.0
1231    pr-url: https://github.com/nodejs/node/pull/10467
1232    description: Runtime deprecation.
1233  - version: v7.0.0
1234    pr-url: https://github.com/nodejs/node/pull/6749
1235    description: Documentation-only deprecation.
1236-->
1237
1238Type: Runtime
1239
1240The `fs.SyncWriteStream` class was never intended to be a publicly accessible
1241API. No alternative API is available. Please use a userland alternative.
1242
1243<a id="DEP0062"></a>
1244### DEP0062: node --debug
1245<!-- YAML
1246changes:
1247  - version: v8.0.0
1248    pr-url: https://github.com/nodejs/node/pull/10970
1249    description: Runtime deprecation.
1250-->
1251
1252Type: Runtime
1253
1254`--debug` activates the legacy V8 debugger interface, which was removed as
1255of V8 5.8. It is replaced by Inspector which is activated with `--inspect`
1256instead.
1257
1258<a id="DEP0063"></a>
1259### DEP0063: ServerResponse.prototype.writeHeader()
1260<!-- YAML
1261changes:
1262  - version: v8.0.0
1263    pr-url: https://github.com/nodejs/node/pull/11355
1264    description: Documentation-only deprecation.
1265-->
1266
1267Type: Documentation-only
1268
1269The `http` module `ServerResponse.prototype.writeHeader()` API is
1270deprecated. Please use `ServerResponse.prototype.writeHead()` instead.
1271
1272The `ServerResponse.prototype.writeHeader()` method was never documented as an
1273officially supported API.
1274
1275<a id="DEP0064"></a>
1276### DEP0064: tls.createSecurePair()
1277<!-- YAML
1278changes:
1279  - version: v8.0.0
1280    pr-url: https://github.com/nodejs/node/pull/11349
1281    description: Runtime deprecation.
1282  - version: v6.12.0
1283    pr-url: https://github.com/nodejs/node/pull/10116
1284    description: A deprecation code has been assigned.
1285  - version: v6.0.0
1286    pr-url: https://github.com/nodejs/node/pull/6063
1287    description: Documentation-only deprecation.
1288  - version: v0.11.15
1289    pr-url:
1290      - https://github.com/nodejs/node-v0.x-archive/pull/8695
1291      - https://github.com/nodejs/node-v0.x-archive/pull/8700
1292    description: Deprecation revoked.
1293  - version: v0.11.3
1294    commit: af80e7bc6e6f33c582eb1f7d37c7f5bbe9f910f7
1295    description: Runtime deprecation.
1296-->
1297
1298Type: Runtime
1299
1300The `tls.createSecurePair()` API was deprecated in documentation in Node.js
13010.11.3. Users should use `tls.Socket` instead.
1302
1303<a id="DEP0065"></a>
1304### DEP0065: repl.REPL_MODE_MAGIC and NODE_REPL_MODE=magic
1305<!-- YAML
1306changes:
1307  - version: v10.0.0
1308    pr-url: https://github.com/nodejs/node/pull/19187
1309    description: End-of-Life.
1310  - version: v8.0.0
1311    pr-url: https://github.com/nodejs/node/pull/11599
1312    description: Documentation-only deprecation.
1313-->
1314
1315Type: End-of-Life
1316
1317The `repl` module's `REPL_MODE_MAGIC` constant, used for `replMode` option, has
1318been removed. Its behavior has been functionally identical to that of
1319`REPL_MODE_SLOPPY` since Node.js 6.0.0, when V8 5.0 was imported. Please use
1320`REPL_MODE_SLOPPY` instead.
1321
1322The `NODE_REPL_MODE` environment variable is used to set the underlying
1323`replMode` of an interactive `node` session. Its value, `magic`, is also
1324removed. Please use `sloppy` instead.
1325
1326<a id="DEP0066"></a>
1327### DEP0066: outgoingMessage.\_headers, outgoingMessage.\_headerNames
1328<!-- YAML
1329changes:
1330  - version: v8.0.0
1331    pr-url: https://github.com/nodejs/node/pull/10941
1332    description: Documentation-only deprecation.
1333-->
1334
1335Type: Documentation-only
1336
1337The `http` module `outgoingMessage._headers` and `outgoingMessage._headerNames`
1338properties are deprecated. Use one of the public methods
1339(e.g. `outgoingMessage.getHeader()`, `outgoingMessage.getHeaders()`,
1340`outgoingMessage.getHeaderNames()`, `outgoingMessage.hasHeader()`,
1341`outgoingMessage.removeHeader()`, `outgoingMessage.setHeader()`) for working
1342with outgoing headers.
1343
1344The `outgoingMessage._headers` and `outgoingMessage._headerNames` properties
1345were never documented as officially supported properties.
1346
1347<a id="DEP0067"></a>
1348### DEP0067: OutgoingMessage.prototype.\_renderHeaders
1349<!-- YAML
1350changes:
1351  - version: v8.0.0
1352    pr-url: https://github.com/nodejs/node/pull/10941
1353    description: Documentation-only deprecation.
1354-->
1355
1356Type: Documentation-only
1357
1358The `http` module `OutgoingMessage.prototype._renderHeaders()` API is
1359deprecated.
1360
1361The `OutgoingMessage.prototype._renderHeaders` property was never documented as
1362an officially supported API.
1363
1364<a id="DEP0068"></a>
1365### DEP0068: node debug
1366<!-- YAML
1367changes:
1368  - version: v8.0.0
1369    pr-url: https://github.com/nodejs/node/pull/11441
1370    description: Runtime deprecation.
1371-->
1372
1373Type: Runtime
1374
1375`node debug` corresponds to the legacy CLI debugger which has been replaced with
1376a V8-inspector based CLI debugger available through `node inspect`.
1377
1378<a id="DEP0069"></a>
1379### DEP0069: vm.runInDebugContext(string)
1380<!-- YAML
1381changes:
1382  - version: v10.0.0
1383    pr-url: https://github.com/nodejs/node/pull/13295
1384    description: End-of-Life.
1385  - version: v9.0.0
1386    pr-url: https://github.com/nodejs/node/pull/12815
1387    description: Runtime deprecation.
1388  - version: v8.0.0
1389    pr-url: https://github.com/nodejs/node/pull/12243
1390    description: Documentation-only deprecation.
1391-->
1392
1393Type: End-of-Life
1394
1395DebugContext has been removed in V8 and is not available in Node.js 10+.
1396
1397DebugContext was an experimental API.
1398
1399<a id="DEP0070"></a>
1400### DEP0070: async_hooks.currentId()
1401<!-- YAML
1402changes:
1403  - version: v9.0.0
1404    pr-url: https://github.com/nodejs/node/pull/14414
1405    description: End-of-Life.
1406  - version: v8.2.0
1407    pr-url: https://github.com/nodejs/node/pull/13490
1408    description: Runtime deprecation.
1409-->
1410
1411Type: End-of-Life
1412
1413`async_hooks.currentId()` was renamed to `async_hooks.executionAsyncId()` for
1414clarity.
1415
1416This change was made while `async_hooks` was an experimental API.
1417
1418<a id="DEP0071"></a>
1419### DEP0071: async_hooks.triggerId()
1420<!-- YAML
1421changes:
1422  - version: v9.0.0
1423    pr-url: https://github.com/nodejs/node/pull/14414
1424    description: End-of-Life.
1425  - version: v8.2.0
1426    pr-url: https://github.com/nodejs/node/pull/13490
1427    description: Runtime deprecation.
1428-->
1429
1430Type: End-of-Life
1431
1432`async_hooks.triggerId()` was renamed to `async_hooks.triggerAsyncId()` for
1433clarity.
1434
1435This change was made while `async_hooks` was an experimental API.
1436
1437<a id="DEP0072"></a>
1438### DEP0072: async_hooks.AsyncResource.triggerId()
1439<!-- YAML
1440changes:
1441  - version: v9.0.0
1442    pr-url: https://github.com/nodejs/node/pull/14414
1443    description: End-of-Life.
1444  - version: v8.2.0
1445    pr-url: https://github.com/nodejs/node/pull/13490
1446    description: Runtime deprecation.
1447-->
1448
1449Type: End-of-Life
1450
1451`async_hooks.AsyncResource.triggerId()` was renamed to
1452`async_hooks.AsyncResource.triggerAsyncId()` for clarity.
1453
1454This change was made while `async_hooks` was an experimental API.
1455
1456<a id="DEP0073"></a>
1457### DEP0073: Several internal properties of net.Server
1458<!-- YAML
1459changes:
1460  - version: v10.0.0
1461    pr-url: https://github.com/nodejs/node/pull/17141
1462    description: End-of-Life.
1463  - version: v9.0.0
1464    pr-url: https://github.com/nodejs/node/pull/14449
1465    description: Runtime deprecation.
1466-->
1467
1468Type: End-of-Life
1469
1470Accessing several internal, undocumented properties of `net.Server` instances
1471with inappropriate names is deprecated.
1472
1473As the original API was undocumented and not generally useful for non-internal
1474code, no replacement API is provided.
1475
1476<a id="DEP0074"></a>
1477### DEP0074: REPLServer.bufferedCommand
1478<!-- YAML
1479changes:
1480  - version: v9.0.0
1481    pr-url: https://github.com/nodejs/node/pull/13687
1482    description: Runtime deprecation.
1483-->
1484
1485Type: Runtime
1486
1487The `REPLServer.bufferedCommand` property was deprecated in favor of
1488[`REPLServer.clearBufferedCommand()`][].
1489
1490<a id="DEP0075"></a>
1491### DEP0075: REPLServer.parseREPLKeyword()
1492<!-- YAML
1493changes:
1494  - version: v9.0.0
1495    pr-url: https://github.com/nodejs/node/pull/14223
1496    description: Runtime deprecation.
1497-->
1498
1499Type: Runtime
1500
1501`REPLServer.parseREPLKeyword()` was removed from userland visibility.
1502
1503<a id="DEP0076"></a>
1504### DEP0076: tls.parseCertString()
1505<!-- YAML
1506changes:
1507  - version: v9.0.0
1508    pr-url: https://github.com/nodejs/node/pull/14249
1509    description: Runtime deprecation.
1510  - version: v8.6.0
1511    pr-url: https://github.com/nodejs/node/pull/14245
1512    description: Documentation-only deprecation.
1513-->
1514
1515Type: Runtime
1516
1517`tls.parseCertString()` is a trivial parsing helper that was made public by
1518mistake. This function can usually be replaced with:
1519
1520```js
1521const querystring = require('querystring');
1522querystring.parse(str, '\n', '=');
1523```
1524
1525This function is not completely equivalent to `querystring.parse()`. One
1526difference is that `querystring.parse()` does url decoding:
1527
1528```sh
1529> querystring.parse('%E5%A5%BD=1', '\n', '=');
1530{ '好': '1' }
1531> tls.parseCertString('%E5%A5%BD=1');
1532{ '%E5%A5%BD': '1' }
1533```
1534
1535<a id="DEP0077"></a>
1536### DEP0077: Module.\_debug()
1537<!-- YAML
1538changes:
1539  - version: v9.0.0
1540    pr-url: https://github.com/nodejs/node/pull/13948
1541    description: Runtime deprecation.
1542-->
1543
1544Type: Runtime
1545
1546`Module._debug()` is deprecated.
1547
1548The `Module._debug()` function was never documented as an officially
1549supported API.
1550
1551<a id="DEP0078"></a>
1552### DEP0078: REPLServer.turnOffEditorMode()
1553<!-- YAML
1554changes:
1555  - version: v9.0.0
1556    pr-url: https://github.com/nodejs/node/pull/15136
1557    description: Runtime deprecation.
1558-->
1559
1560Type: Runtime
1561
1562`REPLServer.turnOffEditorMode()` was removed from userland visibility.
1563
1564<a id="DEP0079"></a>
1565### DEP0079: Custom inspection function on Objects via .inspect()
1566<!-- YAML
1567changes:
1568  - version: v10.0.0
1569    pr-url: https://github.com/nodejs/node/pull/16393
1570    description: Runtime deprecation.
1571  - version: v8.7.0
1572    pr-url: https://github.com/nodejs/node/pull/15631
1573    description: Documentation-only deprecation.
1574-->
1575
1576Type: Runtime
1577
1578Using a property named `inspect` on an object to specify a custom inspection
1579function for [`util.inspect()`][] is deprecated. Use [`util.inspect.custom`][]
1580instead. For backward compatibility with Node.js prior to version 6.4.0, both
1581may be specified.
1582
1583<a id="DEP0080"></a>
1584### DEP0080: path.\_makeLong()
1585<!-- YAML
1586changes:
1587  - version: v9.0.0
1588    pr-url: https://github.com/nodejs/node/pull/14956
1589    description: Documentation-only deprecation.
1590-->
1591
1592Type: Documentation-only
1593
1594The internal `path._makeLong()` was not intended for public use. However,
1595userland modules have found it useful. The internal API is deprecated
1596and replaced with an identical, public `path.toNamespacedPath()` method.
1597
1598<a id="DEP0081"></a>
1599### DEP0081: fs.truncate() using a file descriptor
1600<!-- YAML
1601changes:
1602  - version: v9.0.0
1603    pr-url: https://github.com/nodejs/node/pull/15990
1604    description: Runtime deprecation.
1605-->
1606
1607Type: Runtime
1608
1609`fs.truncate()` `fs.truncateSync()` usage with a file descriptor is
1610deprecated. Please use `fs.ftruncate()` or `fs.ftruncateSync()` to work with
1611file descriptors.
1612
1613<a id="DEP0082"></a>
1614### DEP0082: REPLServer.prototype.memory()
1615<!-- YAML
1616changes:
1617  - version: v9.0.0
1618    pr-url: https://github.com/nodejs/node/pull/16242
1619    description: Runtime deprecation.
1620-->
1621
1622Type: Runtime
1623
1624`REPLServer.prototype.memory()` is only necessary for the internal mechanics of
1625the `REPLServer` itself. Do not use this function.
1626
1627<a id="DEP0083"></a>
1628### DEP0083: Disabling ECDH by setting ecdhCurve to false
1629<!-- YAML
1630changes:
1631  - version: v10.0.0
1632    pr-url: https://github.com/nodejs/node/pull/19794
1633    description: End-of-Life.
1634  - version: v9.2.0
1635    pr-url: https://github.com/nodejs/node/pull/16130
1636    description: Runtime deprecation.
1637-->
1638
1639Type: End-of-Life.
1640
1641The `ecdhCurve` option to `tls.createSecureContext()` and `tls.TLSSocket` could
1642be set to `false` to disable ECDH entirely on the server only. This mode was
1643deprecated in preparation for migrating to OpenSSL 1.1.0 and consistency with
1644the client and is now unsupported. Use the `ciphers` parameter instead.
1645
1646<a id="DEP0084"></a>
1647### DEP0084: requiring bundled internal dependencies
1648<!-- YAML
1649changes:
1650  - version: v10.0.0
1651    pr-url: https://github.com/nodejs/node/pull/16392
1652    description: Runtime deprecation.
1653-->
1654
1655Type: Runtime
1656
1657Since Node.js versions 4.4.0 and 5.2.0, several modules only intended for
1658internal usage are mistakenly exposed to user code through `require()`. These
1659modules are:
1660
1661- `v8/tools/codemap`
1662- `v8/tools/consarray`
1663- `v8/tools/csvparser`
1664- `v8/tools/logreader`
1665- `v8/tools/profile_view`
1666- `v8/tools/profile`
1667- `v8/tools/SourceMap`
1668- `v8/tools/splaytree`
1669- `v8/tools/tickprocessor-driver`
1670- `v8/tools/tickprocessor`
1671- `node-inspect/lib/_inspect` (from 7.6.0)
1672- `node-inspect/lib/internal/inspect_client` (from 7.6.0)
1673- `node-inspect/lib/internal/inspect_repl` (from 7.6.0)
1674
1675The `v8/*` modules do not have any exports, and if not imported in a specific
1676order would in fact throw errors. As such there are virtually no legitimate use
1677cases for importing them through `require()`.
1678
1679On the other hand, `node-inspect` may be installed locally through a package
1680manager, as it is published on the npm registry under the same name. No source
1681code modification is necessary if that is done.
1682
1683<a id="DEP0085"></a>
1684### DEP0085: AsyncHooks Sensitive API
1685<!-- YAML
1686changes:
1687  - version: 10.0.0
1688    pr-url: https://github.com/nodejs/node/pull/17147
1689    description: End-of-Life.
1690  - version:
1691    - v8.10.0
1692    - v9.4.0
1693    pr-url: https://github.com/nodejs/node/pull/16972
1694    description: Runtime deprecation.
1695-->
1696
1697Type: End-of-Life
1698
1699The AsyncHooks Sensitive API was never documented and had various minor issues.
1700(See <https://github.com/nodejs/node/issues/15572>.) Use the `AsyncResource`
1701API instead.
1702
1703<a id="DEP0086"></a>
1704### DEP0086: Remove runInAsyncIdScope
1705<!-- YAML
1706changes:
1707  - version: 10.0.0
1708    pr-url: https://github.com/nodejs/node/pull/17147
1709    description: End-of-Life.
1710  - version:
1711    - v8.10.0
1712    - v9.4.0
1713    pr-url: https://github.com/nodejs/node/pull/16972
1714    description: Runtime deprecation.
1715-->
1716
1717Type: End-of-Life
1718
1719`runInAsyncIdScope` doesn't emit the `'before'` or `'after'` event and can thus
1720cause a lot of issues. See <https://github.com/nodejs/node/issues/14328> for
1721more details.
1722
1723<a id="DEP0089"></a>
1724### DEP0089: require('assert')
1725<!-- YAML
1726changes:
1727  - version:
1728      - v9.9.0
1729      - v10.0.0
1730    pr-url: https://github.com/nodejs/node/pull/17002
1731    description: Documentation-only deprecation.
1732-->
1733
1734Type: Documentation-only
1735
1736Importing assert directly is not recommended as the exposed functions will use
1737loose equality checks. Use `require('assert').strict` instead. The API is the
1738same as the legacy assert but it will always use strict equality checks.
1739
1740<a id="DEP0090"></a>
1741### DEP0090: Invalid GCM authentication tag lengths
1742<!-- YAML
1743changes:
1744  - version: v10.0.0
1745    pr-url: https://github.com/nodejs/node/pull/18017
1746    description: Runtime deprecation.
1747-->
1748
1749Type: Runtime
1750
1751Node.js supports all GCM authentication tag lengths which are accepted by
1752OpenSSL when calling [`decipher.setAuthTag()`][]. This behavior will change in
1753a future version at which point only authentication tag lengths of 128, 120,
1754112, 104, 96, 64, and 32 bits will be allowed. Authentication tags whose length
1755is not included in this list will be considered invalid in compliance with
1756[NIST SP 800-38D][].
1757
1758<a id="DEP0091"></a>
1759### DEP0091: crypto.DEFAULT_ENCODING
1760<!-- YAML
1761changes:
1762  - version: v10.0.0
1763    pr-url: https://github.com/nodejs/node/pull/18333
1764    description: Runtime deprecation.
1765-->
1766
1767Type: Runtime
1768
1769The [`crypto.DEFAULT_ENCODING`][] property is deprecated.
1770
1771<a id="DEP0092"></a>
1772### DEP0092: Top-level `this` bound to `module.exports`
1773<!-- YAML
1774changes:
1775  - version: v10.0.0
1776    pr-url: https://github.com/nodejs/node/pull/16878
1777    description: Documentation-only deprecation.
1778-->
1779
1780Type: Documentation-only
1781
1782Assigning properties to the top-level `this` as an alternative
1783to `module.exports` is deprecated. Developers should use `exports`
1784or `module.exports` instead.
1785
1786<a id="DEP0093"></a>
1787### DEP0093: crypto.fips is deprecated and replaced.
1788<!-- YAML
1789changes:
1790  - version: v10.0.0
1791    pr-url: https://github.com/nodejs/node/pull/18335
1792    description: Documentation-only deprecation.
1793-->
1794
1795Type: Documentation-only
1796
1797The [`crypto.fips`][] property is deprecated. Please use `crypto.setFips()`
1798and `crypto.getFips()` instead.
1799
1800<a id="DEP0094"></a>
1801### DEP0094: Using `assert.fail()` with more than one argument.
1802<!-- YAML
1803changes:
1804  - version: v10.0.0
1805    pr-url: https://github.com/nodejs/node/pull/18418
1806    description: Runtime deprecation.
1807-->
1808
1809Type: Runtime
1810
1811Using `assert.fail()` with more than one argument is deprecated. Use
1812`assert.fail()` with only one argument or use a different `assert` module
1813method.
1814
1815<a id="DEP0095"></a>
1816### DEP0095: timers.enroll()
1817<!-- YAML
1818changes:
1819  - version: v10.0.0
1820    pr-url: https://github.com/nodejs/node/pull/18066
1821    description: Runtime deprecation.
1822-->
1823
1824Type: Runtime
1825
1826`timers.enroll()` is deprecated. Please use the publicly documented
1827[`setTimeout()`][] or [`setInterval()`][] instead.
1828
1829<a id="DEP0096"></a>
1830### DEP0096: timers.unenroll()
1831<!-- YAML
1832changes:
1833  - version: v10.0.0
1834    pr-url: https://github.com/nodejs/node/pull/18066
1835    description: Runtime deprecation.
1836-->
1837
1838Type: Runtime
1839
1840`timers.unenroll()` is deprecated. Please use the publicly documented
1841[`clearTimeout()`][] or [`clearInterval()`][] instead.
1842
1843<a id="DEP0097"></a>
1844### DEP0097: MakeCallback with domain property
1845<!-- YAML
1846changes:
1847  - version: v10.0.0
1848    pr-url: https://github.com/nodejs/node/pull/17417
1849    description: Runtime deprecation.
1850-->
1851
1852Type: Runtime
1853
1854Users of `MakeCallback` that add the `domain` property to carry context,
1855should start using the `async_context` variant of `MakeCallback` or
1856`CallbackScope`, or the high-level `AsyncResource` class.
1857
1858<a id="DEP0098"></a>
1859### DEP0098: AsyncHooks Embedder AsyncResource.emitBefore and AsyncResource.emitAfter APIs
1860<!-- YAML
1861changes:
1862  - version:
1863    - v8.12.0
1864    - v9.6.0
1865    - v10.0.0
1866    pr-url: https://github.com/nodejs/node/pull/18632
1867    description: Runtime deprecation.
1868-->
1869
1870Type: Runtime
1871
1872The embedded API provided by AsyncHooks exposes `.emitBefore()` and
1873`.emitAfter()` methods which are very easy to use incorrectly which can lead
1874to unrecoverable errors.
1875
1876Use [`asyncResource.runInAsyncScope()`][] API instead which provides a much
1877safer, and more convenient, alternative. See
1878<https://github.com/nodejs/node/pull/18513> for more details.
1879
1880<a id="DEP0099"></a>
1881### DEP0099: async context-unaware node::MakeCallback C++ APIs
1882<!-- YAML
1883changes:
1884  - version: v10.0.0
1885    pr-url: https://github.com/nodejs/node/pull/18632
1886    description: Compile-time deprecation.
1887-->
1888
1889Type: Compile-time
1890
1891Certain versions of `node::MakeCallback` APIs available to native modules are
1892deprecated. Please use the versions of the API that accept an `async_context`
1893parameter.
1894
1895<a id="DEP0100"></a>
1896### DEP0100: process.assert()
1897<!-- YAML
1898changes:
1899  - version: v10.0.0
1900    pr-url: https://github.com/nodejs/node/pull/18666
1901    description: Runtime deprecation.
1902  - version: v0.3.7
1903    description: Documentation-only deprecation.
1904-->
1905
1906Type: Runtime
1907
1908`process.assert()` is deprecated. Please use the [`assert`][] module instead.
1909
1910This was never a documented feature.
1911
1912<a id="DEP0101"></a>
1913### DEP0101: --with-lttng
1914<!-- YAML
1915changes:
1916  - version: v10.0.0
1917    pr-url: https://github.com/nodejs/node/pull/18982
1918    description: End-of-Life.
1919-->
1920
1921Type: End-of-Life
1922
1923The `--with-lttng` compile-time option has been removed.
1924
1925<a id="DEP0102"></a>
1926### DEP0102: Using `noAssert` in Buffer#(read|write) operations.
1927<!-- YAML
1928changes:
1929  - version: v10.0.0
1930    pr-url: https://github.com/nodejs/node/pull/18395
1931    description: End-of-Life.
1932-->
1933
1934Type: End-of-Life
1935
1936Using the `noAssert` argument has no functionality anymore. All input is going
1937to be verified, no matter if it is set to true or not. Skipping the verification
1938could lead to hard to find errors and crashes.
1939
1940<a id="DEP0103"></a>
1941### DEP0103: process.binding('util').is[...] typechecks
1942<!-- YAML
1943changes:
1944  - version: v10.9.0
1945    pr-url: https://github.com/nodejs/node/pull/22004
1946    description: Superseded by [DEP0111](#DEP0111).
1947  - version: v10.0.0
1948    pr-url: https://github.com/nodejs/node/pull/18415
1949    description: Documentation-only deprecation.
1950-->
1951
1952Type: Documentation-only (supports [`--pending-deprecation`][])
1953
1954Using `process.binding()` in general should be avoided. The type checking
1955methods in particular can be replaced by using [`util.types`][].
1956
1957This deprecation has been superseded by the deprecation of the
1958`process.binding()` API ([DEP0111](#DEP0111)).
1959
1960<a id="DEP0104"></a>
1961### DEP0104: process.env string coercion
1962<!-- YAML
1963changes:
1964  - version: v10.0.0
1965    pr-url: https://github.com/nodejs/node/pull/18990
1966    description: Documentation-only deprecation.
1967-->
1968
1969Type: Documentation-only (supports [`--pending-deprecation`][])
1970
1971When assigning a non-string property to [`process.env`][], the assigned value is
1972implicitly converted to a string. This behavior is deprecated if the assigned
1973value is not a string, boolean, or number. In the future, such assignment may
1974result in a thrown error. Please convert the property to a string before
1975assigning it to `process.env`.
1976
1977<a id="DEP0105"></a>
1978### DEP0105: decipher.finaltol
1979<!-- YAML
1980changes:
1981  - version: v10.0.0
1982    pr-url: https://github.com/nodejs/node/pull/19353
1983    description: Runtime deprecation.
1984-->
1985
1986Type: Runtime
1987
1988`decipher.finaltol()` has never been documented and is currently an alias for
1989[`decipher.final()`][]. In the future, this API will likely be removed, and it
1990is recommended to use [`decipher.final()`][] instead.
1991
1992<a id="DEP0106"></a>
1993### DEP0106: crypto.createCipher and crypto.createDecipher
1994<!-- YAML
1995changes:
1996  - version: v10.0.0
1997    pr-url: https://github.com/nodejs/node/pull/19343
1998    description: Documentation-only deprecation.
1999-->
2000
2001Type: Documentation-only
2002
2003Using [`crypto.createCipher()`][] and [`crypto.createDecipher()`][] should be
2004avoided as they use a weak key derivation function (MD5 with no salt) and static
2005initialization vectors. It is recommended to derive a key using
2006[`crypto.pbkdf2()`][] or [`crypto.scrypt()`][] and to use
2007[`crypto.createCipheriv()`][] and [`crypto.createDecipheriv()`][] to obtain the
2008[`Cipher`][] and [`Decipher`][] objects respectively.
2009
2010<a id="DEP0107"></a>
2011### DEP0107: tls.convertNPNProtocols()
2012<!-- YAML
2013changes:
2014  - version: v10.0.0
2015    pr-url: https://github.com/nodejs/node/pull/19403
2016    description: Runtime deprecation.
2017-->
2018
2019Type: Runtime
2020
2021This was an undocumented helper function not intended for use outside Node.js
2022core and obsoleted by the removal of NPN (Next Protocol Negotiation) support.
2023
2024<a id="DEP0108"></a>
2025### DEP0108: zlib.bytesRead
2026<!-- YAML
2027changes:
2028  - version: v10.0.0
2029    pr-url: https://github.com/nodejs/node/pull/19414
2030    description: Documentation-only deprecation.
2031-->
2032
2033Type: Documentation-only
2034
2035Deprecated alias for [`zlib.bytesWritten`][]. This original name was chosen
2036because it also made sense to interpret the value as the number of bytes
2037read by the engine, but is inconsistent with other streams in Node.js that
2038expose values under these names.
2039
2040<a id="DEP0110"></a>
2041### DEP0110: vm.Script cached data
2042<!-- YAML
2043changes:
2044  - version: v10.6.0
2045    pr-url: https://github.com/nodejs/node/pull/20300
2046    description: Documentation-only deprecation.
2047-->
2048
2049Type: Documentation-only
2050
2051The `produceCachedData` option is deprecated. Use
2052[`script.createCachedData()`][] instead.
2053
2054<a id="DEP0111"></a>
2055### DEP0111: process.binding()
2056<!-- YAML
2057changes:
2058  - version: v10.9.0
2059    pr-url: https://github.com/nodejs/node/pull/22004
2060    description: Documentation-only deprecation.
2061-->
2062
2063Type: Documentation-only
2064
2065`process.binding()` is for use by Node.js internal code only.
2066
2067[`--pending-deprecation`]: cli.html#cli_pending_deprecation
2068[`Buffer.allocUnsafeSlow(size)`]: buffer.html#buffer_class_method_buffer_allocunsafeslow_size
2069[`Buffer.from(array)`]: buffer.html#buffer_class_method_buffer_from_array
2070[`Buffer.from(buffer)`]: buffer.html#buffer_class_method_buffer_from_buffer
2071[`Buffer.isBuffer()`]: buffer.html#buffer_class_method_buffer_isbuffer_obj
2072[`Cipher`]: crypto.html#crypto_class_cipher
2073[`Decipher`]: crypto.html#crypto_class_decipher
2074[`EventEmitter.listenerCount(emitter, eventName)`]: events.html#events_eventemitter_listenercount_emitter_eventname
2075[`REPLServer.clearBufferedCommand()`]: repl.html#repl_replserver_clearbufferedcommand
2076[`Server.connections`]: net.html#net_server_connections
2077[`Server.getConnections()`]: net.html#net_server_getconnections_callback
2078[`Server.listen({fd: <number>})`]: net.html#net_server_listen_handle_backlog_callback
2079[`SlowBuffer`]: buffer.html#buffer_class_slowbuffer
2080[`assert`]: assert.html
2081[`asyncResource.runInAsyncScope()`]: async_hooks.html#async_hooks_asyncresource_runinasyncscope_fn_thisarg_args
2082[`child_process`]: child_process.html
2083[`clearInterval()`]: timers.html#timers_clearinterval_timeout
2084[`clearTimeout()`]: timers.html#timers_cleartimeout_timeout
2085[`console.error()`]: console.html#console_console_error_data_args
2086[`console.log()`]: console.html#console_console_log_data_args
2087[`crypto.DEFAULT_ENCODING`]: crypto.html#crypto_crypto_default_encoding
2088[`crypto.createCipher()`]: crypto.html#crypto_crypto_createcipher_algorithm_password_options
2089[`crypto.createCipheriv()`]: crypto.html#crypto_crypto_createcipheriv_algorithm_key_iv_options
2090[`crypto.createCredentials()`]: crypto.html#crypto_crypto_createcredentials_details
2091[`crypto.createDecipher()`]: crypto.html#crypto_crypto_createdecipher_algorithm_password_options
2092[`crypto.createDecipheriv()`]: crypto.html#crypto_crypto_createdecipheriv_algorithm_key_iv_options
2093[`crypto.fips`]: crypto.html#crypto_crypto_fips
2094[`crypto.pbkdf2()`]: crypto.html#crypto_crypto_pbkdf2_password_salt_iterations_keylen_digest_callback
2095[`crypto.scrypt()`]: crypto.html#crypto_crypto_scrypt_password_salt_keylen_options_callback
2096[`decipher.final()`]: crypto.html#crypto_decipher_final_outputencoding
2097[`decipher.setAuthTag()`]: crypto.html#crypto_decipher_setauthtag_buffer
2098[`domain`]: domain.html
2099[`ecdh.setPublicKey()`]: crypto.html#crypto_ecdh_setpublickey_publickey_encoding
2100[`emitter.listenerCount(eventName)`]: events.html#events_emitter_listenercount_eventname
2101[`fs.access()`]: fs.html#fs_fs_access_path_mode_callback
2102[`fs.exists(path, callback)`]: fs.html#fs_fs_exists_path_callback
2103[`fs.lchmod(path, mode, callback)`]: fs.html#fs_fs_lchmod_path_mode_callback
2104[`fs.lchmodSync(path, mode)`]: fs.html#fs_fs_lchmodsync_path_mode
2105[`fs.lchown(path, uid, gid, callback)`]: fs.html#fs_fs_lchown_path_uid_gid_callback
2106[`fs.lchownSync(path, uid, gid)`]: fs.html#fs_fs_lchownsync_path_uid_gid
2107[`fs.read()`]: fs.html#fs_fs_read_fd_buffer_offset_length_position_callback
2108[`fs.readSync()`]: fs.html#fs_fs_readsync_fd_buffer_offset_length_position
2109[`fs.stat()`]: fs.html#fs_fs_stat_path_options_callback
2110[`os.networkInterfaces`]: os.html#os_os_networkinterfaces
2111[`os.tmpdir()`]: os.html#os_os_tmpdir
2112[`process.env`]: process.html#process_process_env
2113[`punycode`]: punycode.html
2114[`require.extensions`]: modules.html#modules_require_extensions
2115[`script.createCachedData()`]: vm.html#vm_script_createcacheddata
2116[`setInterval()`]: timers.html#timers_setinterval_callback_delay_args
2117[`setTimeout()`]: timers.html#timers_settimeout_callback_delay_args
2118[`tls.CryptoStream`]: tls.html#tls_class_cryptostream
2119[`tls.SecureContext`]: tls.html#tls_tls_createsecurecontext_options
2120[`tls.SecurePair`]: tls.html#tls_class_securepair
2121[`tls.TLSSocket`]: tls.html#tls_class_tls_tlssocket
2122[`tls.createSecureContext()`]: tls.html#tls_tls_createsecurecontext_options
2123[`util._extend()`]: util.html#util_util_extend_target_source
2124[`util.debug()`]: util.html#util_util_debug_string
2125[`util.error()`]: util.html#util_util_error_strings
2126[`util.inspect()`]: util.html#util_util_inspect_object_options
2127[`util.inspect.custom`]: util.html#util_util_inspect_custom
2128[`util.isArray()`]: util.html#util_util_isarray_object
2129[`util.isBoolean()`]: util.html#util_util_isboolean_object
2130[`util.isBuffer()`]: util.html#util_util_isbuffer_object
2131[`util.isDate()`]: util.html#util_util_isdate_object
2132[`util.isError()`]: util.html#util_util_iserror_object
2133[`util.isFunction()`]: util.html#util_util_isfunction_object
2134[`util.isNull()`]: util.html#util_util_isnull_object
2135[`util.isNullOrUndefined()`]: util.html#util_util_isnullorundefined_object
2136[`util.isNumber()`]: util.html#util_util_isnumber_object
2137[`util.isObject()`]: util.html#util_util_isobject_object
2138[`util.isPrimitive()`]: util.html#util_util_isprimitive_object
2139[`util.isRegExp()`]: util.html#util_util_isregexp_object
2140[`util.isString()`]: util.html#util_util_isstring_object
2141[`util.isSymbol()`]: util.html#util_util_issymbol_object
2142[`util.isUndefined()`]: util.html#util_util_isundefined_object
2143[`util.log()`]: util.html#util_util_log_string
2144[`util.print()`]: util.html#util_util_print_strings
2145[`util.puts()`]: util.html#util_util_puts_strings
2146[`util.types`]: util.html#util_util_types
2147[`util`]: util.html
2148[`worker.exitedAfterDisconnect`]: cluster.html#cluster_worker_exitedafterdisconnect
2149[`zlib.bytesWritten`]: zlib.html#zlib_zlib_byteswritten
2150[NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
2151[alloc]: buffer.html#buffer_class_method_buffer_alloc_size_fill_encoding
2152[alloc_unsafe_size]: buffer.html#buffer_class_method_buffer_allocunsafe_size
2153[from_arraybuffer]: buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length
2154[from_string_encoding]: buffer.html#buffer_class_method_buffer_from_string_encoding
2155