@@ -132,14 +132,24 @@ var FireQueryActor = ActorClass(
132
132
return false ;
133
133
}
134
134
135
+ let length = DevToolsUtils . getProperty ( actor . obj , "length" ) ;
136
+ if ( typeof length != "number" ) {
137
+ return false ;
138
+ }
139
+
135
140
let preview = grip . preview = {
136
141
kind : "jQuery" ,
142
+ length : length ,
137
143
} ;
138
144
145
+ if ( actor . threadActor . _gripDepth > 1 ) {
146
+ return true ;
147
+ }
148
+
149
+ preview . items = [ ] ;
150
+
139
151
let raw = actor . obj . unsafeDereference ( ) ;
140
- let items = preview . items = [ ] ;
141
- let length = DevToolsUtils . getProperty ( actor . obj , "length" ) ;
142
- for ( let i = 0 ; i < length ; ++ i ) {
152
+ for ( let i = 0 ; i < preview . length ; ++ i ) {
143
153
// Array Xrays filter out various possibly-unsafe properties (like
144
154
// functions, and claim that the value is undefined instead. This
145
155
// is generally the right thing for privileged code accessing untrusted
@@ -152,7 +162,7 @@ var FireQueryActor = ActorClass(
152
162
value = makeDebuggeeValueIfNeeded ( actor . obj , value ) ;
153
163
154
164
let grip = actor . threadActor . createValueGrip ( value ) ;
155
- items . push ( grip ) ;
165
+ preview . items . push ( grip ) ;
156
166
157
167
let cache = hasJQueryCache ( desc . value ) ;
158
168
if ( cache ) {
@@ -163,10 +173,10 @@ var FireQueryActor = ActorClass(
163
173
// xxxHonza: generate preview for the cache?
164
174
}
165
175
} else {
166
- items . push ( null ) ;
176
+ preview . items . push ( null ) ;
167
177
}
168
178
169
- if ( items . length == OBJECT_PREVIEW_MAX_ITEMS ) {
179
+ if ( preview . length == OBJECT_PREVIEW_MAX_ITEMS ) {
170
180
break ;
171
181
}
172
182
}
0 commit comments