Index: src/parsing/scanner.h |
diff --git a/src/parsing/scanner.h b/src/parsing/scanner.h |
index 66c6ce8133e18f053898135a658399d01b2f0ac4..cb37f7cc1a5dd7025579d03902a789c6c1e530bb 100644 |
--- a/src/parsing/scanner.h |
+++ b/src/parsing/scanner.h |
@@ -8,12 +8,9 @@ |
#define V8_PARSING_SCANNER_H_ |
#include "src/allocation.h" |
-#include "src/base/hashmap.h" |
#include "src/base/logging.h" |
#include "src/char-predicates.h" |
-#include "src/collector.h" |
#include "src/globals.h" |
-#include "src/list.h" |
#include "src/messages.h" |
#include "src/parsing/token.h" |
#include "src/unicode-decoder.h" |
@@ -25,6 +22,7 @@ namespace internal { |
class AstRawString; |
class AstValueFactory; |
+class DuplicateFinder; |
class ParserRecorder; |
class UnicodeCache; |
@@ -99,56 +97,6 @@ class Utf16CharacterStream { |
}; |
-// --------------------------------------------------------------------- |
-// DuplicateFinder discovers duplicate symbols. |
- |
-class DuplicateFinder { |
- public: |
- explicit DuplicateFinder(UnicodeCache* constants) |
- : unicode_constants_(constants), |
- backing_store_(16), |
- map_(&Match) { } |
- |
- int AddOneByteSymbol(Vector<const uint8_t> key, int value); |
- int AddTwoByteSymbol(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 AddOneByteSymbol. |
- // 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(Vector<const uint8_t> key, int value); |
- |
- private: |
- int AddSymbol(Vector<const uint8_t> key, bool is_one_byte, 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 one byte), |
- // followed by the bytes of the key. |
- uint8_t* BackupKey(Vector<const uint8_t> key, bool is_one_byte); |
- |
- // Compare two encoded keys (both pointing into the backing store) |
- // for having the same base-127 encoded lengths and representation. |
- // 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(Vector<const uint8_t> key, bool is_one_byte); |
- // Checks whether a string containing a JS number is its canonical |
- // form. |
- static bool IsNumberCanonical(Vector<const uint8_t> key); |
- |
- // Size of buffer. Sufficient for using it to call DoubleToCString in |
- // from conversions.h. |
- static const int kBufferSize = 100; |
- |
- UnicodeCache* unicode_constants_; |
- // Backing store used to store strings used as hashmap keys. |
- SequenceCollector<unsigned char> backing_store_; |
- base::HashMap map_; |
- // Buffer used for string->number->canonical string conversions. |
- char number_buffer_[kBufferSize]; |
-}; |
- |
- |
// ---------------------------------------------------------------------------- |
// JavaScript Scanner. |