зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1435327 - Fix error checking while constructing module syntax error r=bbouvier
This commit is contained in:
Родитель
a2b70a9f55
Коммит
0cb35f87a6
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче