Skip to content

Commit ab2a786

Browse files
committed
src: fixes for V8 6.9 and 7.0
- PositionInfo removed from SFI and PreParsedData ((v8/v8@39e2d97)[]) - PositionInfo is now available on ScopeInfo or UncompiledData - DebugInfo was removed from SFI ((v8/v8@c51bcd1)[]) - InferredName is available on ScopeInfo or UncompiledData ((v8/v8@c941f11)[]) - StackLocal removed from ScopeInfo ((v8/v8@467eb14)[]) - ParamCount (from ScopeInfo) size decreased ((v8/v8@53d4dfc)[]) [v8/v8@39e2d97]: v8/v8@39e2d97 [v8/v8@c51bcd1]: v8/v8@c51bcd1 [v8/v8@c941f11]: v8/v8@c941f11 [v8/v8@467eb14]: v8/v8@467eb14 [v8/v8@53d4dfc]: v8/v8@53d4dfc PR-URL: #247 Reviewed-By: Colin Ihrig <[email protected]>
1 parent 99d06e7 commit ab2a786

File tree

7 files changed

+295
-45
lines changed

7 files changed

+295
-45
lines changed

src/llv8-constants.cc

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ void JSDate::Load() {
185185

186186

187187
void SharedInfo::Load() {
188+
kFunctionDataOffset =
189+
LoadConstant("class_SharedFunctionInfo__function_data__Object");
188190
kNameOrScopeInfoOffset =
189191
LoadConstant("class_SharedFunctionInfo__name_or_scope_info__Object");
190192
kNameOffset = LoadConstant("class_SharedFunctionInfo__raw_name__Object",
@@ -193,6 +195,8 @@ void SharedInfo::Load() {
193195
LoadConstant("class_SharedFunctionInfo__inferred_name__String",
194196
"class_SharedFunctionInfo__function_identifier__Object");
195197
kScriptOffset = LoadConstant("class_SharedFunctionInfo__script__Object");
198+
kScriptOrDebugInfoOffset =
199+
LoadConstant("class_SharedFunctionInfo__script_or_debug_info__Object");
196200
kStartPositionOffset =
197201
LoadConstant("class_SharedFunctionInfo__start_position_and_type__int",
198202
"class_SharedFunctionInfo__start_position_and_type__SMI");
@@ -201,11 +205,12 @@ void SharedInfo::Load() {
201205
"class_SharedFunctionInfo__end_position__SMI");
202206
kParameterCountOffset = LoadConstant(
203207
"class_SharedFunctionInfo__internal_formal_parameter_count__int",
204-
"class_SharedFunctionInfo__internal_formal_parameter_count__SMI");
208+
"class_SharedFunctionInfo__internal_formal_parameter_count__uint16_t");
205209

206210
if (kParameterCountOffset == -1) {
207-
kParameterCountOffset =
208-
LoadConstant("class_SharedFunctionInfo__formal_parameter_count__SMI");
211+
kParameterCountOffset = LoadConstant(
212+
"class_SharedFunctionInfo__internal_formal_parameter_count__SMI",
213+
"class_SharedFunctionInfo__formal_parameter_count__SMI");
209214
}
210215

211216
// NOTE: Could potentially be -1 on v4 and v5 node, should check in llv8
@@ -229,6 +234,16 @@ void SharedInfo::Load() {
229234
}
230235

231236

237+
void UncompiledData::Load() {
238+
kInferredNameOffset =
239+
LoadConstant("class_UncompiledData__inferred_name__String");
240+
kStartPositionOffset =
241+
LoadConstant("class_UncompiledData__start_position__int32_t");
242+
kEndPositionOffset =
243+
LoadConstant("class_UncompiledData__end_position__int32_t");
244+
}
245+
246+
232247
void Code::Load() {
233248
kStartOffset = LoadConstant("class_Code__instruction_start__uintptr_t");
234249
kSizeOffset = LoadConstant("class_Code__instruction_size__int");
@@ -238,6 +253,7 @@ void Code::Load() {
238253
void ScopeInfo::Load() {
239254
kParameterCountOffset = LoadConstant("scopeinfo_idx_nparams");
240255
kStackLocalCountOffset = LoadConstant("scopeinfo_idx_nstacklocals");
256+
kEmbeddedParamAndStackLocals = kStackLocalCountOffset != -1;
241257
kContextLocalCountOffset = LoadConstant("scopeinfo_idx_ncontextlocals");
242258
kVariablePartIndex = LoadConstant("scopeinfo_idx_first_vars");
243259
}
@@ -516,6 +532,12 @@ void Types::Load() {
516532
kJSDateType = LoadConstant("type_JSDate__JS_DATE_TYPE");
517533
kSharedFunctionInfoType =
518534
LoadConstant("type_SharedFunctionInfo__SHARED_FUNCTION_INFO_TYPE");
535+
kUncompiledDataWithoutPreParsedScopeType = LoadConstant(
536+
"type_UncompiledDataWithoutPreParsedScope__UNCOMPILED_DATA_WITHOUT_PRE_"
537+
"PARSED_SCOPE_TYPE");
538+
kUncompiledDataWithPreParsedScopeType = LoadConstant(
539+
"type_UncompiledDataWithPreParsedScope__UNCOMPILED_DATA_WITH_PRE_PARSED_"
540+
"SCOPE_TYPE");
519541
kScriptType = LoadConstant("type_Script__SCRIPT_TYPE");
520542
kScopeInfoType = LoadConstant("type_ScopeInfo__SCOPE_INFO_TYPE");
521543
kSymbolType = LoadConstant("type_Symbol__SYMBOL_TYPE");

src/llv8-constants.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,12 @@ class SharedInfo : public Module {
157157
int64_t kNameOffset;
158158
int64_t kInferredNameOffset;
159159
int64_t kScriptOffset;
160+
int64_t kScriptOrDebugInfoOffset;
160161
int64_t kStartPositionOffset;
161162
int64_t kEndPositionOffset;
162163
int64_t kParameterCountOffset;
163164
int64_t kScopeInfoOffset;
165+
int64_t kFunctionDataOffset;
164166

165167
int64_t kStartPositionMask;
166168
int64_t kStartPositionShift;
@@ -170,6 +172,18 @@ class SharedInfo : public Module {
170172
void Load();
171173
};
172174

175+
class UncompiledData : public Module {
176+
public:
177+
CONSTANTS_DEFAULT_METHODS(UncompiledData);
178+
179+
int64_t kInferredNameOffset;
180+
int64_t kStartPositionOffset;
181+
int64_t kEndPositionOffset;
182+
183+
protected:
184+
void Load();
185+
};
186+
173187
class Code : public Module {
174188
public:
175189
CONSTANTS_DEFAULT_METHODS(Code)
@@ -188,6 +202,7 @@ class ScopeInfo : public Module {
188202
int64_t kParameterCountOffset;
189203
int64_t kStackLocalCountOffset;
190204
int64_t kContextLocalCountOffset;
205+
bool kEmbeddedParamAndStackLocals;
191206
int64_t kVariablePartIndex;
192207

193208
protected:
@@ -508,6 +523,8 @@ class Types : public Module {
508523
int64_t kJSRegExpType;
509524
int64_t kJSDateType;
510525
int64_t kSharedFunctionInfoType;
526+
int64_t kUncompiledDataWithoutPreParsedScopeType;
527+
int64_t kUncompiledDataWithPreParsedScopeType;
511528
int64_t kScriptType;
512529
int64_t kScopeInfoType;
513530
int64_t kSymbolType;

0 commit comments

Comments
 (0)