| // 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(); |
| } |