Agreement tests with globals:
check_both("var x: i64 = 42; fn get() i64 { return x; } get()", 42);
check_both("var x: i64 = 0; fn inc() i64 { x = x + 1; return x; } inc(); inc(); inc()", 3);
check_both(
\\var counter: i64 = 0;
\\fn bump() i64 {
\\ counter = counter + 1;
\\ return counter;
\\}
\\bump();
\\bump();
\\bump();
\\counter
, 3);
Three tests. Two engines. Same answers. Globals work in the interpreter, the compiler, and the VM.