diff options
author | Michaƫl Zasso <mic.besace@gmail.com> | 2015-07-27 08:43:54 +0200 |
---|---|---|
committer | Rod Vagg <rod@vagg.org> | 2015-08-04 11:56:17 -0700 |
commit | 3d3c687012be3304f7951e47eec103478c7ec366 (patch) | |
tree | c53cca04915f5eaa3fb77de5566f9854bf0f74f7 /deps/v8/test/mjsunit/regress/regress-crbug-478612.js | |
parent | 2965442308ea72e76f2b982d0c1ee74304676d5a (diff) | |
download | node-new-3d3c687012be3304f7951e47eec103478c7ec366.tar.gz |
deps: update V8 to 4.4.63.26
Includes cherry-picks for:
* JitCodeEvent patch: https://crrev.com/f7969b1d5a55e66237221a463daf422ac7611788
* argparse patch: https://crrev.com/44bc918458481d60b08d5566f0f31a79e39b85d7
PR-URL: https://github.com/nodejs/io.js/pull/2220
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Diffstat (limited to 'deps/v8/test/mjsunit/regress/regress-crbug-478612.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/regress-crbug-478612.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-478612.js b/deps/v8/test/mjsunit/regress/regress-crbug-478612.js new file mode 100644 index 0000000000..3419722cd0 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-crbug-478612.js @@ -0,0 +1,52 @@ +// Copyright 2015 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 is used to force binary operations below to have tagged representation. +var z = {valueOf: function() { return 3; }}; + + +function f() { + var y = -2; + return (1 & z) - y++; +} + +assertEquals(3, f()); +assertEquals(3, f()); +%OptimizeFunctionOnNextCall(f); +assertEquals(3, f()); + + +function g() { + var y = 2; + return (1 & z) | y++; +} + +assertEquals(3, g()); +assertEquals(3, g()); +%OptimizeFunctionOnNextCall(g); +assertEquals(3, g()); + + +function h() { + var y = 3; + return (3 & z) & y++; +} + +assertEquals(3, h()); +assertEquals(3, h()); +%OptimizeFunctionOnNextCall(h); +assertEquals(3, h()); + + +function i() { + var y = 2; + return (1 & z) ^ y++; +} + +assertEquals(3, i()); +assertEquals(3, i()); +%OptimizeFunctionOnNextCall(i); +assertEquals(3, i()); |