Skip to content
Jing Lu edited this page May 26, 2013 · 22 revisions

The following features supported by only ReoScript are non-compatible to ECMAScript/JavaScript standard.

More simpler inheriting based on prototype mechanism

This feature is planned to implement in next release.

function A() {
  this.a = 10;
}

function B() : A {
  this.b = 20;
}

var b = new B;
console.log(b.a + b.a);

The output is:

30

Lambda Expression and Enhanced Collection Operations

var arr = [1, 5, 7, 8, 10, 13, 20, 24, 26];
var result = arr.where(n => n < 10).sum();

The result is:

21

See Lambda Expression.

setTimeout and setInterval supported to pass arguments

function check_alive(user) {
    if (...) {
        return 'ok';
    } else {
        setTimeout(check_alive, 1000, user);
    }
}

var user = getCurrentUser();
setTimeout(check_alive, 1000, user);

See Enhanced Async-Calling.

Import script file into current script context

common.rs:

function check_login(usr, pwd) [
    return (usr.password == hash(pwd));
}

login.rs:

import "common.rs";

var usr = getCurrentUser();
check_login(usr, getInputtedPwd());

See import keyword.

Binary literal supported (e.g. 0b1010)

var num = 0b1010;
console.log(num);

The output is:

10