File tree 2 files changed +30
-8
lines changed
2 files changed +30
-8
lines changed Original file line number Diff line number Diff line change @@ -722,9 +722,7 @@ REPLServer.prototype.createContext = function() {
722
722
723
723
Object . defineProperty ( context , '_' , {
724
724
configurable : true ,
725
- get : ( ) => {
726
- return this . last ;
727
- } ,
725
+ get : ( ) => this . last ,
728
726
set : ( value ) => {
729
727
this . last = value ;
730
728
if ( ! this . underscoreAssigned ) {
@@ -1266,9 +1264,10 @@ function defineDefaultCommands(repl) {
1266
1264
help : 'Print this help message' ,
1267
1265
action : function ( ) {
1268
1266
const names = Object . keys ( this . commands ) . sort ( ) ;
1269
- const longestNameLength = names . reduce ( ( max , name ) => {
1270
- return Math . max ( max , name . length ) ;
1271
- } , 0 ) ;
1267
+ const longestNameLength = names . reduce (
1268
+ ( max , name ) => Math . max ( max , name . length ) ,
1269
+ 0
1270
+ ) ;
1272
1271
names . forEach ( ( name ) => {
1273
1272
const cmd = this . commands [ name ] ;
1274
1273
const spaces = ' ' . repeat ( longestNameLength - name . length + 3 ) ;
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ const stream = require('stream');
8
8
testSloppyMode ( ) ;
9
9
testStrictMode ( ) ;
10
10
testResetContext ( ) ;
11
+ testResetContextGlobal ( ) ;
11
12
testMagicMode ( ) ;
12
13
13
14
function testSloppyMode ( ) {
@@ -131,7 +132,28 @@ function testResetContext() {
131
132
] ) ;
132
133
}
133
134
134
- function initRepl ( mode ) {
135
+ function testResetContextGlobal ( ) {
136
+ const r = initRepl ( repl . REPL_MODE_STRICT , true ) ;
137
+
138
+ r . write ( `_ = 10; // explicitly set to 10
139
+ _; // 10 from user input
140
+ .clear // No output because useGlobal is true
141
+ _; // remains 10
142
+ ` ) ;
143
+
144
+ assertOutput ( r . output , [
145
+ 'Expression assignment to _ now disabled.' ,
146
+ '10' ,
147
+ '10' ,
148
+ '10' ,
149
+ ] ) ;
150
+
151
+ // delete globals leaked by REPL when `useGlobal` is `true`
152
+ delete global . module ;
153
+ delete global . require ;
154
+ }
155
+
156
+ function initRepl ( mode , useGlobal ) {
135
157
const inputStream = new stream . PassThrough ( ) ;
136
158
const outputStream = new stream . PassThrough ( ) ;
137
159
outputStream . accum = '' ;
@@ -146,7 +168,8 @@ function initRepl(mode) {
146
168
useColors : false ,
147
169
terminal : false ,
148
170
prompt : '' ,
149
- replMode : mode
171
+ replMode : mode ,
172
+ useGlobal : useGlobal
150
173
} ) ;
151
174
}
152
175
You can’t perform that action at this time.
0 commit comments