add 'console' global object, and fix call to evalLval
split the update assignment desugaring into its own pass, and also fix it so that it actually works in the face of lhs's that include side effecting expressions.
fix the HoistFuncDecls pass to prefer the last function decl in a given function (for a given name).  this pass gives us v8 behavior.  for SM behavior, disable the pass.