load(libdir + 'asserts.js');

var calls = 0;
function g() {
    calls++;
};
function test1() {
    for (var i=0; i<20; i++) {
	if (i > 18)
	    g() = 2;
    }
}
assertThrowsInstanceOf(test1, ReferenceError);
assertEq(calls, 1);

function test2() {
    for (var i=0; i<20; i++) {
	if (i > 18)
	    g()++;
    }
}
assertThrowsInstanceOf(test2, ReferenceError);
assertEq(calls, 2);

function test3() {
    for (var i=0; i<20; i++) {
	if (i > 18)
	    g() >>= 2;
    }
}
assertThrowsInstanceOf(test3, ReferenceError);
assertEq(calls, 3);