author | Andreas Gal <gal@mozilla.com> |
Sat, 29 May 2010 00:24:26 -0700 | |
changeset 43207 | 3e86dbfb0814d9c5ec74db3314fb92dbc4b9948a |
parent 43206 | 36d81cc1a7de6770632b9cbc24ae65ad820c47e9 |
child 43208 | 51a5c26e7a6325c460c0968bd83a198413f8bad5 |
push id | 13641 |
push user | rsayre@mozilla.com |
push date | Sun, 06 Jun 2010 19:08:23 +0000 |
treeherder | mozilla-central@5b3604a3cfbe [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | dvander |
bugs | 568855 |
milestone | 1.9.3a5pre |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
|
--- a/js/src/jstracer.cpp +++ b/js/src/jstracer.cpp @@ -13940,19 +13940,22 @@ TraceRecorder::record_JSOP_BINDNAME() stack(0, INS_CONSTOBJ(obj)); return ARECORD_CONTINUE; } LIns *obj_ins = stobj_get_parent(get(callee)); // Find the target object. JSAtom *atom = atoms[GET_INDEX(cx->regs->pc)]; jsid id = ATOM_TO_JSID(atom); + JSContext *localCx = cx; JSObject *obj2 = js_FindIdentifierBase(cx, fp->scopeChain, id); if (!obj2) RETURN_ERROR_A("error in js_FindIdentifierBase"); + if (!TRACE_RECORDER(localCx)) + return ARECORD_ABORTED; if (obj2 != globalObj && obj2->getClass() != &js_CallClass) RETURN_STOP_A("BINDNAME on non-global, non-call object"); // Generate LIR to get to the target object from the start object. LIns *obj2_ins; CHECK_STATUS_A(traverseScopeChain(obj, obj_ins, obj2, obj2_ins)); // If |obj2| is the global object, we can refer to it directly instead of walking up