Index: src/string.js |
diff --git a/src/string.js b/src/string.js |
index a70eeade83b9d68b51937611b621b628fa6be286..d1d705c34d0d1cd17aad4c08210803fbcabdb653 100644 |
--- a/src/string.js |
+++ b/src/string.js |
@@ -911,39 +911,36 @@ function ReplaceResultBuilder(str) { |
this.special_string = str; |
} |
-ReplaceResultBuilder.prototype.__proto__ = null; |
- |
- |
-ReplaceResultBuilder.prototype.add = function(str) { |
- str = TO_STRING_INLINE(str); |
- if (str.length > 0) this.elements.push(str); |
-} |
- |
- |
-ReplaceResultBuilder.prototype.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. |
+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; |
- elements.push(-len); |
- elements.push(start); |
+ return %StringBuilderConcat(elements, elements.length, this.special_string); |
} |
-} |
- |
- |
-ReplaceResultBuilder.prototype.generate = function() { |
- var elements = this.elements; |
- return %StringBuilderConcat(elements, elements.length, this.special_string); |
-} |
+)); |
// ------------------------------------------------------------------- |
function SetupString() { |
Erik Corry
2011/08/31 05:46:04
SetUpString
|
+ %AssertIsBootstrapping(); |
// Setup the constructor property on the String prototype object. |
%SetProperty($String.prototype, "constructor", $String, DONT_ENUM); |