83b560b0e5
This CL adds simple implementation of break and stepping-related functionality as required by the debug-step.js test. This includes * stepOver, stepInto, stepOut * setBreakPoint * clearBreakPoint * evaluate Some of these, e.g. setBreakPoint are not fully implemented for all cases but only for the ones we need right now. One interesting result of this is that using the inspector protocol is roughly 14x slower for debug-step.js (14s instead of 0.5s). One cause of this seems to be iteration over all object properties in toProtocolValue, which is used to serialize JS objects before being sent over the wire (e.g. FrameMirrors). This is something that should be fixed at some point. In the meantime, the test now runs 100 instead of 1000 iterations. BUG=v8:5530 Review-Url: https://codereview.chromium.org/2447073007 Cr-Commit-Position: refs/heads/master@{#40636}
30 lines
819 B
JavaScript
30 lines
819 B
JavaScript
// 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.
|
|
|
|
let compileCount = 0;
|
|
|
|
const Debug = new DebugWrapper();
|
|
|
|
Debug.setListener(function(event, exec_state, event_data, data) {
|
|
if (event != Debug.DebugEvent.AfterCompile) return;
|
|
compileCount++;
|
|
});
|
|
|
|
Debug.enable();
|
|
assertTrue(compileCount != 0);
|
|
|
|
const compileCountAfterEnable = compileCount;
|
|
|
|
Debug.enable(); // Idempotent.
|
|
assertEquals(compileCountAfterEnable, compileCount);
|
|
|
|
Debug.disable();
|
|
assertEquals(compileCountAfterEnable, compileCount);
|
|
|
|
Debug.disable(); // Idempotent.
|
|
assertEquals(compileCountAfterEnable, compileCount);
|
|
|
|
Debug.enable(); // Re-enabling causes recompilation.
|
|
assertEquals(2 * compileCountAfterEnable, compileCount);
|