diff options
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/number-constructor-deopt.js')
-rw-r--r-- | deps/v8/test/mjsunit/compiler/number-constructor-deopt.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/compiler/number-constructor-deopt.js b/deps/v8/test/mjsunit/compiler/number-constructor-deopt.js new file mode 100644 index 0000000000..edffc9ec53 --- /dev/null +++ b/deps/v8/test/mjsunit/compiler/number-constructor-deopt.js @@ -0,0 +1,32 @@ +// Copyright 2018 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 + +// This test writes {} to x to trigger lazy deopt +// from inside the number constructor. +var x = "5"; +var b = false; + +check = function() { + if (b) x = {}; + return 0; +} + +var obj = {}; +obj.valueOf = check; + +function f() { + try { + return x + Number(obj); + } catch(e) { + console.log(e.stack); + } +} + +f(); +f(); +%OptimizeFunctionOnNextCall(f); +b = true; +f(); |