OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Features shared by parsing and pre-parsing scanners. | 5 // Features shared by parsing and pre-parsing scanners. |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <cmath> | 9 #include <cmath> |
10 | 10 |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 Advance(); | 305 Advance(); |
306 } | 306 } |
307 | 307 |
308 return Token::WHITESPACE; | 308 return Token::WHITESPACE; |
309 } | 309 } |
310 | 310 |
311 | 311 |
312 void Scanner::TryToParseSourceURLComment() { | 312 void Scanner::TryToParseSourceURLComment() { |
313 // Magic comments are of the form: //[#@]\s<name>=\s*<value>\s*.* and this | 313 // Magic comments are of the form: //[#@]\s<name>=\s*<value>\s*.* and this |
314 // function will just return if it cannot parse a magic comment. | 314 // function will just return if it cannot parse a magic comment. |
315 if (!unicode_cache_->IsWhiteSpace(c0_)) | 315 if (c0_ < 0 || !unicode_cache_->IsWhiteSpace(c0_)) return; |
316 return; | |
317 Advance(); | 316 Advance(); |
318 LiteralBuffer name; | 317 LiteralBuffer name; |
319 while (c0_ >= 0 && !unicode_cache_->IsWhiteSpaceOrLineTerminator(c0_) && | 318 while (c0_ >= 0 && !unicode_cache_->IsWhiteSpaceOrLineTerminator(c0_) && |
320 c0_ != '=') { | 319 c0_ != '=') { |
321 name.AddChar(c0_); | 320 name.AddChar(c0_); |
322 Advance(); | 321 Advance(); |
323 } | 322 } |
324 if (!name.is_one_byte()) return; | 323 if (!name.is_one_byte()) return; |
325 Vector<const uint8_t> name_literal = name.one_byte_literal(); | 324 Vector<const uint8_t> name_literal = name.one_byte_literal(); |
326 LiteralBuffer* value; | 325 LiteralBuffer* value; |
(...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1404 } | 1403 } |
1405 backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); | 1404 backing_store_.Add(static_cast<uint8_t>((one_byte_length >> 7) | 0x80u)); |
1406 } | 1405 } |
1407 backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); | 1406 backing_store_.Add(static_cast<uint8_t>(one_byte_length & 0x7f)); |
1408 | 1407 |
1409 backing_store_.AddBlock(bytes); | 1408 backing_store_.AddBlock(bytes); |
1410 return backing_store_.EndSequence().start(); | 1409 return backing_store_.EndSequence().start(); |
1411 } | 1410 } |
1412 | 1411 |
1413 } } // namespace v8::internal | 1412 } } // namespace v8::internal |
OLD | NEW |