@@ -11,33 +11,26 @@ const assert = require('assert');
1111const buffer = require ( 'buffer' ) ;
1212
1313// Monkey-patch setupBufferJS() to have an undefined zeroFill.
14- const process = require ( 'process' ) ;
15- const originalBinding = process . binding ;
14+ const internalBuffer = require ( 'internal/buffer' ) ;
1615
17- const binding = originalBinding ( 'buffer' ) ;
18- const originalSetup = binding . setupBufferJS ;
16+ const originalSetup = internalBuffer . setupBufferJS ;
1917
20- binding . setupBufferJS = ( proto , obj ) => {
18+ internalBuffer . setupBufferJS = ( proto , obj ) => {
2119 originalSetup ( proto , obj ) ;
2220 assert . strictEqual ( obj . zeroFill [ 0 ] , 1 ) ;
2321 delete obj . zeroFill ;
2422} ;
2523
2624const bindingObj = { } ;
2725
28- binding . setupBufferJS ( Buffer . prototype , bindingObj ) ;
26+ internalBuffer . setupBufferJS ( Buffer . prototype , bindingObj ) ;
2927assert . strictEqual ( bindingObj . zeroFill , undefined ) ;
3028
31- process . binding = ( bindee ) => {
32- if ( bindee === 'buffer' )
33- return binding ;
34- return originalBinding ( bindee ) ;
35- } ;
36-
3729// Load from file system because internal buffer is already loaded and we're
3830// testing code that runs on first load only.
3931// Do not move this require() to top of file. It is important that
40- // `process.binding('buffer').setupBufferJS` be monkey-patched before this runs.
32+ // `require('internal/buffer').setupBufferJS` be monkey-patched before this
33+ // runs.
4134const monkeyPatchedBuffer = require ( '../../lib/buffer' ) ;
4235
4336// On unpatched buffer, allocUnsafe() should not zero fill memory. It's always
@@ -51,3 +44,6 @@ while (uninitialized.every((val) => val === 0))
5144// zero-fill in that case.
5245const zeroFilled = monkeyPatchedBuffer . Buffer . allocUnsafe ( 1024 ) ;
5346assert ( zeroFilled . every ( ( val ) => val === 0 ) ) ;
47+
48+ // setupBufferJS shouldn't still be exposed on the binding
49+ assert ( ! ( 'setupBufferJs' in process . binding ( 'buffer' ) ) ) ;
0 commit comments