assert 11 === var d, z, a=3, b = a,
c = 1,
e,
g = 1+7+3;
assert 3 === const f = 3;
assert 3===a;
assert a===b;
assert a!=c;
assert 1===c;
assert undefined===d;
assert d===e;
assert 3 === f;
//const fail
// must syntax err:
//var w, y,, x
// must throw (var already defined):
//var a
assert 8 === scope {var a = 7; assert 10 === a + b; a} + 1;
assert scope{5} === scope scope {
scope {
assert 3 === a;
var u = 1+2+3-1;
};
};
assert 'undefined' === typename u;
scope {
var a2 = 'aaa', b2 = 'aaa', c2 = 'aaa',
d2 = ('aaa','aaa','aaa','aaa','aaa');
// just checking the interning stats
assert 'string' === typename a2;
assert 'string' === typename b2;
assert 'string' === typename c2;
assert undefined === unset a2, b2;
assert 'undefined' === typename a2;
assert 'undefined' === typename b2;
assert 'string' === typename c2;
;;
};
var zz = scope {
var z = "the end";
//var z; // must throw (z already defined)
//"abc";
};
//assert 'the end' === zz;
//zz;