| // Copyright 2021 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: --always-opt |
| |
| // This causes the register used by the call in the later try-catch block to be |
| // used by the ToName conversion for null which causes a DCHECK fail when |
| // compiling. If register allocation changes, this test may no longer reproduce |
| // the crash but it is not easy write a proper test because it is linked to |
| // register allocation. This test should always work, so shouldn't cause any |
| // flakes. |
| try { |
| var { [null]: __v_12, } = {}; |
| } catch (e) {} |
| |
| try { |
| assertEquals((__v_40?.o?.m)().p); |
| } catch (e) {} |