summaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector/debugger/eval-without-codegen.js
blob: 18600d87a935b82e50aedbfcbe34488f0c8d7168 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
// 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(
    'Tests that evaluation works when code generation from strings is not allowed.');

Protocol.Debugger.enable();
Protocol.Runtime.enable();

InspectorTest.runAsyncTestSuite([
  async function testEvaluateNotPaused() {
    contextGroup.addScript(`inspector.setAllowCodeGenerationFromStrings(false);
    var global1 = 'Global1';`);
    await Protocol.Debugger.onceScriptParsed();
    InspectorTest.logMessage(
        await Protocol.Runtime.evaluate({expression: 'global1'}));
  },

  async function testEvaluatePaused() {
    contextGroup.addScript(`inspector.setAllowCodeGenerationFromStrings(false);
    var global2 = 'Global2';
    function foo(x) {
      var local = 'Local';
      debugger;
      return local + x;
    }
    foo();`);
    let {params: {callFrames: [{callFrameId}]}} =
        await Protocol.Debugger.oncePaused();

    InspectorTest.logMessage(
        await Protocol.Runtime.evaluate({expression: 'global2'}));
    InspectorTest.logMessage(await Protocol.Debugger.evaluateOnCallFrame(
        {callFrameId, expression: 'local'}));
    await Protocol.Debugger.resume();
  }
]);