| Index: src/preparser.h
 | 
| diff --git a/src/preparser.h b/src/preparser.h
 | 
| index 66d092cb2aad7f112030eba5192c9bf03d2f5514..3d72c97e2691862349b16416591314641ee4695a 100644
 | 
| --- a/src/preparser.h
 | 
| +++ b/src/preparser.h
 | 
| @@ -31,8 +31,6 @@
 | 
|  namespace v8 {
 | 
|  namespace preparser {
 | 
|  
 | 
| -typedef uint8_t byte;
 | 
| -
 | 
|  // Preparsing checks a JavaScript program and emits preparse-data that helps
 | 
|  // a later parsing to be faster.
 | 
|  // See preparse-data-format.h for the data format.
 | 
| @@ -48,57 +46,6 @@ typedef uint8_t byte;
 | 
|  
 | 
|  namespace i = v8::internal;
 | 
|  
 | 
| -class DuplicateFinder {
 | 
| - public:
 | 
| -  explicit DuplicateFinder(i::UnicodeCache* constants)
 | 
| -      : unicode_constants_(constants),
 | 
| -        backing_store_(16),
 | 
| -        map_(new i::HashMap(&Match)) { }
 | 
| -
 | 
| -  ~DuplicateFinder() {
 | 
| -    delete map_;
 | 
| -  }
 | 
| -
 | 
| -  int AddAsciiSymbol(i::Vector<const char> key, int value);
 | 
| -  int AddUC16Symbol(i::Vector<const uint16_t> key, int value);
 | 
| -  // Add a a number literal by converting it (if necessary)
 | 
| -  // to the string that ToString(ToNumber(literal)) would generate.
 | 
| -  // and then adding that string with AddAsciiSymbol.
 | 
| -  // This string is the actual value used as key in an object literal,
 | 
| -  // and the one that must be different from the other keys.
 | 
| -  int AddNumber(i::Vector<const char> key, int value);
 | 
| -
 | 
| - private:
 | 
| -  int AddSymbol(i::Vector<const byte> key, bool is_ascii, int value);
 | 
| -  // Backs up the key and its length in the backing store.
 | 
| -  // The backup is stored with a base 127 encoding of the
 | 
| -  // length (plus a bit saying whether the string is ASCII),
 | 
| -  // followed by the bytes of the key.
 | 
| -  byte* BackupKey(i::Vector<const byte> key, bool is_ascii);
 | 
| -
 | 
| -  // Compare two encoded keys (both pointing into the backing store)
 | 
| -  // for having the same base-127 encoded lengths and ASCII-ness,
 | 
| -  // and then having the same 'length' bytes following.
 | 
| -  static bool Match(void* first, void* second);
 | 
| -  // Creates a hash from a sequence of bytes.
 | 
| -  static uint32_t Hash(i::Vector<const byte> key, bool is_ascii);
 | 
| -  // Checks whether a string containing a JS number is its canonical
 | 
| -  // form.
 | 
| -  static bool IsNumberCanonical(i::Vector<const char> key);
 | 
| -
 | 
| -  // Size of buffer. Sufficient for using it to call DoubleToCString in
 | 
| -  // from conversions.h.
 | 
| -  static const int kBufferSize = 100;
 | 
| -
 | 
| -  i::UnicodeCache* unicode_constants_;
 | 
| -  // Backing store used to store strings used as hashmap keys.
 | 
| -  i::SequenceCollector<unsigned char> backing_store_;
 | 
| -  i::HashMap* map_;
 | 
| -  // Buffer used for string->number->canonical string conversions.
 | 
| -  char number_buffer_[kBufferSize];
 | 
| -};
 | 
| -
 | 
| -
 | 
|  class PreParser {
 | 
|   public:
 | 
|    enum PreParseResult {
 | 
| @@ -120,45 +67,6 @@ class PreParser {
 | 
|    }
 | 
|  
 | 
|   private:
 | 
| -  // Used to detect duplicates in object literals. Each of the values
 | 
| -  // kGetterProperty, kSetterProperty and kValueProperty represents
 | 
| -  // a type of object literal property. When parsing a property, its
 | 
| -  // type value is stored in the DuplicateFinder for the property name.
 | 
| -  // Values are chosen so that having intersection bits means the there is
 | 
| -  // an incompatibility.
 | 
| -  // I.e., you can add a getter to a property that already has a setter, since
 | 
| -  // kGetterProperty and kSetterProperty doesn't intersect, but not if it
 | 
| -  // already has a getter or a value. Adding the getter to an existing
 | 
| -  // setter will store the value (kGetterProperty | kSetterProperty), which
 | 
| -  // is incompatible with adding any further properties.
 | 
| -  enum PropertyType {
 | 
| -    kNone = 0,
 | 
| -    // Bit patterns representing different object literal property types.
 | 
| -    kGetterProperty = 1,
 | 
| -    kSetterProperty = 2,
 | 
| -    kValueProperty = 7,
 | 
| -    // Helper constants.
 | 
| -    kValueFlag = 4
 | 
| -  };
 | 
| -
 | 
| -  // Checks the type of conflict based on values coming from PropertyType.
 | 
| -  bool HasConflict(int type1, int type2) { return (type1 & type2) != 0; }
 | 
| -  bool IsDataDataConflict(int type1, int type2) {
 | 
| -    return ((type1 & type2) & kValueFlag) != 0;
 | 
| -  }
 | 
| -  bool IsDataAccessorConflict(int type1, int type2) {
 | 
| -    return ((type1 ^ type2) & kValueFlag) != 0;
 | 
| -  }
 | 
| -  bool IsAccessorAccessorConflict(int type1, int type2) {
 | 
| -    return ((type1 | type2) & kValueFlag) == 0;
 | 
| -  }
 | 
| -
 | 
| -
 | 
| -  void CheckDuplicate(DuplicateFinder* finder,
 | 
| -                      i::Token::Value property,
 | 
| -                      int type,
 | 
| -                      bool* ok);
 | 
| -
 | 
|    // These types form an algebra over syntactic categories that is just
 | 
|    // rich enough to let us recognize and propagate the constructs that
 | 
|    // are either being counted in the preparser data, or is important
 | 
| @@ -456,11 +364,6 @@ class PreParser {
 | 
|  
 | 
|    // Report syntax error
 | 
|    void ReportUnexpectedToken(i::Token::Value token);
 | 
| -  void ReportMessageAt(i::Scanner::Location location,
 | 
| -                       const char* type,
 | 
| -                       const char* name_opt) {
 | 
| -    log_->LogMessage(location.beg_pos, location.end_pos, type, name_opt);
 | 
| -  }
 | 
|    void ReportMessageAt(int start_pos,
 | 
|                         int end_pos,
 | 
|                         const char* type,
 | 
| 
 |