Reviewers: Yang,
Description:
Removed ReplaceResultBuilder.
Most of its code was dead, and the remaining part was a simple
one-liner, which is now inlined at its single call-site.
Please review this at https://codereview.chromium.org/17101021/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/string.js
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() {
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.