| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 // Copyright 2014 the V8 project authors. All rights reserved. |  | 
| 2 // Use of this source code is governed by a BSD-style license that can be |  | 
| 3 // found in the LICENSE file. |  | 
| 4 |  | 
| 5 #ifndef V8_BACKGROUND_PARSING_TASK_H_ |  | 
| 6 #define V8_BACKGROUND_PARSING_TASK_H_ |  | 
| 7 |  | 
| 8 #include "src/base/platform/platform.h" |  | 
| 9 #include "src/base/platform/semaphore.h" |  | 
| 10 #include "src/compiler.h" |  | 
| 11 #include "src/parser.h" |  | 
| 12 #include "src/smart-pointers.h" |  | 
| 13 |  | 
| 14 namespace v8 { |  | 
| 15 namespace internal { |  | 
| 16 |  | 
| 17 class Parser; |  | 
| 18 |  | 
| 19 // Internal representation of v8::ScriptCompiler::StreamedSource. Contains all |  | 
| 20 // data which needs to be transmitted between threads for background parsing, |  | 
| 21 // finalizing it on the main thread, and compiling on the main thread. |  | 
| 22 struct StreamedSource { |  | 
| 23   StreamedSource(ScriptCompiler::ExternalSourceStream* source_stream, |  | 
| 24                  ScriptCompiler::StreamedSource::Encoding encoding) |  | 
| 25       : source_stream(source_stream), |  | 
| 26         encoding(encoding), |  | 
| 27         hash_seed(0), |  | 
| 28         allow_lazy(false) {} |  | 
| 29 |  | 
| 30   // Internal implementation of v8::ScriptCompiler::StreamedSource. |  | 
| 31   SmartPointer<ScriptCompiler::ExternalSourceStream> source_stream; |  | 
| 32   ScriptCompiler::StreamedSource::Encoding encoding; |  | 
| 33   SmartPointer<ScriptCompiler::CachedData> cached_data; |  | 
| 34 |  | 
| 35   // Data needed for parsing, and data needed to to be passed between thread |  | 
| 36   // between parsing and compilation. These need to be initialized before the |  | 
| 37   // compilation starts. |  | 
| 38   UnicodeCache unicode_cache; |  | 
| 39   SmartPointer<CompilationInfo> info; |  | 
| 40   uint32_t hash_seed; |  | 
| 41   bool allow_lazy; |  | 
| 42   SmartPointer<Parser> parser; |  | 
| 43 |  | 
| 44  private: |  | 
| 45   // Prevent copying. Not implemented. |  | 
| 46   StreamedSource(const StreamedSource&); |  | 
| 47   StreamedSource& operator=(const StreamedSource&); |  | 
| 48 }; |  | 
| 49 |  | 
| 50 |  | 
| 51 class BackgroundParsingTask : public ScriptCompiler::ScriptStreamingTask { |  | 
| 52  public: |  | 
| 53   BackgroundParsingTask(StreamedSource* source, |  | 
| 54                         ScriptCompiler::CompileOptions options, int stack_size, |  | 
| 55                         Isolate* isolate); |  | 
| 56 |  | 
| 57   virtual void Run(); |  | 
| 58 |  | 
| 59  private: |  | 
| 60   StreamedSource* source_;  // Not owned. |  | 
| 61   ScriptCompiler::CompileOptions options_; |  | 
| 62   int stack_size_; |  | 
| 63 }; |  | 
| 64 } |  | 
| 65 }  // namespace v8::internal |  | 
| 66 |  | 
| 67 #endif  // V8_BACKGROUND_PARSING_TASK_H_ |  | 
| OLD | NEW | 
|---|