michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: var BUGNUMBER = 452498; michael@0: var summary = 'TM: upvar2 regression tests'; michael@0: var actual = ''; michael@0: var expect = ''; michael@0: michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: test(); michael@0: //----------------------------------------------------------------------------- michael@0: michael@0: function test() michael@0: { michael@0: enterFunc ('test'); michael@0: printBugNumber(BUGNUMBER); michael@0: printStatus (summary); michael@0: michael@0: // ===== michael@0: michael@0: foo = "" + new Function("while(\u3056){let \u3056 = x}"); michael@0: michael@0: // ===== michael@0: michael@0: function a(){ let c; eval("let c, y"); } michael@0: a(); michael@0: michael@0: // ===== michael@0: michael@0: try michael@0: { michael@0: {x: 1e+81 ? c : arguments} michael@0: } michael@0: catch(ex) michael@0: { michael@0: } michael@0: michael@0: // ===== michael@0: michael@0: (function(q){return q;} for each (\u3056 in [])) michael@0: michael@0: // ===== michael@0: michael@0: for( michael@0: const NaN; michael@0: this.__defineSetter__("x4", function(){}); michael@0: (eval("", (p={})))) let ({} = (((x ))(function ([]) {})), x1) y; michael@0: michael@0: // ===== michael@0: michael@0: function f(){ var c; eval("{var c = NaN, c;}"); } michael@0: f(); michael@0: michael@0: // ===== michael@0: try michael@0: { michael@0: eval( michael@0: ' x\n' + michael@0: ' let(x) {\n' + michael@0: ' var x\n' michael@0: ); michael@0: } michael@0: catch(ex) michael@0: { michael@0: } michael@0: michael@0: // ===== michael@0: michael@0: reportCompare(expect, actual, summary); michael@0: michael@0: exitFunc ('test'); michael@0: }