http://www.angelcode.com/angelscript/sdk/docs/manual/doc_datatypes_arrays.html
It doesn't document that for find and findByRef "-1" means "not found".
Also using signed int's -1 is quite a bad kludge because it means you sacrifice 50% of the value range for a single option.
Also since the array uses uint length it won't be able to return anything above signed int's max value.
A better solution is to use uint max value (in C++ it can be represented by uint -1). This way there's 1 value to 1 option match up, there's no performance trade-off, and it's possible to address all indexes - 1.