Chromium Code Reviews| 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); |