@@ -786,8 +786,7 @@ bool MCScriptCallHandlerOfInstance(MCScriptInstanceRef self, MCNameRef p_handler
786786bool MCScriptCallHandlerOfInstanceIfFound (MCScriptInstanceRef self, MCNameRef p_handler, MCValueRef *p_arguments, uindex_t p_argument_count, MCValueRef& r_value)
787787{
788788 __MCScriptValidateObjectAndKind__ (self, kMCScriptObjectKindInstance );
789-
790- // Lookup the definition (throws if not found).
789+
791790 MCScriptHandlerDefinition *t_definition;
792791 if (!MCScriptLookupHandlerDefinitionInModule (self -> module , p_handler, t_definition))
793792 {
@@ -798,6 +797,20 @@ bool MCScriptCallHandlerOfInstanceIfFound(MCScriptInstanceRef self, MCNameRef p_
798797 return MCScriptCallHandlerOfInstanceDirect (self, t_definition, p_arguments, p_argument_count, r_value);
799798}
800799
800+ bool MCScriptCopyHandlerOfInstance (MCScriptInstanceRef self, MCNameRef p_name, MCHandlerRef& r_handler)
801+ {
802+ __MCScriptValidateObjectAndKind__ (self, kMCScriptObjectKindInstance );
803+
804+ // Lookup the definition (throws if not found).
805+ MCScriptHandlerDefinition *t_definition;
806+ if (!MCScriptLookupHandlerDefinitionInModule (self -> module , p_name, t_definition))
807+ {
808+ return MCScriptThrowHandlerNotFoundError (self -> module , p_name);
809+ }
810+
811+ return MCScriptEvaluateHandlerOfInstanceInternal (self, t_definition, r_handler);
812+ }
813+
801814// //////////////////////////////////////////////////////////////////////////////
802815
803816struct MCScriptFrameContext
0 commit comments