1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/js1_8_5/regress/regress-383902.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,43 @@ 1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 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 c = 0; 1.11 + 1.12 +function f(a) { 1.13 + const b = a; 1.14 + try { 1.15 + eval('"use strict"; b = 1 + a; c = 1'); 1.16 + assertEq(0, 1); 1.17 + } catch (e) { 1.18 + assertEq(e.name, 'TypeError'); 1.19 + assertEq(0, c); 1.20 + assertEq(a, b); 1.21 + } 1.22 +} 1.23 + 1.24 +var w = 42; 1.25 +f(w); 1.26 + 1.27 +c = 2; 1.28 +try { 1.29 + eval('"use strict"; function g(x) { const y = x; y = 1 + x; } c = 3'); 1.30 + assertEq(0, 1); 1.31 +} catch (e) { 1.32 + assertEq(e.name, 'TypeError'); 1.33 + assertEq(2, c); 1.34 +} 1.35 + 1.36 +c = 4; 1.37 +try { 1.38 + eval('"use strict"; const z = w; z = 1 + w; c = 5'); 1.39 + assertEq(0, 1); 1.40 +} catch (e) { 1.41 + assertEq(e.name, 'TypeError'); 1.42 + assertEq(4, c); 1.43 + assertEq('z' in this, false); 1.44 +} 1.45 + 1.46 +reportCompare(0, 0, "ok");