Skip to content

Commit 1a62094

Browse files
kvakilNo9
authored andcommitted
src: remove ScopeInfo/SharedInfo fields
* `kScriptOffset` is never present (it's replaced by `kScriptOrDebugInfoOffset`) * `kScopeInfoOffset` also no longer present. Simplify the resulting branch. * `kStackLocalCountOffset` is no longer present, making `kEmbeddedParamAndStackLocals` always false. Remove some dead code as a result.
1 parent 27f0082 commit 1a62094

5 files changed

Lines changed: 3 additions & 58 deletions

File tree

src/llv8-constants.cc

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,6 @@ void SharedInfo::Load() {
192192
kInferredNameOffset =
193193
LoadConstant("class_SharedFunctionInfo__inferred_name__String",
194194
"class_SharedFunctionInfo__function_identifier__Object");
195-
kScriptOffset = LoadConstant("class_SharedFunctionInfo__script__Object");
196195
kScriptOrDebugInfoOffset = LoadConstant(
197196
{"class_SharedFunctionInfo__script_or_debug_info__Object",
198197
"class_SharedFunctionInfo__script_or_debug_info__HeapObject"});
@@ -212,18 +211,9 @@ void SharedInfo::Load() {
212211
"class_SharedFunctionInfo__formal_parameter_count__SMI");
213212
}
214213

215-
// NOTE: Could potentially be -1 on v4 and v5 node, should check in llv8
216-
kScopeInfoOffset =
217-
LoadConstant("class_SharedFunctionInfo__scope_info__ScopeInfo");
218-
219-
kStartPositionMask = LoadConstant("sharedfunctioninfo_start_position_mask");
220-
kStartPositionShift = LoadConstant("sharedfunctioninfo_start_position_shift");
221-
222-
if (kStartPositionShift == -1) {
223-
// TODO(indutny): check version?
224-
kStartPositionShift = 2;
225-
kStartPositionMask = ~((1 << kStartPositionShift) - 1);
226-
}
214+
// TODO: this should use postmortem data.
215+
kStartPositionShift = 2;
216+
kStartPositionMask = ~((1 << kStartPositionShift) - 1);
227217

228218
if (LoadConstant("class_SharedFunctionInfo__compiler_hints__int") == -1 &&
229219
kNameOrScopeInfoOffset == -1)
@@ -251,8 +241,6 @@ void Code::Load() {
251241

252242
void ScopeInfo::Load() {
253243
kParameterCountOffset = LoadConstant("scopeinfo_idx_nparams");
254-
kStackLocalCountOffset = LoadConstant("scopeinfo_idx_nstacklocals");
255-
kEmbeddedParamAndStackLocals = kStackLocalCountOffset != -1;
256244
kContextLocalCountOffset = LoadConstant("scopeinfo_idx_ncontextlocals");
257245
kVariablePartIndex = LoadConstant("scopeinfo_idx_first_vars");
258246
// Prior to Node.js v16, ScopeInfo inherited from FixedArray. In release

src/llv8-constants.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,10 @@ class SharedInfo : public Module {
158158
int64_t kNameOrScopeInfoOffset;
159159
int64_t kNameOffset;
160160
int64_t kInferredNameOffset;
161-
int64_t kScriptOffset;
162161
Constant<int64_t> kScriptOrDebugInfoOffset;
163162
int64_t kStartPositionOffset;
164163
int64_t kEndPositionOffset;
165164
int64_t kParameterCountOffset;
166-
int64_t kScopeInfoOffset;
167165
int64_t kFunctionDataOffset;
168166

169167
int64_t kStartPositionMask;
@@ -202,9 +200,7 @@ class ScopeInfo : public Module {
202200
CONSTANTS_DEFAULT_METHODS(ScopeInfo);
203201

204202
int64_t kParameterCountOffset;
205-
int64_t kStackLocalCountOffset;
206203
int64_t kContextLocalCountOffset;
207-
bool kEmbeddedParamAndStackLocals;
208204
int64_t kVariablePartIndex;
209205
bool kIsFixedArray;
210206

src/llv8-inl.h

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -481,11 +481,8 @@ ACCESSOR(SharedFunctionInfo, function_data, shared_info()->kFunctionDataOffset,
481481
ACCESSOR(SharedFunctionInfo, name, shared_info()->kNameOffset, String)
482482
ACCESSOR(SharedFunctionInfo, inferred_name, shared_info()->kInferredNameOffset,
483483
Value)
484-
ACCESSOR(SharedFunctionInfo, script, shared_info()->kScriptOffset, Script)
485484
SAFE_ACCESSOR(SharedFunctionInfo, script_or_debug_info,
486485
shared_info()->kScriptOrDebugInfoOffset, HeapObject)
487-
ACCESSOR(SharedFunctionInfo, scope_info, shared_info()->kScopeInfoOffset,
488-
HeapObject)
489486
ACCESSOR(SharedFunctionInfo, name_or_scope_info,
490487
shared_info()->kNameOrScopeInfoOffset, HeapObject)
491488

@@ -521,8 +518,6 @@ Value SharedFunctionInfo::GetInferredName(Error& err) {
521518
}
522519

523520
HeapObject SharedFunctionInfo::GetScopeInfo(Error& err) {
524-
if (v8()->shared_info()->kNameOrScopeInfoOffset == -1) return scope_info(err);
525-
526521
HeapObject maybe_scope_info = name_or_scope_info(err);
527522
if (!String::IsString(v8(), maybe_scope_info, err)) return maybe_scope_info;
528523

@@ -531,10 +526,6 @@ HeapObject SharedFunctionInfo::GetScopeInfo(Error& err) {
531526
}
532527

533528
Script SharedFunctionInfo::GetScript(Error& err) {
534-
if (!v8()->shared_info()->kScriptOrDebugInfoOffset.Loaded()) {
535-
return script(err);
536-
}
537-
538529
HeapObject maybe_script = script_or_debug_info(err);
539530
if (maybe_script.IsScript(err)) return maybe_script;
540531

@@ -1096,18 +1087,6 @@ inline Smi ScopeInfo::ParameterCount(Error& err) {
10961087
err);
10971088
}
10981089

1099-
inline Smi ScopeInfo::StackLocalCount(Error& err) {
1100-
if (v8()->scope_info()->kStackLocalCountOffset == -1) {
1101-
return Smi(v8(), 0);
1102-
}
1103-
int64_t data_offset =
1104-
v8()->scope_info()->kIsFixedArray ? v8()->fixed_array()->kDataOffset : 0;
1105-
return HeapObject::LoadFieldValue<Smi>(
1106-
data_offset + v8()->scope_info()->kStackLocalCountOffset *
1107-
v8()->common()->kPointerSize,
1108-
err);
1109-
}
1110-
11111090
inline Smi ScopeInfo::ContextLocalCount(Error& err) {
11121091
int64_t data_offset = v8()->scope_info()->kIsFixedArray
11131092
? v8()->fixed_array()->kDataOffset
@@ -1120,16 +1099,6 @@ inline Smi ScopeInfo::ContextLocalCount(Error& err) {
11201099

11211100
inline int ScopeInfo::ContextLocalIndex(Error& err) {
11221101
int context_local_index = v8()->scope_info()->kVariablePartIndex;
1123-
1124-
if (v8()->scope_info()->kEmbeddedParamAndStackLocals) {
1125-
Smi param_count = ParameterCount(err);
1126-
if (err.Fail()) return -1;
1127-
context_local_index += param_count.GetValue() + 1;
1128-
1129-
Smi stack_local = StackLocalCount(err);
1130-
if (err.Fail()) return -1;
1131-
context_local_index += stack_local.GetValue();
1132-
}
11331102
return context_local_index;
11341103
}
11351104

src/llv8.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,9 @@ class SharedFunctionInfo : public HeapObject {
217217

218218
private:
219219
inline String name(Error& err);
220-
inline Script script(Error& err);
221220
inline HeapObject script_or_debug_info(Error& err);
222221
inline Value inferred_name(Error& err);
223222
inline Value function_data(Error& err);
224-
inline HeapObject scope_info(Error& err);
225223
inline HeapObject name_or_scope_info(Error& err);
226224
};
227225

@@ -520,7 +518,6 @@ class ScopeInfo : public HeapObject {
520518
};
521519

522520
inline Smi ParameterCount(Error& err);
523-
inline Smi StackLocalCount(Error& err);
524521
inline Smi ContextLocalCount(Error& err);
525522
inline int ContextLocalIndex(Error& err);
526523
inline PositionInfo MaybePositionInfo(Error& err);

src/printer.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,6 @@ std::string Printer::Stringify(v8::FixedArray fixed_array, Error& err) {
203203

204204
template <>
205205
std::string Printer::Stringify(v8::Context ctx, Error& err) {
206-
// Not enough postmortem information, return bare minimum
207-
if (llv8_->shared_info()->kScopeInfoOffset == -1 &&
208-
llv8_->shared_info()->kNameOrScopeInfoOffset == -1)
209-
return std::string();
210-
211206
std::string res = "<Context";
212207

213208
if (!options_.detailed) {

0 commit comments

Comments
 (0)