Index: src/string.js |
diff --git a/src/string.js b/src/string.js |
index 44315bba168b20197194556986be5d2aa97f7a8a..a04b23f7dbb0e54e1b9df385d275a27465e2220d 100644 |
--- a/src/string.js |
+++ b/src/string.js |
@@ -495,8 +495,7 @@ function StringReplaceGlobalRegExpWithFunction(subject, regexp, replace) { |
} |
} |
} |
- var resultBuilder = new ReplaceResultBuilder(subject, res); |
- var result = resultBuilder.generate(); |
+ var result = %StringBuilderConcat(res, res.length, subject); |
resultArray.length = 0; |
reusableReplaceArray = resultArray; |
return result; |
@@ -950,43 +949,6 @@ function StringSup() { |
return "<sup>" + this + "</sup>"; |
} |
- |
-// ReplaceResultBuilder support. |
-function ReplaceResultBuilder(str) { |
- if (%_ArgumentsLength() > 1) { |
- this.elements = %_Arguments(1); |
- } else { |
- this.elements = new InternalArray(); |
- } |
- this.special_string = str; |
-} |
- |
-SetUpLockedPrototype(ReplaceResultBuilder, |
- $Array("elements", "special_string"), $Array( |
- "add", function(str) { |
- str = TO_STRING_INLINE(str); |
- if (str.length > 0) this.elements.push(str); |
- }, |
- "addSpecialSlice", function(start, end) { |
- var len = end - start; |
- if (start < 0 || len <= 0) return; |
- if (start < 0x80000 && len < 0x800) { |
- this.elements.push((start << 11) | len); |
- } else { |
- // 0 < len <= String::kMaxLength and Smi::kMaxValue >= String::kMaxLength, |
- // so -len is a smi. |
- var elements = this.elements; |
- elements.push(-len); |
- elements.push(start); |
- } |
- }, |
- "generate", function() { |
- var elements = this.elements; |
- return %StringBuilderConcat(elements, elements.length, this.special_string); |
- } |
-)); |
- |
- |
// ------------------------------------------------------------------- |
function SetUpString() { |