Skip to content

Commit

Permalink
Showing 3 changed files with 5 additions and 7 deletions.
3 changes: 1 addition & 2 deletions spec/truffle/tags/core/string/capitalize_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
fails:String#capitalize taints resulting string when self is tainted
fails:String#capitalize is locale insensitive (only upcases a-z and only downcases A-Z)
fails:String#capitalize returns subclass instances when called on a subclass
fails:String#capitalize! raises a RuntimeError when self is frozen
fails:String#capitalize returns subclass instances when called on a subclass
1 change: 0 additions & 1 deletion spec/truffle/tags/core/string/downcase_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
fails:String#downcase is locale insensitive (only replaces A-Z)
fails:String#downcase taints result when self is tainted
fails:String#downcase returns a subclass instance for subclasses
fails:String#downcase! raises a RuntimeError when self is frozen
Original file line number Diff line number Diff line change
@@ -774,12 +774,11 @@ public DowncaseBangNode(DowncaseBangNode prev) {
public RubyBasicObject downcase(RubyString string) {
notDesignedForCompilation();

string.checkFrozen(this);
ByteList newByteList = StringNodesHelper.downcase(string);

if (newByteList.equal(string.getBytes())) {
return getContext().getCoreLibrary().getNilObject();
} else if (string.isFrozen()) {
throw new RaiseException(getContext().getCoreLibrary().runtimeError("can't modify frozen string", this));
} else {
string.set(newByteList);
return string;
@@ -1925,11 +1924,12 @@ public CapitalizeBangNode(CapitalizeBangNode prev) {
@Specialization
public RubyBasicObject capitalizeBang(RubyString string) {
notDesignedForCompilation();

string.checkFrozen(this);
String javaString = string.toString();

if (javaString.isEmpty()) {
return getContext().getCoreLibrary().getNilObject();
} else if (string.isFrozen()) {
throw new RaiseException(getContext().getCoreLibrary().runtimeError("can't modify frozen string", this));
} else {
final ByteList byteListString = StringNodesHelper.capitalize(string);

0 comments on commit 30ac04b

Please sign in to comment.