зеркало из https://github.com/github/ruby.git
[PRISM] prevent underflow on popped splatarray (#8657)
prevent underflow on popped splatarray This only emits the splat array node when not popped
This commit is contained in:
Родитель
06a4011964
Коммит
6e88b72d7b
|
@ -2397,9 +2397,9 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
|||
PM_COMPILE(splat_node->expression);
|
||||
}
|
||||
|
||||
ADD_INSN1(ret, &dummy_line_node, splatarray, Qtrue);
|
||||
|
||||
PM_POP_IF_POPPED;
|
||||
if (!popped) {
|
||||
ADD_INSN1(ret, &dummy_line_node, splatarray, Qtrue);
|
||||
}
|
||||
return;
|
||||
}
|
||||
case PM_STATEMENTS_NODE: {
|
||||
|
|
|
@ -325,6 +325,10 @@ module Prism
|
|||
test_prism_eval("[ Prism: [:b, :c]]")
|
||||
end
|
||||
|
||||
def test_SplatNode
|
||||
test_prism_eval("*b = []")
|
||||
end
|
||||
|
||||
############################################################################
|
||||
# Jumps #
|
||||
############################################################################
|
||||
|
|
Загрузка…
Ссылка в новой задаче