%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); common.skipIfInspectorDisabled(); const fixtures = require('../common/fixtures'); const startCLI = require('../common/debugger'); const assert = require('assert'); const path = require('path'); // Break on (uncaught) exceptions. { const scriptFullPath = fixtures.path('debugger', 'exceptions.js'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); function onFatal(error) { cli.quit(); throw error; } cli.waitForInitialBreak() .then(() => cli.waitForPrompt()) .then(() => { assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 1 }); }) // Making sure it will die by default: .then(() => cli.command('c')) .then(() => cli.waitFor(/disconnect/)) // Next run: With `breakOnException` it pauses in both places. .then(() => cli.stepCommand('r')) .then(() => cli.waitForInitialBreak()) .then(() => { assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 1 }); }) .then(() => cli.command('breakOnException')) .then(() => cli.stepCommand('c')) .then(() => { assert.ok(cli.output.includes(`exception in ${script}:3`)); }) .then(() => cli.stepCommand('c')) .then(() => { assert.ok(cli.output.includes(`exception in ${script}:9`)); }) // Next run: With `breakOnUncaught` it only pauses on the 2nd exception. .then(() => cli.command('breakOnUncaught')) .then(() => cli.stepCommand('r')) // Also, the setting survives the restart. .then(() => cli.waitForInitialBreak()) .then(() => { assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 1 }); }) .then(() => cli.stepCommand('c')) .then(() => { assert.ok(cli.output.includes(`exception in ${script}:9`)); }) // Next run: Back to the initial state! It should die again. .then(() => cli.command('breakOnNone')) .then(() => cli.stepCommand('r')) .then(() => cli.waitForInitialBreak()) .then(() => { assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 1 }); }) .then(() => cli.command('c')) .then(() => cli.waitFor(/disconnect/)) .then(() => cli.quit()) .then(null, onFatal); }