#PUSH !q
#DTYPE Q$ !1 // get the property type in q
#IF (!q=-1) // undefined type error
#ERROR DFERR_COMP_INVALID_DATATYPE (!1)
#ELSE
#IFADIM !2
ARRAY$PROPERTY !1 !2 !3 !4 !5 !6 !7 !8 !9
#ELSE
SCALAR$PROPERTY !1 !2 !3 !4 !5 !6 !7 !8 !9
#ENDIF
#ENDIF
#POP Q$