50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
|
// Copyright 2018 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
let {session, contextGroup, Protocol} = InspectorTest.start(
|
||
|
'Checks that inspector collects old faied to parse anonymous scripts.');
|
||
|
|
||
|
(async function main() {
|
||
|
Protocol.Debugger.enable();
|
||
|
const scriptIds = [];
|
||
|
Protocol.Debugger.onScriptFailedToParse(
|
||
|
message => scriptIds.push(message.params.scriptId));
|
||
|
InspectorTest.log('Generate 1000 scriptFailedToParse events');
|
||
|
await Protocol.Runtime.evaluate({
|
||
|
expression: `for (var i = 0; i < 1000; ++i) {
|
||
|
try { JSON.parse('}'); } catch(e) {}
|
||
|
}`
|
||
|
});
|
||
|
await dumpScriptIdsStats(scriptIds);
|
||
|
InspectorTest.log(
|
||
|
'Generate three scriptFailedToParse event for non anonymous script');
|
||
|
for (var i = 0; i < 3; ++i) {
|
||
|
await Protocol.Runtime.evaluate({expression: '}//# sourceURL=foo.js'});
|
||
|
}
|
||
|
await dumpScriptIdsStats(scriptIds);
|
||
|
InspectorTest.log(
|
||
|
'Generate one more scriptFailedToParse event for anonymous script');
|
||
|
await Protocol.Runtime.evaluate(
|
||
|
{expression: `try {JSON.parse('}');} catch(e){}`});
|
||
|
await dumpScriptIdsStats(scriptIds);
|
||
|
InspectorTest.log('Check that latest script is still available');
|
||
|
InspectorTest.logMessage(await Protocol.Debugger.getScriptSource(
|
||
|
{scriptId: scriptIds[scriptIds.length - 1]}));
|
||
|
InspectorTest.completeTest();
|
||
|
})();
|
||
|
|
||
|
async function dumpScriptIdsStats(scriptIds) {
|
||
|
let errors = 0;
|
||
|
let success = 0;
|
||
|
for (let scriptId of scriptIds) {
|
||
|
const result =
|
||
|
await Protocol.Debugger.getScriptSource({scriptId: scriptId});
|
||
|
if (result.error)
|
||
|
++errors;
|
||
|
else
|
||
|
++success;
|
||
|
}
|
||
|
InspectorTest.log(`error:${errors}\nsuccess:${success}`);
|
||
|
}
|