Files
Yukihiro "Matz" Matsumoto d0892f1ba9 mruby-catch: add comprehensive call-seq documentation and helper function comments
Added complete call-seq documentation for catch/throw functionality across
both Ruby and C implementations:

- Class documentation: explains exception raised for unmatched throws
- initialize: constructor with tag and value parameters, creates error
  message with proper tag inspection and stores thrown values for debugging

- throw: transfers control to matching catch block with optional return value,
  raises UncaughtThrowError if no matching catch found, supports both
  single tag and tag+value forms with comprehensive usage examples

- find_catcher: searches call stack for matching catch block by comparing
  tags using mrb_obj_eq, returns call stack index or 0 if not found

- catch_syms: pre-defined symbols (Object, new, call) used by catch bytecode
  implementation for efficient symbol lookup

- catch_iseq: bytecode instruction sequence implementing catch method logic,
  handles default tag creation (Object.new) and block parameter passing

- catch_irep: instruction representation containing bytecode metadata
  for catch method execution

- catch_proc: procedure object used to identify catch blocks in call stack
  during throw operations, marked with proper GC and scope flags

- mrb_mruby_catch_gem_init: defines catch and throw as private methods
  in Kernel module, initializes symbols and sets up bytecode procedure

- mrb_mruby_catch_gem_final: cleanup function (currently no-op as
  implementation uses static data structures)

Co-authored-by: Atlassian Rovo Dev
2025-08-14 10:52:47 +09:00
..