@@ -1330,7 +1330,7 @@ namespace Sass {
13301330 return SASS_MEMORY_NEW (Null, pstate);
13311331 }
13321332
1333- Signature join_sig = " join($list1, $list2, $separator: auto)" ;
1333+ Signature join_sig = " join($list1, $list2, $separator: auto, $bracketed: auto )" ;
13341334 BUILT_IN (join)
13351335 {
13361336 Map_Obj m1 = SASS_MEMORY_CAST (Map, env[" $list1" ]);
@@ -1339,10 +1339,13 @@ namespace Sass {
13391339 List_Obj l2 = SASS_MEMORY_CAST (List, env[" $list2" ]);
13401340 String_Constant_Obj sep = ARG (" $separator" , String_Constant);
13411341 enum Sass_Separator sep_val = (l1 ? l1->separator () : SASS_SPACE);
1342+ Value* bracketed = ARG (" $bracketed" , Value);
1343+ enum Sass_List_Delimiter delimiter = (l1 ? l1->delimiter () : SASS_NO_DELIMITER);
13421344 if (!l1) {
13431345 l1 = SASS_MEMORY_NEW (List, pstate, 1 );
13441346 l1->append (ARG (" $list1" , Expression));
13451347 sep_val = (l2 ? l2->separator () : SASS_SPACE);
1348+ delimiter = (l2 ? l2->delimiter () : SASS_NO_DELIMITER);
13461349 }
13471350 if (!l2) {
13481351 l2 = SASS_MEMORY_NEW (List, pstate, 1 );
@@ -1360,7 +1363,12 @@ namespace Sass {
13601363 if (sep_str == " space" ) sep_val = SASS_SPACE;
13611364 else if (sep_str == " comma" ) sep_val = SASS_COMMA;
13621365 else if (sep_str != " auto" ) error (" argument `$separator` of `" + std::string (sig) + " ` must be `space`, `comma`, or `auto`" , pstate);
1363- List_Obj result = SASS_MEMORY_NEW (List, pstate, len, sep_val);
1366+ String_Constant_Obj bracketed_as_str = SASS_MEMORY_CAST_PTR (String_Constant, bracketed);
1367+ bool bracketed_is_auto = bracketed_as_str && unquote (bracketed_as_str->value ()) == " auto" ;
1368+ if (!bracketed_is_auto) {
1369+ delimiter = bracketed->is_false () ? SASS_NO_DELIMITER : SASS_BRACKETS;
1370+ }
1371+ List_Obj result = SASS_MEMORY_NEW (List, pstate, len, sep_val, false , delimiter);
13641372 result->concat (&l1);
13651373 result->concat (&l2);
13661374 return result.detach ();
0 commit comments