// Copyright 2019 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 { function f() { for(let i = 0; i < 10; ++i){ %PrepareFunctionForOptimization(f); try{ // Carefully constructed by a fuzzer to use a new register for s(), whose // write is dead due to the unconditional throw after s()=N, but which is // read in the ({...g}) call, which therefore must also be marked dead and // elided. with(f&&g&&(s()=N)({...g})){} } catch {} %OptimizeOsr(); } } %EnsureFeedbackVectorForFunction(f); f(); }