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