summaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector/debugger/caught-uncaught-exceptions.js
blob: d049cf0da0816c9b844469986f436a9aa227d5c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Copyright 2016 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.

InspectorTest.log("Check that inspector correctly passes caught/uncaught information.");

InspectorTest.addScript(
`function throwCaught() { try { throw new Error(); } catch (_) {} }
 function throwUncaught() { throw new Error(); }
 function schedule(f) { setTimeout(f, 0); }
`);

Protocol.Debugger.enable();

Protocol.Debugger.setPauseOnExceptions({ "state": "all" });
Protocol.Debugger.onPaused(message => {
  InspectorTest.log("paused in " + message.params.callFrames[0].functionName);
  InspectorTest.log("uncaught: " + message.params.data.uncaught);
  Protocol.Debugger.resume();
});

Protocol.Runtime.evaluate({ "expression": "schedule(throwCaught);" })
  .then(() => Protocol.Runtime.evaluate(
      { "expression": "schedule(throwUncaught);" }))
  .then(() => InspectorTest.completeTest());