Bug 1435327 - Fix error checking while constructing module syntax error r=bbouvier

This commit is contained in:
Jon Coppeard 2018-02-06 11:53:39 +00:00
Родитель a2b70a9f55
Коммит 0cb35f87a6
2 изменённых файлов: 35 добавлений и 0 удалений

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

@ -0,0 +1,32 @@
if (!('oomTest' in this))
quit();
lfLogBuffer = `
let moduleRepo = {};
setModuleResolveHook(function(x, specifier) {
return moduleRepo[specifier];
});
let c = moduleRepo['c'] = parseModule("");
let d = moduleRepo['d'] = parseModule("import { a } from 'c'; a;");
d.declarationInstantiation();
`;
lfLogBuffer = lfLogBuffer.split('\n');
var lfCodeBuffer = "";
while (true) {
var line = lfLogBuffer.shift();
if (line == null) {
break;
} else {
lfCodeBuffer += line + "\n";
}
}
if (lfCodeBuffer) loadFile(lfCodeBuffer);
function loadFile(lfVarx) {
try {
oomTest(function() {
let m = parseModule(lfVarx);
m.declarationInstantiation();
m.evaluation();
});
} catch (lfVare) {}
}

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

@ -380,6 +380,9 @@ intrinsic_CreateModuleSyntaxError(JSContext* cx, unsigned argc, Value* vp)
RootedModuleObject module(cx, &args[0].toObject().as<ModuleObject>());
RootedString filename(cx, JS_NewStringCopyZ(cx, module->script()->filename()));
if (!filename)
return false;
RootedString message(cx, args[3].toString());
RootedValue error(cx);