|
|
@@ -251,6 +251,14 @@ namespace Js
|
|
|
SetLocalExportRecordList(moduleParseNode->localExportEntries);
|
|
|
}
|
|
|
|
|
|
+ void SourceTextModuleRecord::ReleaseParserResources()
|
|
|
+ {
|
|
|
+ if (this->parser != nullptr)
|
|
|
+ {
|
|
|
+ this->parser->ReleaseTemporaryGuestArena();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
HRESULT SourceTextModuleRecord::PostParseProcess()
|
|
|
{
|
|
|
HRESULT hr = NOERROR;
|
|
|
@@ -262,6 +270,9 @@ namespace Js
|
|
|
{
|
|
|
hr = PrepareForModuleDeclarationInitialization();
|
|
|
}
|
|
|
+
|
|
|
+ this->ReleaseParserResources();
|
|
|
+
|
|
|
return hr;
|
|
|
}
|
|
|
|
|
|
@@ -305,6 +316,8 @@ namespace Js
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ this->ReleaseParserResources();
|
|
|
+
|
|
|
if (FAILED(hr))
|
|
|
{
|
|
|
// We cannot just use the buffer in the specifier string - need to make a copy here.
|
|
|
@@ -320,6 +333,8 @@ namespace Js
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ this->ReleaseParserResources();
|
|
|
+
|
|
|
return this->promise;
|
|
|
}
|
|
|
|
|
|
@@ -915,11 +930,6 @@ namespace Js
|
|
|
childModuleRecord->GenerateRootFunction();
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
- if (this->parser != nullptr)
|
|
|
- {
|
|
|
- this->parser->ReleaseTemporaryGuestArena();
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
Var SourceTextModuleRecord::ModuleEvaluation()
|