c
#define SAFE_FUNCTION_ASSERT(func_obj) \
  do { \
    if ((func_obj) == NULL || ecma_is_lexical_environment (func_obj)) { \
      return ecma_raise_type_error (ECMA_ERR_INVALID_FUNCTION_OBJECT); \
    } \
    JERRY_ASSERT ((func_obj) != NULL && !ecma_is_lexical_environment (func_obj)); \
  } while (0)

// In the main function:
SAFE_FUNCTION_ASSERT(func_obj_p);
