E.g. var name = "foo" as a top level variable throws an Error. This is b/c the module.recorder objects actually inherit from the global object, window in the browser. The global (at least in browsers in nodejs it sees to work) has a guard that certain names are not allowed to be redefined. This guard even applies when used in an object inheriting from the global, hence the problem.