| Index: src/scanner-character-streams.h
|
| diff --git a/src/scanner-character-streams.h b/src/scanner-character-streams.h
|
| index eeb40e260f62727610c52c9591cb62ca231885c9..ba7720a498d6c60d8a22e8c20ae636486210e0fc 100644
|
| --- a/src/scanner-character-streams.h
|
| +++ b/src/scanner-character-streams.h
|
| @@ -59,6 +59,9 @@ class Utf8ToUtf16CharacterStream: public BufferedUtf16CharacterStream {
|
| Utf8ToUtf16CharacterStream(const byte* data, unsigned length);
|
| virtual ~Utf8ToUtf16CharacterStream();
|
|
|
| + static unsigned CopyChars(uint16_t* dest, unsigned length, const byte* src,
|
| + unsigned* src_pos, unsigned src_length);
|
| +
|
| protected:
|
| virtual unsigned BufferSeekForward(unsigned delta);
|
| virtual unsigned FillBuffer(unsigned char_position);
|
| @@ -73,6 +76,38 @@ class Utf8ToUtf16CharacterStream: public BufferedUtf16CharacterStream {
|
| };
|
|
|
|
|
| +// ExternalStreamingStream is a wrapper around an ExternalSourceStream (see
|
| +// include/v8.h) subclass implemented by the embedder.
|
| +class ExternalStreamingStream : public BufferedUtf16CharacterStream {
|
| + public:
|
| + explicit ExternalStreamingStream(
|
| + ScriptCompiler::ExternalSourceStream* source_stream)
|
| + : source_stream_(source_stream),
|
| + current_data_(NULL),
|
| + current_data_offset_(0),
|
| + current_data_length_(0) {}
|
| +
|
| + virtual ~ExternalStreamingStream() { delete[] current_data_; }
|
| +
|
| + virtual unsigned BufferSeekForward(unsigned delta) V8_OVERRIDE {
|
| + // We never need to seek forward when streaming scripts. We only seek
|
| + // forward when we want to parse a function whose location we already know,
|
| + // and when streaming, we don't know the locations of anything we haven't
|
| + // seen yet.
|
| + UNREACHABLE();
|
| + return 0;
|
| + }
|
| +
|
| + virtual unsigned FillBuffer(unsigned position);
|
| +
|
| + private:
|
| + ScriptCompiler::ExternalSourceStream* source_stream_;
|
| + const char* current_data_;
|
| + unsigned current_data_offset_;
|
| + unsigned current_data_length_;
|
| +};
|
| +
|
| +
|
| // UTF16 buffer to read characters from an external string.
|
| class ExternalTwoByteStringUtf16CharacterStream: public Utf16CharacterStream {
|
| public:
|
|
|