// Copyright 2020 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('Deleting REPL let does not crash V8 crbug.com/105271');

InspectorTest.runAsyncTestSuite([
  async function deleteReplLetDeclaration() {
    await Protocol.Runtime.enable();
    const response = await Protocol.Runtime.evaluate({
      expression: 'let x = 1; delete x;',
      replMode: true,
    });
    InspectorTest.logMessage(response);
    await Protocol.Runtime.disable();
  }
]);
