summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/mruby.h6
-rw-r--r--include/mruby/compile.h2
-rw-r--r--mrbgems/mruby-bin-debugger/bintest/print.rb4
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c2
-rw-r--r--mrbgems/mruby-compiler/core/parse.y1
-rw-r--r--mrbgems/mruby-enum-lazy/mrblib/lazy.rb2
-rw-r--r--mrbgems/mruby-enumerator/mrblib/enumerator.rb2
-rw-r--r--mrbgems/mruby-fiber/src/fiber.c1
-rw-r--r--mrbgems/mruby-object-ext/src/object.c3
-rw-r--r--mrbgems/mruby-sprintf/src/sprintf.c78
-rw-r--r--mrbgems/mruby-sprintf/test/sprintf.rb2
-rw-r--r--mrbgems/mruby-string-ext/src/string.c20
-rw-r--r--mrbgems/mruby-struct/src/struct.c1
-rw-r--r--mrblib/10error.rb4
-rw-r--r--mrblib/string.rb2
-rw-r--r--src/array.c2
-rw-r--r--src/class.c4
-rw-r--r--src/gc.c2
-rw-r--r--src/kernel.c4
-rw-r--r--src/vm.c18
-rw-r--r--tasks/toolchains/android.rake2
-rw-r--r--test/assert.rb8
-rw-r--r--test/t/kernel.rb4
-rw-r--r--test/t/superclass.rb3
24 files changed, 92 insertions, 85 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 995e1a743..9ffe37a2e 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -1186,8 +1186,8 @@ MRB_API mrb_value mrb_format(mrb_state *mrb, const char *format, ...);
static inline void*
mrbmemcpy(void *dst, const void *src, size_t n)
{
- char *d = dst;
- const char *s = src;
+ char *d = (char*)dst;
+ const char *s = (const char*)src;
while (n--)
*d++ = *s++;
return d;
@@ -1197,7 +1197,7 @@ mrbmemcpy(void *dst, const void *src, size_t n)
static inline void*
mrbmemset(void *s, int c, size_t n)
{
- char *t = s;
+ char *t = (char*)s;
while (n--)
*t++ = c;
return s;
diff --git a/include/mruby/compile.h b/include/mruby/compile.h
index ad3f19db1..13e04d0fc 100644
--- a/include/mruby/compile.h
+++ b/include/mruby/compile.h
@@ -33,6 +33,8 @@ typedef struct mrbc_context {
mrb_bool no_exec:1;
mrb_bool keep_lv:1;
mrb_bool no_optimize:1;
+
+ size_t parser_nerr;
} mrbc_context;
MRB_API mrbc_context* mrbc_context_new(mrb_state *mrb);
diff --git a/mrbgems/mruby-bin-debugger/bintest/print.rb b/mrbgems/mruby-bin-debugger/bintest/print.rb
index 403ada8e1..1bc96c478 100644
--- a/mrbgems/mruby-bin-debugger/bintest/print.rb
+++ b/mrbgems/mruby-bin-debugger/bintest/print.rb
@@ -341,8 +341,8 @@ assert('mruby-bin-debugger(print) Literal:Numeric') do
tc << {:cmd=>"p +0100", :exp=>'$3 = 64'}
tc << {:cmd=>"p 0x100", :exp=>'$4 = 256'}
tc << {:cmd=>"p 1_234", :exp=>'$5 = 1234'}
- tc << {:cmd=>"p 0b1000_0000", :exp=>"$6 = #{0b1000_0000.to_s}"}
- tc << {:cmd=>"p 0x1000_0000", :exp=>"$7 = #{0x1000_0000.to_s}"}
+ tc << {:cmd=>"p 0b1000_0000", :exp=>"$6 = #{0b1000_0000}"}
+ tc << {:cmd=>"p 0x1000_0000", :exp=>"$7 = #{0x1000_0000}"}
tc << {:cmd=>"p 3.14", :exp=>'$8 = 3.14'}
tc << {:cmd=>"p -12.3", :exp=>'$9 = -12.3'}
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index daf6100a3..3094ead69 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -2948,7 +2948,7 @@ loop_break(codegen_scope *s, node *tree)
genop_peep(s, MKOP_A(OP_POPERR, 1), NOVAL);
loop = loop->prev;
}
- while (loop && loop->type == LOOP_RESCUE) {
+ while (loop && (loop->type == LOOP_RESCUE || loop->type == LOOP_BEGIN)) {
loop = loop->prev;
}
if (!loop) {
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index 1266bb8f5..76f1ceb2b 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -5777,6 +5777,7 @@ mrb_load_exec(mrb_state *mrb, struct mrb_parser_state *p, mrbc_context *c)
return mrb_undef_value();
}
if (!p->tree || p->nerr) {
+ c->parser_nerr = p->nerr;
if (p->capture_errors) {
char buf[256];
int n;
diff --git a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
index b650072e2..8a7ac7fdc 100644
--- a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
+++ b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb
@@ -69,7 +69,7 @@ class Enumerator
def reject(&block)
Lazy.new(self){|yielder, val|
- if not block.call(val)
+ unless block.call(val)
yielder << val
end
}
diff --git a/mrbgems/mruby-enumerator/mrblib/enumerator.rb b/mrbgems/mruby-enumerator/mrblib/enumerator.rb
index c7b78be5c..a60f19aaf 100644
--- a/mrbgems/mruby-enumerator/mrblib/enumerator.rb
+++ b/mrbgems/mruby-enumerator/mrblib/enumerator.rb
@@ -612,7 +612,7 @@ module Kernel
def to_enum(meth=:each, *args)
Enumerator.new self, meth, *args
end
- alias :enum_for :to_enum
+ alias enum_for to_enum
end
module Enumerable
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c
index 8a6146dbe..0a6d92f67 100644
--- a/mrbgems/mruby-fiber/src/fiber.c
+++ b/mrbgems/mruby-fiber/src/fiber.c
@@ -125,6 +125,7 @@ fiber_init(mrb_state *mrb, mrb_value self)
ci = c->ci;
ci->target_class = p->target_class;
ci->proc = p;
+ mrb_field_write_barrier(mrb, (struct RBasic*)mrb_obj_ptr(self), (struct RBasic*)p);
ci->pc = p->body.irep->iseq;
ci->nregs = p->body.irep->nregs;
ci[1] = ci[0];
diff --git a/mrbgems/mruby-object-ext/src/object.c b/mrbgems/mruby-object-ext/src/object.c
index c6caf935f..35a07b584 100644
--- a/mrbgems/mruby-object-ext/src/object.c
+++ b/mrbgems/mruby-object-ext/src/object.c
@@ -67,7 +67,6 @@ mrb_obj_instance_exec(mrb_state *mrb, mrb_value self)
mrb_int argc;
mrb_value blk;
struct RClass *c;
- mrb_value args;
mrb_get_args(mrb, "*&", &argv, &argc, &blk);
@@ -85,8 +84,6 @@ mrb_obj_instance_exec(mrb_state *mrb, mrb_value self)
c = mrb_class_ptr(mrb_singleton_class(mrb, self));
break;
}
- args = mrb_ary_new_from_values(mrb, argc, argv);
- argv = RARRAY_PTR(args);
mrb->c->ci->target_class = c;
return mrb_yield_cont(mrb, blk, self, argc, argv);
}
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c
index b1dfabbc2..df0edf590 100644
--- a/mrbgems/mruby-sprintf/src/sprintf.c
+++ b/mrbgems/mruby-sprintf/src/sprintf.c
@@ -528,7 +528,6 @@ mrb_str_format(mrb_state *mrb, int argc, const mrb_value *argv, mrb_value fmt)
mrb_int n;
mrb_int width;
mrb_int prec;
- int flags = FNONE;
int nextarg = 1;
int posarg = 0;
mrb_value nextvalue;
@@ -564,6 +563,7 @@ mrb_str_format(mrb_state *mrb, int argc, const mrb_value *argv, mrb_value fmt)
for (; p < end; p++) {
const char *t;
mrb_sym id = 0;
+ int flags = FNONE;
for (t = p; t < end && *t != '%'; t++) ;
if (t + 1 == end) ++t;
@@ -701,17 +701,27 @@ retry:
tmp = mrb_check_string_type(mrb, val);
if (!mrb_nil_p(tmp)) {
- if (mrb_fixnum(mrb_funcall(mrb, tmp, "size", 0)) != 1 ) {
+ if (RSTRING_LEN(tmp) != 1) {
mrb_raise(mrb, E_ARGUMENT_ERROR, "%c requires a character");
}
}
else if (mrb_fixnum_p(val)) {
- tmp = mrb_funcall(mrb, val, "chr", 0);
+ mrb_int n = mrb_fixnum(val);
+
+ if (n < 0x80) {
+ char buf[1];
+
+ buf[0] = (char)n;
+ tmp = mrb_str_new(mrb, buf, 1);
+ }
+ else {
+ tmp = mrb_funcall(mrb, val, "chr", 0);
+ mrb_check_type(mrb, tmp, MRB_TT_STRING);
+ }
}
else {
mrb_raise(mrb, E_ARGUMENT_ERROR, "invalid character");
}
- mrb_check_type(mrb, tmp, MRB_TT_STRING);
c = RSTRING_PTR(tmp);
n = RSTRING_LEN(tmp);
if (!(flags & FWIDTH)) {
@@ -791,13 +801,6 @@ retry:
int base;
mrb_int len;
- switch (*p) {
- case 'd':
- case 'i':
- sign = 1; break;
- default:
- break;
- }
if (flags & FSHARP) {
switch (*p) {
case 'o': prefix = "0"; break;
@@ -835,22 +838,14 @@ retry:
case 'b':
case 'B':
base = 2; break;
- case 'u':
case 'd':
case 'i':
+ sign = 1;
+ case 'u':
default:
base = 10; break;
}
- if (base == 2) {
- if (v < 0 && !sign) {
- val = mrb_fix2binstr(mrb, mrb_fixnum_value(v), base);
- dots = 1;
- }
- else {
- val = mrb_fixnum_to_str(mrb, mrb_fixnum_value(v), base);
- }
- }
if (sign) {
if (v > 0) {
if (flags & FPLUS) {
@@ -862,37 +857,33 @@ retry:
width--;
}
}
- switch (base) {
- case 2:
- strncpy(nbuf, RSTRING_PTR(val), sizeof(nbuf));
- break;
- case 8:
- snprintf(nbuf, sizeof(nbuf), "%" MRB_PRIo, v);
- break;
- case 10:
- snprintf(nbuf, sizeof(nbuf), "%" MRB_PRId, v);
- break;
- case 16:
- snprintf(nbuf, sizeof(nbuf), "%" MRB_PRIx, v);
- break;
+ else {
+ sc = '-';
+ width--;
+ v = -v;
}
+ mrb_assert(base == 10);
+ snprintf(nbuf, sizeof(nbuf), "%" MRB_PRId, v);
s = nbuf;
}
else {
s = nbuf;
- if (base != 10 && v < 0) {
+ if (v < 0) {
dots = 1;
}
switch (base) {
case 2:
+ if (v < 0) {
+ val = mrb_fix2binstr(mrb, mrb_fixnum_value(v), base);
+ }
+ else {
+ val = mrb_fixnum_to_str(mrb, mrb_fixnum_value(v), base);
+ }
strncpy(++s, RSTRING_PTR(val), sizeof(nbuf)-1);
break;
case 8:
snprintf(++s, sizeof(nbuf)-1, "%" MRB_PRIo, v);
break;
- case 10:
- snprintf(++s, sizeof(nbuf)-1, "%" MRB_PRId, v);
- break;
case 16:
snprintf(++s, sizeof(nbuf)-1, "%" MRB_PRIx, v);
break;
@@ -920,11 +911,6 @@ retry:
len = (mrb_int)size;
}
- if (dots) {
- prec -= 2;
- width -= 2;
- }
-
if (*p == 'X') {
char *pp = s;
int c;
@@ -980,7 +966,11 @@ retry:
int plen = (int)strlen(prefix);
PUSH(prefix, plen);
}
- if (dots) PUSH("..", 2);
+ if (dots) {
+ prec -= 2;
+ width -= 2;
+ PUSH("..", 2);
+ }
if (prec > len) {
CHECK(prec - len);
diff --git a/mrbgems/mruby-sprintf/test/sprintf.rb b/mrbgems/mruby-sprintf/test/sprintf.rb
index 2c4a7f7a9..89620606b 100644
--- a/mrbgems/mruby-sprintf/test/sprintf.rb
+++ b/mrbgems/mruby-sprintf/test/sprintf.rb
@@ -75,7 +75,7 @@ assert("String#% with invalid chr") do
end
assert_raise TypeError do
- "%c" % 0
+ "%c" % 0x80
end
ensure
class Fixnum
diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c
index 6bab87b06..0d834b6ef 100644
--- a/mrbgems/mruby-string-ext/src/string.c
+++ b/mrbgems/mruby-string-ext/src/string.c
@@ -601,18 +601,26 @@ mrb_str_upto(mrb_state *mrb, mrb_value beg)
if (ISDIGIT(RSTRING_PTR(beg)[0]) && ISDIGIT(RSTRING_PTR(end)[0]) &&
all_digits_p(RSTRING_PTR(beg), RSTRING_LEN(beg)) &&
all_digits_p(RSTRING_PTR(end), RSTRING_LEN(end))) {
- int ai = mrb_gc_arena_save(mrb);
mrb_int min_width = RSTRING_LEN(beg);
- mrb_int max_width = RSTRING_LEN(end);
mrb_int bi = mrb_int(mrb, mrb_str_to_inum(mrb, beg, 10, FALSE));
mrb_int ei = mrb_int(mrb, mrb_str_to_inum(mrb, end, 10, FALSE));
- mrb_value str = mrb_str_new(mrb, NULL, max_width);
- char *buf = RSTRING_PTR(str);
+ int ai = mrb_gc_arena_save(mrb);
while (bi <= ei) {
+ mrb_value ns, str;
+
if (excl && bi == ei) break;
- snprintf(buf, max_width+1, "%.*" MRB_PRId, (int)min_width, bi);
- mrb_yield(mrb, block, mrb_str_new(mrb, buf, strlen(buf)));
+ ns = mrb_format(mrb, "%S", mrb_fixnum_value(bi));
+ if (min_width > RSTRING_LEN(ns)) {
+ str = mrb_str_new(mrb, NULL, min_width);
+ memset(RSTRING_PTR(str), '0', min_width-RSTRING_LEN(ns));
+ memcpy(RSTRING_PTR(str)+min_width-RSTRING_LEN(ns),
+ RSTRING_PTR(ns), RSTRING_LEN(ns));
+ }
+ else {
+ str = ns;
+ }
+ mrb_yield(mrb, block, str);
mrb_gc_arena_restore(mrb, ai);
bi++;
}
diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c
index c5fd34754..1d4fdca92 100644
--- a/mrbgems/mruby-struct/src/struct.c
+++ b/mrbgems/mruby-struct/src/struct.c
@@ -276,7 +276,6 @@ mrb_struct_s_def(mrb_state *mrb, mrb_value klass)
mrb_int argc;
name = mrb_nil_value();
- rest = mrb_nil_value();
mrb_get_args(mrb, "*&", &argv, &argc, &b);
if (argc == 0) { /* special case to avoid crash */
rest = mrb_ary_new(mrb);
diff --git a/mrblib/10error.rb b/mrblib/10error.rb
index 2674af7a2..22a8d1ad7 100644
--- a/mrblib/10error.rb
+++ b/mrblib/10error.rb
@@ -2,8 +2,8 @@
class ArgumentError < StandardError
end
-# ISO 15.2.25
-class LocalJumpError < StandardError
+# ISO 15.2.25 says "LocalJumpError < StandardError"
+class LocalJumpError < ScriptError
end
# ISO 15.2.26
diff --git a/mrblib/string.rb b/mrblib/string.rb
index f91b5a23c..4c6114ecb 100644
--- a/mrblib/string.rb
+++ b/mrblib/string.rb
@@ -133,7 +133,7 @@ class String
if args.length == 2 && block
block = nil
end
- if !block
+ unless block
replace = replace.to_str
end
result = []
diff --git a/src/array.c b/src/array.c
index 86fb50e5c..8b6b9fa1e 100644
--- a/src/array.c
+++ b/src/array.c
@@ -169,7 +169,7 @@ ary_expand_capa(mrb_state *mrb, struct RArray *a, mrb_int len)
{
mrb_int capa = a->aux.capa;
- if (len > ARY_MAX_SIZE) {
+ if (len > ARY_MAX_SIZE || len < 0) {
size_error:
mrb_raise(mrb, E_ARGUMENT_ERROR, "array size too big");
}
diff --git a/src/class.c b/src/class.c
index 0eea9b4dc..99ad14d81 100644
--- a/src/class.c
+++ b/src/class.c
@@ -902,7 +902,9 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
if (argc > i) {
*pl = argc-i;
if (*pl > 0) {
- *var = ARGV + arg_i;
+ mrb_value args = mrb_ary_new_from_values(mrb, *pl, ARGV+arg_i);
+ RARRAY(args)->c = NULL;
+ *var = (mrb_value*)RARRAY_PTR(args);
}
i = argc;
arg_i += *pl;
diff --git a/src/gc.c b/src/gc.c
index da2fe3800..134b818ee 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -579,6 +579,8 @@ mark_context(mrb_state *mrb, struct mrb_context *c)
int i;
mrb_callinfo *ci;
+ if (c->status == MRB_FIBER_TERMINATED) return;
+
/* mark VM stack */
mark_context_stack(mrb, c);
diff --git a/src/kernel.c b/src/kernel.c
index 20f52922d..f1d7700de 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -318,6 +318,7 @@ mrb_obj_clone(mrb_state *mrb, mrb_value self)
}
p = (struct RObject*)mrb_obj_alloc(mrb, mrb_type(self), mrb_obj_class(mrb, self));
p->c = mrb_singleton_class_clone(mrb, self);
+ mrb_field_write_barrier(mrb, (struct RBasic*)p, (struct RBasic*)p->c);
clone = mrb_obj_value(p);
init_copy(mrb, clone, self);
@@ -410,11 +411,8 @@ mrb_obj_extend_m(mrb_state *mrb, mrb_value self)
{
mrb_value *argv;
mrb_int argc;
- mrb_value args;
mrb_get_args(mrb, "*", &argv, &argc);
- args = mrb_ary_new_from_values(mrb, argc, argv);
- argv = (mrb_value*)RARRAY_PTR(args);
return mrb_obj_extend(mrb, argc, argv, self);
}
diff --git a/src/vm.c b/src/vm.c
index c34737789..4fca2b2ac 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1684,6 +1684,8 @@ RETRY_TRY_BLOCK:
else {
struct REnv *e = uvenv(mrb, lv-1);
if (!e) goto L_NOSUPER;
+ if (MRB_ENV_STACK_LEN(e) <= m1+r+m2+1)
+ goto L_NOSUPER;
stack = e->stack + 1;
}
if (r == 0) {
@@ -1894,9 +1896,13 @@ RETRY_TRY_BLOCK:
}
/* call ensure only when we skip this callinfo */
if (ci[0].ridx == ci[-1].ridx) {
+ mrb_value *org_stbase = mrb->c->stbase;
while (mrb->c->eidx > ci->epos) {
ecall(mrb, --mrb->c->eidx);
ci = mrb->c->ci;
+ if (org_stbase != mrb->c->stbase) {
+ stk = mrb->c->stack;
+ }
}
}
}
@@ -1985,21 +1991,21 @@ RETRY_TRY_BLOCK:
if (!proc->env || !MRB_ENV_STACK_SHARED_P(proc->env)) {
goto L_BREAK_ERROR;
}
+ if (proc->env->cxt.c != mrb->c) {
+ goto L_BREAK_ERROR;
+ }
+ while (mrb->c->eidx > mrb->c->ci->epos) {
+ ecall(mrb, --mrb->c->eidx);
+ }
/* break from fiber block */
if (mrb->c->ci == mrb->c->cibase && mrb->c->ci->pc) {
struct mrb_context *c = mrb->c;
- while (mrb->c->eidx > 0) {
- ecall(mrb, --mrb->c->eidx);
- }
mrb->c = c->prev;
c->prev = NULL;
ci = mrb->c->ci;
}
if (ci->acc < 0) {
- while (mrb->c->eidx > mrb->c->ci->epos) {
- ecall(mrb, --mrb->c->eidx);
- }
ARENA_RESTORE(mrb, ai);
mrb->c->vmexec = FALSE;
mrb->exc = (struct RObject*)break_new(mrb, proc, v);
diff --git a/tasks/toolchains/android.rake b/tasks/toolchains/android.rake
index e69dbf5a6..c59da7fcb 100644
--- a/tasks/toolchains/android.rake
+++ b/tasks/toolchains/android.rake
@@ -263,7 +263,7 @@ Set ANDROID_PLATFORM environment variable or set :platform parameter
case toolchain
when :gcc
when :clang
- flags += %W(-gcc-toolchain "#{gcc_toolchain_path.to_s}" -Wno-invalid-command-line-argument -Wno-unused-command-line-argument)
+ flags += %W(-gcc-toolchain "#{gcc_toolchain_path}" -Wno-invalid-command-line-argument -Wno-unused-command-line-argument)
end
flags += %W(-fpic -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes)
diff --git a/test/assert.rb b/test/assert.rb
index 7efc24e19..4e1d309eb 100644
--- a/test/assert.rb
+++ b/test/assert.rb
@@ -23,8 +23,8 @@ def assertion_string(err, str, iso=nil, e=nil, bt=nil)
msg += " => #{e.message}" if e
msg += " (mrbgems: #{GEMNAME})" if Object.const_defined?(:GEMNAME)
if $mrbtest_assert && $mrbtest_assert.size > 0
- $mrbtest_assert.each do |idx, str, diff|
- msg += "\n - Assertion[#{idx}] Failed: #{str}\n#{diff}"
+ $mrbtest_assert.each do |idx, msg, diff|
+ msg += "\n - Assertion[#{idx}] Failed: #{msg}\n#{diff}"
end
end
msg += "\nbacktrace:\n\t#{bt.join("\n\t")}" if bt
@@ -62,7 +62,7 @@ def assert(str = 'Assertion failed', iso = '')
$asserts.push(assertion_string("#{e.class}: ", str, iso, e, bt))
$kill_test += 1
t_print('X')
- end
+ end
ensure
$mrbtest_assert = nil
end
@@ -157,7 +157,7 @@ def assert_raise(*exp)
msg = "#{msg}#{exp.inspect} exception expected, not"
diff = " Class: <#{e.class}>\n" +
" Message: #{e.message}"
- if not exp.any?{|ex| ex.instance_of?(Module) ? e.kind_of?(ex) : ex == e.class }
+ unless exp.any?{|ex| ex.instance_of?(Module) ? e.kind_of?(ex) : ex == e.class }
$mrbtest_assert.push([$mrbtest_assert_idx, msg, diff])
ret = false
end
diff --git a/test/t/kernel.rb b/test/t/kernel.rb
index aff2dd461..40a3482f8 100644
--- a/test/t/kernel.rb
+++ b/test/t/kernel.rb
@@ -387,7 +387,7 @@ assert('Kernel#method_missing', '15.3.1.3.30') do
begin
c.no_method_named_this
rescue NoMethodError => e
- assert_equal "undefined method 'no_method_named_this' for #{c.to_s}", e.message
+ assert_equal "undefined method 'no_method_named_this' for #{c}", e.message
end
class NoInspectClass
@@ -397,7 +397,7 @@ assert('Kernel#method_missing', '15.3.1.3.30') do
begin
d.no_method_named_this
rescue NoMethodError => e
- assert_equal "undefined method 'no_method_named_this' for #{d.to_s}", e.message
+ assert_equal "undefined method 'no_method_named_this' for #{d}", e.message
end
end
diff --git a/test/t/superclass.rb b/test/t/superclass.rb
index 9fd8830b3..10b6438d3 100644
--- a/test/t/superclass.rb
+++ b/test/t/superclass.rb
@@ -23,7 +23,8 @@
[:Exception, :Object, '15.2.22.2'],
[:StandardError, :Exception, '15.2.23.2'],
[:ArgumentError, :StandardError, '15.2.24.2'],
- [:LocalJumpError, :StandardError, '15.2.25.2'],
+ # [:LocalJumpError, :StandardError, '15.2.25.2'],
+ [:LocalJumpError, :ScriptError, '15.2.25.2'], # mruby specific
[:RangeError, :StandardError, '12.2.26.2'],
[:RegexpError, :StandardError, '12.2.27.2'],
[:RuntimeError, :StandardError, '12.2.28.2'],