1 // Copyright 2014 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 function test(message, a, b, skipStrictMode) { 6 assertSame(eval(a), eval(b), message); 7 if (!skipStrictMode) { 8 (function() { 9 'use strict'; 10 assertSame(eval(a), eval(b), message); 11 })(); 12 } 13 } 14 15 test('hex-int', '0x20', '32'); 16 test('oct-int', '040', '32', true); // Octals disallowed in strict mode. 17 test('dec-int', '32.00', '32'); 18 test('dec-underflow-int', '32.00000000000000000000000000000000000000001', '32'); 19 test('exp-int', '3.2e1', '32'); 20 test('exp-int', '3200e-2', '32'); 21 test('overflow-inf', '1e2000', 'Infinity'); 22 test('overflow-inf-exact', '1.797693134862315808e+308', 'Infinity'); 23 test('non-overflow-inf-exact', '1.797693134862315807e+308', 24 '1.7976931348623157e+308'); 25 test('underflow-0', '1e-2000', '0'); 26 test('underflow-0-exact', '2.4703282292062E-324', '0'); 27 test('non-underflow-0-exact', '2.4703282292063E-324', '5e-324'); 28 test('precission-loss-high', '9007199254740992', '9007199254740993'); 29 test('precission-loss-low', '1.9999999999999998', '1.9999999999999997'); 30 test('non-canonical-literal-int', '1.0', '1'); 31 test('non-canonical-literal-frac', '1.50', '1.5'); 32 test('rounding-down', '1.12512512512512452', '1.1251251251251244'); 33 test('rounding-up', '1.12512512512512453', '1.1251251251251246'); 34