nodejs/deps/v8/test/debugger/regress/deopt-regression.js

41 lines
826 B
JavaScript
Raw Permalink Normal View History

// Copyright 2023 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.
// Flags: --allow-natives-syntax --sparkplug
var foo = {
  [Symbol.toPrimitive]() {return "xyz";}
}
function f() {
  var v = foo;
  var o = {[v]: v};
  return o["xyz"];
};
Debug = debug.Debug
function listener(event, exec_state, event_data, data) {
  if (event == Debug.DebugEvent.Break) {
  }
};
// Add the debug event listener.
Debug.setListener(listener);
%DebugPrint(f());
%CompileBaseline(f);
%DebugPrint(f());
foo[Symbol.toPrimitive] = function(hint) {
  print("Setting breakpoint...");
  const breakid = Debug.setBreakPoint(f, 3);
  return "xyz";
};
%DebugPrint(f());
// Get rid of the debug event listener.
Debug.setListener(null);