| // 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 opt(r, flag){ | |
| var x; | |
| for(let i = 0; i < 2; i++){ | |
| r[2] = 0; | |
| x = r[0] << (flag ? r[0] : flag) | |
| } | |
| return x; | |
| } | |
| ar = [3.1]; | |
| %PrepareFunctionForOptimization(opt); | |
| opt(ar,1); | |
| opt(ar,1); | |
| %OptimizeFunctionOnNextCall(opt); | |
| assertEquals(24, opt(ar,1)); |