5#ifndef INCLUDE_V8_SCRIPT_H_
6#define INCLUDE_V8_SCRIPT_H_
32class BackgroundDeserializeTask;
33struct ScriptStreamingData;
91 static const int kNoScriptId = 0;
118 : line_number_(line_number), column_number_(column_number) {}
155 return GetImportAttributes();
161 static void CheckCast(
Data* obj);
322 static void CheckCast(
Data* obj);
388 buffer_policy(BufferNotOwned) {}
402 kMagicNumberMismatch = 1,
403 kVersionMismatch = 2,
406 kChecksumMismatch = 6,
409 kReadOnlySnapshotChecksumMismatch = 9,
412 kLast = kReadOnlySnapshotChecksumMismatch
450 InMemoryCacheResult::kNotAttempted;
452 static constexpr int64_t kTimeNotMeasured = -1;
453 int64_t foreground_time_in_microseconds = kTimeNotMeasured;
454 int64_t background_time_in_microseconds = kTimeNotMeasured;
491 int resource_line_offset = -1;
492 int resource_column_offset = -1;
500 std::unique_ptr<CachedData> cached_data;
501 std::unique_ptr<ConsumeCodeCacheTask> consume_cache_task;
505 void* compile_hint_callback_data =
nullptr;
552 enum Encoding { ONE_BYTE, TWO_BYTE, UTF8, WINDOWS_1252 };
558 internal::ScriptStreamingData*
impl()
const {
return impl_.get(); }
567 std::unique_ptr<internal::ScriptStreamingData> impl_;
588 internal::ScriptStreamingData* data_;
636 std::unique_ptr<internal::BackgroundDeserializeTask> impl);
638 std::unique_ptr<internal::BackgroundDeserializeTask> impl_;
642 kNoCompileOptions = 0,
653 kNoCacheNoReason = 0,
667 kNoCacheBecauseDeferredProduceCodeCache
721 void* compile_hint_callback_data =
nullptr);
724 Isolate* isolate, std::unique_ptr<CachedData> source);
792 Local<String> arguments[] =
nullptr,
size_t context_extension_count = 0,
836 : source_string(string),
837 resource_name(origin.ResourceName()),
838 resource_line_offset(origin.LineOffset()),
839 resource_column_offset(origin.ColumnOffset()),
840 resource_options(origin.Options()),
841 source_map_url(origin.SourceMapUrl()),
842 host_defined_options(origin.GetHostDefinedOptions()),
844 consume_cache_task(consume_cache_task) {}
848 : source_string(string),
850 consume_cache_task(consume_cache_task) {}
855 : source_string(string),
856 resource_name(origin.ResourceName()),
857 resource_line_offset(origin.LineOffset()),
858 resource_column_offset(origin.ColumnOffset()),
859 resource_options(origin.Options()),
860 source_map_url(origin.SourceMapUrl()),
861 host_defined_options(origin.GetHostDefinedOptions()),
862 compile_hint_callback(callback),
863 compile_hint_callback_data(callback_data) {}
867 return cached_data.get();
871 return resource_options;
876 return compilation_details;
880#ifdef V8_ENABLE_CHECKS
887#ifdef V8_ENABLE_CHECKS
890 return reinterpret_cast<Module*
>(data);
Definition: v8-isolate.h:210
Definition: v8-local-handle.h:483
Definition: v8-local-handle.h:258
Definition: v8-script.h:112
int GetLineNumber()
Definition: v8-script.h:114
Location(int line_number, int column_number)
Definition: v8-script.h:117
int GetColumnNumber()
Definition: v8-script.h:115
Definition: v8-local-handle.h:619
Definition: v8-maybe.h:32
Definition: v8-memory-span.h:29
Definition: v8-script.h:125
static ModuleRequest * Cast(Data *data)
Definition: v8-script.h:879
Local< FixedArray > GetImportAttributes() const
Local< String > GetSpecifier() const
int GetSourceOffset() const
Definition: v8-script.h:167
Location SourceOffsetToLocation(int offset) const
MaybeLocal< Value > Evaluate(Local< Context > context)
Local< Value > GetModuleNamespace()
Maybe< bool > SetSyntheticModuleExport(Isolate *isolate, Local< String > export_name, Local< Value > export_value)
Local< FixedArray > GetModuleRequests() const
bool IsGraphAsync() const
Maybe< bool > InstantiateModule(Local< Context > context, ResolveModuleCallback callback)
bool IsSyntheticModule() const
Local< Value > GetException() const
std::pair< LocalVector< Module >, LocalVector< Message > > GetStalledTopLevelAwaitMessages(Isolate *isolate)
Status
Definition: v8-script.h:176
@ kInstantiating
Definition: v8-script.h:178
@ kInstantiated
Definition: v8-script.h:179
@ kUninstantiated
Definition: v8-script.h:177
@ kEvaluating
Definition: v8-script.h:180
@ kEvaluated
Definition: v8-script.h:181
int GetIdentityHash() const
static Local< Module > CreateSyntheticModule(Isolate *isolate, Local< String > module_name, const MemorySpan< const Local< String > > &export_names, SyntheticModuleEvaluationSteps evaluation_steps)
Local< UnboundModuleScript > GetUnboundModuleScript()
static Module * Cast(Data *data)
Definition: v8-script.h:886
bool IsSourceTextModule() const
Definition: v8-script.h:596
void MergeWithExistingScript()
bool ShouldMergeWithExistingScript() const
void SourceTextAvailable(Isolate *isolate, Local< String > source_text, const ScriptOrigin &origin)
Definition: v8-script.h:516
virtual size_t GetMoreData(const uint8_t **src)=0
virtual ~ExternalSourceStream()=default
Definition: v8-script.h:578
Definition: v8-script.h:460
Source(Local< String > source_string, const ScriptOrigin &origin, CachedData *cached_data=nullptr, ConsumeCodeCacheTask *consume_cache_task=nullptr)
Definition: v8-script.h:833
const CompilationDetails & GetCompilationDetails() const
Definition: v8-script.h:875
const CachedData * GetCachedData() const
Definition: v8-script.h:865
const ScriptOriginOptions & GetResourceOptions() const
Definition: v8-script.h:870
Definition: v8-script.h:550
internal::ScriptStreamingData * impl() const
Definition: v8-script.h:558
Encoding
Definition: v8-script.h:552
CompilationDetails & compilation_details()
Definition: v8-script.h:564
StreamedSource & operator=(const StreamedSource &)=delete
StreamedSource(const StreamedSource &)=delete
StreamedSource(std::unique_ptr< ExternalSourceStream > source_stream, Encoding encoding)
Definition: v8-script.h:370
static CachedData * CreateCodeCacheForFunction(Local< Function > function)
static MaybeLocal< Function > CompileFunction(Local< Context > context, Source *source, size_t arguments_count=0, Local< String > arguments[]=nullptr, size_t context_extension_count=0, Local< Object > context_extensions[]=nullptr, CompileOptions options=kNoCompileOptions, NoCacheReason no_cache_reason=kNoCacheNoReason)
InMemoryCacheResult
Definition: v8-script.h:430
static CachedData * CreateCodeCache(Local< UnboundModuleScript > unbound_module_script)
NoCacheReason
Definition: v8-script.h:652
@ kNoCacheBecausePacScript
Definition: v8-script.h:664
@ kNoCacheBecauseV8Extension
Definition: v8-script.h:662
@ kNoCacheBecauseStreamingSource
Definition: v8-script.h:658
@ kNoCacheBecauseNoResource
Definition: v8-script.h:655
@ kNoCacheBecauseInspector
Definition: v8-script.h:659
@ kNoCacheBecauseCacheTooCold
Definition: v8-script.h:661
@ kNoCacheBecauseScriptTooSmall
Definition: v8-script.h:660
@ kNoCacheBecauseCachingDisabled
Definition: v8-script.h:654
@ kNoCacheBecauseExtensionModule
Definition: v8-script.h:663
@ kNoCacheBecauseInlineScript
Definition: v8-script.h:656
@ kNoCacheBecauseInDocumentWrite
Definition: v8-script.h:665
@ kNoCacheBecauseModule
Definition: v8-script.h:657
@ kNoCacheBecauseResourceWithNoCacheHandler
Definition: v8-script.h:666
static CachedData * CreateCodeCache(Local< UnboundScript > unbound_script)
static MaybeLocal< Module > CompileModule(Local< Context > context, StreamedSource *v8_source, Local< String > full_source_string, const ScriptOrigin &origin)
CompileOptions
Definition: v8-script.h:641
@ kEagerCompile
Definition: v8-script.h:644
@ kProduceCompileHints
Definition: v8-script.h:645
@ kConsumeCodeCache
Definition: v8-script.h:643
static MaybeLocal< Script > Compile(Local< Context > context, StreamedSource *source, Local< String > full_source_string, const ScriptOrigin &origin)
static MaybeLocal< Script > Compile(Local< Context > context, Source *source, CompileOptions options=kNoCompileOptions, NoCacheReason no_cache_reason=kNoCacheNoReason)
static ScriptStreamingTask * StartStreaming(Isolate *isolate, StreamedSource *source, ScriptType type=ScriptType::kClassic, CompileOptions options=kNoCompileOptions, CompileHintCallback compile_hint_callback=nullptr, void *compile_hint_callback_data=nullptr)
static uint32_t CachedDataVersionTag()
static MaybeLocal< UnboundScript > CompileUnboundScript(Isolate *isolate, Source *source, CompileOptions options=kNoCompileOptions, NoCacheReason no_cache_reason=kNoCacheNoReason)
static ConsumeCodeCacheTask * StartConsumingCodeCache(Isolate *isolate, std::unique_ptr< CachedData > source)
static MaybeLocal< Module > CompileModule(Isolate *isolate, Source *source, CompileOptions options=kNoCompileOptions, NoCacheReason no_cache_reason=kNoCacheNoReason)
Definition: v8-script.h:42
Local< Value > GetResourceName()
Local< Data > HostDefinedOptions()
Definition: v8-message.h:28
Definition: v8-message.h:62
Definition: v8-script.h:329
static MaybeLocal< Script > Compile(Local< Context > context, Local< String > source, ScriptOrigin *origin=nullptr)
MaybeLocal< Value > Run(Local< Context > context)
Local< UnboundScript > GetUnboundScript()
std::vector< int > GetProducedCompileHints() const
MaybeLocal< Value > Run(Local< Context > context, Local< Data > host_defined_options)
Local< Value > GetResourceName()
Definition: v8-script.h:97
Local< Value > GetSourceURL()
Local< Value > GetSourceMappingURL()
Definition: v8-script.h:60
int GetColumnNumber(int code_pos=0)
Local< Value > GetSourceMappingURL()
Local< Value > GetScriptName()
int GetLineNumber(int code_pos=0)
Local< Value > GetSourceURL()
Local< Script > BindToCurrentContext()
Definition: libplatform.h:15
bool(*)(int, void *) CompileHintCallback
Definition: v8-callbacks.h:380
ScriptType
Definition: v8-script.h:365
Definition: v8-script.h:381
BufferPolicy buffer_policy
Definition: v8-script.h:423
const uint8_t * data
Definition: v8-script.h:420
CachedData(const CachedData &)=delete
CompatibilityCheckResult
Definition: v8-script.h:398
bool rejected
Definition: v8-script.h:422
CachedData(const uint8_t *data, int length, BufferPolicy buffer_policy=BufferNotOwned)
BufferPolicy
Definition: v8-script.h:382
@ BufferNotOwned
Definition: v8-script.h:382
CachedData()
Definition: v8-script.h:384
int length
Definition: v8-script.h:421
CompatibilityCheckResult CompatibilityCheck(Isolate *isolate)
CachedData & operator=(const CachedData &)=delete
Definition: v8-script.h:448
#define V8_EXPORT
Definition: v8config.h:762
#define V8_INLINE
Definition: v8config.h:477
#define V8_DEPRECATE_SOON(message)
Definition: v8config.h:580
#define V8_WARN_UNUSED_RESULT
Definition: v8config.h:637