[x] Built-in or keyword to get type of variable's value (a.(type) would be nice) is conv.Type(val)
[x] Decide what to do with numbers (most probably keep only Float)
v0.2?
Short-circuiting && and ||Support func(){}() syntax (anonymous immediately-invoked func expression)Closures (even required for simple cases like calling a func declared in the module, because the module itself is a function, so it needs to close over those funcs - see 46-json.agora)Coroutines supportRange over whatever (for ... := range) using coroutine (range prepares the coro for execution and iterates it)
v0.3?
Prototype/metamethods support, get inspiration from Lua (http://tylerneylon.com/a/learn-lua/) or JS or a more Go-like approach using embed or something?Review the this behaviour
~~Literal array notation, created as Object (like Lua)
i.e. ar := [10, "test", false]~~
Comma-separated lists in assignment statements (:=, = only)switch statementmultiple return values
Beyond?
[ ] Provide an implements built-in to check if an object provides the required fields? Kind of built-in duck-typing, a-la my implements.js library?
[ ] Remove the need for return nil to be added by the parser?
[ ] Much better compiler error messages
[ ] Better errors in general (VM)
[ ] Check limits (i.e. 2^48 for instruction's value, etc.)
(is conv.Type(val)a.(type)
would be nice)v0.2?
Short-circuiting && and ||Support func(){}() syntax (anonymous immediately-invoked func expression)Closures (even required for simple cases like calling a func declared in the module, because the module itself is a function, so it needs to close over those funcs - see 46-json.agora)Coroutines supportRange over whatever (for ... := range) using coroutine (range prepares the coro for execution and iterates it)v0.3?
Prototype/metamethods support, get inspiration from Lua (http://tylerneylon.com/a/learn-lua/) or JS or a more Go-like approach usingembed
or something?Review the~~Literal array notation, created as Object (like Lua) i.e.this
behaviourar := [10, "test", false]
~~Comma-separated lists in assignment statements (:=, = only)switch
statementmultiple return valuesBeyond?
implements
built-in to check if an object provides the required fields? Kind of built-in duck-typing, a-la my implements.js library?return nil
to be added by the parser?