diff options
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/math-max.js')
-rw-r--r-- | deps/v8/test/mjsunit/compiler/math-max.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/compiler/math-max.js b/deps/v8/test/mjsunit/compiler/math-max.js new file mode 100644 index 0000000000..350bdfba88 --- /dev/null +++ b/deps/v8/test/mjsunit/compiler/math-max.js @@ -0,0 +1,38 @@ +// 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 + +// Test the case where TurboFan can statically rule out -0 from the +// Math.max type. +(function() { + function foo(x) { + // Arrange x such that TurboFan infers type [-inf, inf] \/ MinusZero. + x = +x; + x = Math.round(x); + return Object.is(-0, Math.max(1, x)) + } + + assertFalse(foo(-0)); + assertFalse(foo(-1)); + %OptimizeFunctionOnNextCall(foo); + assertFalse(foo(-0)); + assertFalse(foo(-1)); +})(); + +// Test the case where -0 is ruled out because it's strictly less than +0. +(function() { + function foo(x) { + // Arrange x such that TurboFan infers type [-inf, inf] \/ MinusZero. + x = +x; + x = Math.round(x); + return Object.is(-0, Math.max(0, x)) + } + + assertFalse(foo(-0)); + assertFalse(foo(-1)); + %OptimizeFunctionOnNextCall(foo); + assertFalse(foo(-0)); + assertFalse(foo(-1)); +})(); |