diff --git a/native/src/lib.rs b/native/src/lib.rs index 0151da2f5..ccb286e6d 100644 --- a/native/src/lib.rs +++ b/native/src/lib.rs @@ -209,10 +209,10 @@ fn get_parameter(cx: &mut CallContext, param: &Handle) -> NeonR } fn process_query(cx: &mut CallContext, js_query: Handle, request: Handle) -> NeonResult<(HashMap>, MatchingRuleCategory, HashMap)> { + let mut map = hashmap!{}; + let mut rules = MatchingRuleCategory::empty("query"); + let mut generators = hashmap!{}; if let Ok(query_map) = js_query.downcast::() { - let mut map = hashmap!{}; - let mut rules = MatchingRuleCategory::empty("query"); - let mut generators = hashmap!{}; let props = query_map.get_own_property_names(cx)?; for prop in props.to_vec(cx).unwrap() { let prop_name = prop.downcast::().unwrap().value(); @@ -243,6 +243,8 @@ fn process_query(cx: &mut CallContext, js_query: Handle, reques } } Ok((map, rules, generators)) + } else if js_query.is_a::() || js_query.is_a::() { + Ok((map, rules, generators)) } else { cx.throw_type_error(format!("Query parameters must be a map of key/values")) }