File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change @@ -495,6 +495,44 @@ int value_truthiness(Value v) {
495495 return 1 ; // Functions are always truthy
496496 case VAL_THR :
497497 return value_thr_is_running (v );
498+ case VAL_TNS : {
499+ Tensor * t = v .as .tns ;
500+ if (!t || t -> length == 0 ) return 0 ;
501+ for (size_t i = 0 ; i < t -> length ; i ++ ) {
502+ Value e = t -> data [i ];
503+ switch (e .type ) {
504+ case VAL_INT :
505+ if (e .as .i != 0 ) return 1 ;
506+ break ;
507+ case VAL_FLT :
508+ if (e .as .f != 0.0 ) return 1 ;
509+ break ;
510+ case VAL_STR :
511+ if (e .as .s && e .as .s [0 ] != '\0' ) return 1 ;
512+ break ;
513+ case VAL_FUNC :
514+ return 1 ;
515+ case VAL_THR :
516+ if (value_thr_is_running (e )) return 1 ;
517+ break ;
518+ case VAL_TNS :
519+ if (value_truthiness (e )) return 1 ;
520+ break ;
521+ case VAL_MAP : {
522+ struct Map * m = e .as .map ;
523+ if (m ) {
524+ for (size_t j = 0 ; j < m -> count ; j ++ ) {
525+ if (value_truthiness (m -> items [j ].value )) return 1 ;
526+ }
527+ }
528+ break ;
529+ }
530+ default :
531+ break ;
532+ }
533+ }
534+ return 0 ;
535+ }
498536 default :
499537 return 0 ;
500538 }
You can’t perform that action at this time.
0 commit comments