Until an in engine solution is created. I have another suggestion.
Use and Array, but not the Array fields. An Array is considered a global object. An Array can have variables. There can be more than one Array. So let me write a psuedo example of what you can do.
This is your array object. It has the name Colour
Colour // this is your array object
var fnPickColour = "colourPickColour"
var fnGetColour = "colourGetColour"
var fnFoo = "colourfoo"
this is the sample OnFunction Calls. Ie the function event. Instead of writing out a string. Instead you reference a variable.
OnFunction(Colour.fnPickColour)
OnFunction(Colour.fnGetColour)
OnFunction(Colour.fnFoo)
When calling the function. as you can see now. Your not writing a string.
Function.Call(ColourFn.fnFoo)
Best of all if you
Function.Call(Colour.fn)
a drop down list of the variables stored in the arry(with the array function expression). By putting somekind of camel hump notation after the period similar to fn(FuNction) the dropdown list will sort out.
It's not perfect, but it does work. Also it also requires the developer to create the functions prior to there use.