Language challenges
Soundness?
eval(prompt("What next?"))
var x = "foo" // x :: string var y = x // y :: string
var x = "foo" // x :: string | bool if (something()) x = false var y = x // y :: string | bool
var x = "foo" var y = x
var x = "foo" if (bar()) x = false var y = x
var r = f("foo", "bar") function f(x, y) { return x + y }
var r = f("foo", "bar")
var r = f("foo", "bar") function f(x, y) { return x + y }
var r = f("foo", "bar") function f(x, y) { return x + y }
var r = f("foo", "bar") function f(x, y) { return x + y }
var r = f("foo", "bar") function f(x, y) { return x + y }
var r = f("foo", "bar") function f(x, y) { return x + y }
var r = f("foo", "bar") function f(x, y) { return x + y }
var r = f("foo", "bar") function f(x, y) { return x + y }
var o = {x: 10, y: 0}
var o = {x: 10, y: 0} var h = o.y
var o = {x: 10, y: 0} var h = o.y
Parametric Polymorphism
function lastOf(array) { return array[array.length - 1] } var num = lastOf([1, 2, 3]) var str = lastOf(["a", "b", "c"])
Run-time type manipulation
function extend(target, source) { for (var prop in source) target[prop] = source[prop] return target }
.tern-project
file