So.... this is an infinite loop, because you didn't increment `i` in the body of the loop. This is why low level loops should be avoided. Livescript has lots of nice ways to achieve this. Like so:

    [0 til @noinputs]
      |> each (i) ->
        result.add-child (@_make-port @get-input-pos i), @inputs[i] ? VS.inport-busy : VS.inport-clear