return JS_TRUE;
return ok;
js_LockGCThingRT(JSRuntime *rt, void *thing){    uint8 *flagp, flags, lockbits;    JSBool ok;    JSGCLockHashEntry *lhe;    if (!thing)        return JS_TRUE;    flagp = js_GetGCThingFlags(thing);    flags = *flagp;    ok = JS_FALSE;    JS_LOCK_GC(rt);    lockbits = (flags & GCF_LOCKMASK);    if (lockbits != GCF_LOCKMASK) {        if ((flags & GCF_TYPEMASK) == GCX_OBJECT) {            /* Objects may require "deep locking", i.e., rooting by value. */            if (lockbits == 0) {                if (!rt->gcLocksHash) {                    rt->gcLocksHash =                        JS_NewDHashTable(JS_DHashGetStubOps(), NULL,                                         sizeof(JSGCLockHashEntry),                                         GC_ROOTS_SIZE);                    if (!rt->gcLocksHash)                        goto error;                } else {#ifdef DEBUG                    JSDHashEntryHdr *hdr =                        JS_DHashTableOperate(rt->gcLocksHash, thing,                                             JS_DHASH_LOOKUP);                    JS_ASSERT(JS_DHASH_ENTRY_IS_FREE(hdr));#endif                }                lhe = (JSGCLockHashEntry *)                    JS_DHashTableOperate(rt->gcLocksHash, thing, JS_DHASH_ADD);                if (!lhe)                    goto error;                lhe->thing = thing;                lhe->count = 1;                *flagp = (uint8)(flags + GCF_LOCK);            } else {                JS_ASSERT(lockbits == GCF_LOCK);                lhe = (JSGCLockHashEntry *)                    JS_DHashTableOperate(rt->gcLocksHash, thing,                                         JS_DHASH_LOOKUP);                JS_ASSERT(JS_DHASH_ENTRY_IS_BUSY(&lhe->hdr));                if (JS_DHASH_ENTRY_IS_BUSY(&lhe->hdr)) {                    JS_ASSERT(lhe->count >= 1);                    lhe->count++;                }            }        } else {            *flagp = (uint8)(flags + GCF_LOCK);        }    } else {        METER(rt->gcStats.stuck++);    }    METER(rt->gcStats.lock++);    ok = JS_TRUE;error:    JS_UNLOCK_GC(rt);    return ok;}