This introduction of qualifying on is as a top level token also introduces a challenge due to the ambiguity between is->= and is->===.

Expression support was also added to the rlycontrol flow keyword, which gives us the ability to write:

rly plz foo thx
wow

Transforming it to

if(foo()) {
}

But wait a second, what’s this thx token???.

Things we’ve added

Thx

That’s a new token which indicates that a function call with or without arguments should be ended with a ) without a breaking line.

This is different from using & which adds a )\n to the expression.

Prior to this, we would have chained call code that looked something like this:

plz foo&
.plz baz&
.plz bar

Producing:

foo()
.baz()
.bar();

Now, with the introduction of recursive parsing and the thx keyword, chained function calls can be a single line!

plz foo thx .plz bar thx .plz baz

Converted to:

foo().bar().baz();

While the usage of thx might seem silly in this case, where we saw a need for this was during control flow execution, as it makes it more clear when arguments end:

rly plz fib with 5 thx bigger 6
wow

Produces:

if (fib(5) > 6) {
}

While using the &: rly plz fib with 5& bigger 6 would yield

if ( fib(5)
> 6) {
}

Why not just make & not append a new line? Well, we considered that changing the format would be a bit non-passive (now your whole new line is missing) and we didn’t want to change the resulting output.

Property Acccessors

A while ago some suggestions for operators that replace the . and [x] property accession were proposed.

Well, we finally implemented them!

The first one is giv which replaces the . operator,
document giv window -> document.window.