diff --git a/src/ant.c b/src/ant.c index 2e384e4..4c2caff 100644 --- a/src/ant.c +++ b/src/ant.c @@ -2744,7 +2744,6 @@ typedef struct { } ant_arguments_state_t; static inline ant_arguments_state_t *js_arguments_state(ant_value_t obj) { - if (!js_check_native_tag(obj, ANT_ARGUMENTS_NATIVE_TAG)) return NULL; return (ant_arguments_state_t *)js_get_native(obj, ANT_ARGUMENTS_NATIVE_TAG); } diff --git a/src/modules/abort.c b/src/modules/abort.c index 8795fd6..dc0131b 100644 --- a/src/modules/abort.c +++ b/src/modules/abort.c @@ -52,7 +52,6 @@ static inline unsigned int abort_array_len(UT_array *arr) { } static abort_signal_data_t *get_signal_data(ant_value_t obj) { - if (!js_check_native_tag(obj, ABORT_SIGNAL_NATIVE_TAG)) return NULL; return (abort_signal_data_t *)js_get_native(obj, ABORT_SIGNAL_NATIVE_TAG); } diff --git a/src/modules/blob.c b/src/modules/blob.c index d914a57..7cc21a5 100644 --- a/src/modules/blob.c +++ b/src/modules/blob.c @@ -29,7 +29,6 @@ bool blob_is_blob(ant_t *js, ant_value_t obj) { } blob_data_t *blob_get_data(ant_value_t obj) { - if (!js_check_native_tag(obj, BLOB_NATIVE_TAG)) return NULL; return (blob_data_t *)js_get_native(obj, BLOB_NATIVE_TAG); } diff --git a/src/modules/buffer.c b/src/modules/buffer.c index 3967105..c3bd1c0 100644 --- a/src/modules/buffer.c +++ b/src/modules/buffer.c @@ -56,41 +56,34 @@ static void ta_meta_free(void *ptr, size_t size) { ArrayBufferData *buffer_get_arraybuffer_data(ant_value_t value) { if (!is_object_type(value) || buffer_is_dataview(value)) return NULL; - if (js_check_native_tag(value, BUFFER_ARRAYBUFFER_NATIVE_TAG)) - return (ArrayBufferData *)js_get_native(value, BUFFER_ARRAYBUFFER_NATIVE_TAG); - return NULL; + return (ArrayBufferData *)js_get_native(value, BUFFER_ARRAYBUFFER_NATIVE_TAG); } TypedArrayData *buffer_get_typedarray_data(ant_value_t value) { if (vtype(value) == T_TYPEDARRAY) return (TypedArrayData *)js_gettypedarray(value); if (!is_object_type(value)) return NULL; - if (js_check_native_tag(value, BUFFER_TYPEDARRAY_NATIVE_TAG)) - return (TypedArrayData *)js_get_native(value, BUFFER_TYPEDARRAY_NATIVE_TAG); - return NULL; + return (TypedArrayData *)js_get_native(value, BUFFER_TYPEDARRAY_NATIVE_TAG); } DataViewData *buffer_get_dataview_data(ant_value_t value) { if (!is_object_type(value)) return NULL; - if (js_check_native_tag(value, BUFFER_DATAVIEW_NATIVE_TAG)) - return (DataViewData *)js_get_native(value, BUFFER_DATAVIEW_NATIVE_TAG); - return NULL; + return (DataViewData *)js_get_native(value, BUFFER_DATAVIEW_NATIVE_TAG); } static void arraybuffer_finalize(ant_t *js, ant_object_t *obj) { ant_value_t value = js_obj_from_ptr(obj); - if (!js_check_native_tag(value, BUFFER_ARRAYBUFFER_NATIVE_TAG)) return; ArrayBufferData *data = (ArrayBufferData *)js_get_native(value, BUFFER_ARRAYBUFFER_NATIVE_TAG); + if (!data) return; js_clear_native(value, BUFFER_ARRAYBUFFER_NATIVE_TAG); - if (data) free_array_buffer_data(data); + free_array_buffer_data(data); } static void typedarray_finalize(ant_t *js, ant_object_t *obj) { ant_value_t value = js_obj_from_ptr(obj); - if (!js_check_native_tag(value, BUFFER_TYPEDARRAY_NATIVE_TAG)) return; TypedArrayData *ta_data = (TypedArrayData *)js_get_native(value, BUFFER_TYPEDARRAY_NATIVE_TAG); - js_clear_native(value, BUFFER_TYPEDARRAY_NATIVE_TAG); if (!ta_data) return; + js_clear_native(value, BUFFER_TYPEDARRAY_NATIVE_TAG); if (ta_data->buffer) free_array_buffer_data(ta_data->buffer); ta_meta_free(ta_data, sizeof(*ta_data)); @@ -98,10 +91,9 @@ static void typedarray_finalize(ant_t *js, ant_object_t *obj) { static void dataview_finalize(ant_t *js, ant_object_t *obj) { ant_value_t value = js_obj_from_ptr(obj); - if (!js_check_native_tag(value, BUFFER_DATAVIEW_NATIVE_TAG)) return; DataViewData *dv_data = (DataViewData *)js_get_native(value, BUFFER_DATAVIEW_NATIVE_TAG); - js_clear_native(value, BUFFER_DATAVIEW_NATIVE_TAG); if (!dv_data) return; + js_clear_native(value, BUFFER_DATAVIEW_NATIVE_TAG); if (dv_data->buffer) free_array_buffer_data(dv_data->buffer); ta_meta_free(dv_data, sizeof(*dv_data)); diff --git a/src/modules/child_process.c b/src/modules/child_process.c index 6f17b27..42def00 100644 --- a/src/modules/child_process.c +++ b/src/modules/child_process.c @@ -116,12 +116,10 @@ enum { }; static child_process_t *get_child_process(ant_value_t obj) { - if (!js_check_native_tag(obj, CHILD_PROCESS_NATIVE_TAG)) return NULL; return (child_process_t *)js_get_native(obj, CHILD_PROCESS_NATIVE_TAG); } static child_stream_ctx_t *get_child_stream_ctx(ant_value_t obj) { - if (!js_check_native_tag(obj, CHILD_STREAM_NATIVE_TAG)) return NULL; return (child_stream_ctx_t *)js_get_native(obj, CHILD_STREAM_NATIVE_TAG); } static child_process_t *pending_children_tail = NULL; diff --git a/src/modules/collections.c b/src/modules/collections.c index 1e1005f..58427f0 100644 --- a/src/modules/collections.c +++ b/src/modules/collections.c @@ -309,38 +309,32 @@ static ant_value_t weakset_init_from_iterable(ant_t *js, weakset_entry_t **ws_he map_entry_t **get_map_from_obj(ant_value_t obj) { ant_object_t *ptr = js_obj_ptr(obj); if (!ptr || ptr->type_tag != T_MAP) return NULL; - if (!js_check_native_tag(obj, MAP_NATIVE_TAG)) return NULL; return (map_entry_t **)js_get_native(obj, MAP_NATIVE_TAG); } set_entry_t **get_set_from_obj(ant_value_t obj) { ant_object_t *ptr = js_obj_ptr(obj); if (!ptr || ptr->type_tag != T_SET) return NULL; - if (!js_check_native_tag(obj, SET_NATIVE_TAG)) return NULL; return (set_entry_t **)js_get_native(obj, SET_NATIVE_TAG); } static weakmap_entry_t **get_weakmap_from_obj(ant_value_t obj) { ant_object_t *ptr = js_obj_ptr(obj); if (!ptr || ptr->type_tag != T_WEAKMAP) return NULL; - if (!js_check_native_tag(obj, WEAKMAP_NATIVE_TAG)) return NULL; return (weakmap_entry_t **)js_get_native(obj, WEAKMAP_NATIVE_TAG); } static weakset_entry_t **get_weakset_from_obj(ant_value_t obj) { ant_object_t *ptr = js_obj_ptr(obj); if (!ptr || ptr->type_tag != T_WEAKSET) return NULL; - if (!js_check_native_tag(obj, WEAKSET_NATIVE_TAG)) return NULL; return (weakset_entry_t **)js_get_native(obj, WEAKSET_NATIVE_TAG); } map_iterator_state_t *get_map_iter_state(ant_value_t obj) { - if (!js_check_native_tag(obj, MAP_ITER_NATIVE_TAG)) return NULL; return (map_iterator_state_t *)js_get_native(obj, MAP_ITER_NATIVE_TAG); } set_iterator_state_t *get_set_iter_state(ant_value_t obj) { - if (!js_check_native_tag(obj, SET_ITER_NATIVE_TAG)) return NULL; return (set_iterator_state_t *)js_get_native(obj, SET_ITER_NATIVE_TAG); } diff --git a/src/modules/crypto.c b/src/modules/crypto.c index b05e0f9..78f3b8e 100644 --- a/src/modules/crypto.c +++ b/src/modules/crypto.c @@ -222,7 +222,6 @@ static ant_value_t crypto_get_input_bytes( } static ant_hash_state_t *crypto_get_hash_state(ant_value_t value) { - if (!js_check_native_tag(value, CRYPTO_HASH_NATIVE_TAG)) return NULL; ant_hash_state_t *state = (ant_hash_state_t *)js_get_native(value, CRYPTO_HASH_NATIVE_TAG); return (state && state->ctx) ? state : NULL; } diff --git a/src/modules/events.c b/src/modules/events.c index 842f8b3..8755356 100644 --- a/src/modules/events.c +++ b/src/modules/events.c @@ -41,7 +41,6 @@ enum { }; static event_data_t *get_event_data(ant_value_t obj) { - if (!js_check_native_tag(obj, EVENT_NATIVE_TAG)) return NULL; return (event_data_t *)js_get_native(obj, EVENT_NATIVE_TAG); } @@ -155,8 +154,9 @@ static bool evt_key_init(ant_t *js, ant_value_t arg, evt_key_t *out) { } static EventType **get_or_create_emitter_events(ant_t *js, ant_value_t this_obj) { - if (!js_check_native_tag(this_obj, EVENT_EMITTER_NATIVE_TAG)) { - EventType **events = ant_calloc(sizeof(EventType *)); + EventType **events = (EventType **)js_get_native(this_obj, EVENT_EMITTER_NATIVE_TAG); + if (!events) { + events = ant_calloc(sizeof(EventType *)); if (!events) return NULL; *events = NULL; @@ -167,9 +167,8 @@ static EventType **get_or_create_emitter_events(ant_t *js, ant_value_t this_obj) emitter_registry = reg; js_set_native(this_obj, events, EVENT_EMITTER_NATIVE_TAG); - return events; } - return (EventType **)js_get_native(this_obj, EVENT_EMITTER_NATIVE_TAG); + return events; } static EventType *find_or_create_global_event_type(ant_t *js, ant_value_t js_key) { diff --git a/src/modules/fetch.c b/src/modules/fetch.c index b97fea6..1edc69a 100644 --- a/src/modules/fetch.c +++ b/src/modules/fetch.c @@ -657,9 +657,7 @@ static bool fetch_handle_data_url(fetch_request_t *req) { } static ant_value_t fetch_upload_on_reject(ant_t *js, ant_value_t *args, int nargs) { - fetch_request_t *req = js_check_native_tag(js->current_func, FETCH_REQUEST_NATIVE_TAG) - ? (fetch_request_t *)js_get_native(js->current_func, FETCH_REQUEST_NATIVE_TAG) - : NULL; + fetch_request_t *req = (fetch_request_t *)js_get_native(js->current_func, FETCH_REQUEST_NATIVE_TAG); ant_value_t reason = (nargs > 0) ? args[0] : js_mkundef(); if (!req) return js_mkundef(); @@ -677,9 +675,7 @@ static ant_value_t fetch_upload_on_reject(ant_t *js, ant_value_t *args, int narg static void fetch_upload_schedule_next_read(fetch_request_t *req); static ant_value_t fetch_upload_on_read(ant_t *js, ant_value_t *args, int nargs) { - fetch_request_t *req = js_check_native_tag(js->current_func, FETCH_REQUEST_NATIVE_TAG) - ? (fetch_request_t *)js_get_native(js->current_func, FETCH_REQUEST_NATIVE_TAG) - : NULL; + fetch_request_t *req = (fetch_request_t *)js_get_native(js->current_func, FETCH_REQUEST_NATIVE_TAG); ant_value_t result = (nargs > 0) ? args[0] : js_mkundef(); ant_value_t done = 0; @@ -838,9 +834,7 @@ static void fetch_start_http(fetch_request_t *req) { } static ant_value_t fetch_abort_listener(ant_t *js, ant_value_t *args, int nargs) { - fetch_request_t *req = js_check_native_tag(js->current_func, FETCH_REQUEST_NATIVE_TAG) - ? (fetch_request_t *)js_get_native(js->current_func, FETCH_REQUEST_NATIVE_TAG) - : NULL; + fetch_request_t *req = (fetch_request_t *)js_get_native(js->current_func, FETCH_REQUEST_NATIVE_TAG); ant_value_t signal = 0; ant_value_t reason = 0; diff --git a/src/modules/ffi.c b/src/modules/ffi.c index 8d91448..e1384c4 100644 --- a/src/modules/ffi.c +++ b/src/modules/ffi.c @@ -346,22 +346,18 @@ static ffi_marshaled_type_t ffi_infer_variadic_type(ant_value_t value) { } static ffi_library_handle_t *ffi_library_data(ant_value_t value) { - if (!js_check_native_tag(value, FFI_LIBRARY_NATIVE_TAG)) return NULL; return (ffi_library_handle_t *)js_get_native(value, FFI_LIBRARY_NATIVE_TAG); } static ffi_function_handle_t *ffi_function_data(ant_value_t value) { - if (!js_check_native_tag(value, FFI_FUNCTION_NATIVE_TAG)) return NULL; return (ffi_function_handle_t *)js_get_native(value, FFI_FUNCTION_NATIVE_TAG); } static ffi_pointer_handle_t *ffi_pointer_data(ant_value_t value) { - if (!js_check_native_tag(value, FFI_POINTER_NATIVE_TAG)) return NULL; return (ffi_pointer_handle_t *)js_get_native(value, FFI_POINTER_NATIVE_TAG); } static ffi_callback_handle_t *ffi_callback_data(ant_value_t value) { - if (!js_check_native_tag(value, FFI_CALLBACK_NATIVE_TAG)) return NULL; return (ffi_callback_handle_t *)js_get_native(value, FFI_CALLBACK_NATIVE_TAG); } diff --git a/src/modules/formdata.c b/src/modules/formdata.c index 45eb575..96f6301 100644 --- a/src/modules/formdata.c +++ b/src/modules/formdata.c @@ -70,7 +70,6 @@ static void fd_data_free(fd_data_t *d) { } static fd_data_t *get_fd_data(ant_value_t obj) { - if (!js_check_native_tag(obj, FORMDATA_NATIVE_TAG)) return NULL; return (fd_data_t *)js_get_native(obj, FORMDATA_NATIVE_TAG); } @@ -379,10 +378,8 @@ static ant_value_t js_formdata_foreach(ant_t *js, ant_value_t *args, int nargs) } static ant_value_t formdata_iter_next(ant_t *js, ant_value_t *args, int nargs) { - if (!js_check_native_tag(js->this_val, FORMDATA_ITER_NATIVE_TAG)) - return js_iter_result(js, false, js_mkundef()); - fd_iter_t *st = (fd_iter_t *)js_get_native(js->this_val, FORMDATA_ITER_NATIVE_TAG); + if (!st) return js_iter_result(js, false, js_mkundef()); ant_value_t fd_obj = js_get_slot(js->this_val, SLOT_DATA); fd_data_t *d = get_fd_data(fd_obj); if (!d) return js_iter_result(js, false, js_mkundef()); diff --git a/src/modules/fs.c b/src/modules/fs.c index 6e7a661..e4e3a51 100644 --- a/src/modules/fs.c +++ b/src/modules/fs.c @@ -157,7 +157,6 @@ enum { }; static fs_watcher_t *fs_watcher_data(ant_value_t value) { - if (!js_check_native_tag(value, FS_WATCHER_NATIVE_TAG)) return NULL; return (fs_watcher_t *)js_get_native(value, FS_WATCHER_NATIVE_TAG); } diff --git a/src/modules/generator.c b/src/modules/generator.c index c583092..84a789f 100644 --- a/src/modules/generator.c +++ b/src/modules/generator.c @@ -51,7 +51,6 @@ static ant_value_t generator_result(ant_t *js, bool done, ant_value_t value) { } static generator_data_t *generator_data(ant_value_t gen) { - if (!js_check_native_tag(gen, GENERATOR_NATIVE_TAG)) return NULL; return (generator_data_t *)js_get_native(gen, GENERATOR_NATIVE_TAG); } diff --git a/src/modules/headers.c b/src/modules/headers.c index 853b40a..2ec15a7 100644 --- a/src/modules/headers.c +++ b/src/modules/headers.c @@ -70,7 +70,6 @@ static void list_free(hdr_list_t *l) { } static hdr_list_t *get_list(ant_value_t obj) { - if (!js_check_native_tag(obj, HEADERS_NATIVE_TAG)) return NULL; return (hdr_list_t *)js_get_native(obj, HEADERS_NATIVE_TAG); } @@ -479,8 +478,8 @@ static ant_value_t init_from_record(ant_t *js, hdr_list_t *l, ant_value_t obj) { } bool advance_headers(ant_t *js, js_iter_t *it, ant_value_t *out) { - if (!js_check_native_tag(it->iterator, HEADERS_ITER_NATIVE_TAG)) return false; hdr_iter_t *st = (hdr_iter_t *)js_get_native(it->iterator, HEADERS_ITER_NATIVE_TAG); + if (!st) return false; size_t count = 0; sorted_pair_t *view = build_sorted_view(st->list, &count); diff --git a/src/modules/iterator.c b/src/modules/iterator.c index 92c493c..5e5daa9 100644 --- a/src/modules/iterator.c +++ b/src/modules/iterator.c @@ -890,7 +890,6 @@ static void async_terminal_state_finalize(ant_t *js, ant_object_t *obj) { } static inline async_terminal_state_t *async_terminal_state(ant_value_t state) { - if (!js_check_native_tag(state, ASYNC_TERMINAL_STATE_TAG)) return NULL; return (async_terminal_state_t *)js_get_native(state, ASYNC_TERMINAL_STATE_TAG); } diff --git a/src/modules/napi.c b/src/modules/napi.c index b5a038e..ef13677 100644 --- a/src/modules/napi.c +++ b/src/modules/napi.c @@ -481,8 +481,6 @@ static int napi_desc_flags(napi_property_attributes attributes) { static ant_value_t napi_callback_trampoline(ant_t *js, ant_value_t *args, int nargs) { ant_value_t current = js_getcurrentfunc(js); - if (!js_check_native_tag(current, NAPI_CALLBACK_NATIVE_TAG)) return js_mkundef(); - napi_callback_binding_t *binding = (napi_callback_binding_t *)js_get_native(current, NAPI_CALLBACK_NATIVE_TAG); if (!binding || !binding->cb) return js_mkundef(); diff --git a/src/modules/net.c b/src/modules/net.c index 3186841..590eff1 100644 --- a/src/modules/net.c +++ b/src/modules/net.c @@ -101,12 +101,10 @@ enum { static ant_value_t net_not_implemented(ant_t *js, const char *what); static net_server_t *net_server_data(ant_value_t value) { - if (!js_check_native_tag(value, NET_SERVER_NATIVE_TAG)) return NULL; return (net_server_t *)js_get_native(value, NET_SERVER_NATIVE_TAG); } static net_socket_t *net_socket_data(ant_value_t value) { - if (!js_check_native_tag(value, NET_SOCKET_NATIVE_TAG)) return NULL; return (net_socket_t *)js_get_native(value, NET_SOCKET_NATIVE_TAG); } diff --git a/src/modules/request.c b/src/modules/request.c index b58d666..c8407ed 100644 --- a/src/modules/request.c +++ b/src/modules/request.c @@ -31,7 +31,6 @@ ant_value_t g_request_proto = 0; enum { REQUEST_NATIVE_TAG = 0x52455153u }; // REQS static request_data_t *get_data(ant_value_t obj) { - if (!js_check_native_tag(obj, REQUEST_NATIVE_TAG)) return NULL; return (request_data_t *)js_get_native(obj, REQUEST_NATIVE_TAG); } diff --git a/src/modules/response.c b/src/modules/response.c index bd90651..7ac54e2 100644 --- a/src/modules/response.c +++ b/src/modules/response.c @@ -31,7 +31,6 @@ ant_value_t g_response_proto = 0; enum { RESPONSE_NATIVE_TAG = 0x52455350u }; // RESP static response_data_t *get_data(ant_value_t obj) { - if (!js_check_native_tag(obj, RESPONSE_NATIVE_TAG)) return NULL; return (response_data_t *)js_get_native(obj, RESPONSE_NATIVE_TAG); } diff --git a/src/modules/string_decoder.c b/src/modules/string_decoder.c index 3d1fa70..3a2e577 100644 --- a/src/modules/string_decoder.c +++ b/src/modules/string_decoder.c @@ -34,7 +34,6 @@ static ant_value_t g_string_decoder_proto = 0; enum { STRING_DECODER_NATIVE_TAG = 0x53444543u }; // SDEC static sd_state_t *sd_get_state(ant_value_t obj) { - if (!js_check_native_tag(obj, STRING_DECODER_NATIVE_TAG)) return NULL; return (sd_state_t *)js_get_native(obj, STRING_DECODER_NATIVE_TAG); } diff --git a/src/modules/textcodec.c b/src/modules/textcodec.c index 89229b5..aaca43e 100644 --- a/src/modules/textcodec.c +++ b/src/modules/textcodec.c @@ -29,7 +29,6 @@ td_state_t *td_state_new(td_encoding_t enc, bool fatal, bool ignore_bom) { } static td_state_t *td_get_state(ant_value_t obj) { - if (!js_check_native_tag(obj, TEXT_DECODER_NATIVE_TAG)) return NULL; return (td_state_t *)js_get_native(obj, TEXT_DECODER_NATIVE_TAG); } diff --git a/src/modules/tls.c b/src/modules/tls.c index 9330923..3c047f2 100644 --- a/src/modules/tls.c +++ b/src/modules/tls.c @@ -40,7 +40,6 @@ static void tls_context_free(ant_tls_context_wrap_t *wrap) { } static ant_tls_context_wrap_t *tls_context_data(ant_value_t value) { - if (!js_check_native_tag(value, TLS_CONTEXT_NATIVE_TAG)) return NULL; return (ant_tls_context_wrap_t *)js_get_native(value, TLS_CONTEXT_NATIVE_TAG); } diff --git a/src/modules/url.c b/src/modules/url.c index 30eed97..8c10a65 100644 --- a/src/modules/url.c +++ b/src/modules/url.c @@ -30,7 +30,6 @@ enum { }; url_state_t *url_get_state(ant_value_t obj) { - if (!js_check_native_tag(obj, URL_NATIVE_TAG)) return NULL; return (url_state_t *)js_get_native(obj, URL_NATIVE_TAG); } diff --git a/src/modules/wasi.c b/src/modules/wasi.c index ed5443b..0016b53 100644 --- a/src/modules/wasi.c +++ b/src/modules/wasi.c @@ -222,9 +222,8 @@ static ant_value_t wasi_handle_proc_exit(wasm_module_inst_t inst) { } static ant_value_t wasi_exported_func_call(ant_t *js, ant_value_t *args, int nargs) { - if (!js_check_native_tag(js->current_func, WASI_FUNC_TAG)) - return js_mkerr(js, "Invalid WASI function"); wasi_func_env_t *env = (wasi_func_env_t *)js_get_native(js->current_func, WASI_FUNC_TAG); + if (!env) return js_mkerr(js, "Invalid WASI function"); uint32_t param_count = wasm_func_get_param_count(env->func, env->inst); uint32_t result_count = wasm_func_get_result_count(env->func, env->inst); diff --git a/src/modules/wasm.c b/src/modules/wasm.c index 8a41288..8fb2e77 100644 --- a/src/modules/wasm.c +++ b/src/modules/wasm.c @@ -178,13 +178,11 @@ static wasm_valkind_t wasm_valkind_from_string(const char *name, size_t len, boo static wasm_module_handle_t *wasm_module_handle(ant_value_t value) { if (!js_check_brand(value, BRAND_WASM_MODULE)) return NULL; - if (!js_check_native_tag(value, WASM_MODULE_NATIVE_TAG)) return NULL; return (wasm_module_handle_t *)js_get_native(value, WASM_MODULE_NATIVE_TAG); } static wasm_instance_handle_t *wasm_instance_handle(ant_value_t value) { if (!js_check_brand(value, BRAND_WASM_INSTANCE)) return NULL; - if (!js_check_native_tag(value, WASM_INSTANCE_NATIVE_TAG)) return NULL; return (wasm_instance_handle_t *)js_get_native(value, WASM_INSTANCE_NATIVE_TAG); } @@ -195,7 +193,6 @@ static wasm_extern_handle_t *wasm_extern_handle(ant_value_t value, wasm_extern_w return NULL; } - if (!js_check_native_tag(value, WASM_EXTERN_NATIVE_TAG)) return NULL; wasm_extern_handle_t *handle = (wasm_extern_handle_t *)js_get_native(value, WASM_EXTERN_NATIVE_TAG); return handle && handle->kind == kind ? handle : NULL; } @@ -323,8 +320,7 @@ static bool js_value_to_wasm(ant_t *js, ant_value_t value, wasm_valkind_t kind, } if (!is_callable(value)) return false; state = js_get_slot(value, SLOT_DATA); - if (!is_object_type(state) || !js_check_native_tag(state, WASM_FUNC_STATE_TAG)) - return false; + if (!is_object_type(state)) return false; handle = (wasm_func_handle_t *)js_get_native(state, WASM_FUNC_STATE_TAG); if (!handle || !handle->func) return false; out->of.ref = wasm_func_as_ref(handle->func); @@ -459,10 +455,9 @@ static ant_value_t js_wasm_exported_func_call(ant_t *js, ant_value_t *args, int wasm_func_handle_t *handle; wasm_func_t *func; - if (!is_object_type(state) || !js_check_native_tag(state, WASM_FUNC_STATE_TAG)) - return js_mkerr(js, "Invalid WebAssembly function"); - - handle = (wasm_func_handle_t *)js_get_native(state, WASM_FUNC_STATE_TAG); + handle = is_object_type(state) + ? (wasm_func_handle_t *)js_get_native(state, WASM_FUNC_STATE_TAG) + : NULL; func = handle ? handle->func : NULL; if (!func) return js_mkerr(js, "Invalid WebAssembly function"); @@ -1212,10 +1207,9 @@ static ant_value_t js_wasm_table_set(ant_t *js, ant_value_t *args, int nargs) { return js_mkerr_typed(js, JS_ERR_TYPE, "WebAssembly.Table.set expects a WebAssembly function or null"); state = js_get_slot(args[1], SLOT_DATA); - if (!is_object_type(state) || !js_check_native_tag(state, WASM_FUNC_STATE_TAG)) - return js_mkerr_typed(js, JS_ERR_TYPE, "WebAssembly.Table.set expects a WebAssembly function or null"); - - func_handle = (wasm_func_handle_t *)js_get_native(state, WASM_FUNC_STATE_TAG); + func_handle = is_object_type(state) + ? (wasm_func_handle_t *)js_get_native(state, WASM_FUNC_STATE_TAG) + : NULL; if (!func_handle || !func_handle->func) return js_mkerr_typed(js, JS_ERR_TYPE, "WebAssembly.Table.set expects a WebAssembly function or null"); diff --git a/src/modules/worker_threads.c b/src/modules/worker_threads.c index b15c037..b3e8e0d 100644 --- a/src/modules/worker_threads.c +++ b/src/modules/worker_threads.c @@ -93,7 +93,6 @@ static void wt_init_env_store(ant_t *js, bool is_worker) { static ant_worker_thread_t *wt_get_worker(ant_t *js, ant_value_t this_obj) { if (!is_object_type(this_obj)) return NULL; - if (!js_check_native_tag(this_obj, WORKER_NATIVE_TAG)) return NULL; return (ant_worker_thread_t *)js_get_native(this_obj, WORKER_NATIVE_TAG); } diff --git a/src/modules/zlib.c b/src/modules/zlib.c index 6d738f8..cf2d5de 100644 --- a/src/modules/zlib.c +++ b/src/modules/zlib.c @@ -75,7 +75,6 @@ static ant_value_t pick_callback(ant_value_t *args, int nargs) { } static zlib_stream_t *zlib_stream_ptr(ant_value_t obj) { - if (!js_check_native_tag(obj, ZLIB_STREAM_TAG)) return NULL; return (zlib_stream_t *)js_get_native(obj, ZLIB_STREAM_TAG); } diff --git a/src/streams/codec.c b/src/streams/codec.c index 3e083dc..55b44fe 100644 --- a/src/streams/codec.c +++ b/src/streams/codec.c @@ -84,9 +84,7 @@ static ant_value_t codec_flush_controller(ant_value_t *args, int nargs) { } static ant_value_t tes_transform(ant_t *js, ant_value_t *args, int nargs) { - tes_state_t *st = js_check_native_tag(js->current_func, TES_NATIVE_TAG) - ? (tes_state_t *)js_get_native(js->current_func, TES_NATIVE_TAG) - : NULL; + tes_state_t *st = (tes_state_t *)js_get_native(js->current_func, TES_NATIVE_TAG); if (!st) return js_mkerr_typed(js, JS_ERR_TYPE, "Invalid TextEncoderStream"); ant_value_t ctrl_obj = codec_transform_controller(args, nargs); @@ -171,9 +169,7 @@ static ant_value_t tes_transform(ant_t *js, ant_value_t *args, int nargs) { } static ant_value_t tes_flush(ant_t *js, ant_value_t *args, int nargs) { - tes_state_t *st = js_check_native_tag(js->current_func, TES_NATIVE_TAG) - ? (tes_state_t *)js_get_native(js->current_func, TES_NATIVE_TAG) - : NULL; + tes_state_t *st = (tes_state_t *)js_get_native(js->current_func, TES_NATIVE_TAG); if (!st) return js_mkerr_typed(js, JS_ERR_TYPE, "Invalid TextEncoderStream"); ant_value_t ctrl_obj = codec_flush_controller(args, nargs); @@ -247,9 +243,7 @@ static ant_value_t js_tes_ctor(ant_t *js, ant_value_t *args, int nargs) { } static ant_value_t tds_transform(ant_t *js, ant_value_t *args, int nargs) { - td_state_t *st = js_check_native_tag(js->current_func, TDS_NATIVE_TAG) - ? (td_state_t *)js_get_native(js->current_func, TDS_NATIVE_TAG) - : NULL; + td_state_t *st = (td_state_t *)js_get_native(js->current_func, TDS_NATIVE_TAG); if (!st) return js_mkerr_typed(js, JS_ERR_TYPE, "Invalid TextDecoderStream"); ant_value_t ctrl_obj = codec_transform_controller(args, nargs); @@ -276,9 +270,7 @@ static ant_value_t tds_transform(ant_t *js, ant_value_t *args, int nargs) { } static ant_value_t tds_flush(ant_t *js, ant_value_t *args, int nargs) { - td_state_t *st = js_check_native_tag(js->current_func, TDS_NATIVE_TAG) - ? (td_state_t *)js_get_native(js->current_func, TDS_NATIVE_TAG) - : NULL; + td_state_t *st = (td_state_t *)js_get_native(js->current_func, TDS_NATIVE_TAG); if (!st) return js_mkerr_typed(js, JS_ERR_TYPE, "Invalid TextDecoderStream"); ant_value_t ctrl_obj = codec_flush_controller(args, nargs); diff --git a/src/streams/compression.c b/src/streams/compression.c index 5445903..aa7147a 100644 --- a/src/streams/compression.c +++ b/src/streams/compression.c @@ -106,10 +106,13 @@ static void zstate_inflate_finalize(ant_t *js, ant_object_t *obj) { static void brotli_state_finalize(ant_t *js, ant_object_t *obj) { ant_value_t value = js_obj_from_ptr(obj); - uint32_t tag = js_check_native_tag(value, CS_BROTLI_NATIVE_TAG) - ? CS_BROTLI_NATIVE_TAG - : DS_BROTLI_NATIVE_TAG; + uint32_t tag = CS_BROTLI_NATIVE_TAG; brotli_stream_state_t *st = (brotli_stream_state_t *)js_get_native(value, tag); + if (!st) { + tag = DS_BROTLI_NATIVE_TAG; + st = (brotli_stream_state_t *)js_get_native(value, tag); + } + if (!st) return; brotli_stream_state_destroy(st); js_clear_native(value, tag); } diff --git a/src/streams/pipes.c b/src/streams/pipes.c index 6512282..40b43b4 100644 --- a/src/streams/pipes.c +++ b/src/streams/pipes.c @@ -58,7 +58,6 @@ static void pipe_state_finalize(ant_t *js, ant_object_t *obj) { } static pipe_state_t *pipe_get_state(ant_value_t state) { - if (!js_check_native_tag(state, PIPE_STATE_NATIVE_TAG)) return NULL; return (pipe_state_t *)js_get_native(state, PIPE_STATE_NATIVE_TAG); } @@ -494,7 +493,6 @@ static void tee_state_finalize(ant_t *js, ant_object_t *obj) { } static tee_state_t *tee_get_state(ant_value_t state) { - if (!js_check_native_tag(state, TEE_STATE_NATIVE_TAG)) return NULL; return (tee_state_t *)js_get_native(state, TEE_STATE_NATIVE_TAG); } diff --git a/src/streams/readable.c b/src/streams/readable.c index f9cb48a..d50a9a4 100644 --- a/src/streams/readable.c +++ b/src/streams/readable.c @@ -50,12 +50,10 @@ bool rs_stream_unusable(ant_value_t stream_obj) { } rs_stream_t *rs_get_stream(ant_value_t obj) { - if (!js_check_native_tag(obj, RS_STREAM_NATIVE_TAG)) return NULL; return (rs_stream_t *)js_get_native(obj, RS_STREAM_NATIVE_TAG); } rs_controller_t *rs_get_controller(ant_value_t obj) { - if (!js_check_native_tag(obj, RS_CONTROLLER_NATIVE_TAG)) return NULL; return (rs_controller_t *)js_get_native(obj, RS_CONTROLLER_NATIVE_TAG); } diff --git a/src/streams/writable.c b/src/streams/writable.c index 4996d34..50b506b 100644 --- a/src/streams/writable.c +++ b/src/streams/writable.c @@ -38,12 +38,10 @@ bool ws_is_controller(ant_value_t obj) { } ws_stream_t *ws_get_stream(ant_value_t obj) { - if (!js_check_native_tag(obj, WS_STREAM_NATIVE_TAG)) return NULL; return (ws_stream_t *)js_get_native(obj, WS_STREAM_NATIVE_TAG); } ws_controller_t *ws_get_controller(ant_value_t obj) { - if (!js_check_native_tag(obj, WS_CONTROLLER_NATIVE_TAG)) return NULL; return (ws_controller_t *)js_get_native(obj, WS_CONTROLLER_NATIVE_TAG); }