V8
Classes | Public Types | Static Public Member Functions | List of all members
v8::ScriptCompiler Class Reference

#include <v8.h>

Classes

struct  CachedData
class  ExternalSourceStream
class  ScriptStreamingTask
class  Source
class  StreamedSource

Public Types

enum  CompileOptions {
  kNoCompileOptions = 0, kProduceParserCache, kConsumeParserCache, kProduceCodeCache,
  kConsumeCodeCache, kProduceDataToCache
}

Static Public Member Functions

static Local< UnboundScriptCompileUnbound (Isolate *isolate, Source *source, CompileOptions options=kNoCompileOptions)
static Local< ScriptCompile (Isolate *isolate, Source *source, CompileOptions options=kNoCompileOptions)
static ScriptStreamingTaskStartStreamingScript (Isolate *isolate, StreamedSource *source, CompileOptions options=kNoCompileOptions)
static Local< ScriptCompile (Isolate *isolate, StreamedSource *source, Handle< String > full_source_string, const ScriptOrigin &origin)

Detailed Description

For compiling scripts.

Member Function Documentation

static Local<Script> v8::ScriptCompiler::Compile ( Isolate isolate,
Source source,
CompileOptions  options = kNoCompileOptions 
)
static

Compiles the specified script (bound to current context).

Parameters
sourceScript source code.
pre_dataPre-parsing data, as obtained by ScriptData::PreCompile() using pre_data speeds compilation if it's done multiple times. Owned by caller, no references are kept when this function returns.
Returns
Compiled script object, bound to the context that was active when this function was called. When run it will always use this context.
static Local<Script> v8::ScriptCompiler::Compile ( Isolate isolate,
StreamedSource source,
Handle< String full_source_string,
const ScriptOrigin origin 
)
static

Compiles a streamed script (bound to current context).

This can only be called after the streaming has finished (ScriptStreamingTask has been run). V8 doesn't construct the source string during streaming, so the embedder needs to pass the full source here.

static Local<UnboundScript> v8::ScriptCompiler::CompileUnbound ( Isolate isolate,
Source source,
CompileOptions  options = kNoCompileOptions 
)
static

Compiles the specified script (context-independent). Cached data as part of the source object can be optionally produced to be consumed later to speed up compilation of identical source scripts.

Note that when producing cached data, the source must point to NULL for cached data. When consuming cached data, the cached data must have been produced by the same version of V8.

Parameters
sourceScript source code.
Returns
Compiled script object (context independent; for running it must be bound to a context).
static ScriptStreamingTask* v8::ScriptCompiler::StartStreamingScript ( Isolate isolate,
StreamedSource source,
CompileOptions  options = kNoCompileOptions 
)
static

Returns a task which streams script data into V8, or NULL if the script cannot be streamed. The user is responsible for running the task on a background thread and deleting it. When ran, the task starts parsing the script, and it will request data from the StreamedSource as needed. When ScriptStreamingTask::Run exits, all data has been streamed and the script can be compiled (see Compile below).

This API allows to start the streaming with as little data as possible, and the remaining data (for example, the ScriptOrigin) is passed to Compile.


The documentation for this class was generated from the following file: