Skip to content

Commit 4e4e46a

Browse files
committed
[Truffle] - String#capitalize! raises a RuntimeError when self is frozen
1 parent 116100f commit 4e4e46a

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
fails:String#capitalize taints resulting string when self is tainted
22
fails:String#capitalize is locale insensitive (only upcases a-z and only downcases A-Z)
33
fails:String#capitalize returns subclass instances when called on a subclass
4-
fails:String#capitalize! returns nil when no changes are made
5-
fails:String#capitalize! raises a RuntimeError when self is frozen
4+
fails:String#capitalize! returns nil when no changes are made

truffle/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1926,6 +1926,8 @@ public RubyString capitalizeBang(RubyString string) {
19261926
String javaString = string.toString();
19271927
if (javaString.isEmpty()) {
19281928
return string;
1929+
} else if (string.isFrozen()) {
1930+
throw new RaiseException(getContext().getCoreLibrary().runtimeError("can't modify frozen string", this));
19291931
} else {
19301932
final ByteList byteListString = StringNodesHelper.capitalize(string);
19311933

0 commit comments

Comments
 (0)