mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
vm.c: allow String subclasses to override []; ref #6675
Apply the same pattern as the Array/Hash fix: the OP_GETIDX optimization now only applies to instances of the String class itself. Subclasses fall back to method dispatch, allowing them to override the [] method. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1901,6 +1901,8 @@ RETRY_TRY_BLOCK:
|
||||
regs[a] = va;
|
||||
break;
|
||||
case MRB_TT_STRING:
|
||||
/* optimize only for String class; subclasses may override [] */
|
||||
if (mrb_obj_class(mrb, va) != mrb->string_class) goto getidx_fallback;
|
||||
switch (mrb_type(vb)) {
|
||||
case MRB_TT_INTEGER:
|
||||
case MRB_TT_STRING:
|
||||
|
||||
Reference in New Issue
Block a user