diff --git a/repl/lib_compound.c b/repl/lib_compound.c index 3e6a681..cc7c1e7 100644 --- a/repl/lib_compound.c +++ b/repl/lib_compound.c @@ -99,6 +99,11 @@ static int nativeTrim(Toy_Interpreter* interpreter, Toy_LiteralArray* arguments) if (arguments->count == 2) { trimCharsLiteral = Toy_popLiteralArray(arguments); + + Toy_Literal trimCharsLiteralIdn = trimCharsLiteral; + if (TOY_IS_IDENTIFIER(trimCharsLiteral) && Toy_parseIdentifierToValue(interpreter, &trimCharsLiteral)) { + Toy_freeLiteral(trimCharsLiteralIdn); + } } else { trimCharsLiteral = TOY_TO_STRING_LITERAL(Toy_createRefString(" \t\n\r")); diff --git a/test/scripts/lib/compound.toy b/test/scripts/lib/compound.toy index 3d727d1..3a8c9c2 100644 --- a/test/scripts/lib/compound.toy +++ b/test/scripts/lib/compound.toy @@ -10,7 +10,7 @@ import compound; assert "Hello World".toUpper() == "HELLO WORLD", "_toUpper() failed"; } -//test trim +//test trim defaults { //test a bunch fn test(s, pass) { @@ -33,4 +33,12 @@ import compound; assert " hello world ".trim() == "hello world", "hello world.trim() failed"; } +//test trim custom values +{ + var chars = "heilod"; + + assert "hello world".trim(chars) == " wor", "custom _trim() failed"; +} + + print "All good";