Rename the IO.write method to IO.print, which now prints without a trailing newline, and add a new IO.print method that appends a newline after output. Update all benchmark, example, and test files to use IO.print instead of IO.write. Additionally, implement Unicode escape sequence parsing in the compiler's string tokenizer, supporting \uXXXX and \u{...} syntax with proper UTF-8 encoding for code points up to U+10FFFF.
18 lines
348 B
Plaintext
18 lines
348 B
Plaintext
{
|
|
var f = null
|
|
|
|
{
|
|
var a = "a"
|
|
f = fn IO.print(a)
|
|
}
|
|
|
|
{
|
|
// Since a is out of scope, the local slot will be reused by b. Make sure
|
|
// that f still closes over a.
|
|
var b = "b"
|
|
f.call // expect: a
|
|
}
|
|
}
|
|
|
|
// TODO: Maximum number of closed-over variables (directly and/or indirect).
|
|
// TODO: Shadow variable used in closure. |