File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed
lib/node_modules/@stdlib/repl/lib Expand file tree Collapse file tree 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' ];
6565* @returns {boolean } boolean indicating whether the node is side-effect-free
6666*/
6767function traverse ( node ) {
68+ var properties ;
6869 var fname ;
6970 var i ;
7071 if ( ! node ) {
7172 return false ;
7273 }
73- if ( node . type === 'Literal' || node . type === 'Identifier' ) {
74+ if ( node . type === 'Literal' || node . type === 'Identifier' || ( node . type === 'UnaryExpression' && node . operator !== 'delete' ) ) {
7475 return true ;
7576 }
7677 if ( node . type === 'BinaryExpression' ) {
@@ -96,6 +97,21 @@ function traverse( node ) {
9697 }
9798 return true ;
9899 }
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 ;
99115 }
100116 return false ;
101117}
You can’t perform that action at this time.
0 commit comments