summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/regress/asm/regress-6838-4.js
diff options
context:
space:
mode:
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.js79
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));
+})();