29#include "wine/rbtree.h"
84 return (bits1.n == bits2.n) ? 0 : (bits1.n < bits2.n ? -1 : 1);
101 WARN(
"not a Map object passed as 'this'\n");
116 WARN(
"not a Set object passed as 'this'\n");
138 if(--
entry->ref)
return;
201 context_this =
argv[1];
429 case DISPATCH_CONSTRUCT:
582 case DISPATCH_CONSTRUCT:
616 return (
a >
b) - (
a <
b);
626 WARN(
"not a WeakMap object passed as 'this'\n");
647 if(
next->next != &
entry->weak_refs_entry)
670 TRACE(
"%p\n", weakmap);
672 while(weakmap->
map.root)
759 if(
key->has_weak_refs)
810 while(weakmap->
map.root)
869 case DISPATCH_CONSTRUCT:
COMPILER_DEPENDENT_INT64 INT64
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static BOOL get_bool(D3DXPARAMETER_TYPE type, const void *data)
HRESULT throw_error(script_ctx_t *ctx, HRESULT error, const WCHAR *str)
HRESULT create_builtin_constructor(script_ctx_t *ctx, builtin_invoke_t value_proc, const WCHAR *name, const builtin_info_t *builtin_info, DWORD flags, jsdisp_t *prototype, jsdisp_t **ret)
HRESULT init_set_constructor(script_ctx_t *ctx)
static HRESULT Map_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_info_t WeakMap_info
static const builtin_prop_t Set_prototype_props[]
static HRESULT Set_constructor(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_prop_t WeakMap_prototype_props[]
static HRESULT Map_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *dispex)
static HRESULT WeakMap_constructor(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static void grab_map_entry(struct jsval_map_entry *entry)
static HRESULT set_map_entry(MapInstance *map, jsval_t key, jsval_t value, jsval_t *r)
static struct weakmap_entry * get_weakmap_entry(WeakMapInstance *weakmap, jsdisp_t *key)
static HRESULT WeakMap_set(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Set_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT WeakMap_get(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT WeakMap_delete(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static void Map_destructor(jsdisp_t *dispex)
static HRESULT Set_delete(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static int weakmap_compare(const void *k, const struct rb_entry *e)
static HRESULT WeakMap_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_info_t Set_prototype_info
void remove_weakmap_entry(struct weakmap_entry *entry)
static const builtin_info_t Map_prototype_info
static const builtin_prop_t Map_prototype_props[]
static void WeakMap_destructor(jsdisp_t *dispex)
static HRESULT Map_has(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT WeakMap_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static struct jsval_map_entry * get_map_entry(MapInstance *map, jsval_t key)
static HRESULT Set_has(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static void release_map_entry(struct jsval_map_entry *entry)
static HRESULT Map_get(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Map_set(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_info_t Map_info
static const builtin_info_t Set_info
static void delete_map_entry(MapInstance *map, struct jsval_map_entry *entry)
static HRESULT WeakMap_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *dispex)
static HRESULT get_map_this(script_ctx_t *ctx, jsval_t vthis, MapInstance **ret)
static HRESULT Map_constructor(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Map_forEach(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT iterate_map(MapInstance *map, script_ctx_t *ctx, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Set_add(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Map_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static int jsval_map_compare(const void *k, const struct wine_rb_entry *e)
static const builtin_info_t WeakMap_prototype_info
static HRESULT Map_get_size(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT Set_forEach(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Set_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT WeakMap_has(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT get_set_this(script_ctx_t *ctx, jsval_t vthis, MapInstance **ret)
static HRESULT Map_delete(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT get_weakmap_this(script_ctx_t *ctx, jsval_t vthis, WeakMapInstance **ret)
static const builtin_prop_t Map_props[]
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
HRESULT jsdisp_define_data_property(jsdisp_t *obj, const WCHAR *name, unsigned flags, jsval_t value)
HRESULT gc_process_linked_val(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *obj, jsval_t *link)
ULONG jsdisp_release(jsdisp_t *obj)
HRESULT create_dispex(script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype, jsdisp_t **dispex)
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
HRESULT builtin_set_const(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t value)
jsdisp_t * to_jsdisp(IDispatch *disp)
#define JS_E_OBJECT_EXPECTED
#define SCRIPTLANGUAGEVERSION_ES6
static HRESULT disp_call_value(script_ctx_t *ctx, IDispatch *disp, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
#define JS_E_KEY_NOT_OBJECT
const char * debugstr_jsval(const jsval_t)
static BOOL is_class(jsdisp_t *jsdisp, jsclass_t class)
const unsigned int PROPF_WRITABLE
const unsigned int PROPF_CONFIGURABLE
const unsigned int PROPF_METHOD
const unsigned int PROPF_CONSTR
int jsstr_cmp(jsstr_t *str1, jsstr_t *str2)
HRESULT jsval_copy(jsval_t v, jsval_t *r)
void jsval_release(jsval_t val)
static jsval_t jsval_undefined(void)
static jsval_t jsval_obj(jsdisp_t *obj)
static jsval_t jsval_bool(BOOL b)
static jsval_type_t jsval_type(jsval_t v)
static jsstr_t * get_string(jsval_t v)
static double get_number(jsval_t v)
static IDispatch * get_object(jsval_t v)
static BOOL is_object_instance(jsval_t v)
static jsval_t jsval_number(double n)
static unsigned __int64 next
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
#define RB_ENTRY_VALUE(element, type, field)
#define WINE_RB_ENTRY_VALUE
static int rb_put(struct rb_tree *tree, const void *key, struct rb_entry *entry)
static struct rb_entry * rb_get(const struct rb_tree *tree, const void *key)
#define RB_FOR_EACH_ENTRY(elem, tree, type, field)
static void rb_remove(struct rb_tree *tree, struct rb_entry *entry)
static void rb_init(struct rb_tree *tree, rb_compare_func_t compare)
struct wine_rb_entry entry
#define CONTAINING_RECORD(address, type, field)