| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 /** \mainpage V8 API Reference Guide | 5 /** \mainpage V8 API Reference Guide | 
| 6  * | 6  * | 
| 7  * V8 is Google's open source JavaScript engine. | 7  * V8 is Google's open source JavaScript engine. | 
| 8  * | 8  * | 
| 9  * This set of documents provides reference material generated from the | 9  * This set of documents provides reference material generated from the | 
| 10  * V8 header file, include/v8.h. | 10  * V8 header file, include/v8.h. | 
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 123 class CallHandlerHelper; | 123 class CallHandlerHelper; | 
| 124 class EscapableHandleScope; | 124 class EscapableHandleScope; | 
| 125 template<typename T> class ReturnValue; | 125 template<typename T> class ReturnValue; | 
| 126 | 126 | 
| 127 namespace internal { | 127 namespace internal { | 
| 128 class Arguments; | 128 class Arguments; | 
| 129 class Heap; | 129 class Heap; | 
| 130 class HeapObject; | 130 class HeapObject; | 
| 131 class Isolate; | 131 class Isolate; | 
| 132 class Object; | 132 class Object; | 
| 133 struct StreamedSource; |  | 
| 134 template<typename T> class CustomArguments; | 133 template<typename T> class CustomArguments; | 
| 135 class PropertyCallbackArguments; | 134 class PropertyCallbackArguments; | 
| 136 class FunctionCallbackArguments; | 135 class FunctionCallbackArguments; | 
| 137 class GlobalHandles; | 136 class GlobalHandles; | 
| 138 } | 137 } | 
| 139 | 138 | 
| 140 | 139 | 
| 141 /** | 140 /** | 
| 142  * General purpose unique identifier. | 141  * General purpose unique identifier. | 
| 143  */ | 142  */ | 
| (...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1082     Handle<Integer> resource_line_offset; | 1081     Handle<Integer> resource_line_offset; | 
| 1083     Handle<Integer> resource_column_offset; | 1082     Handle<Integer> resource_column_offset; | 
| 1084     Handle<Boolean> resource_is_shared_cross_origin; | 1083     Handle<Boolean> resource_is_shared_cross_origin; | 
| 1085 | 1084 | 
| 1086     // Cached data from previous compilation (if a kConsume*Cache flag is | 1085     // Cached data from previous compilation (if a kConsume*Cache flag is | 
| 1087     // set), or hold newly generated cache data (kProduce*Cache flags) are | 1086     // set), or hold newly generated cache data (kProduce*Cache flags) are | 
| 1088     // set when calling a compile method. | 1087     // set when calling a compile method. | 
| 1089     CachedData* cached_data; | 1088     CachedData* cached_data; | 
| 1090   }; | 1089   }; | 
| 1091 | 1090 | 
| 1092   /** |  | 
| 1093    * For streaming incomplete script data to V8. The embedder should implement a |  | 
| 1094    * subclass of this class. |  | 
| 1095    */ |  | 
| 1096   class ExternalSourceStream { |  | 
| 1097    public: |  | 
| 1098     virtual ~ExternalSourceStream() {} |  | 
| 1099 |  | 
| 1100     /** |  | 
| 1101      * V8 calls this to request the next chunk of data from the embedder. This |  | 
| 1102      * function will be called on a background thread, so it's OK to block and |  | 
| 1103      * wait for the data, if the embedder doesn't have data yet. Returns the |  | 
| 1104      * length of the data returned. When the data ends, GetMoreData should |  | 
| 1105      * return 0. Caller takes ownership of the data. |  | 
| 1106      * |  | 
| 1107      * When streaming UTF-8 data, V8 handles multi-byte characters split between |  | 
| 1108      * two data chunks, but doesn't handle multi-byte characters split between |  | 
| 1109      * more than two data chunks. The embedder can avoid this problem by always |  | 
| 1110      * returning at least 2 bytes of data. |  | 
| 1111      * |  | 
| 1112      * If the embedder wants to cancel the streaming, they should make the next |  | 
| 1113      * GetMoreData call return 0. V8 will interpret it as end of data (and most |  | 
| 1114      * probably, parsing will fail). The streaming task will return as soon as |  | 
| 1115      * V8 has parsed the data it received so far. |  | 
| 1116      */ |  | 
| 1117     virtual size_t GetMoreData(const uint8_t** src) = 0; |  | 
| 1118   }; |  | 
| 1119 |  | 
| 1120 |  | 
| 1121   /** |  | 
| 1122    * Source code which can be streamed into V8 in pieces. It will be parsed |  | 
| 1123    * while streaming. It can be compiled after the streaming is complete. |  | 
| 1124    * StreamedSource must be kept alive while the streaming task is ran (see |  | 
| 1125    * ScriptStreamingTask below). |  | 
| 1126    */ |  | 
| 1127   class V8_EXPORT StreamedSource { |  | 
| 1128    public: |  | 
| 1129     enum Encoding { ONE_BYTE, TWO_BYTE, UTF8 }; |  | 
| 1130 |  | 
| 1131     StreamedSource(ExternalSourceStream* source_stream, Encoding encoding); |  | 
| 1132     ~StreamedSource(); |  | 
| 1133 |  | 
| 1134     // Ownership of the CachedData or its buffers is *not* transferred to the |  | 
| 1135     // caller. The CachedData object is alive as long as the StreamedSource |  | 
| 1136     // object is alive. |  | 
| 1137     const CachedData* GetCachedData() const; |  | 
| 1138 |  | 
| 1139     internal::StreamedSource* impl() const { return impl_; } |  | 
| 1140 |  | 
| 1141    private: |  | 
| 1142     // Prevent copying. Not implemented. |  | 
| 1143     StreamedSource(const StreamedSource&); |  | 
| 1144     StreamedSource& operator=(const StreamedSource&); |  | 
| 1145 |  | 
| 1146     internal::StreamedSource* impl_; |  | 
| 1147   }; |  | 
| 1148 |  | 
| 1149   /** |  | 
| 1150    * A streaming task which the embedder must run on a background thread to |  | 
| 1151    * stream scripts into V8. Returned by ScriptCompiler::StartStreamingScript. |  | 
| 1152    */ |  | 
| 1153   class ScriptStreamingTask { |  | 
| 1154    public: |  | 
| 1155     virtual ~ScriptStreamingTask() {} |  | 
| 1156     virtual void Run() = 0; |  | 
| 1157   }; |  | 
| 1158 |  | 
| 1159   enum CompileOptions { | 1091   enum CompileOptions { | 
| 1160     kNoCompileOptions = 0, | 1092     kNoCompileOptions = 0, | 
| 1161     kProduceParserCache, | 1093     kProduceParserCache, | 
| 1162     kConsumeParserCache, | 1094     kConsumeParserCache, | 
| 1163     kProduceCodeCache, | 1095     kProduceCodeCache, | 
| 1164     kConsumeCodeCache, | 1096     kConsumeCodeCache, | 
| 1165 | 1097 | 
| 1166     // Support the previous API for a transition period. | 1098     // Support the previous API for a transition period. | 
| 1167     kProduceDataToCache | 1099     kProduceDataToCache | 
| 1168   }; | 1100   }; | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 1191    * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile() | 1123    * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile() | 
| 1192    *   using pre_data speeds compilation if it's done multiple times. | 1124    *   using pre_data speeds compilation if it's done multiple times. | 
| 1193    *   Owned by caller, no references are kept when this function returns. | 1125    *   Owned by caller, no references are kept when this function returns. | 
| 1194    * \return Compiled script object, bound to the context that was active | 1126    * \return Compiled script object, bound to the context that was active | 
| 1195    *   when this function was called. When run it will always use this | 1127    *   when this function was called. When run it will always use this | 
| 1196    *   context. | 1128    *   context. | 
| 1197    */ | 1129    */ | 
| 1198   static Local<Script> Compile( | 1130   static Local<Script> Compile( | 
| 1199       Isolate* isolate, Source* source, | 1131       Isolate* isolate, Source* source, | 
| 1200       CompileOptions options = kNoCompileOptions); | 1132       CompileOptions options = kNoCompileOptions); | 
| 1201 |  | 
| 1202   /** |  | 
| 1203    * Returns a task which streams script data into V8, or NULL if the script |  | 
| 1204    * cannot be streamed. The user is responsible for running the task on a |  | 
| 1205    * background thread and deleting it. When ran, the task starts parsing the |  | 
| 1206    * script, and it will request data from the StreamedSource as needed. When |  | 
| 1207    * ScriptStreamingTask::Run exits, all data has been streamed and the script |  | 
| 1208    * can be compiled (see Compile below). |  | 
| 1209    * |  | 
| 1210    * This API allows to start the streaming with as little data as possible, and |  | 
| 1211    * the remaining data (for example, the ScriptOrigin) is passed to Compile. |  | 
| 1212    */ |  | 
| 1213   static ScriptStreamingTask* StartStreamingScript( |  | 
| 1214       Isolate* isolate, StreamedSource* source, |  | 
| 1215       CompileOptions options = kNoCompileOptions); |  | 
| 1216 |  | 
| 1217   /** |  | 
| 1218    * Compiles a streamed script (bound to current context). |  | 
| 1219    * |  | 
| 1220    * This can only be called after the streaming has finished |  | 
| 1221    * (ScriptStreamingTask has been run). V8 doesn't construct the source string |  | 
| 1222    * during streaming, so the embedder needs to pass the full source here. |  | 
| 1223    */ |  | 
| 1224   static Local<Script> Compile(Isolate* isolate, StreamedSource* source, |  | 
| 1225                                Handle<String> full_source_string, |  | 
| 1226                                const ScriptOrigin& origin); |  | 
| 1227 }; | 1133 }; | 
| 1228 | 1134 | 
| 1229 | 1135 | 
| 1230 /** | 1136 /** | 
| 1231  * An error message. | 1137  * An error message. | 
| 1232  */ | 1138  */ | 
| 1233 class V8_EXPORT Message { | 1139 class V8_EXPORT Message { | 
| 1234  public: | 1140  public: | 
| 1235   Local<String> Get() const; | 1141   Local<String> Get() const; | 
| 1236   Local<String> GetSourceLine() const; | 1142   Local<String> GetSourceLine() const; | 
| (...skipping 5689 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6926  */ | 6832  */ | 
| 6927 | 6833 | 
| 6928 | 6834 | 
| 6929 }  // namespace v8 | 6835 }  // namespace v8 | 
| 6930 | 6836 | 
| 6931 | 6837 | 
| 6932 #undef TYPE_CHECK | 6838 #undef TYPE_CHECK | 
| 6933 | 6839 | 
| 6934 | 6840 | 
| 6935 #endif  // V8_H_ | 6841 #endif  // V8_H_ | 
| OLD | NEW | 
|---|