diff options
Diffstat (limited to 'deps/v8/test/mjsunit/regress/asm/regress-6838-4.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/asm/regress-6838-4.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/asm/regress-6838-4.js b/deps/v8/test/mjsunit/regress/asm/regress-6838-4.js new file mode 100644 index 0000000000..6c6f8e0f73 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/asm/regress-6838-4.js @@ -0,0 +1,79 @@ +// Copyright 2020 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 + +(function TestMinusZeroIsDouble() { + function Module(stdlib) { + 'use asm'; + function f() { + var x = 0.; + x = 1. / +-0; + return +x; + } + return f; + } + var f = Module(this); + assertEquals(-Infinity, f()); + assertTrue(%IsAsmWasmCode(Module)); +})(); + +(function TestMinusZeroIsDoubleBracketed() { + function Module(stdlib) { + 'use asm'; + function f() { + var x = 0.; + x = 1. / (-0); + return +x; + } + return f; + } + var f = Module(this); + assertEquals(-Infinity, f()); + assertTrue(%IsAsmWasmCode(Module)); +})(); + +(function TestMinusZeroIsDoubleMultDouble1() { + function Module(stdlib) { + 'use asm'; + function f() { + var x = 0.; + x = 1. / (-0 * 1.0); + return +x; + } + return f; + } + var f = Module(this); + assertEquals(-Infinity, f()); + assertTrue(%IsAsmWasmCode(Module)); +})(); + +(function TestMinusZeroIsDoubleMultDouble2() { + function Module(stdlib) { + 'use asm'; + function f() { + var x = 0.; + x = 1. / (1.0 * -0); + return +x; + } + return f; + } + var f = Module(this); + assertEquals(-Infinity, f()); + assertTrue(%IsAsmWasmCode(Module)); +})(); + +(function TestMinusZeroIsDoubleMultInt() { + function Module(stdlib) { + 'use asm'; + function f() { + var x = 0.; + x = 1. / (-0 * 1); + return +x; + } + return f; + } + var f = Module(this); + assertFalse(%IsAsmWasmCode(Module)); +})(); |