v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8-message.h
Go to the documentation of this file.
1// Copyright 2021 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 INCLUDE_V8_MESSAGE_H_
6#define INCLUDE_V8_MESSAGE_H_
7
8#include <stdio.h>
9
10#include <iosfwd>
11
12#include "v8-callbacks.h" // NOLINT(build/include_directory)
13#include "v8-local-handle.h" // NOLINT(build/include_directory)
14#include "v8-maybe.h" // NOLINT(build/include_directory)
15#include "v8-primitive.h" // NOLINT(build/include_directory)
16#include "v8config.h" // NOLINT(build/include_directory)
17
18namespace v8 {
19
20class Integer;
21class PrimitiveArray;
22class StackTrace;
23class String;
24class Value;
25
30 public:
31 V8_INLINE ScriptOriginOptions(bool is_shared_cross_origin = false,
32 bool is_opaque = false, bool is_wasm = false,
33 bool is_module = false)
34 : flags_((is_shared_cross_origin ? kIsSharedCrossOrigin : 0) |
35 (is_wasm ? kIsWasm : 0) | (is_opaque ? kIsOpaque : 0) |
36 (is_module ? kIsModule : 0)) {}
40
41 bool IsSharedCrossOrigin() const {
42 return (flags_ & kIsSharedCrossOrigin) != 0;
43 }
44 bool IsOpaque() const { return (flags_ & kIsOpaque) != 0; }
45 bool IsWasm() const { return (flags_ & kIsWasm) != 0; }
46 bool IsModule() const { return (flags_ & kIsModule) != 0; }
47
48 int Flags() const { return flags_; }
49
50 private:
51 enum {
53 kIsOpaque = 1 << 1,
54 kIsWasm = 1 << 2,
55 kIsModule = 1 << 3
56 };
57 const int flags_;
58};
59
64 public:
66 int resource_line_offset = 0,
67 int resource_column_offset = 0,
68 bool resource_is_shared_cross_origin = false,
69 int script_id = -1,
70 Local<Value> source_map_url = Local<Value>(),
71 bool resource_is_opaque = false, bool is_wasm = false,
72 bool is_module = false,
73 Local<Data> host_defined_options = Local<Data>())
74 : resource_name_(resource_name),
75 resource_line_offset_(resource_line_offset),
76 resource_column_offset_(resource_column_offset),
77 options_(resource_is_shared_cross_origin, resource_is_opaque, is_wasm,
78 is_module),
79 script_id_(script_id),
80 source_map_url_(source_map_url),
81 host_defined_options_(host_defined_options) {
82 VerifyHostDefinedOptions();
83 }
84
85 V8_INLINE Local<Value> ResourceName() const;
86 V8_INLINE int LineOffset() const;
87 V8_INLINE int ColumnOffset() const;
88 V8_INLINE int ScriptId() const;
89 V8_INLINE Local<Value> SourceMapUrl() const;
90 V8_INLINE Local<Data> GetHostDefinedOptions() const;
92
93 private:
94 void VerifyHostDefinedOptions() const;
102};
103
108 public:
109 Local<String> Get() const;
110
114 Isolate* GetIsolate() const;
115
117 Local<Context> context) const;
119 Local<Context> context) const;
120
125 ScriptOrigin GetScriptOrigin() const;
126
131 Local<Value> GetScriptResourceName() const;
132
138 Local<StackTrace> GetStackTrace() const;
139
143 V8_WARN_UNUSED_RESULT Maybe<int> GetLineNumber(Local<Context> context) const;
144
149 int GetStartPosition() const;
150
155 int GetEndPosition() const;
156
161 int GetWasmFunctionIndex() const;
162
166 int ErrorLevel() const;
167
172 int GetStartColumn() const;
173 V8_WARN_UNUSED_RESULT Maybe<int> GetStartColumn(Local<Context> context) const;
174
179 int GetEndColumn() const;
180 V8_WARN_UNUSED_RESULT Maybe<int> GetEndColumn(Local<Context> context) const;
181
186 bool IsSharedCrossOrigin() const;
187 bool IsOpaque() const;
188
193 static void PrintCurrentStackTrace(
194 Isolate* isolate, std::ostream& out,
195 PrintCurrentStackTraceFilterCallback should_include_frame_callback =
196 nullptr);
197
198 static const int kNoLineNumberInfo = 0;
199 static const int kNoColumnInfo = 0;
200 static const int kNoScriptIdInfo = 0;
201 static const int kNoWasmFunctionIndexInfo = -1;
202};
203
205
209
211
213
214int ScriptOrigin::ScriptId() const { return script_id_; }
215
217
218} // namespace v8
219
220#endif // INCLUDE_V8_MESSAGE_H_
bool IsModule() const
Definition v8-message.h:46
V8_INLINE ScriptOriginOptions(int flags)
Definition v8-message.h:37
bool IsOpaque() const
Definition v8-message.h:44
V8_INLINE ScriptOriginOptions(bool is_shared_cross_origin=false, bool is_opaque=false, bool is_wasm=false, bool is_module=false)
Definition v8-message.h:31
bool IsSharedCrossOrigin() const
Definition v8-message.h:41
V8_INLINE int LineOffset() const
Definition v8-message.h:210
int resource_column_offset_
Definition v8-message.h:97
V8_INLINE ScriptOrigin(Local< Value > resource_name, int resource_line_offset=0, int resource_column_offset=0, bool resource_is_shared_cross_origin=false, int script_id=-1, Local< Value > source_map_url=Local< Value >(), bool resource_is_opaque=false, bool is_wasm=false, bool is_module=false, Local< Data > host_defined_options=Local< Data >())
Definition v8-message.h:65
Local< Value > resource_name_
Definition v8-message.h:95
V8_INLINE int ScriptId() const
Definition v8-message.h:214
V8_INLINE int ColumnOffset() const
Definition v8-message.h:212
int resource_line_offset_
Definition v8-message.h:96
V8_INLINE ScriptOriginOptions Options() const
Definition v8-message.h:91
Local< Data > host_defined_options_
Definition v8-message.h:101
ScriptOriginOptions options_
Definition v8-message.h:98
Local< Value > source_map_url_
Definition v8-message.h:100
V8_INLINE Local< Value > ResourceName() const
Definition v8-message.h:204
V8_INLINE Local< Value > SourceMapUrl() const
Definition v8-message.h:216
V8_INLINE Local< Data > GetHostDefinedOptions() const
Definition v8-message.h:206
GCOptions options_
v8_inspector::String16 String
Definition string-util.h:26
bool(*)(Isolate *isolate, Local< String > script_name) PrintCurrentStackTraceFilterCallback
#define V8_EXPORT
Definition v8config.h:800
#define V8_INLINE
Definition v8config.h:500
#define V8_WARN_UNUSED_RESULT
Definition v8config.h:671
int script_id_