File tree 1 file changed +17
-1
lines changed
lib/node_modules/@stdlib/repl/lib
1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -65,12 +65,13 @@ var ANSI_RESET = ANSI_COLORS[ 'reset' ];
65
65
* @returns {boolean } boolean indicating whether the node is side-effect-free
66
66
*/
67
67
function traverse ( node ) {
68
+ var properties ;
68
69
var fname ;
69
70
var i ;
70
71
if ( ! node ) {
71
72
return false ;
72
73
}
73
- if ( node . type === 'Literal' || node . type === 'Identifier' ) {
74
+ if ( node . type === 'Literal' || node . type === 'Identifier' || ( node . type === 'UnaryExpression' && node . operator !== 'delete' ) ) {
74
75
return true ;
75
76
}
76
77
if ( node . type === 'BinaryExpression' ) {
@@ -96,6 +97,21 @@ function traverse( node ) {
96
97
}
97
98
return true ;
98
99
}
100
+ } else if ( node . type === 'ArrayExpression' ) {
101
+ for ( i = 0 ; i < node . elements . length ; i ++ ) {
102
+ if ( ! traverse ( node . elements [ i ] ) ) {
103
+ return false ;
104
+ }
105
+ }
106
+ return true ;
107
+ } else if ( node . type === 'ObjectExpression' ) {
108
+ for ( i = 0 ; i < node . properties . length ; i ++ ) {
109
+ properties = node . properties ;
110
+ if ( ! traverse ( properties [ i ] . key ) || ! traverse ( properties [ i ] . value ) ) {
111
+ return false ;
112
+ }
113
+ }
114
+ return true ;
99
115
}
100
116
return false ;
101
117
}
You can’t perform that action at this time.
0 commit comments