webassembly/objjsproxy: Implement equality for JsProxy objects.
Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
@@ -54,6 +54,7 @@
|
|||||||
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
|
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
|
||||||
#define MICROPY_USE_INTERNAL_ERRNO (1)
|
#define MICROPY_USE_INTERNAL_ERRNO (1)
|
||||||
#define MICROPY_USE_INTERNAL_PRINTF (0)
|
#define MICROPY_USE_INTERNAL_PRINTF (0)
|
||||||
|
#define MICROPY_PY_BOUND_METHOD_FULL_EQUALITY_CHECK (1)
|
||||||
|
|
||||||
#define MICROPY_EPOCH_IS_1970 (1)
|
#define MICROPY_EPOCH_IS_1970 (1)
|
||||||
#define MICROPY_PY_ASYNCIO_TASK_QUEUE_PUSH_CALLBACK (1)
|
#define MICROPY_PY_ASYNCIO_TASK_QUEUE_PUSH_CALLBACK (1)
|
||||||
|
|||||||
@@ -266,6 +266,23 @@ static mp_obj_t jsproxy_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static mp_obj_t jsproxy_binary_op(mp_binary_op_t op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
|
||||||
|
if (!mp_obj_is_type(rhs_in, &mp_type_jsproxy)) {
|
||||||
|
return MP_OBJ_NULL; // op not supported
|
||||||
|
}
|
||||||
|
|
||||||
|
mp_obj_jsproxy_t *lhs = MP_OBJ_TO_PTR(lhs_in);
|
||||||
|
mp_obj_jsproxy_t *rhs = MP_OBJ_TO_PTR(rhs_in);
|
||||||
|
|
||||||
|
switch (op) {
|
||||||
|
case MP_BINARY_OP_EQUAL:
|
||||||
|
return mp_obj_new_bool(lhs->ref == rhs->ref);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return MP_OBJ_NULL; // op not supported
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EM_JS(void, proxy_js_free_obj, (int js_ref), {
|
EM_JS(void, proxy_js_free_obj, (int js_ref), {
|
||||||
if (js_ref >= PROXY_JS_REF_NUM_STATIC) {
|
if (js_ref >= PROXY_JS_REF_NUM_STATIC) {
|
||||||
proxy_js_ref[js_ref] = undefined;
|
proxy_js_ref[js_ref] = undefined;
|
||||||
@@ -566,6 +583,7 @@ MP_DEFINE_CONST_OBJ_TYPE(
|
|||||||
MP_TYPE_FLAG_ITER_IS_GETITER,
|
MP_TYPE_FLAG_ITER_IS_GETITER,
|
||||||
print, jsproxy_print,
|
print, jsproxy_print,
|
||||||
call, jsproxy_call,
|
call, jsproxy_call,
|
||||||
|
binary_op, jsproxy_binary_op,
|
||||||
attr, mp_obj_jsproxy_attr,
|
attr, mp_obj_jsproxy_attr,
|
||||||
subscr, jsproxy_subscr,
|
subscr, jsproxy_subscr,
|
||||||
iter, jsproxy_getiter
|
iter, jsproxy_getiter
|
||||||
|
|||||||
Reference in New Issue
Block a user