michael@0: load(libdir + "asserts.js"); michael@0: michael@0: function g() { michael@0: } michael@0: michael@0: let a = { michael@0: g: function() { michael@0: } michael@0: }; michael@0: michael@0: function check(expr) { michael@0: assertThrowsInstanceOf(Function(expr), ReferenceError); michael@0: } michael@0: michael@0: check("g(...[]) = 1"); michael@0: check("a.g(...[]) = 1"); michael@0: check("eval(...['1']) = 1"); michael@0: check("[g(...[])] = 1"); michael@0: check("[a.g(...[])] = 1"); michael@0: check("[eval(...['1'])] = 1"); michael@0: check("({y: g(...[])}) = 1"); michael@0: check("({y: a.g(...[])}) = 1"); michael@0: check("({y: eval(...['1'])}) = 1"); michael@0: check("g(...[]) ++"); michael@0: check("a.g(...[]) ++"); michael@0: check("eval(...['1']) ++");