diff options
author | Myles Borins <mylesborins@google.com> | 2017-08-01 11:36:44 -0500 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2017-08-01 15:23:15 -0500 |
commit | 0a66b223e149a841669bfad5598e4254589730cb (patch) | |
tree | 5ec050f7f78aafbf5b1e0e50d639fb843141e162 /deps/v8/src/parsing/scanner-character-streams.cc | |
parent | 1782b3836ba58ef0da6b687f2bb970c0bd8199ad (diff) | |
download | node-new-0a66b223e149a841669bfad5598e4254589730cb.tar.gz |
deps: update V8 to 6.0.286.52
PR-URL: https://github.com/nodejs/node/pull/14004
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/src/parsing/scanner-character-streams.cc')
-rw-r--r-- | deps/v8/src/parsing/scanner-character-streams.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/deps/v8/src/parsing/scanner-character-streams.cc b/deps/v8/src/parsing/scanner-character-streams.cc index d3162dfbb2..e22308e8d5 100644 --- a/deps/v8/src/parsing/scanner-character-streams.cc +++ b/deps/v8/src/parsing/scanner-character-streams.cc @@ -387,8 +387,10 @@ void Utf8ExternalStreamingStream::SearchPosition(size_t position) { // checking whether the # bytes in a chunk are equal to the # chars, and if // so avoid the expensive SkipToPosition.) bool ascii_only_chunk = + chunks_[chunk_no].start.incomplete_char == + unibrow::Utf8::Utf8IncrementalBuffer(0) && (chunks_[chunk_no + 1].start.bytes - chunks_[chunk_no].start.bytes) == - (chunks_[chunk_no + 1].start.chars - chunks_[chunk_no].start.chars); + (chunks_[chunk_no + 1].start.chars - chunks_[chunk_no].start.chars); if (ascii_only_chunk) { size_t skip = position - chunks_[chunk_no].start.chars; current_ = {chunk_no, @@ -816,16 +818,20 @@ Utf16CharacterStream* ScannerStream::For(Handle<String> data) { Utf16CharacterStream* ScannerStream::For(Handle<String> data, int start_pos, int end_pos) { DCHECK(start_pos >= 0); + DCHECK(start_pos <= end_pos); DCHECK(end_pos <= data->length()); if (data->IsExternalOneByteString()) { return new ExternalOneByteStringUtf16CharacterStream( - Handle<ExternalOneByteString>::cast(data), start_pos, end_pos); + Handle<ExternalOneByteString>::cast(data), + static_cast<size_t>(start_pos), static_cast<size_t>(end_pos)); } else if (data->IsExternalTwoByteString()) { return new ExternalTwoByteStringUtf16CharacterStream( - Handle<ExternalTwoByteString>::cast(data), start_pos, end_pos); + Handle<ExternalTwoByteString>::cast(data), + static_cast<size_t>(start_pos), static_cast<size_t>(end_pos)); } else { // TODO(vogelheim): Maybe call data.Flatten() first? - return new GenericStringUtf16CharacterStream(data, start_pos, end_pos); + return new GenericStringUtf16CharacterStream( + data, static_cast<size_t>(start_pos), static_cast<size_t>(end_pos)); } } |