@@ -14,7 +14,7 @@ JITTimeFunctionBody::JITTimeFunctionBody(FunctionBodyDataIDL * bodyData) :
14
14
/* static */
15
15
void
16
16
JITTimeFunctionBody::InitializeJITFunctionData (
17
- __in Recycler * recycler ,
17
+ __in ArenaAllocator * arena ,
18
18
__in Js::FunctionBody *functionBody,
19
19
__out FunctionBodyDataIDL * jitBody)
20
20
{
@@ -27,9 +27,9 @@ JITTimeFunctionBody::InitializeJITFunctionData(
27
27
jitBody->constTable = (intptr_t *)functionBody->GetConstTable ();
28
28
if (!functionBody->GetIsAsmJsFunction ())
29
29
{
30
- jitBody->constTableContent = RecyclerNewStructZ (recycler , ConstTableContentIDL);
30
+ jitBody->constTableContent = AnewStructZ (arena , ConstTableContentIDL);
31
31
jitBody->constTableContent ->count = functionBody->GetConstantCount ();
32
- jitBody->constTableContent ->content = RecyclerNewArrayZ (recycler , RecyclableObjectIDL*, functionBody->GetConstantCount ());
32
+ jitBody->constTableContent ->content = AnewArrayZ (arena , RecyclableObjectIDL*, functionBody->GetConstantCount ());
33
33
34
34
for (Js::RegSlot reg = Js::FunctionBody::FirstRegSlot; reg < functionBody->GetConstantCount (); ++reg)
35
35
{
@@ -68,7 +68,7 @@ JITTimeFunctionBody::InitializeJITFunctionData(
68
68
69
69
auto fullStatementMaps = functionBody->GetStatementMaps ();
70
70
jitBody->fullStatementMapCount = fullStatementMaps->Count ();
71
- jitBody->fullStatementMaps = RecyclerNewArrayZ (recycler , StatementMapIDL, jitBody->fullStatementMapCount );
71
+ jitBody->fullStatementMaps = AnewArrayZ (arena , StatementMapIDL, jitBody->fullStatementMapCount );
72
72
fullStatementMaps->Map ([jitBody](int index, Js::FunctionBody::StatementMap * map) {
73
73
74
74
jitBody->fullStatementMaps [index] = *(StatementMapIDL*)map;
@@ -80,10 +80,11 @@ JITTimeFunctionBody::InitializeJITFunctionData(
80
80
Assert ((jitBody->fullStatementMaps [index].isSubExpression != FALSE ) == map->isSubexpression );
81
81
});
82
82
83
- if (functionBody->GetPropertyIdOnRegSlotsContainer ())
83
+ Js::PropertyIdOnRegSlotsContainer * propOnRegSlots = functionBody->GetPropertyIdOnRegSlotsContainerWithLock ();
84
+ if (propOnRegSlots)
84
85
{
85
- jitBody->propertyIdsForRegSlotsCount = functionBody-> GetPropertyIdOnRegSlotsContainer () ->length ;
86
- jitBody->propertyIdsForRegSlots = functionBody-> GetPropertyIdOnRegSlotsContainer () ->propertyIdsForRegSlots ;
86
+ jitBody->propertyIdsForRegSlotsCount = propOnRegSlots ->length ;
87
+ jitBody->propertyIdsForRegSlots = propOnRegSlots ->propertyIdsForRegSlots ;
87
88
}
88
89
}
89
90
else
@@ -93,7 +94,7 @@ JITTimeFunctionBody::InitializeJITFunctionData(
93
94
jitBody->byteCodeLength = functionBody->GetByteCode ()->GetLength ();
94
95
jitBody->byteCodeBuffer = functionBody->GetByteCode ()->GetBuffer ();
95
96
96
- jitBody->statementMap = RecyclerNewStructZ (recycler , SmallSpanSequenceIDL);
97
+ jitBody->statementMap = AnewStructZ (arena , SmallSpanSequenceIDL);
97
98
jitBody->statementMap ->baseValue = statementMap->baseValue ;
98
99
99
100
if (statementMap->pActualOffsetList )
@@ -143,18 +144,19 @@ JITTimeFunctionBody::InitializeJITFunctionData(
143
144
jitBody->nonLoadByteCodeCount = functionBody->GetByteCodeWithoutLDACount ();
144
145
jitBody->loopCount = functionBody->GetLoopCount ();
145
146
146
- if (functionBody->GetHasAllocatedLoopHeaders ())
147
+ Js::LoopHeader * loopHeaders = functionBody->GetLoopHeaderArrayWithLock ();
148
+ if (loopHeaders != nullptr )
147
149
{
148
- jitBody->loopHeaderArrayAddr = (intptr_t )functionBody-> GetLoopHeaderArrayPtr () ;
150
+ jitBody->loopHeaderArrayAddr = (intptr_t )loopHeaders ;
149
151
jitBody->loopHeaderArrayLength = functionBody->GetLoopCount ();
150
- jitBody->loopHeaders = RecyclerNewArray (recycler , JITLoopHeaderIDL, functionBody->GetLoopCount ());
152
+ jitBody->loopHeaders = AnewArray (arena , JITLoopHeaderIDL, functionBody->GetLoopCount ());
151
153
for (uint i = 0 ; i < functionBody->GetLoopCount (); ++i)
152
154
{
153
- jitBody->loopHeaders [i].startOffset = functionBody-> GetLoopHeader (i)-> startOffset ;
154
- jitBody->loopHeaders [i].endOffset = functionBody-> GetLoopHeader (i)-> endOffset ;
155
- jitBody->loopHeaders [i].isNested = functionBody-> GetLoopHeader (i)-> isNested ;
156
- jitBody->loopHeaders [i].isInTry = functionBody-> GetLoopHeader (i)-> isInTry ;
157
- jitBody->loopHeaders [i].interpretCount = functionBody->GetLoopInterpretCount (functionBody-> GetLoopHeader (i) );
155
+ jitBody->loopHeaders [i].startOffset = loopHeaders[i]. startOffset ;
156
+ jitBody->loopHeaders [i].endOffset = loopHeaders[i]. endOffset ;
157
+ jitBody->loopHeaders [i].isNested = loopHeaders[i]. isNested ;
158
+ jitBody->loopHeaders [i].isInTry = loopHeaders[i]. isInTry ;
159
+ jitBody->loopHeaders [i].interpretCount = functionBody->GetLoopInterpretCount (&loopHeaders[i] );
158
160
}
159
161
}
160
162
@@ -169,7 +171,6 @@ JITTimeFunctionBody::InitializeJITFunctionData(
169
171
jitBody->firstInnerScopeReg = functionBody->GetFirstInnerScopeRegister ();
170
172
}
171
173
jitBody->envDepth = functionBody->GetEnvDepth ();
172
- jitBody->profiledIterations = functionBody->GetProfiledIterations ();
173
174
jitBody->profiledCallSiteCount = functionBody->GetProfiledCallSiteCount ();
174
175
jitBody->inParamCount = functionBody->GetInParamsCount ();
175
176
jitBody->thisRegisterForEventHandler = functionBody->GetThisRegisterForEventHandler ();
@@ -209,17 +210,18 @@ JITTimeFunctionBody::InitializeJITFunctionData(
209
210
jitBody->hasNonBuiltInCallee = functionBody->HasNonBuiltInCallee ();
210
211
}
211
212
212
- if (functionBody->GetAuxiliaryData () != nullptr )
213
+ Js::ByteBlock * auxData = functionBody->GetAuxiliaryDataWithLock ();
214
+ if (auxData != nullptr )
213
215
{
214
- jitBody->auxDataCount = functionBody-> GetAuxiliaryData () ->GetLength ();
215
- jitBody->auxData = functionBody-> GetAuxiliaryData () ->GetBuffer ();
216
- jitBody->auxDataBufferAddr = (intptr_t )functionBody-> GetAuxiliaryData () ->GetBuffer ();
216
+ jitBody->auxDataCount = auxData ->GetLength ();
217
+ jitBody->auxData = auxData ->GetBuffer ();
218
+ jitBody->auxDataBufferAddr = (intptr_t )auxData ->GetBuffer ();
217
219
}
218
-
219
- if (functionBody-> GetAuxiliaryContextData () != nullptr )
220
+ Js::ByteBlock * auxContextData = functionBody-> GetAuxiliaryContextDataWithLock ();
221
+ if (auxContextData != nullptr )
220
222
{
221
- jitBody->auxContextDataCount = functionBody-> GetAuxiliaryContextData () ->GetLength ();
222
- jitBody->auxContextData = functionBody-> GetAuxiliaryContextData () ->GetBuffer ();
223
+ jitBody->auxContextDataCount = auxContextData ->GetLength ();
224
+ jitBody->auxContextData = auxContextData ->GetBuffer ();
223
225
}
224
226
225
227
jitBody->scriptIdAddr = (intptr_t )functionBody->GetAddressOfScriptId ();
@@ -230,19 +232,19 @@ JITTimeFunctionBody::InitializeJITFunctionData(
230
232
jitBody->callCountStatsAddr = (intptr_t )&functionBody->callCountStats ;
231
233
232
234
jitBody->referencedPropertyIdCount = functionBody->GetReferencedPropertyIdCount ();
233
- jitBody->referencedPropertyIdMap = functionBody->GetReferencedPropertyIdMap ();
235
+ jitBody->referencedPropertyIdMap = functionBody->GetReferencedPropertyIdMapWithLock ();
234
236
jitBody->hasFinally = functionBody->GetHasFinally ();
235
237
236
238
jitBody->nameLength = functionBody->GetDisplayNameLength () + 1 ; // +1 for null terminator
237
239
jitBody->displayName = (char16 *)functionBody->GetDisplayName ();
238
- jitBody->objectLiteralTypesAddr = (intptr_t )functionBody->GetObjectLiteralTypes ();
240
+ jitBody->objectLiteralTypesAddr = (intptr_t )functionBody->GetObjectLiteralTypesWithLock ();
239
241
jitBody->literalRegexCount = functionBody->GetLiteralRegexCount ();
240
- jitBody->literalRegexes = (intptr_t *)functionBody->GetLiteralRegexes ();
242
+ jitBody->literalRegexes = (intptr_t *)functionBody->GetLiteralRegexesWithLock ();
241
243
242
244
if (functionBody->GetIsAsmJsFunction ())
243
245
{
244
- jitBody->asmJsData = RecyclerNew (recycler , AsmJsDataIDL);
245
- Js::AsmJsFunctionInfo * asmFuncInfo = functionBody->GetAsmJsFunctionInfo ();
246
+ jitBody->asmJsData = Anew (arena , AsmJsDataIDL);
247
+ Js::AsmJsFunctionInfo * asmFuncInfo = functionBody->GetAsmJsFunctionInfoWithLock ();
246
248
jitBody->asmJsData ->intConstCount = asmFuncInfo->GetIntConstCount ();
247
249
jitBody->asmJsData ->doubleConstCount = asmFuncInfo->GetDoubleConstCount ();
248
250
jitBody->asmJsData ->floatConstCount = asmFuncInfo->GetFloatConstCount ();
@@ -504,12 +506,6 @@ JITTimeFunctionBody::GetEnvDepth() const
504
506
return m_bodyData.envDepth ;
505
507
}
506
508
507
- uint16
508
- JITTimeFunctionBody::GetProfiledIterations () const
509
- {
510
- return m_bodyData.profiledIterations ;
511
- }
512
-
513
509
Js::ProfileId
514
510
JITTimeFunctionBody::GetProfiledCallSiteCount () const
515
511
{
0 commit comments