Bug 519363: temporary instrumentation to understand object creation scope assignment for js_Interpret topcrash, r=lw

This commit is contained in:
David Mandelin 2009-10-22 19:06:20 -07:00
parent 3927f423ab
commit 44ddeb70aa
2 changed files with 2 additions and 2 deletions

View File

@ -246,8 +246,6 @@ js_FillPropertyCache(JSContext *cx, JSObject *obj,
SPROP_HAS_VALID_SLOT(sprop, scope)) { SPROP_HAS_VALID_SLOT(sprop, scope)) {
/* Great, let's cache sprop's slot and use it on cache hit. */ /* Great, let's cache sprop's slot and use it on cache hit. */
vword = SLOT_TO_PCVAL(sprop->slot); vword = SLOT_TO_PCVAL(sprop->slot);
if (sprop->slot >= JS_INITIAL_NSLOTS && !DSLOTS_IS_NOT_NULL(obj))
DSLOTS_BUMP(obj);
} else { } else {
/* Best we can do is to cache sprop (still a nice speedup). */ /* Best we can do is to cache sprop (still a nice speedup). */
vword = SPROP_TO_PCVAL(sprop); vword = SPROP_TO_PCVAL(sprop);

View File

@ -2168,6 +2168,8 @@ InitScopeForObject(JSContext* cx, JSObject* obj, JSObject* proto, JSObjectOps* o
scope = OBJ_SCOPE(proto)->getEmptyScope(cx, clasp); scope = OBJ_SCOPE(proto)->getEmptyScope(cx, clasp);
if (!scope) if (!scope)
goto bad; goto bad;
if (!DSLOTS_IS_NOT_NULL(obj))
DSLOTS_BUMP(obj);
} else { } else {
scope = JSScope::create(cx, ops, clasp, obj, js_GenerateShape(cx, false)); scope = JSScope::create(cx, ops, clasp, obj, js_GenerateShape(cx, false));
if (!scope) if (!scope)