diff options
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/regress-v8-5756.js')
-rw-r--r-- | deps/v8/test/mjsunit/compiler/regress-v8-5756.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/compiler/regress-v8-5756.js b/deps/v8/test/mjsunit/compiler/regress-v8-5756.js new file mode 100644 index 0000000000..b7bfcda52b --- /dev/null +++ b/deps/v8/test/mjsunit/compiler/regress-v8-5756.js @@ -0,0 +1,31 @@ +// Copyright 2016 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 + +z = {}; +t = new Uint8Array(3); +var m = 0; +var x = 10; + +function k() { + ++m; + if (m % 10 != 9) { + if (m > 20) // This if is to just force it to deoptimize. + x = '1'; // this deoptimizes during the second invocation of k. + // This causes two deopts, one eager at x = 1 and the + // other lazy at t[2] = z. + t[2] = z; // since we are assigning to Uint8Array, ToNumber + // is called which calls this funciton again. + } +} + +function f1() { + z.toString = k; + z.toString(); + z.toString(); + %OptimizeFunctionOnNextCall(k); + z.toString(); +} +f1(); |