Index: src/scanner.h |
diff --git a/src/scanner.h b/src/scanner.h |
index 6e7dabcff3e2a5c89b9cbc85ce9b7e1862605f3b..d71b994850be336df0c74f6d4f24c0ac6d9b5ea9 100644 |
--- a/src/scanner.h |
+++ b/src/scanner.h |
@@ -216,14 +216,14 @@ class LiteralBuffer { |
position_ += kUC16Size; |
} |
- bool is_one_byte() { return is_one_byte_; } |
+ bool is_one_byte() const { return is_one_byte_; } |
- bool is_contextual_keyword(Vector<const char> keyword) { |
+ bool is_contextual_keyword(Vector<const char> keyword) const { |
return is_one_byte() && keyword.length() == position_ && |
(memcmp(keyword.start(), backing_store_.start(), position_) == 0); |
} |
- Vector<const uint16_t> two_byte_literal() { |
+ Vector<const uint16_t> two_byte_literal() const { |
ASSERT(!is_one_byte_); |
ASSERT((position_ & 0x1) == 0); |
return Vector<const uint16_t>( |
@@ -231,14 +231,14 @@ class LiteralBuffer { |
position_ >> 1); |
} |
- Vector<const uint8_t> one_byte_literal() { |
+ Vector<const uint8_t> one_byte_literal() const { |
ASSERT(is_one_byte_); |
return Vector<const uint8_t>( |
reinterpret_cast<const uint8_t*>(backing_store_.start()), |
position_); |
} |
- int length() { |
+ int length() const { |
return is_one_byte_ ? position_ : (position_ >> 1); |
} |
@@ -247,6 +247,8 @@ class LiteralBuffer { |
is_one_byte_ = true; |
} |
+ Handle<String> Internalize(Isolate* isolate) const; |
+ |
private: |
static const int kInitialCapacity = 16; |
static const int kGrowthFactory = 4; |
@@ -451,6 +453,11 @@ class Scanner { |
// be empty). |
bool ScanRegExpFlags(); |
+ const LiteralBuffer* source_url() const { return &source_url_; } |
+ const LiteralBuffer* source_mapping_url() const { |
+ return &source_mapping_url_; |
+ } |
+ |
private: |
// The current and look-ahead token. |
struct TokenDesc { |
@@ -572,6 +579,8 @@ class Scanner { |
bool SkipWhiteSpace(); |
Token::Value SkipSingleLineComment(); |
+ Token::Value SkipSourceURLComment(); |
+ void TryToParseSourceURLComment(); |
Token::Value SkipMultiLineComment(); |
// Scans a possible HTML comment -- begins with '<!'. |
Token::Value ScanHtmlComment(); |
@@ -606,6 +615,10 @@ class Scanner { |
LiteralBuffer literal_buffer1_; |
LiteralBuffer literal_buffer2_; |
+ // Values parsed from magic comments. |
+ LiteralBuffer source_url_; |
+ LiteralBuffer source_mapping_url_; |
+ |
TokenDesc current_; // desc for current token (as returned by Next()) |
TokenDesc next_; // desc for next token (one token look-ahead) |