@@ -610,8 +610,10 @@ namespace Sass {
610610 evaluated_args << eval (args[i], prefix, env, f_env, new_Node, ctx);
611611 if (evaluated_args.back ().type () == Node::list) {
612612 Node arg_list (evaluated_args.back ());
613+ Node new_arg_list (new_Node (Node::list, arg_list.path (), arg_list.line (), arg_list.size ()));
613614 for (size_t j = 0 , S = arg_list.size (); j < S; ++j) {
614- if (arg_list[j].should_eval ()) arg_list[j] = eval (arg_list[j], prefix, env, f_env, new_Node, ctx);
615+ if (arg_list[j].should_eval ()) new_arg_list << eval (arg_list[j], prefix, env, f_env, new_Node, ctx);
616+ else new_arg_list << arg_list[j];
615617 }
616618 }
617619 }
@@ -621,16 +623,20 @@ namespace Sass {
621623 kwdarg << eval (args[i][1 ], prefix, env, f_env, new_Node, ctx);
622624 if (kwdarg.back ().type () == Node::list) {
623625 Node arg_list (kwdarg.back ());
626+ Node new_arg_list (new_Node (Node::list, arg_list.path (), arg_list.line (), arg_list.size ()));
624627 for (size_t j = 0 , S = arg_list.size (); j < S; ++j) {
625- if (arg_list[j].should_eval ()) arg_list[j] = eval (arg_list[j], prefix, env, f_env, new_Node, ctx);
628+ if (arg_list[j].should_eval ()) new_arg_list << eval (arg_list[j], prefix, env, f_env, new_Node, ctx);
629+ else new_arg_list << arg_list[j];
626630 }
631+ kwdarg[1 ] = new_arg_list;
627632 }
628633 evaluated_args << kwdarg;
629634 }
630635 }
631636 // eval twice because args may be delayed
632637 for (size_t i = 0 , S = evaluated_args.size (); i < S; ++i) {
633638 if (evaluated_args[i].type () != Node::assignment) {
639+ evaluated_args[i].should_eval () = true ;
634640 evaluated_args[i] = eval (evaluated_args[i], prefix, env, f_env, new_Node, ctx);
635641 if (evaluated_args[i].type () == Node::list) {
636642 Node arg_list (evaluated_args[i]);
@@ -641,6 +647,7 @@ namespace Sass {
641647 }
642648 else {
643649 Node kwdarg (evaluated_args[i]);
650+ kwdarg[1 ].should_eval () = true ;
644651 kwdarg[1 ] = eval (kwdarg[1 ], prefix, env, f_env, new_Node, ctx);
645652 if (kwdarg[1 ].type () == Node::list) {
646653 Node arg_list (kwdarg[1 ]);
0 commit comments