// 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.

// Flags: --interrupt-budget=100

var caught = 0;

function runManyTimes(f) {
  for (let i = 0; i < 1000; ++i) {
    try {
      // Seems to be important that this is inside a try catch.
      f();
    } catch (e) {
      assertUnreachable();
    }
  }
}

let A = {
  get foo() {
    return 0;
  }
};

let B = {
  __proto__: A,

  aa() {
    "use strict";
    super.foo;
  }
};

var superAccessingFunc = B.aa;

runManyTimes(function () {
  try {
    superAccessingFunc();
  } catch (e) {
    caught++;
  }
});

assertEquals(0, caught);