FYI unless there's some JSDoc bug, you can treat this "constructor" like the other prototype functions and just assign `var DataSource = throwInstantiationError;` without the extra function wrapper. The only difference between functions and constructor functions comes when they're executed.