ion
Version:
ion language ========================
64 lines (46 loc) • 2 kB
Plain Text
remove is and isnt and replace with === and !== explicit operators.
because of possible confusion with ES7+ is/isnt operator proposals.
also remove not, and, or operators and replace with !, &&, || for consistency.
need a base class object1
need merging syntactic sugar
a.b.c: 1
=>
a:
b:
c: 1
Need to fix array comprehensions to be lazily evaluated:
let _ref = [];
{
let _ref2 = this.body;
for (let _i = 0; _i < _ref2.length; _i++) {
let s = _ref2[_i];
_ref.push(this.context.createRuntime(s));
}
}
this.statements = this.statements != null ? this.statements : _ref;
Optimize this: => if (!(this.statements != null))
This should be an error:
console.log(x)
let x = 12
need to merge properties on output object so this works:
style:
color: 'red'
why does ["manifest.json"]: work, but not "manifest.json":?
X import(foo).bar is currently compiled to require((foo).bar), should be require(foo).bar
X assert should work with multiline expressions.
X []
should, allow, adding
several, things, per line
replace ion.mergePatch with extra properties accessible but undocumented on ion.patch
investigate a const declaration in a loop not working within a for loop on rhino, may need Rhino unit tests.
This:
let keyHandler = (@handlers ?= {})[key] ?= {value:undefined,handlers:[]}
Expands to this bullshit:
let keyHandler = (this.handlers = this.handlers != null ? this.handlers : {})[key] = (this.handlers = this.handlers != null ? this.handlers : {})[key] != null ? (this.handlers = this.handlers != null ? this.handlers : {})[key] : {
value: void 0,
handlers: []
};
Make this work, it doesn't right now, and improve existential operator generated code.
object?.connected = presence.isConnected
move brower/html to glass.
empty lines are being removed from multiline string literals