Bug 1764737 - Add missing OOM checks in GeneralParser<ParseHandler, Unit>::exportFrom. r=mgaudet

Differential Revision: https://phabricator.services.mozilla.com/D143751
This commit is contained in:
Jonatan Klemets 2022-04-14 19:08:03 +00:00
Родитель 9887ecb7a4
Коммит a9aac08790
2 изменённых файлов: 15 добавлений и 0 удалений

Просмотреть файл

@ -5703,6 +5703,9 @@ GeneralParser<ParseHandler, Unit>::exportFrom(uint32_t begin, Node specList) {
ListNodeType importAssertionList =
handler_.newList(ParseNodeKind::ImportAssertionList, pos());
if (!importAssertionList) {
return null();
}
if (tt == TokenKind::Assert) {
tokenStream.consumeKnownToken(TokenKind::Assert,
TokenStream::SlashIsRegExp);
@ -5718,6 +5721,9 @@ GeneralParser<ParseHandler, Unit>::exportFrom(uint32_t begin, Node specList) {
BinaryNodeType moduleRequest = handler_.newModuleRequest(
moduleSpec, importAssertionList, TokenPos(moduleSpecPos, pos().end));
if (!moduleRequest) {
return null();
}
BinaryNodeType node =
handler_.newExportFromDeclaration(begin, specList, moduleRequest);

Просмотреть файл

@ -0,0 +1,9 @@
// |jit-test| skip-if: !('oomTest' in this); --fuzzing-safe; --ion-offthread-compile=off
function r(src) {
oomTest(function() {
parseModule(src);
});
}
r("export * from 'y';");
r("export * from 'y';");