| Index: src/regexp.js | 
| diff --git a/src/regexp.js b/src/regexp.js | 
| index b724f68183511701da41555a346c436179cf6c01..ace0be1564572e5b48df5ccf287869f7b310dc3d 100644 | 
| --- a/src/regexp.js | 
| +++ b/src/regexp.js | 
| @@ -1,4 +1,4 @@ | 
| -// Copyright 2006-2009 the V8 project authors. All rights reserved. | 
| +// Copyright 2012 the V8 project authors. All rights reserved. | 
| // Redistribution and use in source and binary forms, with or without | 
| // modification, are permitted provided that the following conditions are | 
| // met: | 
| @@ -421,18 +421,12 @@ function SetUpRegExp() { | 
| LAST_INPUT(lastMatchInfo) = ToString(string); | 
| }; | 
|  | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'input', GETTER, RegExpGetInput, | 
| -                                    DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'input', SETTER, RegExpSetInput, | 
| -                                    DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$_', GETTER, RegExpGetInput, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$_', SETTER, RegExpSetInput, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$input', GETTER, RegExpGetInput, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$input', SETTER, RegExpSetInput, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, 'input', RegExpGetInput, | 
| +                                    RegExpSetInput, DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, '$_', RegExpGetInput, | 
| +                                    RegExpSetInput, DONT_ENUM | DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, '$input', RegExpGetInput, | 
| +                                    RegExpSetInput, DONT_ENUM | DONT_DELETE); | 
|  | 
| // The properties multiline and $* are aliases for each other.  When this | 
| // value is set in SpiderMonkey, the value it is set to is coerced to a | 
| @@ -446,13 +440,10 @@ function SetUpRegExp() { | 
| var RegExpGetMultiline = function() { return multiline; }; | 
| var RegExpSetMultiline = function(flag) { multiline = flag ? true : false; }; | 
|  | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'multiline', GETTER, | 
| -                                    RegExpGetMultiline, DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'multiline', SETTER, | 
| +  %DefineOrRedefineAccessorProperty($RegExp, 'multiline', RegExpGetMultiline, | 
| RegExpSetMultiline, DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$*', GETTER, RegExpGetMultiline, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$*', SETTER, RegExpSetMultiline, | 
| +  %DefineOrRedefineAccessorProperty($RegExp, '$*', RegExpGetMultiline, | 
| +                                    RegExpSetMultiline, | 
| DONT_ENUM | DONT_DELETE); | 
|  | 
|  | 
| @@ -460,44 +451,28 @@ function SetUpRegExp() { | 
|  | 
|  | 
| // Static properties set by a successful match. | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'lastMatch', GETTER, | 
| -                                    RegExpGetLastMatch, DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'lastMatch', SETTER, NoOpSetter, | 
| +  %DefineOrRedefineAccessorProperty($RegExp, 'lastMatch', RegExpGetLastMatch, | 
| +                                    NoOpSetter, DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, '$&', RegExpGetLastMatch, | 
| +                                    NoOpSetter, DONT_ENUM | DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, 'lastParen', RegExpGetLastParen, | 
| +                                    NoOpSetter, DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, '$+', RegExpGetLastParen, | 
| +                                    NoOpSetter, DONT_ENUM | DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, 'leftContext', | 
| +                                    RegExpGetLeftContext, NoOpSetter, | 
| DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$&', GETTER, RegExpGetLastMatch, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$&', SETTER, NoOpSetter, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'lastParen', GETTER, | 
| -                                    RegExpGetLastParen, DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'lastParen', SETTER, NoOpSetter, | 
| +  %DefineOrRedefineAccessorProperty($RegExp, '$`', RegExpGetLeftContext, | 
| +                                    NoOpSetter, DONT_ENUM | DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, 'rightContext', | 
| +                                    RegExpGetRightContext, NoOpSetter, | 
| DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$+', GETTER, RegExpGetLastParen, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$+', SETTER, NoOpSetter, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'leftContext', GETTER, | 
| -                                    RegExpGetLeftContext, DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'leftContext', SETTER, NoOpSetter, | 
| -                                    DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$`', GETTER, RegExpGetLeftContext, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, '$`', SETTER, NoOpSetter, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'rightContext', GETTER, | 
| -                                    RegExpGetRightContext, DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, 'rightContext', SETTER, NoOpSetter, | 
| -                                    DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, "$'", GETTER, | 
| -                                    RegExpGetRightContext, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| -  %DefineOrRedefineAccessorProperty($RegExp, "$'", SETTER, NoOpSetter, | 
| -                                    DONT_ENUM | DONT_DELETE); | 
| +  %DefineOrRedefineAccessorProperty($RegExp, "$'", RegExpGetRightContext, | 
| +                                    NoOpSetter, DONT_ENUM | DONT_DELETE); | 
|  | 
| for (var i = 1; i < 10; ++i) { | 
| -    %DefineOrRedefineAccessorProperty($RegExp, '$' + i, GETTER, | 
| -                                      RegExpMakeCaptureGetter(i), DONT_DELETE); | 
| -    %DefineOrRedefineAccessorProperty($RegExp, '$' + i, SETTER, NoOpSetter, | 
| +    %DefineOrRedefineAccessorProperty($RegExp, '$' + i, | 
| +                                      RegExpMakeCaptureGetter(i), NoOpSetter, | 
| DONT_DELETE); | 
| } | 
| } | 
|  |