//@requireOptions("--useLLInt=false", "--forceICFailure=true") // Regression test: Ensure that we don't crash when op_get_private_field caching results in // giving up on caching.` function assert(expr, message) { if (!expr) throw new Error(`Assertion Failed: ${message}`); } Object.assign(assert, { equals(actual, expected) { assert(actual === expected, `expected ${expected} but found ${actual}`); }, throws(fn, errorType) { try { fn(); } catch (e) { if (typeof errorType === "function") assert(e instanceof errorType, `expected to throw ${errorType.name} but threw ${e}`); return; } assert(false, `expected to throw, but no exception was thrown.`); } }); class C { #x = 5; get(o) { return o.#x; } } let get = C.prototype.get; function testAccess() { assert.equals(get(new C), 5); } noInline(testAccess); function testThrows() { assert.throws(() => get(globalThis), TypeError); } noInline(testThrows); for (var i = 0; i < 20; ++i) { testAccess(); testThrows(); }