Skip to content

Commit dc372af

Browse files
committed
Properly generate preview for short jQuery objects
1 parent aca2a13 commit dc372af

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

lib/firequery-actor.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,24 @@ var FireQueryActor = ActorClass(
132132
return false;
133133
}
134134

135+
let length = DevToolsUtils.getProperty(actor.obj, "length");
136+
if (typeof length != "number") {
137+
return false;
138+
}
139+
135140
let preview = grip.preview = {
136141
kind: "jQuery",
142+
length: length,
137143
};
138144

145+
if (actor.threadActor._gripDepth > 1) {
146+
return true;
147+
}
148+
149+
preview.items = [];
150+
139151
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) {
143153
// Array Xrays filter out various possibly-unsafe properties (like
144154
// functions, and claim that the value is undefined instead. This
145155
// is generally the right thing for privileged code accessing untrusted
@@ -152,7 +162,7 @@ var FireQueryActor = ActorClass(
152162
value = makeDebuggeeValueIfNeeded(actor.obj, value);
153163

154164
let grip = actor.threadActor.createValueGrip(value);
155-
items.push(grip);
165+
preview.items.push(grip);
156166

157167
let cache = hasJQueryCache(desc.value);
158168
if (cache) {
@@ -163,10 +173,10 @@ var FireQueryActor = ActorClass(
163173
// xxxHonza: generate preview for the cache?
164174
}
165175
} else {
166-
items.push(null);
176+
preview.items.push(null);
167177
}
168178

169-
if (items.length == OBJECT_PREVIEW_MAX_ITEMS) {
179+
if (preview.length == OBJECT_PREVIEW_MAX_ITEMS) {
170180
break;
171181
}
172182
}

0 commit comments

Comments
 (0)