1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/js1_8_5/regress/regress-610026.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,49 @@ 1.4 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 1.5 +/* 1.6 + * Any copyright is dedicated to the Public Domain. 1.7 + * http://creativecommons.org/licenses/publicdomain/ 1.8 + */ 1.9 + 1.10 +var expect = "pass"; 1.11 +var actual; 1.12 + 1.13 +/* 1.14 + * We hardcode here that GenerateBlockId limits a program to 2^20 blocks. Start 1.15 + * with 2^19 blocks, then test 2^20 - 1 blocks, finally test the limit. 1.16 + */ 1.17 +var s = "{}"; 1.18 +for (var i = 0; i < 21; i++) 1.19 + s += s; 1.20 + 1.21 +try { 1.22 + eval(s); 1.23 + actual = "pass"; 1.24 +} catch (e) { 1.25 + actual = "fail: " + e; 1.26 +} 1.27 + 1.28 +assertEq(actual, expect); 1.29 + 1.30 +s += s.slice(0, -2); 1.31 + 1.32 +try { 1.33 + eval(s); 1.34 + actual = "pass"; 1.35 +} catch (e) { 1.36 + actual = "fail: " + e; 1.37 +} 1.38 + 1.39 +assertEq(actual, expect); 1.40 + 1.41 +s += "{}"; 1.42 + 1.43 +try { 1.44 + eval(s); 1.45 + actual = "fail: expected InternalError: program too large"; 1.46 +} catch (e) { 1.47 + actual = (e.message == "program too large") ? "pass" : "fail: " + e; 1.48 +} 1.49 + 1.50 +assertEq(actual, expect); 1.51 + 1.52 +reportCompare(0, 0, "ok");