void JSWeakObjectMapSet(JSContextRef ctx, JSWeakObjectMapRef map, void* key, JSObjectRef object) { ExecState* exec = toJS(ctx); APIEntryShim entryShim(exec); JSObject* obj = toJS(object); if (!obj) return; ASSERT(obj->inherits(&JSCallbackObject<JSGlobalObject>::s_info) || obj->inherits(&JSCallbackObject<JSDestructibleObject>::s_info)); map->map().set(key, obj); }
void JSWeakObjectMapRemove(JSContextRef ctx, JSWeakObjectMapRef map, void* key) { if (!ctx) { ASSERT_NOT_REACHED(); return; } ExecState* exec = toJS(ctx); JSLockHolder locker(exec); map->map().remove(key); }
JSObjectRef JSWeakObjectMapGet(JSContextRef ctx, JSWeakObjectMapRef map, void* key) { if (!ctx) { ASSERT_NOT_REACHED(); return 0; } ExecState* exec = toJS(ctx); JSLockHolder locker(exec); return toRef(jsCast<JSObject*>(map->map().get(key))); }
void JSWeakObjectMapSet(JSContextRef ctx, JSWeakObjectMapRef map, void* key, JSObjectRef object) { if (!ctx) { ASSERT_NOT_REACHED(); return; } ExecState* exec = toJS(ctx); JSLockHolder locker(exec); JSObject* obj = toJS(object); if (!obj) return; ASSERT(obj->inherits(exec->vm(), JSProxy::info()) || obj->inherits(exec->vm(), JSCallbackObject<JSGlobalObject>::info()) || obj->inherits(exec->vm(), JSCallbackObject<JSDestructibleObject>::info())); map->map().set(key, obj); }
void JSWeakObjectMapRemove(JSContextRef ctx, JSWeakObjectMapRef map, void* key) { ExecState* exec = toJS(ctx); APIEntryShim entryShim(exec); map->map().remove(key); }
JSObjectRef JSWeakObjectMapGet(JSContextRef ctx, JSWeakObjectMapRef map, void* key) { ExecState* exec = toJS(ctx); APIEntryShim entryShim(exec); return toRef(jsCast<JSObject*>(map->map().get(key))); }