summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-08-25 09:10:37 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-08-25 09:41:21 +0900
commit49d1b168221221b7e810f001d88e16ebc94378fd (patch)
tree10ff0f8b4e9b8bb7e8dea4003f2126e9e2c3bf5b /src/vm.c
parent306732e02da5f0d47f44033ec1a3af1a77c5f418 (diff)
downloadmruby-49d1b168221221b7e810f001d88e16ebc94378fd.tar.gz
mruby-49d1b168221221b7e810f001d88e16ebc94378fd.zip
Hash splat `**` should not be ignored.
Implemented by adding `OP_HASHCAT` that merges hashes.
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index 8332158f7..b47469ebf 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -2710,6 +2710,11 @@ RETRY_TRY_BLOCK:
mrb_gc_arena_restore(mrb, ai);
NEXT;
}
+ CASE(OP_HASHCAT, B) {
+ mrb_hash_merge(mrb, regs[a], regs[a+1]);
+ mrb_gc_arena_restore(mrb, ai);
+ NEXT;
+ }
CASE(OP_LAMBDA, BB)
c = OP_L_LAMBDA;