static njs_arr_t *njs_vm_expression_completions(njs_vm_t *vm,
njs_str_t *expression);
static njs_arr_t *njs_vm_global_var_completions(njs_vm_t *vm,
- njs_str_t *expression);
+ njs_str_t *expression);
static njs_arr_t *njs_object_completions(njs_vm_t *vm, njs_value_t *object,
njs_str_t *expression);
static njs_int_t njs_env_hash_init(njs_vm_t *vm, njs_lvlhsh_t *hash,
njs_inline NJS_NOSANITIZE("float-cast-overflow") int64_t
njs_unsafe_cast_double_to_int64(double num)
{
- /*
- * Casting NaN to integer is undefined behavior,
- * but it is fine in some cases where we do additional checks later.
- * For example:
- * int64_t i64 = njs_unsafe_cast_double_to_int64(num);
- * if (i64 == num) {
- * // num is integer
- * }
- *
- * We do this as inline function to avoid UndefinedBehaviorSanitizer
- * warnings.
- */
- return (int64_t) num;
+ /*
+ * Casting NaN to integer is undefined behavior,
+ * but it is fine in some cases where we do additional checks later.
+ * For example:
+ * int64_t i64 = njs_unsafe_cast_double_to_int64(num);
+ * if (i64 == num) {
+ * // num is integer
+ * }
+ *
+ * We do this as inline function to avoid UndefinedBehaviorSanitizer
+ * warnings.
+ */
+ return (int64_t) num;
}