diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-06-06 10:28:14 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-06-07 10:33:31 +0200 |
commit | 3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09 (patch) | |
tree | 9dee56e142638b34f1eccbd0ad88c3bce5377c29 /deps/v8/test/mjsunit/deopt-recursive-soft-once.js | |
parent | 91a1bbe3055a660194ca4d403795aa0c03e9d056 (diff) | |
download | android-node-v8-3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09.tar.gz android-node-v8-3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09.tar.bz2 android-node-v8-3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09.zip |
deps: update V8 to 5.9.211.32
PR-URL: https://github.com/nodejs/node/pull/13263
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/v8/test/mjsunit/deopt-recursive-soft-once.js')
-rw-r--r-- | deps/v8/test/mjsunit/deopt-recursive-soft-once.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/deopt-recursive-soft-once.js b/deps/v8/test/mjsunit/deopt-recursive-soft-once.js new file mode 100644 index 0000000000..af1eb731f4 --- /dev/null +++ b/deps/v8/test/mjsunit/deopt-recursive-soft-once.js @@ -0,0 +1,36 @@ +// Copyright 2017 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 --crankshaft --turbo --no-always-opt + + +function foo(i, deopt = false, deoptobj = null) { + if (i == 0) { + if (deopt) { + // Trigger a soft deopt. + deoptobj.bar(); + } + } else { + foo(i - 1, deopt, deoptobj); + } +} + +assertEquals(0, %GetOptimizationCount(foo)); +assertEquals(0, %GetDeoptCount(foo)); + +foo(10); +foo(10); +%OptimizeFunctionOnNextCall(foo); +foo(10); + +assertOptimized(foo); +assertEquals(1, %GetOptimizationCount(foo)); +assertEquals(0, %GetDeoptCount(foo)); + +foo(10, true, { bar: function(){} }); + +assertUnoptimized(foo); +assertEquals(1, %GetOptimizationCount(foo)); +// Soft deopts don't count to the deopt count. +assertEquals(0, %GetDeoptCount(foo)); |