diff options
Diffstat (limited to 'deps/v8/test/mjsunit/global-infinity-strict.js')
-rw-r--r-- | deps/v8/test/mjsunit/global-infinity-strict.js | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/global-infinity-strict.js b/deps/v8/test/mjsunit/global-infinity-strict.js new file mode 100644 index 0000000000..8ab1683411 --- /dev/null +++ b/deps/v8/test/mjsunit/global-infinity-strict.js @@ -0,0 +1,136 @@ +// 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 +"use strict"; + +function test(expected, f) { + assertEquals(expected, f()); + assertEquals(expected, f()); + %OptimizeFunctionOnNextCall(f); + assertEquals(expected, f()); + assertEquals(expected, f()); +} + +function testThrows(f) { + assertThrows(f); + assertThrows(f); + %OptimizeFunctionOnNextCall(f); + assertThrows(f); + assertThrows(f); +} + +function f1() { return Infinity; } +test((1/0), f1); + +function f2() { return (1/0); } +test((1/0), f2); + +function f3() { return (1/0) == (1/0); } +test(true, f3); + +function f4() { return (1/0) == Infinity; } +test(true, f4); + +function f5() { return Infinity == (1/0); } +test(true, f5); + +function f6() { return "" + Infinity; } +test("Infinity", f6); + +function f7() { return (1/0) === (1/0); } +test(true, f7); + +function f8() { return (1/0) === Infinity; } +test(true, f8); + +function f9() { return Infinity === (1/0); } +test(true, f9); + +// -- + +function g1() { return Infinity; } +test((1/0), g1); + +function g2() { return (1/0); } +test((1/0), g2); + +function g3() { return (1/0) == (1/0); } +test(true, g3); + +function g4() { return (1/0) == Infinity; } +test(true, g4); + +function g5() { return Infinity == (1/0); } +test(true, g5); + +function g6() { return "" + Infinity; } +test("Infinity", g6); + +function g7() { return (1/0) === (1/0); } +test(true, g7); + +function g8() { return (1/0) === Infinity; } +test(true, g8); + +function g9() { return Infinity === (1/0); } +test(true, g9); + +testThrows(function() { Infinity = 111; }); + +function h1() { return Infinity; } +test((1/0), h1); + +function h2() { return (1/0); } +test((1/0), h2); + +function h3() { return (1/0) == (1/0); } +test(true, h3); + +function h4() { return (1/0) == Infinity; } +test(true, h4); + +function h5() { return Infinity == (1/0); } +test(true, h5); + +function h6() { return "" + Infinity; } +test("Infinity", h6); + +function h7() { return (1/0) === (1/0); } +test(true, h7); + +function h8() { return (1/0) === Infinity; } +test(true, h8); + +function h9() { return Infinity === (1/0); } +test(true, h9); + +// ------------- + +function k1() { return this.Infinity; } +testThrows(k1); + +function k2() { return (1/0); } +test((1/0), k2); + +function k3() { return (1/0) == (1/0); } +test(true, k3); + +function k4() { return (1/0) == this.Infinity; } +testThrows(k4); + +function k5() { return this.Infinity == (1/0); } +testThrows(k5); + +function k6() { return "" + this.Infinity; } +testThrows(k6); + +function k7() { return (1/0) === (1/0); } +test(true, k7); + +function k8() { return (1/0) === this.Infinity; } +testThrows(k8); + +function k9() { return this.Infinity === (1/0); } +testThrows(k9); |